blog.vyoralek.cz

Centrum chytré domácnosti – HomeAssistant (Hass.io) – 15 část – Integrace Withings (Nokia)

Jednou z nových komponent HomeAssistenta přidaných v poslední verzi 0.99 je integrace pro produkty Withings. Jelikož mám hned dva doma nemohl jsem si odpustit vyzkoušet jak to funguje.

🎙 Poslední aktualizace článku 29.9.2019. Pokud najdete nějaké rozdíly v aktuálním stavu, dejte vědět v komentářích, díky.

Withings je francouzská firma, která se zaměřuje na inteligentní zdravotnické pomůcky – měřáky. Pár let zpět byla odkoupena firmou Nokia, resp. částí která z původní Nokie zbyla, ale zanedlouho byla odkoupena zpět původními majiteli – díky tomu je stále část produktů s logem Nokie a část už zase zpět s logem Withings.

Dne se podíváme jak si tyto produkty přidat do HomeAssistenta.

1. Registrace pro přístup z Home Assistenta

Prvním krokem, který je potřeba udělat je založit si vývojářský účet na Withings. Po kliknutí na odkaz bychom měli vidět následující formulář, který vyplníme:

Application’s name – jakýkoliv smyslupný název applikace, např. Jiri Personal App

Description – popis aplikace, např. Personal app for collecting my data

Contact email – vaše emailová adresa

Callback URL – webová adresa, po odeslání formuláře je provedena kontrola zda adresa existuje. Vyplňte proto něco existujícího

Company – cokoliv, např. Home Assistant

Logo – nějaký obrázek, má jsem použil např. logo HomeAssistant

Po kliknutí na uložení bychom měli obdržet dva údaje – Client Id and Customer Secret, které použijeme v dalším kroku.

2. Konfigurace Home Assistenta

Otevřeme si hlavní konfigurační soubor HomeAssistenta configuration.yaml a přidáme novou položku withings s údaji z přechozího kroku.

withings:
  client_id: <CLIENT_ID>
  client_secret: <CUSTOMER_SECRET>
  profiles:
    - <USER_PROFILE_NAME>

Jak vidíte, kromě Client Id a Customer Secret bylo potřeba vyplnit ještě položku profiles. Ta slouží k definici seznamu profilů, které chceme synchronizovat.

Úplně si nejsem jistý jak zjsitit názvem profilu na Withings, ale použil jsem stejné jméno, které mi ukazuje má váha.

3. Autorizace HomeAssistenta s Withings API

Po restartu Home Assistenta si v menu Configuration najdeme položku Integrations a v sekci Discovered bychom měli vidět novou položku Withings.

Klikneme na Configure a měli bychom být vyzvání k výběru profilu – pokud jste název profilu nastavili v přechodchozím kroku tak nyní by měl být dostupný přes Profile.

Vybereme a klikneme na Submit.

Výběr Withings profilu v HA

Po přihlášení přes Withings účet bychom měli být vyzváni k autorizaci aplikace. Jak můžete vidět popisek se shoduje přesně s tím co jsme zadali v registraci do pole Description.

Klikneme na Allow this app

Autorizace aplikace pro Withings API

.. a s největší pravděpodobností uvidíme následující chybu – pokud nikoliv můžete přeskočit následující odstavec.

Chyba při linkování profilu

Oprava chyby 500 Internal Server Error

Pokud se podíváme do logu HomeAssistenta zjistíme následující chybu:

oauthlib.oauth2.rfc6749.errors.MissingTokenError: (missing_token) Missing access token parameter.

Začal jsem proto pátrat zda už je tento problém někde popsán a naštěstí už je na něj založen ticket a řešení existuje.

Celý problém se ukrývá v Python komponentě Nokia, v které budeme muset upravit jeden řádek v souboru __init__.py.

Přihlásíme se tedy na počítač kde nám běží HomeAssistent – pokud používáte Hass.io tak se budete potřebovat přihlásit do Docker kontejneru s názvem homeassistant. Za mě nejjednodušší je použít komponentu Portainer.

V souborovém systému se přepneme do složky /usr/local/lib/python3.7/site-packages/nokia a otevřeme pro editaci soubor __unit__.py v kterém si najdeme kód od řádku 82:

    def get_credentials(self, code):
        tokens = self._oauth().fetch_token(
            '%s/oauth2/token' % self.URL,
            code=code,
            client_secret=self.consumer_secret)

… který změníme na:

    def get_credentials(self, code):
        tokens = self._oauth().fetch_token(
            '%s/oauth2/token' % self.URL,
            code=code,
            client_secret=self.consumer_secret,
            include_client_id=True)

…tedy přidali jsme nastavení parametru include_client_id na hodnotu True pro metodu fetch_token.

Soubor uložíme, HomeAssistant restartujeme a můžeme pokračovat.


Pokud vše proběhlo vpořádku měli bychom vidět obrazovku:

Úspěšně přidaná integrace Withings s HA

a zanedlouho se pak do Integrací přidá spousta entit – bohužel se přidají úplně všechny, které jsou podporované a musíte si v nich najít ty pro, které máte nějaké hodnoty.

Já mám od Withings dva produkty:

Z váhy můžete mít přístup k údajům osobě – váhu, procento tuku, svalů atp., ale bohužel nejsou přenášeny údaje o množství CO2, které umí váha měřit.

Body+weight
muscle mass
bone mass
fat mass
fat free mass
fat ratio

Z měřiče tlaku pak můžete získat o systolickém a diastolickém tlaku a srdečním tepu.

Blood Pressure Monitor
Wireless Blood Pressure Monitor
Blood Pressure Monitor Travel
diastolic blood pressure
systolic blood pressure
heart rate
Příklad údaje z váhy v HA

Kompletní přehled Withings API je k dipozici na webu Withings a můžete se kouknout na detaily.

Otázkou zůstavá jak vlastně hodnoty z těch zdravotnických měřáků mohou být užitečné pro domácí automatizaci – asi ne příliž. Napadá mě snad jen možnost automatické notifikace přes HomeAssistant pokud jste neprovedli měření X dní.

Benefitem tak zůstavá možnost mít vše na jednom místě 🙂

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

1 comment

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

Odebírejte blog emailem

Mějte ihned informaci o novém článku ze světa technologií.