From ad7c0ac5967dd3104316d73ae7dfd08cd89e0be4 Mon Sep 17 00:00:00 2001 From: Pierre Date: Tue, 25 Aug 2026 20:52:04 +0200 Subject: [PATCH] add bug fix documentation for AppDaemon 4.5.10 bandwidth issue --- APPDAEMON_BANDWIDTH_BUG_FIX.md | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 APPDAEMON_BANDWIDTH_BUG_FIX.md diff --git a/APPDAEMON_BANDWIDTH_BUG_FIX.md b/APPDAEMON_BANDWIDTH_BUG_FIX.md new file mode 100644 index 0000000..2510810 --- /dev/null +++ b/APPDAEMON_BANDWIDTH_BUG_FIX.md @@ -0,0 +1,59 @@ +# Bug AppDaemon 4.5.10 : trafic HASS constant (~400-450 KB/s) + +## Symptôme +Après ~10 minutes de fonctionnement (temps depuis le démarrage d'AppDaemon, +pas de Home Assistant), le trafic réseau du container grimpe à ~400-450 KB/s +et reste stable indéfiniment, même sans aucune app chargée. + +## Cause +Bug upstream corrigé par [AppDaemon/appdaemon#2429](https://github.com/AppDaemon/appdaemon/pull/2429), +inclus depuis la version **4.5.12**. Dans `plugin_management.py`, +`update_plugin_state()` appelle `refresh_update_time(plugin)` (l'objet plugin) +au lieu de `refresh_update_time(plugin.name)` (la string). Le timestamp utilisé +par `time_since_plugin_update(plugin.name)` n'est donc jamais remis à jour : +une fois le `refresh_delay` par défaut (10 min) dépassé, AppDaemon redemande +l'état complet de Home Assistant (`get_states`) à **chaque tick de la boucle +utilitaire (1x/seconde)**, indéfiniment. + +## Statut +- Corrigé depuis AppDaemon 4.5.12 (12 oct. 2025). Si l'image utilisée est en + 4.5.12+, ce fix n'est plus nécessaire. +- Toujours utile si on reste bloqué sur une version < 4.5.12. + +## Comment réappliquer le patch (si toujours sur AppDaemon < 4.5.12) + +Fichier concerné : `/usr/local/lib/python3.12/site-packages/appdaemon/plugin_management.py` + +Chercher (dans la méthode `update_plugin_state`) : + +```python + finally: + await self.refresh_update_time(plugin) +``` + +Remplacer par : + +```python + finally: + await self.refresh_update_time(plugin.name) +``` + +Une seule ligne à changer. Une commande one-liner pour l'appliquer dans le +container : + +```sh +sed -i 's/await self.refresh_update_time(plugin)$/await self.refresh_update_time(plugin.name)/' \ + /usr/local/lib/python3.12/site-packages/appdaemon/plugin_management.py +``` + +⚠️ Ce patch vit dans l'image du container (site-packages), pas dans `/conf`. +Il est donc perdu à chaque recréation du container et doit être réappliqué +manuellement tant que l'image reste en 4.5.10/4.5.11. + +## Comment vérifier que le patch est actif + +```sh +grep -n "refresh_update_time(plugin" /usr/local/lib/python3.12/site-packages/appdaemon/plugin_management.py +``` + +Doit afficher `refresh_update_time(plugin.name)` (pas `refresh_update_time(plugin)` seul).