A Home Assistant-ról már esett szó. Most leírom hogyan lehet szenzorokat felvenni benne. (Természetesen a configuration.yaml fájlban kell ezeket konfigurálni.) Jellemezően MQTT-n keresztül szokott érkezni az infó, ezeknek a feldolgozására kellenek a szenzorok. Több fajtája szenzor is van:
Binary sensor
Neve már sugallja is mi lehet ez: 0-1 jellegű információkat lehet vele begyűjteni. Amire én eddig használtam:
- eszköz kapcsolódva van-e?
- elem nem merült-e le?
- tápfeszültség nem kevés-e?
- ablak/ajtó nyitva van-e?
- riasztó szól-e?
- mozgás van-e?
Legtöbbször ezek az információk akkor jelennek meg az MQTT topikokon, amikor változnak: ha például egy eszköz le- vagy felcsatlakozik, akkor a megfelelő topikon jön egy új üzenet.
binary_sensor:
- platform: mqtt
state_topic: "raspia/status"
device_class: connectivity
name: "étkező státusz"
payload_on: online
payload_off: offline
MQTT-ről lévén szó meg kell adni hogy "platform: mqtt" és hogy a "state_topic" micsoda. Én ezeken kívül be szoktam még állítani, hogy payload_on és payload_off milyen üzeneteket jelent. Ez ugye attól függ, hogy az eszköz, ami küldi az üzenetet, mit szokott üzenni: on/off, vagy online/offline? Esetleg ok/low, vagy kiskutya/kiscica? Ezen felül arra is jó lehet ez a lehetőség, hogy meg tudjuk fordítani a logikát...
A device_class is lehet még jó, ha érdekel hogy fog megjelenni a felületen. Egész hosszú lista van erről, kicsit szebbé lehet tenni a felületet vele.
Sensor
Ez nagyon hasonlít az előzőhöz, de már nem csak 0-1 értéket vehetnek fel itt az infók. Néhány példa:
- hőmérséklet
- páratartalom
- feszültség
sensor:
- platform: mqtt
state_topic: "raspia/dht"
unit_of_measurement: "°C"
name: "étkező hőmérséklet"
value_template: '{{ value_json.temperature }}'
force_update: true
Konfigurálása is elég hasonló a bináris tesójáéhoz. A gyakorlatban ezek a dolgok úgy működnek, hogy egy eszköz méri a hőmérsékletet/páratartalmat/feszültséget/akármit és rendszeres időközönként elküldi az értéket az MQTT rendszeren keresztül. Nem ritka, hogy JSON formátumban van több dolog is becsomagolva egy üzenetbe. Ilyenkor jön jól, hogy van egy "value_template" beállítás, amivel ki lehet hámozni a nekünk fontos információt. Mivel ezek a már kicsit változékonyabbak, mint a bináris dolgok, A "unit_of_mesaurement" beállítást remélem nem kell túlmagyaráznom. így néha kell rájuk úgynevezett filtert tenni, erről majd máskor.