Přejít k hlavnímu obsahu
loading
Od Michal Novotný
December 14, 2025
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.

 

Štítky

Přidat komentář

Prostý text

  • Nejsou povoleny HTML značky.
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.