Bonjour à tous,
Je commande un système à base de ESP32 pour ma piscine avec HA en communication modbus TCP client. Je voudrais mettre en œuvre les fonctions d’écriture de registre de variable locale (« input ») HA–>ESP32. Apparemment , il faut utiliser quelque chose comme ci dessous:
-Dans quel fichier supplémentaire faut-il mettre ce script pour que cela fonctionne ?
-Comment faut-il modifier le fichier le fichier configuration.yaml ?
-Comment modifier ce service pour multiplier la valeur par 1000 avant la transmission ?
Aucun, c’est un appel de service, tu peux déjà tester par l’interface voir si ça fonctionne et ensuite l’ajouter dans des automations ou scripts ou alors faire un bouton qui appelle ce service.
Pas sûr de comprendre, tu montres ton fichier donc tu sais le modifier? L’addon de VSCode est top pour editer tes fichiers de configuration si tu as installé HAOS.
Merci beaucoup, je commence à y voir un peu mieux. Je vais continuer à m’autoformer, trop newbie !
(je suis beaucoup plus à l’aise avec le C et le C++).
Je ne comprenais pas le logique car les 3 autres commandes Modbus fonctionnent sans service:
ReadRegister → holding (et input ?)
ReadCoil → discrete_input
WriteCoil → switch
mais pas (directement) WriteRegister (comme dans un serveur OPC par exemple)
Bonne journée
/Bruno
Ce sont 3 services appelé. Si tu lis un registre, tu peux mettre ça dans une entité. Ça lira le registre toutes X secondes où X est la scan_interval indiqué dans l’entité:
As-tu avancé? N’hésite pas si t’as des questions, je suis en train de rebosser un peu sur ModBus et HA en ce moment donc j’ai l’esprit un peu plus frais. Par contre je fais que de la lecture de données, pas d’écriture.
J’ai avancé. j’ai dû me confronter à jinja2 et la syntaxe différente si c’est dans un modèle ou autre. J’en ai bavé avec ce qu’il fallait mettre dans value: Ceci fonctionne maintenant:
Les 3 services :
ReadRegister → holding (et input ?)
ReadCoil → discrete_input
WriteCoil → switch
sont appelé directement et simplement dans leur définition, ici dans mon fichier modbus.yaml.
Un traitement séparé est nécessaire pour write_register
Bonjour Cloom,
l’appel de service fonctionne. J’essaie, de façon pataude, d’écrire un script me permettant un appel depuis un bouton du front-end (lovelace ?). Erreur de syntaxe semble-t-il ? .
Can I have some help from you please ?
dans configuration.yaml, il y a la ligne: