Tasmota ModbusBridge - MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor GitHub Wiki
Dies ist die Dokumentation der Befehle welche in https://github.com/MaxTrautwein/Tasmota/tree/modbus_bridge_b hinzugefügt wurden. Sowie Informationen wie diese verwendet werden können.
Vom Hauptmenü des Tasmota Webinterfaces wechseln sie in das Configuration
Untermenü.
Je nach ihrer Konfiguration können sie nun unter Configure Module
oder Configure Template
die Pins ihres ESP32 Moduls konfigurieren.
Dort können sie nun die Pins wählen, welche Sie für die Kommunikation verwenden wollen.
Zu beachten ist, dass keine freie Wahl besteht, mehr Informationen unter: https://github.com/MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor/wiki/ESP32-Modbus
In den Dropdowns können sie so den Tx Pin Modbus MQTT TX
sowie den Rx Pin Modbus MQTT RX
festlegen.
Nach dem speichern Steht Ihnen die Funktionalität zur Verfügung.
Ist die oben beschriebene Konfiguration abgeschlossen, so stehen ihnen zwei neue Befehle zur Verfügung:
-
mqttbridgeconf
→ Zum konfigurieren der Kommunikation -
mqttbridge
→ Zum Senden von Daten
Das Kommando zum Konfigurieren lautet mqttbridgeconf
Als Parameter wird ein JSON Object erwartet.
- mit
Baud
lässt sich die gewünschte Baudrate konfigurieren (Standard ist 96003
) - mit
Config
kann die Konfiguration des Ports festgelegt werden (Standard ist 8N10
) - mit
Strict
kann der Strict-Response Modus aktiviert und deaktiviert werden. (Standard ist ein1
)
{
"Baud":3,
"Config":0,
"Strict":1
}
Es besteht die Möglichkeit entweder alle Werte gleichzeitig anzupassen oder nur Teile davon.
-
0
1200 -
1
2400 -
2
4800 -
3
9600 -
4
14400 -
5
19200
-
0
8N1 -
1
8N2 -
2
8E1 -
3
8E2 -
4
8O1 -
5
8O2
Der Strict-Response Modus stellt sicher, dass erst dann eine neue Nachricht gesendet werden kann, wenn die zuletzt versendete Nachricht beantwortet wurde.
-
0
Aus -
1
Ein
Zum Senden von Daten kann das Kommando mqttbridge
verwendet werden.
Die Daten müssen folgendem Format übertragen werden:
{
"Address":"0x<add>",
"Function":"0x<func>",
"Data":[<arrayOfBytes>]
}
<add>
Enthält die Addresse
<func>
Enthält den Funktionscode
<arrayOfBytes>
Liste aller zu sendenden Daten
{
"Address":"0x01",
"Function":"0x06",
"Data":["0x00","0x01","0x01","0x00"]
}
Die Modbus-Bridge prüft ständig ob Daten über den Modbus empfangen wurden. Daraufhin werden diese automatisch über MQTT übermittelt.
Sollen Daten korrekt empfangen werden so werden sie im folgendem JSON Format übertragen:
{"Address": "0x<add>","Function": "0x<func>","Status":"<status>","Data": [<arrayOfBytes>],"LastRequest":"0x<crc>"}
<add>
Enthält die Addresses
<func>
Enthält den Funktionscode
<status>
den EC
<arrayOfBytes>
Ist eine Liste aller weiterer empfangener Bytes
<crc>
enthält den CRC der zuletzt versendeten Nachricht
Derzeit (TasmotaModbus-1.2.0) bestehen die folgenden Fehlercodes:
- (0) No error
- (1) Illegal Function
- (2) Illegal Data Address
- (3) Illegal Data Value
- (4) Slave Error
- (5) Acknowledge but not finished (no error)
- (6) Slave Busy
- (7) Not enough data
- (8) Memory Parity error
- (9) crc error
- (10) Gateway Path Unavailable
- (11) Gateway Target device failed to respond