Ce script automatise le transfert de l'information de consommation d'eau vers des systèmes domotiques tels que Home Assistant et Domoticz.
Ceci est la documentation spécifique pour Home Assistant avec AppDaemon et HACS.
Le dépôt mdeweerd/veolia-idf réorganise sOnik42/veolia-idf comme une application AppDaemon sous Home Assistant.
Pour faciliter l'installation avec HACS, les scripts
sont placés dans le répertoire apps/veolia_idf
auquel est ajouter
veolia_idf.py
qui assure l'intégration sous AppDaemon.
Ce script fonctionne exclusivement avec le site https://www.vedif.eau.veolia.fr valable pour Veolia en IDF. Vous pouvez trouver votre portail en fonction de la ville en visitant https://www.eau.veolia.fr/ 1 > CONNECTEZ-VOUS . .
Dans tous les cas il faut un fichier de configuration. Pour Home Assistant,
le point de départ peut être config.json.exemple.home-assistant
que vous
renommez en config.json
(ou autre).
Exemple:
{
"veolia_login": "MONLOGIN",
"veolia_password": "MONPASSE",
"veolia_contract": "MONCONTRAT",
"ha_server": "https://MONINSTANCEHA",
"ha_token": "MONTOKEN",
"type": "ha",
"timeout": "30"
}
La valeur pour "ha_token" peut être obtenu dans son profil Home Assistant. Cette fonctionnalité est disponible tout en bas de la page en question ou il faut cliquer "Créer un jeton":
- Ajouter le AddON/Module complémentaire « Home Assistant Community Add-on: AppDaemon »
selon votre système, ou
suivez ces instructions pour HAOS
ou aller directement vers le lien (en remplaçant 'VOTREINSTANCE'):
VOTREINSTANCE/hassio/addon/a0d7b954_appdaemon/info
, puis « Install » - Pour HAOS (et peut-être d’autres), configurer
AppDaemon
au moins avec ces paquets (configuration au formatyaml
pour HAOS):
init_commands: []
python_packages:
- selenium
- PyVirtualDisplay
system_packages:
- py-urllib3
- py3-colorama
- xvfb
- py3-pip
- xorg-server-xephyr
- chromium-chromedriver
- chromium
- py3-openssl
- py3-pysocks
- py3-wsproto
- py3-sniffio
- py3-async_generator
- py3-sortedcontainers
- py3-attrs
- py3-outcome
- py3-trio
- Activer le Watchdog du AddOn, Démarrer le AddOn
Cette procédure suppose que HACS est déjà actif et configuré pour
AppDaemon
. Ainsi que AppDaemon
soit activé.
- Ajouter GitHub - mdeweerd/veolia-idf: Charge l'historique de votre consommation Veolia Ile de France dans Domoticz 1 comme source de type AppDaemon:
Note : après l’ajout, le popup reste affiché. Le nouveau module est disponible à la fin de la liste:
-
Ensuite « télécharger » ce dépôt avec HACS - chercher
veolia_idf
parmi les « AppDaemons » et cliquez Télécharger ou Download:
Les scripts sont ainsi disponibles pour AppDaemon.
Reste encore la configuration de veolia_idf
sous AppDaemon. Plus haut la
création du fichier config.json
a été expliquée. Vous devez le déposer
sur votre instance Home Assistant, de préférence dans un sous-répertoire de
.../config
.
Dans l'exemple ci-dessous il est supposé que ce fichier config.json
est
disponible au chemin /config/veolia-idf/config.json
.
Cette configuration indique aussi que la trace veolia.log
sera déposé
sous /config
. Le fichier /config/veolia.log
pourra aider à identifier
des causes de dysfonctionnement.
Voici un exemple d'une configuration minimale à ajouter à
/config/appdaemon/apps/apps.yaml
:
veolia_idf:
module: veolia_idf
class: VeoliaIDF
config_file: /config/config.json
L'exemple suivant montre l'ensemble des arguments disponibles, dont la
précision du chemin vers le script veolia-idf-domoticz.py
.
veolia_idf:
module: veolia_idf
class: VeoliaIDF
# optional
log_folder: /config
# optional (Default: "config.json" in directory of `veolia-idf-domoticz.py`)
config_file: /config/veolia-idf/config.json
# optional (Default: "<REALMODULESCRIPTPATH>/veolia-idf-domoticz.py")
script: /config/veolia-idf/veolia-idf-domoticz.py
# optional (Default: false) - add --keep_csv option
keep_csv: true
# optional (Default: false) - add --debug option - you should also set DISPLAY
debug_veolia: true
# optional (Default: None) - Set DISPLAY for GUI interface (when debug is true)
DISPLAY: 192.1.0.52:0
# optional (Default: None) - Set file for stdout of script call
outfile: /config/appdaemon/apps/veolia_script.log
# optional (Default: None) - Set file for stderr of script call
errfile: /config/appdaemon/apps/veolia_script_err.log
L'option debug_veolia
peut être intéressant lors de la mise en place en
cas de diffucultés.
Pour info, il y a une interface web spécifique à AppDaemon : http://votreinstance:5050 qui donne entre outre accès à qqs traces et l’historique des appels de scripts.
Sur la page [http://votreinstance:5050/aui/index.html#/logs\] on peut trouver par exemple des traces. Exemple avec une erreur:
2022-12-10 13:29:13.182428 ERROR veolia_idf: Done veolia
2022-12-10 13:29:13.157362 ERROR veolia_idf: NameError("name 'sys' is not defined")
2022-12-10 13:29:13.140371 ERROR veolia_idf: Start VEOLIA
2022-12-10 13:29:09.467062 INFO AppDaemon: Initializing app veolia_idf using class VeoliaIDF from module veolia_idf
L’appel est lancé en déclenchant l’événement call_veolia
. Cela peut être
fait dans une automatisation (ce qui permet de le lancer selon un planning
par exemple), ou de façon interactive dans les outils de développement:
Une trace est systématiquement créé comme « veolia.log », soit à
l’emplacement du script, soit dans le répertoire donné par log_folder:
.
Cela peut déjà aider à identifier les causes, ou tout simplement le bon
déroulement du script.
Comme par exemple:
2022-06-01 18:31:55,541 : -- : Parsing csv file
2022-06-01 18:31:55,813 : OK : update value for 2022-05-31
2022-06-01 18:31:56,014 : OK : Close Browser
2022-06-01 18:31:56,018 : OK : Close Display
2022-06-01 18:31:56,019 : -- : Remove downloaded file historique_jours_litres.csv Finished on success
Pour réaliser la tache de récupération une fois par jour, vous pouvez ajouter un automatisme à votre configuration Home Assistant comme ceci:
alias: Veolia
description: ''
trigger:
- platform: time_pattern
hours: '1'
minutes: '7'
condition: []
action:
- event: call_veolia
event_data: {}
mode: single
Cela récupère la consommation à 1h07.
Il semblerait que les données restituées par Veolia sont des fois un peu "farfelus". La meilleure méthode connue pour éviter cela est de contournement c'est de réaliser l'appel à partir de 1h du matin seulement et avant minuit.
Mettez SVP une heure différente de 1h07 dans votre configuration afin de répartir les appels auprès de Veolia. Vous pouvez sûrement accepter de récupérer l'information un peu plus tard que cela vu qu'elle est de tout façon déjà décalé de qqs jours.
Voici un exemple d'une récupération pour une journée partielle:
Et voici un exemple de données "farfelus" (les 5400L de conso journalière sont inexactes).