I moduli DomBus sono collegati tra loro tramite un bus seriale , utilizzando un cavo di allarme sottile/comune con 4 fili: 2 per trasportare l'alimentazione 12-24 Vdc e 2 fili per i dati a 115200 bps 8,n,1 utilizzando il bus bilanciato di livello industriale RS485 .

Solitamente il bus viene collegato al controller domotico tramite un cavo sottile, utilizzando un economico adattatore RS485/USB.

Nel caso in cui il bus non possa essere collegato fisicamente al controller domotico (zona diversa, nessuna possibilità di passaggio cavi, ...), è possibile utilizzare un collegamento radio o un tunnel TCP per mantenere in comunicazione il controller domotico con la rete DomBus .


Utilizzo di un collegamento radio per collegare insieme due bus RS485

Sul mercato sono disponibili dispositivi radio che permettono di interconnettere due bus RS485 in modo trasparente. In questo modo è possibile collegare via radio :

  • un controller domotico per uno o più moduli DomBus in una posizione remota
  • una rete DomBus con un'altra in una posizione remota

Di seguito la descrizione del collegamento mediante diversi sistemi radio.

1. Utilizzo di EBYTE EWM-290-400T20D per ottenere un collegamento wireless trasparente tra due bus RS485

Il modello EBYTE EWM-290-400T20D è un modulo LoRa molto economico con interfaccia RS485, in grado di operare a un bitrate aereo di 62500 bps nella banda 433÷434 MHz con una potenza fino a 20 dBm e fino a 115200 bps sulla porta RS485. Si prega di notare che il modulo non ha il marchio CE, quindi in Europa può essere utilizzato solo per test.

E' dotato di un cavo a 5 fili:

  • 5V deve essere collegato a 4,5÷5,5V, consumo di corrente massimo 100mA
  • GND da collegare a terra
  • TXD/A da collegare a RS485 A
  • RXD/B da collegare a RS485 B
  • STB: non mi interessa

L'antenna da 433 MHz, con connettore SMA maschio, non è fornita con il modulo, quindi deve essere acquistata separatamente.

Configurazione del modulo EWM290

Il modulo può essere connesso tramite comandi AT. La modalità UART predefinita è 9600,8,n,1 e ogni comando deve essere inviato come un'unica sequenza, senza ritardi tra i caratteri, in modo da poter selezionare ciascun comando con il mouse e incollarlo nel programma terminale.

In Linux è possibile utilizzare picocom -b9600 /dev/ttyUSBx per connettere il dispositivo al bitrate di lavoro (9600 di default, -b115200 se già configurato) e inviare il comando

AT+MODE=2

per mettere il modulo in modalità di configurazione: ora il modulo seleziona 9600 bps, quindi se hai emesso quel comando a un bitrate diverso, esci da picocom (ctrl-a ctrl-x) ed esegui di nuovo il comando picocom -b9600 /dev/ttyUSBx , quindi invia ciascuna delle seguenti righe specificando un valore KEY casuale compreso tra 0 e 65535 (non 12345!).

AT+TASSO=7
AT+PACCHETTO=0
AT+POTENZA=0
AT+LBT=1
AT+UART=7,0
AT+KEY=12345
AT+CANALE=24
AT+MODE=0

Ora il modulo è in modalità trasparente e forma un collegamento radio wireless tra i due bus RS485.


 

Linea LAN/WiFi/Internet tra il controller domotico e i moduli DomBus

Per realizzare il tunnel seriale virtuale su TCP/IP è possibile utilizzare le seguenti soluzioni.

Building automation network using DomBus modules and WiFi/Internet trunking

1. Seriale virtuale su TCP/IP tra due dispositivi Linux

Se il controller domotico è ospitato in un dispositivo Linux (ad esempio un Raspberry PI o NUC, ora chiamato "main") e i dispositivi DomBus sono connessi a un altro dispositivo Linux (Raspberry, Rock PI S, QNAP, ..., ora chiamato "slave"), è possibile che il controller principale si colleghi alla rete DomBus tramite una connessione TCP/IP, cablata o wireless, in questo modo:

  1. Sul dispositivo slave (dove la rete DomBus è connessa tramite l'economico adattatore USB/RS485), installare il servizio ser2net :
    sudo apt install ser2net
  2. Configurare il servizio ser2net modificando il file /etc/ser2net.yaml :
    sudo nano /etc/ser2net.yaml
  3. Rimuovere le connessioni esistenti che non vengono utilizzate e inserire le seguenti righe per definire la connessione con un bus:
    connection: &dombus
    accepter: tcp,2000
    enable: on
    options:
    kickolduser: true
    telnet-brk-on-sync: true
    connector: serialdev,
    /dev/ttyUSB0,
    115200n81,local
  4. È possibile modificare la porta TCP (2000, nell'esempio) e la porta seriale (ttyUSB0 nell'esempio).
  5. Nel caso in cui più di un bus DomBus sia collegato al dispositivo slave, definire una connessione per ciascun bus (specificando una porta TCP diversa per ciascun bus).
  6. Riavviare il servizio ser2net utilizzando il comando service ser2net restart
  7. Verificare che funzioni utilizzando il comando telnet localhost 2000 sul dispositivo slave; ctrl+] per uscire
  8. Sul dispositivo principale (con Domoticz, Home Assistant, Node-RED, controller OpenHAB...) installare l'applicazione socat :
    sudo apt install socat
  9. Eseguire il seguente comando per creare la porta seriale virtuale /dev/ttyUSBDomBusNet per gestire i dispositivi DomBus collegati al dispositivo slave: socat pty,link=/dev/ttyUSBDomUSBBusNet tcp:192.168.6.2:2000 dove 192.168.6.2 dovrebbe essere sostituito con il numero IP del dispositivo slave
  10. Nel caso in cui la connessione venga effettuata tramite Internet o uno o più router con NAT, potrebbe essere necessario configurare l'inoltro delle porte/NAT di destinazione sui router
  11. Testare l'intero sistema eseguendo il comando cat /dev/ttyUSBDomBusNet : se funziona, scrivere un piccolo script bash per attivare la porta seriale virtuale e richiamare tale script da /etc/rc.local assicurandosi che alla fine ci sia il carattere "&", per eseguire lo script in background:

    #!/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

Questa è la soluzione più economica per controllare i moduli DomBus tramite una connessione cablata o wireless nel caso in cui i moduli DomBus si trovino in un'area in cui è già attivo un dispositivo Linux

2. Collegamento dei moduli DomBus tramite convertitori RS485-Ethernet o WiFi

Utilizzando un convertitore Ethernet <--> RS485 come MOXA NPORT o altri dispositivi è davvero semplice collegare dispositivi RS485 (moduli DomBus o altri moduli Modbus RTU) che si trovano in un'area diversa dal controller.

In questo caso è necessario installare un driver per creare una porta COM virtuale (porta seriale virtuale) per accedere al bus RS485 remoto.

Di seguito un elenco dei convertitori RS485-ethernet :

Se conoscete altri dispositivi che possono essere utilizzati allo stesso scopo a prezzi ragionevoli, vi preghiamo di comunicarcelo.

3. Utilizzo di ESP32 + ESPHome per connettere moduli Modbus come DomBus

Slawomir descrive nella pagina GitHub https://github.com/SCiunczyk/wallbox-diy come utilizzare il firmware ESP32 + ESPHome per creare un gateway tra dispositivi Modbus e Home Assistant, tramite WiFi. Questa è solo una parte del progetto descritto, che permette di ricaricare un veicolo elettrico utilizzando sia la corrente monofase (bassa potenza, da 1 kW a 7 kW, generalmente utilizzata in modalità solare) che quella trifase (utilizzata per caricare il veicolo a piena velocità, da 4 kW a 22 kW) utilizzando il modulo Creasol DomBusEVSE .
Grazie a Slawomir per aver condiviso informazioni sulla sua wallbox intelligentissima!