Okos otthon is fókuszban

Arduino kalandok

Arduino kalandok

Asszisztens amikor szólni szeretne

2018. december 14. - denx

A Home Assistant nevű rendszerről már sok szó esett itt és várhatóan fog is még esni. Most arra szeretnék kitérni hogy milyen jó is, hogy tud szólni ha valami gond adódik.

A korábban már említett módon lehet automatikusan elvégeztetni a HASS-sal olyan feladatokat, amik bizonyos körülmények változásakor maguktól futnak le. Ezekkel lehet a rendszert igazán 21-ik századivá tenni.

Messenger

Több lehetőség közül is lehet választani ha üzenetek küldésére szeretnénk rávenni a rendszert. Nekem a Facebook Messenger volt elsőre a leg szimpatikusabb. Ez egy olyan kommunikációs forma, amit gyakran használok családtagokkal és barátokkal való kapcsolattartásra, kézenfekvőnek tűnik számomra, hogy itt "szóljon a ház" ha valami gondja van. Természetesen ha valakinek ellenérzései vannak a nagy f betűssel szemben, akkor nyugodtan választhat a több tucatnyi másik notification megoldás közül, ami már le van implementálva a HASS-ban, vagy csinálhat magának sajátot.

Szerencsére nem kell feltalálni a spanyol viaszt, már van kész Facebook Messenger komponens a HASS világában. A dolog bekonfigurálása nem annyira egyszerű. de ha megvagyunk, utána tényleg nagyon hasznos dolog lesz belőle. Először is csinálnunk kell egy fb oldalt, olyat mint ami cégeknek/sztároknak/márkáknak/közösségeknek/stb szokott lenni. Ez ugye alapvetően másképp működik, mint egy átlag felhasználói fiók, csatlakozni is csak úgy lehet, ahogyan egy közösséghez (vagyis nem a közösség fog téged megkeresni, hanem Te a közösséget). Miután létrehoztuk a saját oldalunkat, megkezdhetjük a használatát. Jelen esetben ez ki fog abban merülni, hogy messenger üzeneteket fogunk küldeni a HASS-ból, ennek az oldalnak a nevében azok számára, akik csatlakoztak a közösségünkhöz. Én egyelőre saját magamon teszteltem eddig csak a dolgot, de ha kimegy a dolog élesbe, akkor valószínűleg lesznek olyan dolgok, amikről a nejem is fog majd üzenetet kapni.

notify:
  - name: messenger
    platform: facebook
    page_access_token: KrikszKrakszAmitAFBKikop

Események

Ha megvagyunk a konfigurálással, akkor jöhetnek az események, amikről értesítést szeretnénk küldeni/kapni.

Nálam jelenleg néhány tipikus eset van eddig lefedve:

  1. merül az elem az egyik rádiós hőmérőben
  2. egy wifi-s eszköz elérhetetlenné válik, vagy ismét elérhető lesz
  3. egy rádió eszköz 5 perce nem küldött jelet
  4. fűtés program változott (hétköznap/hétvége/távol)

Az első 3 már komoly előrelépést jelent bármilyen korábban ismertetett rendszerrel szemben: ezek segítik a rendszer felügyeletét, szól a rendszer, ha beavatkozásra van szükség. Az utolsó inkább csak mint egy "debug" funkcióként szolgál jelenleg, segít ellenőrizni hogy amit éppen bütykölök, az az elvárt módon működik-e.

Vegyük sorba mit is várok el ezektől a dolgoktól:
1: ami nekem van rádiós hőmérő, az üzenetben amit kiköp (kb. percenként) belerakja, ha merül az elem. Mókás, de igazából logikus, hogy úgy kezd meghalni egy elem, hogy először csak időnként jelzi, amikor hidegebb van a helyiségben ahol a hőmérő van, később folyamatosan jelzi a problémát. Én ezt úgy automatizáltam, hogy csak akkor szóljon, ha normál állapotból átbillen alacsony feszültséget jelző állapotba.

- id: 'emelet_elem_merul'
  alias: Emelet elem merül
  trigger:
  - entity_id: binary_sensor.emelet_elem
    platform: state
    to: 'off'
  action:
  - data:
    message: Emeleti elem merül!
    target:
    - '+36207654321'
    service: notify.messenger

2: A korábban már tárgyalt Sonoff Tasmota cuccok úgy működnek, hogy az MQTT-re csatlakozáskor a "will" üzenetük be van állítva. Gyakorlatilag ez úgy működik, hogy a mosquitto szerver percenként (vagy lehet sűrűbben is, nem tudom pontosan) küld egy ping üzenetet a hozzá csatlakozó klienseknek. Ha erre nem jön határidőn belül válasz, akkor ez a bizonyos "will" üzenet kerül a meghatározott státusz topikra. Na erre a státusz topikra iratkozik fel a HASS és ezt egy binary_sensor formájában lehet bevinni a rendszerbe. Ha ennek az állapota változik, akkor arra egy automation komponens reagál és már küldi is a notification-t. Én ezt úgy állítottam össze, hogy bármilyen irányú változásnál üzenjen.

- id: rf434_online_offline
  alias: RF434 Modul Online-Offline
  trigger:
    platform: state
    entity_id: binary_sensor.rf434
  action:
    service: notify.messenger
    data:
      message: "RF434 modul {{ states('binary_sensor.rf434') }}!"
      target:
      - '+36207654321'


3: Ez is nagyon előremutató dolog. A 433-as eszközöknél már említettem, hogy ezek szinte minden esetben csak egyirányú kommunikációra képesek. Vagyis egy hőmérő nem fogad üzenetet, csak rendszeresen küld. Így azt sem tudjuk meg róla, hogy él-e még, vagy megette a kutya/lemerült végleg/a gyerek szétbuherálta/stb. Ennek a figyelésére van egy kiváló eszköz: a rendszer emlékszik, hogy mikor küldött utoljára üzenetet. Ha az utolsó üzenet beérkezése óta eltelt mondjuk 5 perc (és tudjuk hogy egészséges állapotában percenként üzen az eszköz) akkor már jöhet is a notification.

- id: emelet_kimaradt_e
  alias: 'Emelet kimaradt-e'
  trigger:
  - platform: time
    minutes: /5
    seconds: 0
  condition:
    condition: template
    value_template: '{{ (as_timestamp(now())-as_timestamp(states.sensor.emelet_homerseklet.last_updated))
> 1200 }}'
  action:
  - data:
    message: 'Emelet kimaradt!'
    target:
    - '+36207654321'
  service: notify.messenger

Megjegyzés: Ahhoz hogy az utolsó rész jól működjön, a sensor jól kezelje az utoljára beérkezett üzenet timestamp-jét, be kell rakni azt is a sensor-hoz, hogy "force_update: true"

4: Ahogy említettem debuggolás a cél. Mire az ember összerak jó pár komponenst, vagy mondjuk külső szolgáltatók API-jait is használja, könnyen elér egy olyan szintre, hogy nehéz kibogozni, hogy mi miért is történt. Szerencsére ezt segíti a HASS felülete, de ez nem minden esetben van az ember keze ügyében. Ha csak arra kíváncsi az ember, hogy hogyan változik egy dolog állapota, akkor arra is lehet írni egy automation bejegyzést, ami küldi a notificationt.

A bejegyzés trackback címe:

https://ardu.blog.hu/api/trackback/id/tr6314474134

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása