IT-s dolgok

IT-s dolgok

Home Assistant Supervised telepítése

2020. december 30. - Pődör István

Ha nem elégszel meg a Home Assistant által megadott telepítési módokkal, és addonokat is akarsz használni, akkor ezt a leírást követve elérheted. Először is szükséges lesz egy 64 bites, működő Debian 10 telepítésre. Ehhez segítséget itt találsz.

Ha megvan a rendszer, akkor csak ezeket a parancsokat kell kiadnod, és kész is.

sudo -i

apt-get update

apt-get install -y software-properties-common apparmor-utils apt-transport-https avahi-daemon ca-certificates curl dbus jq network-manager socat

systemctl disable ModemManager

systemctl stop ModemManager

curl -fsSL get.docker.com | sh

touch /etc/docker/daemon.json

echo '{ "log-driver": "journald", "storage-driver": "overlay2" }' >> /etc/docker/daemon2.json

cd /tmp/

curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh

bash installer.sh

Az alábbi rendszerek támogatottak:

  • intel-nuc (és egyéb x86_64, amd64 rendszerek)
  • odroid-c2
  • odroid-n2
  • odroid-xu
  • qemuarm
  • qemuarm-64
  • qemux86
  • qemux86-64
  • raspberrypi
  • raspberrypi2
  • raspberrypi3
  • raspberrypi4
  • raspberrypi3-64
  • raspberrypi4-64
  • tinker

Ha nem x86_64-es, amd64-es rendszered van, akkor az utolsó sort változtatnod kell, ilyen módon:

bash installer.sh --machine MY_MACHINE

A MY_MACHINE helyére a fenti felsorolásból kell beírni a te géped típusát.

Ezután elérhető a rendszered a http://homeassistant.local:8123 oldalon, vagy, ha ez nem működik, akkor a homeassistant.local helyett a gép IP címét beírva érheted el a főoldalt.

Megjegyzés:
A Home Assistant csapata csak a Debian 10 rendszert támogatja, másik rendszereken is működhet, de nem adnak segítséget.

 

Xiaomi Mi Air Purifier 2 integrálása Home Assistant-be

Ebben a bejegyzésben a következő panelt hozom létre:

alap.PNG

Első lépésként a légtisztítót hozzá kell adnunk a Home Assistant-hez. Ehhez a hassio által leírt módszert használtam. Ha megvan a token, hozzáadjuk a configuration.yaml-hez:

fan:
  - platform: xiaomi_miio
    host: x.x.x.x
    token: TOKEN

Ezzel megkapjuk az alap komponenst, amivel kapcsolgatni tudjuk, rákattintva pedig megkapjuk a további adatokat.

2_1.PNG

Én nem akartam mindig kattintgatni erre, így kivezettem a nekem kellő értékeket.
Felvettem pár template sensor komponenst a configuration.yaml-be:

- platform: template
  sensors:
    fan_filter_remaining:
      friendly_name: "Filter remaining"
      unit_of_measurement: "%"
      value_template: "{{ states.fan.xiaomi_miio_device.attributes.filter_life_remaining }}"

- platform: template
  sensors:
    fan_temperature:
      friendly_name: "Temperature"
      unit_of_measurement: "°C"
      value_template: "{{ states.fan.xiaomi_miio_device.attributes.temperature }}"

- platform: template
  sensors:
    fan_humidity:
      friendly_name: "Humidity"
      unit_of_measurement: "%"
      value_template: "{{ states.fan.xiaomi_miio_device.attributes.humidity }}"

- platform: template
  sensors:
    fan_aqi:
      friendly_name: "Air quality index"
      unit_of_measurement: " "
      value_template: "{{ states.fan.xiaomi_miio_device.attributes.aqi }}"

- platform: template
  sensors:
    fan_speed:
      friendly_name: "Fan speed"
      unit_of_measurement: ""
      value_template: "{{ states.fan.xiaomi_miio_device.attributes.speed }}"

Ezekkel a szenzorokkal egy másik szenzor attribútumait lehet megjeleníteni (szűrő elhasználtsága, hőmérséklet, páratartalom, levegőminőség, ventilátor sebessége). Ezeket az attribútumokat a fejlesztői eszközök között lehet megtalálni a < > ikonra kattintva.

A sebesség vezérléséhez felvettem egy input_selectet a configuration.yaml-be:

input_select:
  fan_speed_select:
  name: Fan speed
  options:
    - ""
    - Auto
    - Silent
    - Favorite
    - Idle
  icon: mdi:fan

Itt belekerült a 4 lehetséges sebesség, plusz egy üres mező. Ezzel még nem lehet semmit sem csinálni, nincs mögötte még az automatizmus. Pótoljuk, ezt az automations.yaml-be:

- alias: SetFanInputSelectionBox
  trigger:
    platform: state
    entity_id: fan.xiaomi_miio_device
  action:
    service: input_select.select_option
    entity_id: input_select.fan_speed_select
    data_template:
    option: '{{states.fan.xiaomi_miio_device.attributes.speed}}'

- alias: SetFanSpeed
  trigger:
    platform: state
    entity_id: input_select.fan_speed_select
  action:
    service: fan.set_speed
    data_template:
    entity_id: fan.xiaomi_miio_device
    speed: '{{states.input_select.fan_speed_select.state}}'

Az első bejegyzésnél megadtam, hogy a légtisztító aktuális sebessége legyen a legördülő menü aktuálisan kiválasztott eleme. A második bejegyzésben megadtam, hogy a légtisztító sebessége legyen az, amit a legördülő listában kiválasztottam.

Nem maradt más, mint egy kártyára tenni a szenzorokat, és testreszabni a megjelenítést.

 

 

 

Sonoff eszközök integrálása Home Assistant-be flashelés nélkül

UPDATE:

Nálam sokkal okosabb emberek megoldották az integrálást, itt lehet nézelődni:
https://github.com/peterbuga/HASS-sonoff-ewelink

A bejegyzés további része elavultnak tekinthető.

A Sonoff termékek integrálása legegyszerűbben valamilyen custom firmware-rel lehetséges, de ha nem akarunk vele pepecselni, akkor lehetséges enélkül is. Hátrányai vannak ennek a megközelítésnek, az eszközök állapotát nem tudjuk nyomonkövetni, csak ki- és bekapcsolni tudjuk őket, internetfüggő, így előfordulhat egy kis csúszás a végrehajtásban.

Ha mégis ezt választanánk, alább a leírása:

Elsőként vegyük fel az eszközeink a gyártói eWeLink appba.
Látogassunk el a IFTTT oldalára, ahol létrehozunk magunknak egy API kulcsot:

ifttt.PNG

Ezt az API kulcsot illesszük be a Home Assistantunk configuration.yaml fájljába:

ifttt:
  key: APIKEY

Ezután indítsuk újra a Home Assistantot, hogy érvényre jusson a beállítás. Amíg a rendszer újra feláll nézzünk vissza az IFTTT oldalára, és hozzuk létre az appletünk.

A this ágnál válasszuk ki a Webhooks komponenst, annak is a Receive a web request részét.
Adjunk nevet az eventünknek. Az én esetemben ez sonoff_aquarium_on lesz.
A then ágnál keressük meg az eWeLink Smart Home alkalmazást. (Lehetséges, hogy szükség lesz egy bejelentkezésre itt.)
Válasszuk ki milyen sonoff kapcsolót szeretnénk használni, nálam ez az egycsatornás eszköz lett.
Válasszuk ki melyik eszközünket akarjuk irányítani, és milyen akcióval. A bekapcsoláshoz és kikapcsoláshoz is külön applet kell.

A galériában lépésről lépésre láthatóak a fentebbiek:

Ezzel végeztünk is, térjünk vissza a Home Assistanthez.
Innen több irányba is mehetünk, ezeket részletezném.

Elsőként készítünk két scriptet, amivel ki- és bekapcsolhatjuk az eszközt.
A scripts.yaml-be írjuk be az alábbit:

sonoff_aquarium_on:
  alias: Akvárium bekapcsolása
  sequence:
    - service: ifttt.trigger
      data: {"event":"sonoff_aquarium_on"}

sonoff_aquarium_off:
  alias: Akvárium kikapcsolása
  sequence:
    - service: ifttt.trigger
      data: {"event":"sonoff_aquarium_off"}

Ezután ezt már kitehetjük a Home Assistant frontendjére, vagy ha groupokat használunk, akkor az általunk kívánt groupba.

 script.PNG

 A másik megközelítés:

Csináljuk meg a scripteket. Hozzunk létre egy input_boolean elemet a configuration.yaml-ben:

input_boolean:
  sonoff_aquarium:
  name: Akvárium kapcsoló

Ezután az automations.yaml-ben:

- alias: Aquarium on
  trigger:
    - platform: state
      entity_id: input_boolean.sonoff_aquarium
      from: "off"
      to: "on"
  action:
    service: script.sonoff_aquarium_on

- alias: Aquarium off
  trigger:
    - platform: state
      entity_id: input_boolean.sonoff_aquarium
      from: "on"
      to: "off"
  action:
    service: script.sonoff_aquarium_off

 Hozzáadtam a kapcsolók groupjához, egy kis testreszabás után így néz ki:

switch.PNG

Ahogy korábban is írtam, sajnos a kapcsolók állapotát nem tudjuk, így lehetséges, hogy többet kell kapcsolnunk, hogy elérjük amit akartunk.

süti beállítások módosítása