Workshop: Maak je eigen alarmsysteem met Domoticz

8 besproken producten
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Sensors
  3. 3. Virtuele schakelaars
  4. 4. Alarm-situatie
  5. 5. Gebruiksvriendelijk in- en uitschakelen
  6. 6. Geknoei voorkomen
  7. 8 besproken producten

Geknoei voorkomen

Met de stappen tot nu toe heb je een volledig werkend alarmsysteem met vrijwel alle mogelijkheden van een veel duurder professioneel systeem. Nu moet je er nog voor zorgen dat inbrekers je niet te slim af zijn. Wanneer inbrekers eenmaal binnen zijn, is doorgaans het eerste wat ze doen, je meterkast openen en de stroom deactiveren. Als dat gebeurt, ligt je internetverbinding er uit voordat Domoticz een notificatie kan sturen. Professionele alarmsystemen hebben om die reden vaak een noodstroomvoorziening en een gsm-verbinding. Hoewel dat met een UPS en 4G-dongle bij Domoticz ook te realiseren valt, opteren wij voor een simpelere oplossing.

Zet ook een deur/raam-sensor op de deur van je meterkast en voeg die toe aan het Alarm trigger – Direct script. Dat zorgt ervoor dat wanneer het beveiligingspaneel is geactiveerd en deze sensor activeert, er zonder enige vertraging notificaties worden uitgestuurd en je Z-Wave sirenes worden geactiveerd. Die sirenes hebben op hun beurt altijd weer een accu aan boord en blijven dan ook loeien als de stroom wordt uitgeschakeld. De notificatie is bovendien al lang en breed verstuurd voordat de dieven de stroomvoorziening van je internetverbinding en Domoticz systeem kunnen uitschakelen.

Iets anders om je bewust van te zijn is dat criminelen met zogenaamde jammers het draadloze signaal kunnen verstoren, zodat de draadloze deur/raam- en bewegingssensors niet meer kunnen communiceren met het basisstation. Professionele alarmsystemen communiceren om de zoveel seconden met de sensors om te bekijken of deze nog actief zijn – zo nee, dan slaan ze alarm. Dat is in Domoticz ook prima na te bootsen, door middel van scripts.

Voordat we die scripts gaan maken, maken we eerst nog een virtuele schakelaar, genaamd Jamming gedetecteerd. Deze virtuele schakelaar zullen we aanzetten als er geknoei is gedetecteerd en op basis van die schakelaar zullen we gewenste acties ondernemen. Daarnaast moet je even naar de configuratie van je Z-Wave apparaten via Instellingen, Hardware en dan de knop Instellingen bij je Z-Wave controller (bijvoorbeeld de in onze vorige workshop besproken Aeon Z-Stick Gen 5). Configureer nu voor alle Z-Wave apparaten die een vaste verbinding hebben met het stroomnet (bijvoorbeeld inbouwschakelaars of de Fibaro Wall Plug) dat Enable polling is ingeschakeld. Hiermee wordt de status van de apparaten om de zoveel tijd actief gecontroleerd. Klik daarna op de regel van je Z-Wave controller en configureer hier het Poll interval, bijvoorbeeld 30 seconden. Wat je ook nog even moet doen is bij Instelling, Hardware het Index (Idx) nummer van je Z-Wave controller noteren (in ons geval 8).

Het script om jamming te detecteren kan helaas niet met Blockly gemaakt worden, maar enkel met LUA. Ons script vind je hieronder. Conceptueel doet het script het volgende: het vraagt via de interne Domoticz API een lijst op van alle Z-Wave gekoppelde Z-Wave apparaten. Voor alle Z-Wave apparaten wordt bekeken of polling is ingeschakeld en zo ja, op welk tijdstip dit voor het laatst succesvol is gebeurd. Is dat langer dan 60 seconden geleden, dan wordt een interne variabele jammingdetected op true gezet en op basis daarvan wordt de virtuele schakelaar Jamming gedetecteerd in- of uitgeschakeld. In principe kun je het script één op één overnemen, maar let wel op regel 3: daar moet je het IP-adres en de poort van je eigen Domoticz-installatie invoeren en het Index-nummer van je Z-Wave controller juist configureren.

Ten slotte maken we nog een script Jamming gedetecteerd, waarin we configureren wat er moet gebeuren als er geknoei is gedetecteerd. Ons voorbeeld van figuur 7 is vrij basaal: als het beveiligingspaneel is ingeschakeld én de virtuele schakelaar Jamming gedetecteerd staat aan, dan wordt er een alarmnotificatie verstuurd. Je kunt er hier bijvoorbeeld ook voor kiezen om altijd een notificatie te versturen (ongeacht of het alarm is ingeschakeld) en bijvoorbeeld indien het geval dat het alarm is ingeschakeld ook de sirene af te laten gaan, door de virtuele schakelaar Alarm situatie aan te zetten.

Met deze voorzorgsmaatregelen heb je de basis gelegd voor een heel behoorlijk alarmsysteem, op basis van je bestaande domotica-installatie en Domoticz.

Script "Detecteer jamming"

commandArray = {}
json = (loadfile "/volume1/@appstore/domoticz/var/scripts/lua/JSON.lua")()
local url = string.format("http://192.168.1.100:8084/json.htm?type=openzwavenodes&idx=8")
url = string.format("%s %q", "curl", url)
local zwavenodes=assert(io.popen(url))
local nodes = zwavenodes:read('*all')
zwavenodes:close()
local jsonZwave = json:decode(nodes)
jammingdetected = false
for i, zwavedevice in ipairs(jsonZwave['result']) do
 if (jsonZwave['result'][i]['PollEnabled'] == 'true') then
    s = jsonZwave['result'][i]['LastUpdate']
    year = string.sub(s, 1, 4)
    month = string.sub(s, 6, 7)
    day = string.sub(s, 9, 10)
    hour = string.sub(s, 12, 13)
    minutes = string.sub(s, 15, 16)
    seconds = string.sub(s, 18, 19)
    t1 = os.time()
    t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
    difference = (os.difftime (t1, t2))
    if (difference > 60) then
        print('Mogelijke jamming! Z-wave product niet bereikbaar: ' .. jsonZwave['result'][i]['Description'])
        jammingdetected = true
    end
 end
end
if (jammingdetected == true and otherdevices['Jamming gedetecteerd'] == 'Off') then
        commandArray['Jamming gedetecteerd']='On'
elseif (jammingdetected == false and otherdevices['Jamming gedetecteerd'] == 'On') then
        commandArray['Jamming gedetecteerd']='Off'
end    
return commandArray

Advertentie

8 besproken producten

Vergelijk   Product Prijs
Fibaro Door/Window Sensor 2 Black

Fibaro Door/Window Sensor 2 Black

  • Deur-/Raamopening
  • Z-Wave

€ 39,95

4 winkels
Fibaro Door/Window Sensor 2 Brown

Fibaro Door/Window Sensor 2 Brown

  • Deur-/Raamopening
  • Z-Wave

€ 49,95

3 winkels
Fibaro Door/Window Sensor 2 Crème

Fibaro Door/Window Sensor 2 Crème

  • Deur-/Raamopening
  • Z-Wave

€ 39,95

4 winkels
Fibaro Door/Window Sensor 2 Dark Brown

Fibaro Door/Window Sensor 2 Dark Brown

  • Deur-/Raamopening
  • Z-Wave

€ 39,95

4 winkels
Fibaro Door/Window Sensor 2 Grey

Fibaro Door/Window Sensor 2 Grey

  • Deur-/Raamopening
  • Z-Wave

€ 49,95

1 winkel
Fibaro Door/Window Sensor 2 Light Brown

Fibaro Door/Window Sensor 2 Light Brown

  • Deur-/Raamopening
  • Z-Wave

€ 49,95

2 winkels
Fibaro Door/Window Sensor 2 White

Fibaro Door/Window Sensor 2 White

  • Deur-/Raamopening
  • Z-Wave

€ 39,95

6 winkels
Zipato Z-Wave RFID Keypad

Zipato Z-Wave RFID Keypad

  • Z-wave
Niet verkrijgbaar
0