le 01 06 2020 . test avec 2020-02-13-raspbian-buster-lite.img sous RPI3A et RPI4B sous jeedom 4.0.54
Wiki => Utilisation du version plugin modbus RTU Développé par Jeedom SAS beta 2020-05-12 09:27:31 (5 euro )
Le Développeurs Bebel27 est entrain de mettre à jour sont plugin pour pouvoir faire le même travail . Cela permettra d’avoir qu’un seule plugin pour le TCP/IP et le RTU ! Merci à lui car contrairement a celui de jeedom, il est gratuit ! ( tu gagnes 5 € )
MyModbus Développé par bebel27
https://bebel27a.github.io/jeedom-mymobdus.github.io/fr_FR/
avec
un compteur d énergie SDM230-Modbus-MID 100A Mono digitaler LCD Wechselstromzähler ( 35 € )
https://www.ebay.de/itm/digitaler-LCD-Wechselstromz%C3%A4hler-Stromz%C3%A4hler-S0-RS485-Modbus-RTU-MID2020-geeicht/362917300869?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649
Modbus-RTU-MID2020-geeicht/362917300869?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649
et une interface Zihatec Modbus Shield inteface Professional RS422/RS485 Shield for Raspberry Pi B+, 2B, 3B and 4B (37 €uro )
cela fonctionne aussi avec une clef usb à 0.8 € ( et il n’y a aucune configuration a faire , contrairement a l’interface Zihatec ) . Linux a déjà les drivers compatibles . Rien à faire, plug and play… . Par contre pour mon windows 7 pro ,je n ai jamais réussis à installé les drivers . J’ai du prendre mon portable avec windows 10 familly pour capter et comprendre les premiers signaux avec ModbusDoctorV2.Drivers pour Windows-CH340-Driver chipset CP210xVCPInstaller_x64.exe lien du fabriqaunt drivers
https://es.aliexpress.com/item/834970564.html?spm=a2g0s.9042311.0.0.274263c0lhCEGT
Cela fonctionne aussi avec la USB-RS485-WE-1800-BT Chipset FT232RL Product Type UART Convert Cable € 14,61 ( mais j ai payé 35 € à la post pour les frais de douane … ) http://www.ftdichip.com/FTDrivers.htm
1-Changer les switch de la carte Zihatec
sw1
1=off
2=on
3=on
4=off
sw2
1=off
2=off
3=on
4=on
sw3
1=off
2=off
3=off
4=off
connection a votre slave RTU ( EASTRON )
le connecteur A = le « + »
le connecteur B = « - »
actives ton interface serial sur ton RPI avec la commande
sudo raspi-config
? goto ‹ 5 Interfacing Options ›
? goto ‹ P6 Serial ›
? ‹ Would you like a login shell to be accessible over serial? › → NO
? ‹ Would you like the serial port hardware to be enabled? › → YES
verifie avec la commande
ls -l /dev si
serial0 → ttyS0
Note: /dev/serial0 and /dev/serial1 are symbolic links which point to either /dev/ttyS0 or /dev/ttyAMA0.
nano /boot/config.txt => verifies si
enable_uart=1
/dev/bus/usb
/dev/ttyUSB0 ( clef usb ) 1a86 USB2.0-serial (/dev/ttyUSB0)
/dev/serial0 ( hat zihatec.de interface )
Avec une celf usb à 0.8€ comme interface Modbus RTU , je laisse sur " auto " , je ne choisi pas 1a86 USB2.0-serial (/dev/ttyUSB0) . et cela fonctionne . Avec la carte Zihatec , je choisi /dev/serial0 .
Pour la clef usb ca donne =>
Dans le EASTRON SDM230 j’ai personnellement choisis les parametres suivants :
bd 9600
databit X8
stopbits One
party none
DRT FALSE
RTS FALSE
Timeout 1000
N° escalve ID = 10
Attention quand tu achetes le SMD230 , les parametres sont bizars . par exemple, la vitesse de communication à 1000 bauds et un stop bits sur « 2 » . IL FAUT LES CHANGERS
je mis une résistance électrique sur le sdm230 de 4k7 Pull-down Resistor car je fais des tests avec une celf usb également ( qui ne posséde pas le choix sur elle même avec un switch ) de choisir une resistance ou non . Même avec la resistance de 4700 ohms sur sdm230 , la carte Zihatec fonctionne avec le switch SW3 N° 1 sur OFF .
liens utiles
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
Log en fonctionnement :
[2020-06-01 12:15:33][DEBUG] : http://127.0.0.1:80 "POST
/plugins/modbusrtu/core/php/jeeModbusrtu.php?apikey=BZyfVAsWTqaNtYTD7F13q0FKuFq2GkZ4
HTTP/1.1" 200 0
[2020-06-01 12:15:36][DEBUG] : {"88": 0.0, "86": 0.0, "84": 0.0, "24": -443.5833435058594, "0":
231.58041381835938, "344": 67.73200225830078, "288": 0.0, "342": 158.02099609375, "6":
2.8238368034362793, "76": 0.07400000095367432, "74": 0.0, "72": 158.02099609375, "70":
51.6129035949707, "90": 0.0, "92": 0.0, "94": 0.0, "78": 67.65799713134766, "12": 440.21246337890625,
"18": 624.9713134765625, "30": 0.7043723464012146, "36": 314.7755126953125, "294": 0.0}
[2020-06-01 12:15:36][INFO] : Decode data : {"id": "1", "result": {"88": 0.0, "86": 0.0, "84": 0.0, "24": -
443.5833435058594, "0": 231.58041381835938, "344": 67.73200225830078, "288": 0.0, "342":
158.02099609375, "6": 2.8238368034362793, "76": 0.07400000095367432, "74": 0.0, "72":
158.02099609375, "70": 51.6129035949707, "90": 0.0, "92": 0.0, "94": 0.0, "78": 67.65799713134766, "12":
440.21246337890625, "18": 624.9713134765625, "30": 0.7043723464012146, "36": 314.7755126953125,
"294": 0.0}}
[2020-06-01 12:15:36][DEBUG] : Handling RTU for sdm230
[2020-06-01 12:15:36][DEBUG] : Handling local request read for sdm230
[2020-06-01 12:15:36][DEBUG] : Command to execute sudo /usr/bin/python
/var/www/html/plugins/modbusrtu/resources/modbusrtud/modbus_rtu.py --slave 10 --device /dev/ttyS0 --baud
9600 --byte 8 --parity none --stop 1 --register '{"listdevice":[{"datatype": "float", "nbregister": "2",
"functioncode": "4", "location": "0"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "6"},
{"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "12"}, {"datatype": "float", "nbregister":
"2", "functioncode": "4", "location": "18"}, {"datatype": "float", "nbregister": "2", "functioncode": "4",
"location": "24"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "30"}, {"datatype":
"float", "nbregister": "2", "functioncode": "4", "location": "36"}, {"datatype": "float", "nbregister": "2",
"functioncode": "4", "location": "70"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location":
"72"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "74"}, {"datatype": "float",
"nbregister": "2", "functioncode": "4", "location": "76"}, {"datatype": "float", "nbregister": "2", "functioncode":
"4", "location": "78"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "84"}, {"datatype":
"float", "nbregister": "2", "functioncode": "4", "location": "86"}, {"datatype": "float", "nbregister": "2",
"functioncode": "4", "location": "88"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location":
"90"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "92"}, {"datatype": "float",
"nbregister": "2", "functioncode": "4", "location": "94"}, {"datatype": "float", "nbregister": "2", "functioncode":
"4", "location": "288"}, {"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "294"},
{"datatype": "float", "nbregister": "2", "functioncode": "4", "location": "342"}, {"datatype": "float", "nbregister":
"2", "functioncode": "4", "location": "344"}]}' --action read
[2020-06-01 12:15:36][DEBUG] : Send to jeedom : {u'devices': {u'1': {'id': u'1', 'result': {u'88': 0.0, u'86': 0.0,
u'84': 0.0, u'24': -443.5833435058594, u'0': 231.58041381835938, u'344': 67.73200225830078, u'288': 0.0,
u'342': 158.02099609375, u'6': 2.8238368034362793, u'76': 0.07400000095367432, u'74': 0.0, u'72':
158.02099609375, u'70': 51.6129035949707, u'90': 0.0, u'92': 0.0, u'94': 0.0, u'78': 67.65799713134766, u'12':
440.21246337890625, u'18': 624.9713134765625, u'30': 0.7043723464012146, u'36': 314.7755126953125,
u'294': 0.0}}}}
pour les finitions
mettre en KW/H => Formule de calcul (#value# pour la valeur) => #value#/1000
mettre que 2 chiffres après la virgule => Arrondi (chiffre après la virgule) => 2
Mode de lissage maximum ( pr avoir bcp de points enregistrés )
, voici mes parametres
Je suis Off Grid, donc la fréquence est correct ( entre 48 et 52 Hz selon mes panneaux solaires et le Sunny Island… ) . Comme sont nom l’indique, le SDM230-Modbus-MID est " MID 2020 " . Donc avec la [certification MID( The Measuring Instruments Directive 2014/32/EU) . Lien wikipedia ici