DomBus-Module sind über einen seriellen Bus miteinander verbunden , wobei ein dünnes/gemeinsames Alarmkabel mit 4 Drähten verwendet wird: 2 für die 12-24-V-Gleichstromversorgung und 2 Drähte für Daten bei 115200 bps 8,n,1 unter Verwendung des symmetrischen RS485-Busses in Industriequalität .

Normalerweise wird der Bus mithilfe eines günstigen RS485/USB-Adapters über ein dünnes Kabel mit dem Domotic Controller verbunden.

Falls der Bus nicht physisch mit dem Domotic-Controller verbunden werden kann (anderer Bereich, keine Möglichkeit, Kabel zu verlegen, ...), kann eine Funkverbindung oder ein TCP-Tunnel verwendet werden, um die Kommunikation des Domotic-Controllers mit dem DomBus-Netzwerk aufrechtzuerhalten.


Verwendung einer Funkverbindung zum Verbinden zweier RS485-Busse

Auf dem Markt sind Funkgeräte erhältlich, die die transparente Verbindung zweier RS485-Busse ermöglichen. Auf diese Weise ist eine Funkverbindung möglich :

  • einen Domotic-Controller an ein oder mehrere DomBus-Module an einem entfernten Standort
  • ein DomBus-Netzwerk mit einem anderen an einem entfernten Standort

Nachfolgend die Beschreibung der Verbindung über verschiedene Funksysteme.

1. Verwenden Sie EBYTE EWM-290-400T20D, um eine transparente drahtlose Verbindung zwischen zwei RS485-Bussen herzustellen

Das EBYTE-Modell EWM-290-400T20D ist ein sehr günstiges LoRa-Modul mit RS485-Schnittstelle. Es arbeitet mit einer Luftbitrate von 62500 bps im 433÷434-MHz-Band mit bis zu 20 dBm Leistung und bis zu 115200 bps am RS485-Port. Bitte beachten Sie, dass das Modul keine CE-Kennzeichnung trägt und daher in Europa nur zu Testzwecken verwendet werden kann.

Es wird mit einem 5-adrigen Kabel geliefert:

  • 5V sollten mit 4,5÷5,5V verbunden werden, 100mA max. Stromaufnahme
  • GND muss mit der Erde verbunden werden
  • TXD/A zum Anschluss an RS485 A
  • RXD/B zum Anschluss an RS485 B
  • STB: ist mir egal

Eine 433-MHz-Antenne mit SMA-Stecker ist nicht im Lieferumfang des Moduls enthalten und muss separat erworben werden.

EWM290-Modulkonfiguration

Das Modul kann über AT-Befehle verbunden werden. Der Standard-UART-Modus ist 9600,8,n,1. Jeder Befehl muss als einzelne Sequenz ohne Verzögerung zwischen den Zeichen gesendet werden, sodass Sie jeden Befehl mit der Maus auswählen und in das Terminalprogramm einfügen können.

Unter Linux ist es möglich , picocom -b9600 /dev/ttyUSBx zu verwenden, um das Gerät mit der Arbeitsbitrate (9600 standardmäßig, -b115200, falls bereits konfiguriert) zu verbinden und den Befehl zu senden

AT+MODE=2

So versetzen Sie das Modul in den Konfigurationsmodus: Jetzt wählt das Modul 9600 bps aus. Wenn Sie diesen Befehl also mit einer anderen Bitrate ausgegeben haben, beenden Sie picocom (Strg+A Strg+X) und führen Sie den Befehl picocom -b9600 /dev/ttyUSBx erneut aus. Senden Sie dann jede der folgenden Zeilen und geben Sie dabei einen zufälligen KEY-Wert zwischen 0 und 65535 an (nicht 12345!).

AT+RATE=7
AT+PAKET=0
AT+POWER=0
AT+LBT=1
AT+UART=7,0
AT+KEY=12345
AT+KANAL=24
AT+MODE=0

Jetzt befindet sich das Modul im transparenten Modus und stellt eine drahtlose Funkverbindung zwischen den beiden RS485-Bussen her.


 

LAN / WiFi / Internet-Trunk zwischen Domotic Controller und DomBus-Modulen

Um den virtuellen seriellen Tunnel über TCP/IP zu erreichen, können die folgenden Lösungen verwendet werden.

Building automation network using DomBus modules and WiFi/Internet trunking

1. Virtuelle Serielle Verbindung über TCP/IP zwischen zwei Linux-Geräten

Wenn der Domotic-Controller auf einem Linux-Gerät gehostet wird (z. B. einem Raspberry PI oder NUC, jetzt „Main“ genannt) und die DomBus-Geräte mit einem anderen Linux-Gerät verbunden sind (Raspberry, Rock PI S, QNAP, ..., jetzt „Slave“ genannt), ist es möglich, dass der Hauptcontroller das DomBus-Netzwerk über eine kabelgebundene oder kabellose TCP/IP-Verbindung folgendermaßen verbindet:

  1. Installieren Sie auf dem Slave-Gerät (an dem das DomBus-Netzwerk mithilfe des günstigen USB/RS485-Adapters angeschlossen ist) den Dienst ser2net :
    sudo apt installiere ser2net
  2. Konfigurieren Sie den ser2net-Dienst, indem Sie die Datei /etc/ser2net.yaml ändern:
    sudo nano /etc/ser2net.yaml
  3. Entfernen Sie vorhandene, nicht verwendete Verbindungen und fügen Sie die folgenden Zeilen ein, um die Verbindung mit einem Bus zu definieren:
    connection: &dombus
    accepter: tcp,2000
    enable: on
    options:
    kickolduser: true
    telnet-brk-on-sync: true
    connector: serialdev,
    /dev/ttyUSB0,
    115200n81,local
  4. Es ist möglich, den TCP-Port (im Beispiel 2000) und den seriellen Port (im Beispiel ttyUSB0) zu ändern.
  5. Falls mehr als ein DomBus-Bus mit dem Slave-Gerät verbunden ist, definieren Sie für jeden Bus eine Verbindung (und geben Sie für jeden Bus einen anderen TCP-Port an).
  6. Starten Sie den ser2net-Dienst mit dem Befehl service ser2net restart neu
  7. Testen Sie, ob es funktioniert, indem Sie den Befehl telnet localhost 2000 auf dem Slave-Gerät verwenden; Strg+] zum Beenden
  8. Installieren Sie auf dem Hauptgerät (mit Domoticz, Home Assistant, Node-RED, OpenHAB-Controller usw.) die Socat- Anwendung:
    sudo apt installiere socat
  9. Führen Sie den folgenden Befehl aus, um den virtuellen seriellen Port /dev/ttyUSBDomBusNet zu erstellen und die an das Slave-Gerät angeschlossenen DomBus-Geräte zu verwalten: socat pty,link=/dev/ttyUSBDomUSBBusNet tcp:192.168.6.2:2000, wobei 192.168.6.2 durch die IP-Nummer des Slave-Geräts ersetzt werden sollte
  10. Falls die Verbindung über das Internet oder einen oder mehrere Router mit NAT erfolgt, ist es möglicherweise erforderlich, die Portweiterleitung / das Ziel-NAT auf den Routern zu konfigurieren
  11. Testen Sie das gesamte System, indem Sie den Befehl cat /dev/ttyUSBDomBusNet ausführen: Wenn es funktioniert, schreiben Sie ein kleines Bash-Skript, um den virtuellen seriellen Port zu aktivieren, und rufen Sie dieses Skript von /etc/rc.local aus auf. Stellen Sie dabei sicher, dass am Ende das Zeichen „&“ steht, um das Skript im Hintergrund auszuführen:

    #!/bin/bash
    # New file /usr/local/sbin/dombusnet.sh , permissions 0700
    # Thanks to Patrick Schaerer for testing and suggestions
    TTYDEV=/dev/ttyUSBDomBusNet
    TCPSERVER=192.168.6.2
    TCPPORT=2000
    while true; do
    socat pty,link=${TTYDEV},waitslave tcp:${TCPSERVER}:${TCPPORT}
    sleep 5
    done
    # End of file


    # File /etc/rc.local
    # ........
    /usr/local/sbin/dombusnet.sh &
    exit 0

Dies ist die günstigere Lösung zur Steuerung von DomBus-Modulen über eine kabelgebundene oder kabellose Verbindung, falls sich die DomBus-Module in einem Bereich befinden, in dem bereits ein Linux-Gerät aktiv ist.

2. Anschluss von DomBus-Modulen mithilfe eines RS485-zu-Ethernet- oder WiFi-Konverters

Mit einem Ethernet <--> RS485-Konverter wie MOXA NPORT oder anderen Geräten ist es wirklich einfach, RS485-Geräte (DomBus-Module oder andere Modbus RTU-Module) anzuschließen, die sich in einem anderen Bereich als der Controller befinden.

In diesem Fall sollte ein Treiber installiert werden, um einen virtuellen COM-Port (virtueller serieller Port) für den Zugriff auf den Remote-RS485-Bus zu erstellen.

Nachfolgend eine Liste von RS485-zu-Ethernet-Konvertern :

Wenn Sie weitere Geräte kennen, die für diesen Zweck zu angemessenen Preisen verwendet werden können, teilen Sie uns dies bitte mit.

3. Verwenden von ESP32 + ESPHome zum Verbinden von Modbus-Modulen wie DomBus

Slawomir beschreibt auf der GitHub-Seite https://github.com/SCiunczyk/wallbox-diy , wie man mit der ESP32 + ESPHome-Firmware ein Gateway zwischen Modbus-Geräten und Home Assistant über WLAN erstellt. Dies ist nur ein Teil des beschriebenen Projekts, das das Laden eines Elektrofahrzeugs mit einphasigem (niedrige Leistung, von 1 kW bis 7 kW, üblicherweise im Solarmodus verwendet) und dreiphasigem Strom (zum Laden des Fahrzeugs bei voller Geschwindigkeit, von 4 kW bis 22 kW) mithilfe des Creasol DomBusEVSE-Moduls ermöglicht.
Danke an Slawomir für die Informationen zu seiner sehr intelligenten Wallbox!