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

Linux Live Distribution Persistent USB
Vytvoření Persistent Live USBHodnocení: 
20%

Jak si vyzkoušet Linux? Přímo na vašem notebooku nebo počítači nabootováním z USB flash disku, nebo ještě lépe z externího SSD. Pokud se vám to zalíbí, v tomto návodu naleznete postup, jak vytvořit persistentní live distribuci, což znamená, že všechny změny, které v Linuxu uložíte, tam zůstanou. Můžete si tedy nainstalovat aplikace, ukládat dokumenty atd. Prostě takový přenositelný Linux v kapse, který lze spustit na jakémkoliv podporovaném počítači nebo notebooku.

SmartHome WhatsApp notifikace OpenHAB, Home Assistant
WhatsApp - notifikace zdarmaHodnocení: 
0%

Rádi byste dostávali notifikace z chytré domácnosti formou zpráv do WhatsApp messengeru? Ačkoliv z tohoto messengeru nejsme nadšení, mnoho lidí jej používá a je zbytečné instalovat jiný pouze kvůli chytrému domu. Pro daný kontakt je pak možné nastavit specifické zvonění, takže budete hned vědět, že zpráva přišla z vašeho domu. Našli jsme možnost, jak toto využívat bez poplatku. Jmenuje se CallMeBot...

Tailscale - VPN bez veřejné IP
Tailscale - přístup bez veřejné IP adresyHodnocení: 
100%

Služba Tailscale řeší přístup mezi jednotlivými zařízeními, pokud nemáte možnost veřejné IP adresy. Pro jednoho uživatele je zdarma s podporou max 100 zařízení. Ukážeme si jak Tailscale nainstalovat na Raspberry Pi, které budeme mít někde doma a do klienta (Android, iPhone) ze kterého budeme chtít přistupovat k domácímu Raspberry Pi. Náším příkladem bude vzdálený přístup k OpenHAB běžícím na Raspberry Pi. Nicméně stejné nastavení platí pro spoustu jiných aplikací - domácí NAS, PiHole, Home Assistant, Domoticz, NextCloud a jiné.

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í: 
100%

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