4. díl - Konfigurace - Rules

V tomto článku se podívame na pravidla v OpenHAB 3. Pravidla nám řídí celý ekosystém akcí reagujících na různé stavy. V OpenHAB 3 lze  pravidla vytvářet manuálně přes uživatelské rozhraní nebo přes soubory .rules. Pro náš modelový dům si ukážeme jak zadávat pravidlá v grafickém rohzraní Main UI. Pravidla lze i kopírovat pomocí copy-paste z jednoho do druhého nebo používat .rules soubory s větším počtem pravidel najednou.

Co budeme potřebovat:

2. díl - OpenHAB na Raspberry Pi

Rules

Pravidla - Rules naleznete v menu Settings.

OpenHAB 3 - Rules

Nové pravidlo založíte kliknutím na modrou ikonu + vpravo dole. Příklad pravidla si demonstrujeme na následujícím přikladu. Při odchodu z domu chceme zhasnout všechna světla, vypnout zásuvkové okruhy (např. rychlovarná konvice, různé nabíječky atd.) ale samozřejmě ponechat lednici, rekuperaci nebo topení. 

V našem případě založíme pravidlo Alarm Full - All off

When

Nastavíme kdy se má pravidlo provést. V našem případě v okamžiku, kdy se změní stav Alarmu na číslo 1. Tento stav je v zobrazení položky Alarm přeložen (Add metadata -> State description) jako Full.

OpenHAB - Alarm rule

Then

Co se má stát. V našem případě se mají povypínat světla, zásuvky, topení atd. Přidejte tedy jednotlivé záznamy, které položky chcete povypínat.

But only if

Zde můžete ještě přidat další podmínku, že dané akce se mají provést jenom pokud je daná podmínka splněna.

Tip: V Then části Rules si samozřejmě můžete vložit vlastní skript. Buď použít blokové grafické rozhraní nebo použít kód skriptu. Za mě je nejlepší osvojit si kód. V následujícím případě si ukážeme, jak bychom řešili, kdybychom chtěli vypnout světla až po 30 vteřinách od odchodu.

V Then zvolte Add action -> Run script -> Rule DSL  a přidejte něco takového:

var timer_Delay = createTimer(now.plusSeconds(30),  [  |
   sendCommand(L011, OFF)
   sendCommand(L012, OFF)
   sendCommand(L013, OFF)                                                  
] )

 

V našem modelovém domě Pi-Home se nachází přes 50 předpřipravených pravidel. Níže uvádíme přiklady použitých Rules. Uvedené příklady jsou vykopírováný ze záložky Code

u daného providla. Můžete přímo vzít celý kód a pomocí copy-paste vložit do vašeho Rules a pupravit dle potřeb:

Příklad pravidla tlačítka -> světla

configuration: {}
triggers:
  - id: "2"
    configuration:
      itemName: B111
      state: ON
      previousState: OFF
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |2
        
         if(L111.state == ON){   
         sendCommand(L111, OFF)
         }else{
         sendCommand(L111, ON)
         }
    type: script.ScriptAction

Příklad pravidla PIR -> světla (SP111)

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: SP111
    type: core.ItemStateChangeTrigger
  - id: "5"
    configuration:
      itemName: SP111
    type: core.ItemStateUpdateTrigger
conditions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: SP111_trigger
      state: ON
      operator: =
    type: core.ItemStateCondition
  - inputs: {}
    id: "4"
    configuration:
      itemName: SunPhase
      state: DAYLIGHT
      operator: "!="
    type: core.ItemStateCondition
actions:
  - inputs: {}
    id: "3"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: |2
        
         if(SP111.state == ON){   
         sendCommand(L111, ON)
         }else{
         sendCommand(L111, OFF)
         }
    type: script.ScriptAction

Příklad pravidla PIR -> Alarm (SP111ALARM)

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: SP111
      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, 2)
           }
    type: script.ScriptAction

 

Přidat komentář

Nejlepší články z blogu

Shelly MQTT implementace
Shelly a OpenHABHodnocení: 
100%

Značka Shelly je známa svými produkty komunikujicími hlavně přes WiFi a zahrnujicími ovládané zásuvky, relé pod vypínače, relé pro ovládaní žaluzíí a mnoho dalších produktů. Jedna z výhod pro nasazení je možnost načítat a taky ovládat tyto zařízení pomocí univerzálního protokolu MQTT. Napříč existujícímu addonu pro OpenHAB i Home Assistant si ukážeme jak používat Shelly zařízení bez instalace jakéhokoliv rozšíření.

Victron & OpenHAB
Victron a chytrý důmHodnocení: 
100%

V tomto příspěvku si ukážeme jak načítat informace z fotovoltaické elektrárny od firmy Victron. Propojíme se s jednotkou Cerbo přes MQTT. Na základě těchto hodnot pak můžeme spínat různé spotřebiče (topení, bojler atp.) a předejít plýtvání baterie pro velké spotřebiče v době, kdy nemusí běžet atp.

GoodWe a chytrá domácnost
Smart Home a GoodWeHodnocení: 
100%

V příspěvku ukážeme krok po kroku jak komunikovat chytrou domácnosti přímo se střídačem Goodwe a dostávát aktuální informace (narozdíl od SEMS portálu). Tyto informace jsou nezbytné pokud chceme v chytrém domě nějak reagovat na aktuální parametry např. spínání dodatečného chlazení nebo spínání zásuvky se zátěží.

Ovládání domu hlasem
Hlasové ovládání domu AlexouHodnocení: 
100%

V tomto článku propojíme hlasového asistenta Amazon Echo Dot s open source domácí automatizací. Nepoužíváme OpenHAB Cloud, tz. vše běží lokálně. V tomto případě je nutných pár nastavení navíc, nicméně výsledek stojí za to!

NFC Tag Chytrý dům
NFC tagy v chytrém doměHodnocení: 
100%

NFC (Near Field Communication) tagy jsou malé plastové nebo papírové nálepky, které mohou být použity k automatizaci různých funkcí v domácnosti. V čláku vám ukážeme příklady použití a návod jak zapsat akci na NFC tag pomocí mobilního telefonu.

WireGuard iOS
Nastavení WireGuard připojení v iOSHodnocení: 
0%

V tomto článku najdete podrobný návod, jak se připojit k WireGuard VPN z iOS.

WireGuard z Androidu
Nastavení WireGuard připojení v AndroiduHodnocení: 
0%

V tomto článku najdete podrobný návod, jak se připojit k WireGuard VPN z Androidu.

WireGuard na routerech MikroTikHodnocení: 
88.6%

Článek popisuje svépomocné zprovoznění VPN protokolu WireGuard na zařízeních MikroTik s verzí RouterOS 7 a vyšší. Tato fenomenální VPN je velmi rychlá, bezpečná a snadno nastavitelná v domácem prostředí. Dá se říct že moméntálně je to nejlepší VPN pro domácí použití dostupné široké veřejnosti.

Nilan Modbus OpenHAB
Nilan VP18 vs OpenHABHodnocení: 
80%

V tomto příspěvku si ukážeme propojení aktivní rekuperační jednotky Nilan, v našem případě typ VP18 K WT s OpenHAB 3. Komunikací přes Modbus je možné načítat celou škálu hodnot, ale hlavně také řídit jednotku skrze OpenHAB. To nám umožňuje dálkově nebo programově měnit výkon a nastavení větrání v závislosti na režimu (noc, vaření atd.)