Bonjour !
Mon problème
Ce n’est pas à proprement parler un problème, mais une recherche de piste à explorer. Je souhaite lancer un script python (peut éventuellement changer si besoin) plusieurs fois par secondes, ceci afin de communiquer avec une carte d’entrées / sorties sur Ethernet (marque Kincony 4E/4E et 8E/16S).
La commutation des sorties est assez aisée et peu se faire via différentes méthodes : NodeRed, binary_sensor (commande line) … Il « suffit » d’émettre une trame facile à comprendre (‹ RELAY-SET-1,2,1
› par exemple pour mettre à 1 le relais 2).
Le problème vient surtout des entrées. En effet, le module Kincony envoie bien une information en cas de passage d’une entrée de l’état 0 à l’état 1. Cependant:
- Pas de différenciation des entrées activées : nécessité d’aller lire les entrées
- Délai d’apparition de cette information très long : 2 à 3 secondes
- Pas d’information lors du passage de 1 vers 0
Donc l’utilisation d’un bouton poussoir est exclue (l’information est trop fugace pour que le module renvoie l’information qu’une entrée à commutée), et même la détection d’information « lente » est problématique (imaginez que l’entrée est un capteur de niveau d’eau qui doit gérer la pompe d’un réservoir …).
La solution que j’ai trouvée consiste à questionner en permanence la carte sur l’état des entrées (et des sorties par la même occasion, car si une coupure survient, les sorties retombe à 0 et les indications de HA ne sont plus conformes).
J’ai essayé sous AppDaemon de convertir un plugin développé pour Domoticz, mais j’achoppe sur la gestion de la boucle d’interrogation de la carte. Un thread unique ralenti fortement AppDaemon, j’ai un peu de mal avec le multithread (et avec l’anglais pour comprendre comment fonctionne AppDaemon )
Et enfin, la question que tout le monde attend :
Existe-t’il un moyen de lancer un script de manière régulière et avec une fréquence élevée ? Genre, toutes les 200 ms ?
Ma configuration
System Health
version | core-2021.8.8 |
---|---|
installation_type | Home Assistant OS |
dev | false |
hassio | true |
docker | true |
user | root |
virtualenv | false |
python_version | 3.9.6 |
os_name | Linux |
os_version | 5.10.53 |
arch | armv7l |
timezone | Europe/Paris |
Home Assistant Cloud
logged_in | false |
---|---|
can_reach_cert_server | ok |
can_reach_cloud_auth | ok |
can_reach_cloud | ok |
Home Assistant Supervisor
host_os | Home Assistant OS 6.2 |
---|---|
update_channel | stable |
supervisor_version | supervisor-2021.06.8 |
docker_version | 20.10.6 |
disk_total | 13.6 GB |
disk_used | 5.0 GB |
healthy | true |
supported | true |
board | odroid-xu4 |
supervisor_api | ok |
version_api | ok |
installed_addons | File editor (5.3.3), Node-RED (10.0.0), Terminal & SSH (9.1.3), Samba share (9.5.1), AppDaemon 4 (0.7.0), ESPHome (2021.8.1), DHCP server (1.2) |
Lovelace
dashboards | 1 |
---|---|
resources | 2 |
views | 2 |
mode | storage |
Merci beaucoup pour l’aide que vous pourriez m’apporter. J’espère que ce n’était pas dans la section Dev qu’il fallait que je post …