modbuspythondomoticz

Domoticz n’est pas compatible nativement avec le protocole Modbus – TCP mais…

Modbus est un protocole de communication  très utilisé dans le domaine de l’automatisme, pour les automates BECKHOFF, WAGO, SCHEIDER , les CTA ou les VMC communicantes  etc..

Dans ce post, vous trouverez un exemple pour écrire des valeurs de type « COIL » (sortie tout ou rien) en utilisant un script Python.

Ce script est paramétrable par le biais des arguments passées en ligne de commande lors de son exécution.

Cet exemple est pour une installation Domoticz sur Raspberry :

Le script peut être exécuté sur un appui de bouton ou sur un autre événement de votre choix.

Exemple d’application du script cde_modbus.py

Mise à l’état « 1 » de l’adresse 32768

script:///home/pi/domoticz/scripts/python/cde_modbus.py  32768 1

Mise à l’état « 0 » de l’adresse 32768

script:///home/pi/domoticz/scripts/python/cde_modbus.py  32768 0

Pour pouvoir mettre en oeuvre cette communication , il vous faut les pré-requis suivants :

  • Connaitre l’adresse IP de votre automate Modbus ou partenaire Modbus
  • Connaitre le port Modbus (par défaut 502)
  • et la liste des adresses des Coils que vous souhaitez activer

Installer PyModbus sur le Raspberry

  • sudo apt-get update
  • sudo apt-get install python-dev
  • sudo apt-get install python-pip
  • pip install pymodbus

Ensuite,

  • Déposer dans le répertoire : /domoticz/scripts/python le script suivant cde_modbus.py  (qu’il faut dé-zipper avant !)
  • N’oublier pas de changer l’adresse IP par l’adresse IP de votre serveur ou partenaire Modbus

#l’adresse de l’automate Serveur Modbus TCP
client = ModbusClient(‘192.168.0.142’)

Ensuite mettre les droits sur le fichier programme code_modbus.py  (chmod)

  • sudo chmod 775 cde_modbus.py

et enfin, il faut paramétrer dan un bouton les  « Action On et Action Off »

Action On

script:///home/pi/domoticz/scripts/python/cde_modbus.py  32768 1

Action Off

script:///home/pi/domoticz/scripts/python/cde_modbus.py  32768 0

Domoticz bouton Modbus

C’est un début , ce n’est peut être pas la solution idéale mais en attendant que Domoticz soit compatible ….Modbus TCP cela peut vous aider.

La suite … lecture des Input et des Registres!