Les modules DomBus sont reliés entre eux par un bus série , à l'aide d'un câble d'alarme fin/commun à 4 fils : 2 pour transporter l'alimentation 12-24 Vdc et 2 fils pour les données à 115200 bps 8,n,1 en utilisant le bus équilibré de qualité industrielle RS485 .
Normalement, le bus est connecté au contrôleur domotique par un câble fin, à l'aide d'un adaptateur RS485/USB bon marché.
Dans le cas où le bus ne peut pas être physiquement connecté au contrôleur domotique (zone différente, impossibilité de faire passer des câbles, ...), il est possible d'utiliser une liaison radio ou un tunnel TCP pour maintenir en communication le contrôleur domotique avec le réseau DomBus .
Utilisation d'une liaison radio pour connecter ensemble deux bus RS485
Il est possible de trouver sur le marché des dispositifs radio permettant d'interconnecter deux bus RS485 de manière transparente. Il est ainsi possible de connecter par radio :
- un contrôleur domotique vers un ou plusieurs modules DomBus dans un emplacement distant
- un réseau DomBus avec un autre dans un endroit distant
Ci-dessous la description de la connexion utilisant différents systèmes radio.
1. Utilisation d'EBYTE EWM-290-400T20D pour obtenir une liaison sans fil transparente entre deux bus RS485
Le modèle EWM-290-400T20D d'EBYTE est un module LoRa très économique avec interface RS485. Il peut fonctionner à un débit radio de 62 500 bps dans la bande 433-434 MHz avec une puissance maximale de 20 dBm et jusqu'à 115 200 bps sur le port RS485. Attention, ce module ne porte pas le marquage CE ; en Europe, il ne peut donc être utilisé qu'à des fins de test.
Il est fourni avec un câble 5 fils :
- 5 V doit être connecté à 4,5 ÷ 5,5 V, consommation de courant maximale de 100 mA
- GND à connecter à la terre
- TXD/A à connecter à RS485 A
- RXD/B à connecter au RS485 B
- STB : je m'en fiche
L'antenne 433MHz, avec connecteur SMA-mâle, n'est pas fournie avec le module, elle doit donc être achetée à part.
Configuration du module EWM290
Le module peut être connecté par commandes AT. Le mode UART par défaut est 9600,8,n,1 et chaque commande doit être envoyée sous forme de séquence unique, sans délai entre les caractères. Vous pouvez ainsi sélectionner chaque commande à la souris et la coller dans le terminal.
Sous Linux, il est possible d'utiliser picocom -b9600 /dev/ttyUSBx pour connecter l'appareil au débit binaire de travail (9600 par défaut, -b115200 s'il est déjà configuré) et envoyer la commande
AT+MODE=2
pour mettre le module en mode configuration : maintenant le module sélectionne 9600bps, donc si vous avez émis cette commande à un débit binaire différent, quittez picocom (ctrl-a ctrl-x) et exécutez à nouveau la commande picocom -b9600 /dev/ttyUSBx , puis envoyez chacune des lignes suivantes en spécifiant une valeur KEY aléatoire entre 0 et 65535 (pas 12345 !).
AT+RATE=7
AT+PAQUET=0
À+PUISSANCE=0
AT+LBT=1
AT+UART=7,0
AT+KEY=12345
AT+CHANNEL=24
AT+MODE=0
Le module est désormais en mode transparent, formant une liaison radio sans fil entre les deux bus RS485.
Liaison LAN / WiFi / Internet entre le contrôleur domotique et les modules DomBus
Pour réaliser le tunnel série virtuel sur TCP/IP, il est possible d'utiliser les solutions suivantes.
1. Série virtuelle sur TCP/IP entre deux périphériques Linux
Si le contrôleur domotique est hébergé dans un périphérique Linux (par exemple un Raspberry PI ou un NUC, maintenant appelé « principal ») et que les périphériques DomBus sont connectés à un autre périphérique Linux (Raspberry, Rock PI S, QNAP, ..., maintenant appelé « esclave »), il est possible que le contrôleur principal connecte le réseau DomBus par une connexion TCP/IP, filaire ou sans fil, de cette manière :
- Sur l'appareil esclave (où le réseau DomBus est connecté à l'aide de l'adaptateur USB/RS485 bon marché), installez le service ser2net :
sudo apt install ser2net - Configurez le service ser2net en modifiant le fichier /etc/ser2net.yaml :
sudo nano /etc/ser2net.yaml - Supprimez les connexions existantes qui ne sont pas utilisées et insérez les lignes suivantes pour définir la connexion avec un bus :
connection: &dombus
accepter: tcp,2000
enable: on
options:
kickolduser: true
telnet-brk-on-sync: true
connector: serialdev,
/dev/ttyUSB0,
115200n81,local
- Il est possible de modifier le port TCP (2000, dans l'exemple) et le port série (ttyUSB0 dans l'exemple).
- Dans le cas où plusieurs bus DomBus sont connectés au périphérique esclave, définissez une connexion pour chaque bus (en spécifiant un port TCP différent pour chaque bus).
- Redémarrez le service ser2net à l'aide de la commande service ser2net restart
- Vérifiez que cela fonctionne en utilisant la commande telnet localhost 2000 sur le périphérique esclave ; ctrl+] pour quitter
- Sur l'appareil principal (avec Domoticz, Home Assistant, Node-RED, contrôleur OpenHAB...) installez l'application socat :
sudo apt install socat - Exécutez la commande suivante pour créer le port série virtuel /dev/ttyUSBDomBusNet pour gérer les périphériques DomBus connectés au périphérique esclave : socat pty,link=/dev/ttyUSBDomUSBBusNet tcp:192.168.6.2:2000 où 192.168.6.2 doit être remplacé par le numéro IP du périphérique esclave
- Dans le cas où la connexion est effectuée via Internet ou un ou plusieurs routeurs avec NAT, il peut être nécessaire de configurer la redirection de port / la destination NAT sur les routeurs
- Testez l'ensemble du système en exécutant la commande cat /dev/ttyUSBDomBusNet : si cela fonctionne, écrivez un petit script bash pour activer le port série virtuel, et appelez ce script depuis /etc/rc.local en vous assurant qu'il y a le caractère "&" à la fin, pour exécuter le script en arrière-plan :
#!/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
Il s'agit d'une solution moins coûteuse pour contrôler les modules DomBus par une connexion filaire ou sans fil dans le cas où les modules DomBus sont situés dans une zone où un périphérique Linux est déjà actif.
2. Connexion des modules DomBus à l'aide de convertisseurs RS485 vers Ethernet ou WiFi
En utilisant un convertisseur Ethernet <--> RS485 comme MOXA NPORT ou d'autres appareils, il est vraiment simple de connecter des appareils RS485 (modules DomBus ou autres modules Modbus RTU) qui sont placés dans une zone différente du contrôleur.
Dans ce cas, un pilote doit être installé pour créer un port COM virtuel (port série virtuel) pour accéder au bus RS485 distant.
Ci-dessous une liste de convertisseurs RS485 vers Ethernet :
- Waveshare RS485 vers WiFi / Ethernet : non testé, mais le fabricant affirme que cela fonctionne avec le programme socat (Linux)
- Waveshare RS485 TO ETH (disponible également avec support PoE ) : non testé, mais le fabricant affirme qu'il fonctionne à l'aide du programme socat (Linux)
- PUSR W610 RS485/RS232 vers Wi-Fi/Ethernet : non testé, mais le fabricant affirme qu'il fonctionne avec le programme Socat (Linux) ou le logiciel Windows fourni par le fabricant. Le port TCP est configurable sur le module (numéro de port local/distant).
- Protoss PW11 ou PW21 RS485 vers WiFi/Ethernet : non testé, mais cela devrait fonctionner
- Lilygo T-CAN485 : Carte WiFi basée sur ESP32, testée avec des modules DomBus équipés du firmware Modbus et d'un contrôleur Loxone. (Merci Filip pour le partage d'infos !)
Si vous connaissez d'autres appareils pouvant être utilisés à cette fin à des prix raisonnables, n'hésitez pas à nous le faire savoir.
3. Utilisation d'ESP32 + ESPHome pour connecter des modules Modbus comme DomBus
Slawomir décrit sur la page GitHub https://github.com/SCiunczyk/wallbox-diy comment utiliser le micrologiciel ESP32 + ESPHome pour créer une passerelle entre les appareils Modbus et Home Assistant, via le Wi-Fi. Ceci n'est qu'une partie du projet décrit, qui permet de recharger un véhicule électrique en monophasé (faible puissance, de 1 kW à 7 kW, généralement utilisé en mode solaire) et en triphasé (pour recharger le véhicule à pleine vitesse, de 4 kW à 22 kW) grâce au module Creasol DomBusEVSE .
Merci à Slawomir d'avoir partagé des informations sur sa wallbox très intelligente !