Contexte
- Environnement : Home Assistant Container (Docker) sur Unraid
- Intégration : Hilo (
dvd-dev/hilo)
Description du problème
Lors du flux d'authentification ou de la configuration initiale, l'intégration échoue à s'initialiser avec une erreur de permission :
Failed to set up: [Errno 13] Permission denied: '/run/s6-rc:s6-rc-init:.../servicedirs/svc-homeassistant/tmp...tmp'
Cause racine
Dans les environnements de conteneurs Docker gérés par s6-overlay (comme Unraid ou les installations HA Container standard), le module tempfile de Python hérite du répertoire de travail initial (/run/s6-rc:...), qui est monté en lecture seule. Lorsque des fichiers ou jetons temporaires sont créés sans chemin absolu explicite, Python tente d'écrire directement dans /run/..., déclenchant l'erreur Errno 13 Permission denied.
Contournement / Correctif
Forcer le répertoire temporaire de Python à pointer vers /config (qui est un volume accessible en lecture/écriture) dans custom_components/hilo/__init__.py et custom_components/hilo/config_flow.py.
Remarque : Le bloc de code doit obligatoirement être placé immédiatement après from __future__ import annotations afin de respecter la syntaxe d'importation Python (et éviter une SyntaxError).
from __future__ import annotations
# Correctif pour les permissions du dossier /run en lecture seule (Docker/Unraid)
import os
import tempfile
tempfile.tempdir = '/config'
try:
os.chdir('/config')
except Exception:
pass
Contexte
dvd-dev/hilo)Description du problème
Lors du flux d'authentification ou de la configuration initiale, l'intégration échoue à s'initialiser avec une erreur de permission :
Failed to set up: [Errno 13] Permission denied: '/run/s6-rc:s6-rc-init:.../servicedirs/svc-homeassistant/tmp...tmp'Cause racine
Dans les environnements de conteneurs Docker gérés par
s6-overlay(comme Unraid ou les installations HA Container standard), le moduletempfilede Python hérite du répertoire de travail initial (/run/s6-rc:...), qui est monté en lecture seule. Lorsque des fichiers ou jetons temporaires sont créés sans chemin absolu explicite, Python tente d'écrire directement dans/run/..., déclenchant l'erreurErrno 13 Permission denied.Contournement / Correctif
Forcer le répertoire temporaire de Python à pointer vers
/config(qui est un volume accessible en lecture/écriture) danscustom_components/hilo/__init__.pyetcustom_components/hilo/config_flow.py.