Files
ad_trident/APPDAEMON_BANDWIDTH_BUG_FIX.md
T

60 lines
2.2 KiB
Markdown

# 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).