blog.vyoralek.cz

HomeAssistant #25 – Nefunkční / blokovaná aktualizace HomeAssistanta

Dnešní poněkud neplánovaný 25 díl seriálu o HomeAssistantovi bude věnovaný tomu co dělat v situaci, kdy nám nefunguje aktualizace HomeAssistanta na novou verzi.

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

Zřejmě v poslední verzi HomeAssistant 2022.10 byla změněna kontrola zdraví systému na kterém běží HomeAssistant, což nyní může zamezit možnosti aktualizace na novější verzi.

Konkrétně já jsem se s tím setkal při aktualizaci z verze 2022.10.1 na 2022.10.3, kdy aktualizace končila s chybou:

Error updating Home Assistant Core ‘HomeAssistantCore.update’ blocked from execution

Po chvíli hledání jsem našel informaci, že aktualizace bude blokována nejspíše právě z důvodu „špatného zdraví“ systému, načež jsem proklikal kde co a nemohl stále najít informace co může být problém, i když jsem si pamatoval, že dříve jsem to někde viděl.

Nakonec opět po hledání na Internetu jsem postup našel a Systémové informace jsou nyní poměrně dost hodně schovány.

Je potřeba jít do menu Nastavení -> Systém -> Opravy -> Tři tečky v pravém rohu -> Systémové informace

Zde je možné kliknout na tlačítko Další informace a alespoň se dozvíte oblast v které hledat problém. V mém případě to je docker a po kliknutí na odkaz jsem mohl vidět 4 možné scénáře.

Začal jsem tedy s prvním – Running unsupported software – a po chvíli opět hledání i na Internetu jsem měl podezření na portainer, který se nedávno dostal do nepodporovaného addonu a pár týdnů zpět jsem vás nabádal na reinstalaci.

Šel jsem tedy do logu Supervisoru – Menu Systém -> Logy -> Pravý roh a změnit na Supervisor

a skutečně v něm byla ERROR hláška ohledně docker image portainer-ce, která je podle logu nezdravá.

ERROR (MainThread) [supervisor.resolution.evaluations.container] Found image in unhealthy image list 'portainer/portainer-ce' on the host

Moc tomu nerozumím, jelikož se jedná o image, která já použitá úplně mimo HomeAssistant – nejedná se o image portainer Addonu a zároveň je to poslední verze z oficiálního repozitáře DockerHubu.

Hledal jsem proto na Internetu dále a ukázalo se, že jsou dvě možnosti:

  1. Úplně portainer odstranit z počítače
  2. Workaround 1 – Přejmenování kontejneru a image Portaineru
  3. Workaround 2 – Zapnutí ignorování healthy kontrol

První řešení pro mě nedávalo smysl – na mém „raspberry“ běží hned několik služeb a portainer mi velmi zjednodušuje život.

Další dvě řešení taky nejsou úplně výhrou a jsou možná trochu riskantní, ale fungují a pojďme se na ně podívat.

Workaround 1 – Přejmenování kontejneru a image Portaineru

sudo docker stop portainer
docker rm portainer
docker pull portainer/portainer-ce:latest
docker tag  portainer/portainer-ce:latest iamnotportainer
docker run -d -p 8000:8000 -p 9443:9443 --name iamnotportainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data iamnotportainer
docker rmi portainer/portainer-ce

Portainer nám běží a vše vypadá že funguje. U mě bylo potřeba restartovat celý počítač, aby si HomeAssistant přestal stěžovat – nepomohl restart pouze HA.

Výhoda tohoto řešení narozdíl od toho co je níže je v tom, že nám stále zůstanou zapnuté kontroly HA, takže by to mělo být řešení méně drastické.

Samotný HA pak v Systémových informacích už bude psát informaci, že systém není v pořádku i přesto, že kontroly budou stále aktivní.

🥳 Díky za upozornění na toto řešení Pavolovi v komentářích.

Workaround 2 – Zapnutí ignorování healthy kontrol v HA

Druhým řešením pro zachování Portaineru společně s HA je vypnutí healthy kontrol, což uděláme v konzoli HA pomocí příkazu:

ha jobs options --ignore-conditions healthy

Narozdíl od předchozího řešení zde mi stačilo pouze restartovat HomeAssistanta a nyní už jsem byl schopný aktualizaci udělat:

Upřímně mi to přijde trochu kruté, vyžadovat na DIY počítači pouze HomeAssistant – bastlíři toho mají většinou rozdělané poměrně hodně, ale na druhou stranu, že z hlediska podpory je to pro HomeAssistant mnohem jednodušší varianta. Doufám, že do budoucna podobných restrikcí nebude enormě přibývat, abychom nakonec nezjistili, že musíme mít i hardware od autorů HA.

Více ve vláknu, které je poměrně stále živé a je možné, že tam budou i nějaké další zajímavosti vzniklé až po napsání tohoto článku: https://community.home-assistant.io/t/error-updating-home-assistant-core-homeassistantcore-update-blocked-from-execution/472924

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

6 comments

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

  • No my „Bastaři“ co nám běží hassio_supervisor v klasickém Dockeru*, jsme tohle museli řešit cca už před dvěma roky. Stačí do kořenové složky Hass přidat soubor jobs.json a do něj dát: {„ignore_conditions“: [„healthy“]}

    Pár věcí co se mu podle logu nelíbí:
    Btrfs
    OS (Debian 11)
    Síť (používám macvlan a vše má vlastní IP)
    Způsob logování OS
    Cca dalších 20 Containers co běží vedl něj. Ano i Portainer.io

    Mám ve zvyku využívat server efektivně. Přece se nebude jen tak flákat na prázdno 🙂

    https://community.home-assistant.io/t/unhealthy-system-reported-on-arch-linux/251430/2

  • Není to tak, že kdo chce mít kontrolu nad svými kontejnery, tak má používat Ha container (bez supervisora). A kdo chce z HA spravovat kontejnery, se holt musí smířit s tím, že mu Supervizor bude do věcí kecat? Neříkám, že tahle aktuální situace s portainer není technicky lépe resitelna, spíš že používáte Supervizor jinak než zamysleli vývojáři, takže se nemůžete divit, že občas narazíte…

    • Jj, tomu rozumím a dává to smysl. Nicméně ta verze se supervisorem je lákává, právě díky všem těm zajímavým addonům a obávám se, že bez něj by se to pro mnohé dost zkomplikovalo. Ono je to asi poměrně challange vytvořit v téhle komunitě lidí, kteří si rádi dělají spoustu věci sami, něco uvniverzálního :), takže si občas možná postěžujeme, ale jinak jsme za HomeAssistenta rádi.

    • Díky za link, přidal jsem to jako další možnost i do článku. Rovnou jsem to zkusil na druhé instanci HA, kde jsem měl stejný problém a skutečně to funguje. Jen nevím úplně proč, ale byl nutný úplně restart počítače. Bez něj si HA pořád stěžoval, i když v Dockeru už žádný Portainer image či kontejner nebyl.

Odebírejte blog emailem

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