Alarm z existujících PIR senzorů v chytrém domě
V chytrém domě, kde PIR čidla neslouží jenom ke spínání světel při pohybu, je možné tyto čidla využít k zjištění přítomnosti osob v dané místnosti. Na těchto informacích se dá postavit poměrně spolehlivý domácí ne-certifikovaný zabezpečovací systém. V tomto postupu naleznete logiku jakým způsobem to může fungovat v softwaru OpenHAB 3 na našem demo příkladě chytrého domu.
Hardware
PIR senzory pohybu HC-SR501
Pi-Home - pokud nemáte, viz sekci Jak na to
Software
OpenHAB 3
Aplikace
Využijeme existující PIR čidla SP111 - SP241, kterých položky "Items" jsme si založili v tutoriálu.
Založíme si ještě dvě nové Items:
Alarm - slouží k nastavení alarmu a druhu (Plné zabezpečení, noční (zahrada+spodní patro), jenom zahrada, jenom spodní patro.
V Add Metadata -> State Description nastavte například tyto stavy (Options):
0=None
1=Full
2=Night
3=Garden
Panic - spuštění poplachu např. cizím pohybem (konkrétní popis ve které místnosti k alarmu došlo) nebo například upozornění na kouř, vytopení atd. dle dalších senzorů
Logika:
Zbývají nam nastavit pravidlá - Rules. Námi zvolená logika je: Pokud zaznamená specifický PIR senzor pohyb a nastavení Alarm není 0 (None), ale je například Night anebo Full, aktivuj položku Panic a přiřaď ji stav dle označení PIR. Další pravidlo hlídá položku Panic. Pokud se změní na nenulovou hodnotu a Alarm není 0 (None) odešle email/telegram dle typu alarmu (konkrétní PIR které vyvolalo událost).
Příklad pravidla pro PIR, v tomto případě SP102 což je senzor na chodbě v přízemí a má posílat alarm pokud je nastaveno Full nebo Night. Přidejte nové pravidlo a v záložce záložka Code vložte:
configuration: {}
triggers:
- id: "1"
configuration:
itemName: SP102
state: ON
type: core.ItemStateChangeTrigger
conditions: []
actions:
- inputs: {}
id: "3"
configuration:
type: application/vnd.openhab.dsl.rule
script: |-2
if(Alarm.state == 1 || Alarm.state == 2){
sendCommand(Panic, "Alarm chodba")
}
type: script.ScriptAction
Příklad pravidla pro Panic (také záložka Code):
configuration: {}
triggers:
- id: "1"
configuration:
itemName: Panic
type: core.ItemStateUpdateTrigger
conditions:
- inputs: {}
id: "2"
configuration:
itemName: Alarm
state: "0"
operator: "!="
type: core.ItemStateCondition
actions:
- inputs: {}
id: "3"
configuration:
type: application/vnd.openhab.dsl.rule
script: "val mailActions = getActions(\"mail\",\"mail:smtp:mailserver1\")
val PanicState = Panic.state.toString() \
mailActions.sendHtmlMail(\"YOUREMAIL@EMAIL.COM", PanicState,
\"\")
\ "
type: script.ScriptAction
- inputs: {}
id: "4"
configuration:
type: application/vnd.openhab.dsl.rule
script: >2
val telegramAction = getActions("telegram","telegram:telegramBot:YOURTELEGRAMBOT")
val PanicState = Panic.state.toString()
telegramAction.sendTelegram(PanicState)
type: script.ScriptAction
Nyní stačí zkopírovat a upravit pravidlo pro SP102 pro všechny další PIR a vyzkoušet funkcionalitu. Nastavení emailu naleznete v návodu zde.
Doporučuji se také podívat na notifikace na Telegram přímo z vašeho OpenHAB zde.
Přidat komentář