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.

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 – Představení HomeAsisstent – tento článek
  • 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

Přidat komentář

Napsat komentář

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