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-24Vdc e 2 fili per i dati a 115200 bps 8,n,1 utilizzando il bus bilanciato di livello industriale RS485 .

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

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


Utilizzo di un collegamento radio per collegare tra loro due bus RS485

Funziona con moduli DomBus programmati con protocolli DomBus e Modbus.

È possibile trovare sul mercato dispositivi radio che consentono 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 tramite 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 funzionare a 62500 bps di bitrate in aria 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+MODALITÀ=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+MODALITÀ=0

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


 

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

Vengono prese in considerazione alcune soluzioni per consentire al modulo DomBus di comunicare con il controller domotico.

Si prega di notare che i moduli DomBus sono disponibili con due firmware diversi:

1. Supporto del protocollo DomBus , protocollo proprietario a bassissima latenza, ideale per relè, uscite, sensori, ingressi, pulsanti/interruttori, sensori di allarme, EVSE, controller per inseguitori solari e altro ancora... Utilizzando il plugin Domoticz o DomBusGateway (bridge DomBus 2 MQTT con AutoDiscovery, compatibile con tutti i sistemi di automazione domestica che supportano MQTT ), tutte le entità vengono create automaticamente.

2. Supporto del protocollo Modbus , standard, non adatto a pulsanti/interruttori o sensori di allarme che devono essere gestiti senza latenza. Il protocollo Modbus è adatto per uscite relè, moduli EVSE, controller per inseguitori solari, ingressi per sensori di temperatura/umidità e altri ingressi/sensori con intervallo di polling maggiore o uguale a 5 secondi. È compatibile con quasi tutti i sistemi di domotica e può anche essere utile per realizzare prodotti personalizzati utilizzando il noto protocollo Modbus .

Building automation network using DomBus modules and WiFi/Internet trunking

1. Utilizzo dell'hardware DomBusGatewayPIS (bridge DomBus 2 MQTT)

Funziona con moduli DomBus programmati con protocollo DomBus.

Si tratta di un mini computer pronto all'uso, basato su Rock PI S, che consuma solo 400 mW, dotato di Linux + firewall + backup + mosquitto + software DomBusGateway, che consente di connettere uno o più moduli DomBus (utilizzando il protocollo DomBus , non Modbus!) a un broker MQTT (all'interno dello stesso mini computer, o a un broker esterno come Mosquitto in esecuzione nel controller Home Assistant). La comunicazione con i sistemi di domotica funziona tramite il protocollo standard MQTT, anche con estensione AutoDiscovery per i controller che supportano questa funzionalità (come Home Assistant, NodeRED, OpenHAB, ioBroker).

Il modulo è disponibile all'indirizzo https://store.creasol.it/DomBusGatewayPIS , ma è possibile realizzarlo autonomamente utilizzando l'immagine scaricabile gratuitamente. Consultare https://github.com/CreasolTech/DomBusGateway per le istruzioni.

 

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

Funziona con moduli DomBus programmati con protocolli DomBus e Modbus.

Se il controller domotico è ospitato in un dispositivo Linux (ad esempio un Raspberry PI o NUC, ora chiamato "main") e i dispositivi DomBus sono collegati 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 è collegata 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 deve 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 sia presente 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

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

Funziona con moduli DomBus programmati con protocolli Modbus. Alcuni moduli LAN/WiFi supportano anche la porta seriale virtuale, funzionando anch'essi con il protocollo DomBus.

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 di convertitori RS485-ethernet :

  • Waveshare RS485 a WiFi/Ethernet : non testato, ma l'azienda produttrice afferma che funziona utilizzando il programma socat (Linux)
  • Waveshare RS485 TO ETH (disponibile anche con supporto PoE ): non testato, ma la società produttrice afferma che funziona utilizzando il programma socat (Linux)
  • PUSR W610 RS485/RS232 a WiFi/Ethernet : non testato, ma il produttore afferma che funziona utilizzando il programma socat (Linux) o il software Windows fornito dal produttore. La porta TCP è configurabile sul modulo (numero di porta locale/remota).
  • Protoss PW11 o PW21 RS485 a WiFi/Ethernet : non testato, ma dovrebbe funzionare
  • Lilygo T-CAN485 : scheda WiFi basata su ESP32, testata con moduli DomBus dotati di firmware Modbus e controller Loxone. (Grazie Filip per aver condiviso le informazioni!)

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

4. Utilizzo di ESP32 + ESPHome per collegare moduli Modbus come DomBus con firmware Modbus

Funziona con moduli DomBus programmati con protocollo Modbus.

Slawomir descrive nella pagina github https://github.com/SCiunczyk/wallbox-diy come utilizzare il firmware ESP32 + ESPHome per creare un gateway tra dispositivi Modbus (moduli DomBus programmati con firmware Modbus, non firmware Dombus) e Home Assistant, tramite WiFi. Questa è solo una parte del progetto descritto, che permette di ricaricare un veicolo elettrico utilizzando alimentazione monofase (bassa potenza, da 1 kW a 7 kW, generalmente utilizzata in modalità solare) e 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 smart wallbox!