Industrielle Automatisierung und IoT
ELX-MODBUS
Eine Brücke zwischen dem Modbus-Bus und einem MQTT-Broker
Fragt Modbus-Geräte über Ethernet und den seriellen Bus RS-485 ab, wandelt die rohen Register in verständliche Werte, veröffentlicht sie über MQTT und schreibt Befehle zurück. Vollständig im Browser eingerichtet — es gibt keine Konfigurationsdateien zu bearbeiten.
Gateways über TCP und seriell
Verbindung über Ethernet — Modbus TCP oder RTU über TCP — oder über eine lokale Schnittstelle wie /dev/ttyUSB0. Baudrate, Parität, Stoppbits und Zeitverhalten sind einstellbar.
Eine Bibliothek fertiger Geräte
Vorlagen nach den Datenblättern der Hersteller: Register, Skalierung, Bedienelemente und Aufzählungen sind bereits eingetragen. Ein bekanntes Gerät hinzuzufügen dauert zwei Klicks statt eines Nachmittags.
Register, ganz genau
Holding, Input, Coil und Discrete; ganze Zahlen, Gleitkommazahlen und Zeichenketten; Wort- und Byte-Reihenfolge; Bitmasken; Faktor und Versatz. Jedes einzelne Register lässt sich abschalten, ohne die übrigen zu berühren.
Ein lebendiges Dashboard
Gerätekacheln mit Werten, die sich an Ort und Stelle ändern, Schalter, Regler und Eingabefelder. Eine Kachel zu verschieben ändert zugleich die Abfragereihenfolge, denn die Reihenfolge auf dem Bildschirm ist die Reihenfolge auf dem Bus.
Ein Protokollterminal
Der rohe Verkehr in Hexadezimalform, mit Dauer und Fehler jeder Anfrage. Das ist der Bildschirm, der aus einem unbekannten Gerät ein laufendes macht.
Ein Paket, keine Abhängigkeiten
Ein einziges .deb richtet unter Debian, Ubuntu und Raspberry Pi OS einen systemd-Dienst ein. Builds für amd64, arm64 und armhf; sonst ist nichts zu installieren.
Screenshots
Welches Problem das löst
Industriegeräte sprechen Modbus — ein Protokoll von 1979, das für Sensoren, Relais, Zähler und Antriebe zum Standard wurde. Haus- und Gebäudeautomation spricht MQTT. Von allein treffen die beiden nicht aufeinander, und das übliche Mittel ist ein Haufen Skripte, eines je Gerät, von denen jedes aufhört zu funktionieren, wenn jemand eine Registeradresse ändert.
ELX-MODBUS ist genau dieser Haufen, ersetzt durch einen Dienst. Er fragt den Bus ab, wandelt rohe Register in benannte Werte, veröffentlicht sie zu Ihrem Broker und nimmt Befehle entgegen. Alles wird im Browser eingerichtet.
Modbus-Geräte
Sensoren, Relais, Antriebe, Zähler — an RS-485 oder Ethernet
ELX-MODBUS
Abfragen, dekodieren, veröffentlichen, zurückschreiben
MQTT-Broker
Home Assistant, Node-RED, OpenHAB, Ihr eigener Code
Drei Schritte bis zu Daten im Broker
- Ein Gateway anlegen. Beschreiben Sie die Verbindung zum Bus: die Adresse eines RTU-über-TCP-Wandlers oder die serielle Schnittstelle mit Baudrate und Parität.
- Ein Gerät anlegen. Wählen Sie eine Vorlage aus der Bibliothek oder bauen Sie Ihre eigene Registerkarte, dann setzen Sie die Busadresse und das MQTT-Präfix.
- Den Broker eintragen. Adresse eingeben und Veröffentlichen einschalten. Die Werte fließen sofort in Topics, und Befehle fließen zurück.
Wie aus Werten Topics werden
Ein rohes Register wird über Wert = roh × Faktor + Versatz zum Wert, unter Berücksichtigung des Datentyps, der Wort- und Byte-Reihenfolge und einer Bitmaske. Das Ergebnis wird nach {Basis}/{Präfix}/{Schlüssel} veröffentlicht.
home/livingroom/ac/temp → 24.5 (bei jeder Abfrage veröffentlicht)
home/livingroom/ac/set_temp ← 22.0 (Befehls-Topic, wird ins Register geschrieben)
home/livingroom/ac/mode → cooling
Kanäle mit Lesen und Schreiben erhalten ein Befehls-Topic — standardmäßig {Topic}/set. Ein dorthin gesendeter Wert rückt in der Abfragewarteschlange nach vorn und wird sofort geschrieben, weshalb sich die Steuerung unmittelbar anfühlt und nicht um einen Abfragezyklus verzögert.
Die Gerätebibliothek
In den Vorlagen sind Registerkarte, Skalierung und Bedienelement bereits nach Datenblatt eingerichtet. Darunter:
| Gruppe | Geräte |
|---|---|
| Klima | Modbus-Adapter für Klimageräte, Kesselregler mit OpenTherm und eBus, Lüftungsanlagen |
| Relais | Sechs- und sechzehnkanalige Relaismodule mit Befehlsregistern zum Öffnen und Schließen |
| Sensoren | Temperatur- und Feuchtefühler, Multisensoren, 1-Wire-Fühler |
| Licht | Dimmer, LED-Steuerungen, DALI-Gateways |
| Analog | Ausgangsmodule 0–10 V und 4–20 mA |
| Alles Übrige | Ein leeres eigenes Gerät, bei dem Sie die Register selbst eintragen |
Auf einen Blick
- Transporte
- Modbus TCP, RTU über TCP, RTU über serielle Schnittstelle
- Registerarten
- Holding, Input, Coil, Discrete
- Datentypen
- int, float, Zeichenkette, Bitmasken, Wort- und Byte-Reihenfolge
- Betriebssysteme
- Debian, Ubuntu, Raspberry Pi OS
- Architekturen
- amd64, arm64, armhf
- Einrichtung
- Weboberfläche; Zustand in SQLite, als JSON ausgebbar
- Port der Oberfläche
- 8080 standardmäßig
- Externe Abhängigkeiten
- Keine