blog.vyoralek.cz

Centrum chytré domácnosti – HomeAssistant (Hass.io) – 14 část – Integrace Mi Flora

V minulém článku jsme si představili produkt Mi Flora od společnosti Xiaomi a dnes se podíváme je ho zaintegrovat pomocí Bluetooth do HomeAssistanta.

Integrace u tohoto produktu dává zvláště význam, jelikož získate možnost přístupu k aktuálním hodnotám Mi Flora i když nebudete doma – standardně Mi Home aplikace používá právě bluetooth telefonu, takže musíte být v bezprostřední blízkosti rostliny. Pokud však použijete integraci přes HomeAssistent můžete kontrolovat stav rostliny klidně z opačné strany zeměkoule.

Pokud jste minulý článek o představení produktu Mi Flora nečetli a netušíte co to vlastně umí, doporučuji se na něj nejprve kouknout.

?‍♂️Budu předpokládat, že používáte HomeAssistent jako Hass.io instalaci, kde je již podpora bluetooth integrována. Pokud by někdo měl s tímhle problémy, dejte mi vědět a článek v případě potřeby rozšířím.

?Pokud to pro vás není problém doporučuji než přímou integraci z HomeAssistenta pomocí postupu níže použít ESPHome nahrané do ESP32 mikrokontroleru – ten používá narozdíl od HomeAssistent addonu pasivní komunikaci, což má pozitivní vliv na živostnost baterie – více v tomto článku.

Bluetooth příjímač

Jelikož Mi Flora používá ke komunikaci protokol Bluetooth budeme potřebovat na straně HomeAssistenta nějaký Bluetooth přijímač.

Pokud používáte desku s integrovaným Bluetooth a ten je funkční v operačním systému pak máte o jednu starost méně.

Pokud však bluetooth na desce nemáte a nebo není v operačním systému funkční – což je případ například mého NanoPi PC T4 v kombinaci s Armbianem – není potřeba zoufat. Řešení je poměrně jednoduché – stačí si dokoupit malý USB dongle.

Mě se odvědčil již několikrát tento za cca. 2USD – funguje bez problémů ve všech operačních systémech – testováno s Windows 10, macOS Mojave a Armbianu (Ubuntu Disco).

?Pokud používáte operační systém Armbian pak bude zřejmě ještě nutné aktivovat podporu Bluetoot pomocí utility Armbian-config. Položka v menu Network -> Bluetooth support.

Zda je bluetoot přijímač funkční otestujeme pomocí příkazu hcitool dev. Měli bychom vidět minimálně jedno rozhraní s označením hci0.

root@nanopct4:~ # hcitool dev
Devices:
	hci0	00:1A:7D:DA:71:13

Zjištění adresy Mi Flora

Jakmile už víme, že Bluetooth přijímač je funkční můžeme se pustit do skenování okolí. K tomu použijeme aplikaci bluetoothctl, ve které je potřeba po spuštění zadat příkaz scan on.

root@nanopct4:~ # bluetoothctl
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:1A:7D:DA:71:13 Discovering: yes
[NEW] Device 65:B6:8C:24:20:F0 65-B6-8C-24-20-F0
[NEW] Device 46:76:07:91:83:96 46-76-07-91-83-96
[NEW] Device C4:7C:8D:6A:9C:FF Flower care

Jak můžete vidět v mém případě byla Mi Flora nalezena hned jako třetí položka. Adresu si poznačíme a skenování ukončíme pomocí scan off a příkazu quit.

[bluetooth]# scan off
Discovery stopped
[CHG] Controller 00:1A:7D:DA:71:13 Discovering: no
[CHG] Device C4:7C:8D:6A:9C:FF RSSI is nil
[CHG] Device 65:B6:8C:24:20:F0 TxPower is nil
[CHG] Device 65:B6:8C:24:20:F0 RSSI is nil
[CHG] Device 46:76:07:91:83:96 TxPower is nil
[CHG] Device 46:76:07:91:83:96 RSSI is nil
[bluetooth]# quit

Konfigurace v HomeAssistant

Jakmile máme Bluetooth adresu je konfigurace pro HomeAssistant triviální. Do souboru configuration.yaml přídáme:

sensor:
  - platform: miflora
    mac: 'C4:7C:8D:6A:9C:FF'

Mac adresu nahradíme tou co jsme našli v přechodzím kroku.

? Pozor pokud už máte sekci sensor tak ji znovu nepište, ale přidejte konfiguraci do již existující sekce.

Volitelně si pak můžeme ještě pomocí volby monitored_conditions zapnout sledování je některých veličin, což mi ale přijde zbytečné.

Co můžeme měřit?

Mi Flora nám bude do HomeAssistenta posílat hned 5 údajů:

  1. moisture – vlhkost půdy
  2. light – množství světla dopadající na sensor v Mi Flore
  3. temperature – aktuální teplotu v okolí sensoru
  4. conductivity – množství živit v půdě
  5. battery – stav nabití baterie v Mi Flore

Zobrazení v HomeAssistentovi

Pokud jsme si zařízení nepřejmenovali pomocí atributu name v konfiguraci, pak bychom můžeme pro lovalace použít například něco následujícího:

  - type: entities
    entities:
      - entity: sensor.mi_flora_battery
      - entity: sensor.mi_flora_conductivity
      - entity: sensor.mi_flora_light_intensity
      - entity: sensor.mi_flora_moisture
      - entity: sensor.mi_flora_temperature
    title: Rostlina - Fikus
    show_header_toggle: false  

… což se nám vyrobí následující sekci:

Já zatím používám Mi Floru necelé tři týdny a líbí se mě, jak už člověk nemusí mít obavy, že rostlinu přelije nebo naopak utrápí suchem 🙂

V nějakém dalším článku o automatizaci si ukážeme jak si poslat notifikaci v případě potřeby zalití květiny.

Kompletní série o HomeAsistantovi obsahuje následující články:

  • 1. část – Instalace HomeAsisstent
  • 2. částIntegrace Sonoff s firmware Sonoff-Tasmota
  • 3. částIntegrace Homekit
  • 4. částIntegrace Sonoff s firmware Sonoff-Tasmota – 2 část
  • 5. částIntegrace s Wemos D1 a senzory teploty
  • 6. částIntegrace Sonoff s firmware ESPHome
  • 7. částIntegrace Sonoff POW s firmware ESPHome
  • 8. částIntegrace LED Magic Home s firmware ESPHome
  • 9. částIntegrace Xiaomi Mijia a Aqara
  • 10. část – Integrace vlastní Zigbee gateway
  • 11. část – Vzdálený přístup do Hass.io z Internetu
  • 12. část – zobrazení senzorových data pomocí InfluxDB a Grafany
  • 13. část – Hass.io Add-ony, které používám
  • 14. část – Integrace Xiaomi Mi Flora
  • 15. část – Integrace Withings (Nokia)
  • 16. část – náhrada SQLite databází MySQL
  • 17. část – HACS Add-ony – instalace a konfigurace
  • 18. část – Integrace Sonoff s firmware eWeLink
  • 19. část – nová integrace Sonoff pro HA
  • 20. část – měření spotřeby
  • 21. část – automatické zálohy a obnovení ze zálohy
  • 22. část – napojení hlasového asistenta Amazon Alexa
  • 23. část – automatické zálohy na síťový sdílení disk (Samba)
  • 24. část – Bluetooth zařízení a ESPHome proxy
  • 25. část – nefunkční aktualizace HomeAssistanta
  • 26. část – integrace SwitchBot produktů
  • 27. část – integrace fotovoltaiky Growatt

9 comments

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..

  • Ahoj a aký má dosť ten Bluetooth dongle.
    Jedna sa mi o to že keď mám PC s HA na jedním konci domu a kvety mám po celom dome tak asi nebude dosah na všetky kvety. Ako to riešiť ? Ináč skvelý blog

    • Mělo by to být 20M, což bych řekl s nějakou zdí je reálně tak 10M co mám vyzkoušeno. Řešením co jsem zahlédl je použití ESP32 mikrokontroleru, který v sobě má jak WiFi tak Bluetooth a může tak pak sloužit jako určitý most – existuje k tomu Arduiono projekt. Pokud bude zájem mohu o tom napsat článek. Ideální by bylo mít nějaký hotový produkt, ale to se obávám, že pro tento účet neexistuje.

  • Ahoj, s kytkou jsem na to šel jinak. Ta moje žere hodně vody, ale když vypije všechnu v hlíně, tak ještě několik dnů vydrží. Senzor vlhkosti byl naprd, ty levné zreziví a rozpadnou se, musel by to být nějaký zlatý. Dělám to jinak:
    Sestavil jsem si senzor z esphome s laserovým měřičem vzdálenosti VL53L0X. Tím jednou za hodinu měřím, jestli se list hýbe nahoru nebo dolů. V Home Assistantovi používám senzor derivative, abych zjistil rychlost pohybu. A když jde list dolů rychlostí vyšší než 10mm/h tak dostanu upozornění přes telegram bot, že kytka začíná vadnout a zaleju jí.
    Senzor je většinu doby v deep sleep režimu, takže má minimální spotřebu (asi 100µA). Mám problém s ESPHome firmwarem, protože i když jsem podnikl protiopatření, tak při nedostupné wifi se začne spouštět captive portal, vyhledávání wifi atd. a to mi hned sežere baterku.
    Uvažuji o Zigbee, ale zdá se mi to komplikované. Mám zkušenosti s LoRa, tak až mi přijde LoRa TTGO, tak si postavím LoRa gateway a zkusím udělat generický LoRa senzor na mqtt. Tím se vyhnu obousměrné wifi komunikaci, co žere baterii a senzor může být i stovky metrů daleko. Nevýhodou je vyšší cena, Arduino LoRa node stojí přes dvě stovky.

  • Ahoj, prosím, po zadání do configuration.yaml vidím v entitách sledované veličiny, ale po rozkliknutí některé dostanu hlášku „Tato entita nemá jedinečné ID“ nedaří se mně přijít na to, co s tím…nemůžeš poradit? Děkuji

    • Ahoj, úplně nevím jestli to jde nějak jednoduše změnit – podle mě je to právě tím, že tyhle entity jsou přímo z configuration.yaml souboru, nicméně nemělo by to ničemu přímo myslím vadit. Nebo způsobuje to někde problémy?

      • Čau…děkuji za odpověď. No, moje blbost 🙂 jsem chtěl tímto postupem přidat teploměr LYWSD03MMC, který šifruje přenos. Nakonec jsem to vyřešil obdobně, jako to popisuješ v článku o něm, jen s tím rozdílem, že jsem nepoužil ESP, ale BT v RPi a BLE monitor integraci, na čidla v domě to bez problémů dosáhlo, což mně stačí.

        • Aha ok. Ano, ESP se hodí zejména pokud je těch zařízeních více a nejsou blízko počítači kde běží HA.