Ceux qui ne disposent pas du Superviseur (voir les mĂ©thodes dâinstallation) et qui entendent parler dâĂ©dition de fichiers directement depuis HA via File Editor alors quâils ne peuvent pas installer dâadd-on sont parfois frustrĂ©s
Et bien voici une méthode à base de container Docker afin de rendre tout cela possible
Il sâagit de profiter du container quâutilise HA et de lâutiliser de la mĂȘme façon.
Voici donc le compose
que jâutilise et que vous pouvez ajouter dans les Stacks
de Portainer par exemple
################################################
# Configurator
################################################
hass-configurator:
image: "causticlab/hass-configurator-docker:arm" #<-- le container pour un rpi4 par exemple
restart: always
ports:
- "8124:3218/tcp" #<-- File Editor sera disponible Ă @ip:8124
volumes:
- "./data/configurator-config:/config" #le chemin relatif (absolu possible) vers le dossier de configuration du container
- "/home/homeassistant/.homeassistant:/hass-config" #Chemin absolu (relatif possible) vers le dossier de configuration de l'instance HA
environment:
- HC_BASEPATH=/hass-config #<-- Le dossier au démarrage de l'application web (arbo du container)
- HC_ENFORCE_BASEPATH=true #<-- Limiter la visualisation Ă l'arborescence (impossible de remonter plus haut que le chemin du volume pointant sur HC_BASEPATH
- HC_DIRSFIRST=true #<-- Afficher les dossiers en premier (plutÎt que mélanger avec les fichiers par ordre alphabétique)
Il est possible de se connecter au API de HA, toutes les informations se trouvent sur le Wiki :
Personnellement, lâAPI ne mâintĂ©resse pas, je veux juste pouvoir modifier ma configuration depuis HA (quand je suis en dĂ©placement surtout sinon câest VS Code / Notepad++)
Et si nous allions plus loin ?
Si on met Ă false
la variable HC_ENFORCE_BASEPATH
et que lâon se promĂšne dans lâarborescence du container, on trouve des dossiers videsâŠ
Et bien nous allons les remplir
On va ajouter un volume afin de pointer nâimporte quel dossier de notre hĂŽte (oĂč est installĂ© Docker) dans File Editor afin de le rendre accessible Ă travers lui (et toujours depuis HA).
Par exemple, avec ce compose, on monte dans le répertoire /mnt
de File Editor le dossier (et sous-dossier) de lâutilisateur que lâon veut :
################################################
# Configurator
################################################
hass-configurator:
image: "causticlab/hass-configurator-docker:arm" #<-- le container
restart: always
ports:
- "8124:3218/tcp" #<-- File Editor sera disponible Ă @ip:8124
volumes:
- "./data/configurator-config:/config" #le chemin relatif (absolu possible) vers le dossier de configuration du container
- "/home/homeassistant/.homeassistant:/hass-config" #Chemin absolu (relatif possible) vers le dossier de configuration de l'instance HA
- "/home/homeassistant:/mnt" #Chemin absolu (relatif possible) vers le dossier de l'utilisateur monté dans le dossier /mnt du container
environment:
- HC_BASEPATH=/hass-config #<-- Le dossier au démarrage de l'application web (arbo du container)
- HC_ENFORCE_BASEPATH=true #<-- Limiter la visualisation Ă l'arborescence (impossible de remonter plus haut que le chemin du volume pointant sur HC_BASEPATH
- HC_DIRSFIRST=true #<-- Afficher les dossiers en premier (plutÎt que mélanger avec les fichiers par ordre alphabétique)
VoilĂ , vous lâaurez compris, si vous mettez le volume :
volumes:
- "/:/mnt"
Vous monter la racine de votre PC hÎte dans le container⊠( Dangereux)
Et comment y accéder dans HA ?
Et bien en passant par les panel_iframe
Ajouter ces lignes Ă votre fichier configuration.yaml
:
configurator:
title: "Editeur de fichiers" #Le titre dans la barre latérale
#url: "http://@IP:8124" cette url ne fonctionne que depuis votre rĂ©seau local, donc votre domicile -> sans grand intĂ©rĂȘt
url: "https://fileditor.nom_de_domaine.fr" #connexion sécurisée obtenue via Nginx Proxy Manager par exemple
require_admin: true #Seul les administrateurs voient le lien de la barre latérale
icon: mdi:file-document-multiple-outline #l'icÎne affichée dans la barre latérale
En image ça donne :
