Automatisation industrielle et IoT
ELX-MODBUS
Un pont entre le bus Modbus et un courtier MQTT
Interroge les équipements Modbus par Ethernet et par le bus série RS-485, transforme les registres bruts en valeurs lisibles, les publie en MQTT et réécrit les commandes en retour. Tout se configure dans le navigateur — il n'y a aucun fichier de configuration à modifier.
Passerelles TCP et série
Connexion par Ethernet — Modbus TCP ou RTU sur TCP — ou par un port local tel que /dev/ttyUSB0. Vitesse, parité, bits d'arrêt et temporisations se règlent tous.
Une bibliothèque d'appareils prêts
Des modèles bâtis d'après les notices des constructeurs : registres, mise à l'échelle, éléments d'affichage et énumérations sont déjà renseignés. Ajouter un appareil connu prend deux clics au lieu d'un après-midi.
Les registres, exactement
Holding, Input, Coil et Discrete ; entiers, flottants et chaînes ; ordre des mots et des octets ; masques de bits ; multiplicateur et décalage. N'importe quel registre se désactive seul, sans toucher aux autres.
Un tableau de bord vivant
Des tuiles d'appareils dont les valeurs changent sur place, des interrupteurs, des curseurs et des champs de saisie. Déplacer une tuile change aussi l'ordre d'interrogation, car l'ordre à l'écran est l'ordre sur le bus.
Un terminal de protocole
Les échanges bruts en hexadécimal, avec la durée et l'erreur de chaque requête. C'est l'écran qui transforme un appareil inconnu en appareil qui fonctionne.
Un paquet, aucune dépendance
Un unique .deb installe un service systemd sous Debian, Ubuntu et Raspberry Pi OS. Des versions pour amd64, arm64 et armhf ; rien d'autre à installer.
Captures d'écran
Le problème que cela résout
Les équipements industriels parlent Modbus — un protocole de 1979 devenu la norme de fait pour les capteurs, relais, compteurs et variateurs. La domotique et la gestion technique de bâtiment parlent MQTT. Les deux ne se rencontrent pas d'eux-mêmes, et le remède habituel est un tas de scripts, un par appareil, dont chacun cesse de fonctionner quand quelqu'un change une adresse de registre.
ELX-MODBUS, c'est ce tas de scripts remplacé par un seul service. Il interroge le bus, convertit les registres bruts en valeurs nommées, les publie vers votre courtier et accepte les commandes en retour. Tout se configure dans un navigateur.
Appareils Modbus
Capteurs, relais, variateurs, compteurs — sur RS-485 ou Ethernet
ELX-MODBUS
Interrogation, décodage, publication, écriture en retour
Courtier MQTT
Home Assistant, Node-RED, OpenHAB, votre propre code
Trois étapes jusqu'aux données dans le courtier
- Ajoutez une passerelle. Décrivez la liaison au bus : l'adresse d'un convertisseur RTU sur TCP, ou le port série avec sa vitesse et sa parité.
- Ajoutez un appareil. Choisissez un modèle dans la bibliothèque ou construisez votre propre plan de registres, puis indiquez l'adresse esclave et le préfixe MQTT.
- Indiquez votre courtier. Saisissez l'adresse et activez la publication. Les valeurs partent aussitôt dans les sujets, et les commandes reviennent.
Comment les valeurs deviennent des sujets
Un registre brut devient une valeur par valeur = brut × multiplicateur + décalage, en tenant compte du type de données, de l'ordre des mots et des octets et d'un éventuel masque de bits. Le résultat est publié vers {base}/{préfixe}/{clé}.
home/livingroom/ac/temp → 24.5 (publié à chaque interrogation)
home/livingroom/ac/set_temp ← 22.0 (sujet de commande, écrit dans le registre)
home/livingroom/ac/mode → cooling
Les voies en lecture-écriture reçoivent un sujet de commande — {sujet}/set par défaut. Une valeur envoyée là passe en tête de la file d'interrogation et est écrite aussitôt : la commande paraît immédiate au lieu d'être retardée d'un cycle.
La bibliothèque d'appareils
Les modèles portent déjà le plan de registres, la mise à l'échelle et l'élément d'affichage, réglés d'après la notice. Parmi eux :
| Groupe | Appareils |
|---|---|
| Climatisation | Adaptateurs Modbus de climatiseurs, régulateurs de chaudière avec OpenTherm et eBus, centrales de traitement d'air |
| Relais | Modules relais six et seize voies avec registres de commande d'ouverture et de fermeture |
| Capteurs | Sondes de température et d'humidité, capteurs multiples, sondes 1-Wire |
| Éclairage | Variateurs, contrôleurs LED, passerelles DALI |
| Analogique | Modules de sortie 0–10 V et 4–20 mA |
| Tout le reste | Un appareil vierge dans lequel vous saisissez vous-même les registres |
En bref
- Transports
- Modbus TCP, RTU sur TCP, RTU sur port série
- Types de registres
- Holding, Input, Coil, Discrete
- Types de données
- int, float, chaîne, masques de bits, ordre des mots et des octets
- Systèmes d'exploitation
- Debian, Ubuntu, Raspberry Pi OS
- Architectures
- amd64, arm64, armhf
- Configuration
- Interface web ; état en SQLite, exportable en JSON
- Port de l'interface
- 8080 par défaut
- Dépendances externes
- Aucune