Ich habe ein Problem die Modbus Schnittstelle bei einem WaveShare 4 Port RS485/USB unter FHEM so zu konfigurieren, dass diese für den Deye Wechselrichter auch funktioniert.
Mit /dev/ttyACM0@9600 funktioniert die Schnittstelle, aber das ist zu unsicher wenn die USB Schnittstellen vertauscht werden.
Die korrekte Konfiguration wäre /dev/serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC62B6ABCD-if00, aber da hat Modbus mit der Schnittstelle zum Deye Inverter ein Problem.
Verwende ich einen Eastron Energiezähler funktioniert das WaveShare 4 Port RS485/USB Gerät ohne Probleme mit der Schnittstellen-Definition /dev/ttyACM0@9600
als auch mit /dev/serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC62B6ABCD-if00.
LOG /dev/ttyACM0@9600
2025.02.24 16:30:10.806 3: Opening ModbusRS485_1WS_OG2_HZR device /dev/ttyACM0
2025.02.24 16:30:10.809 3: Setting ModbusRS485_1WS_OG2_HZR serial parameters to 9600,8,N,1
2025.02.24 16:30:10.811 3: ModbusRS485_1WS_OG2_HZR device opened
LOG /dev/serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC62B6ABCD-if00
2025.02.24 16:33:49.002 3: Setting ModbusRS485_1WS_OG2_HZR serial parameters to 9600,8,N,1
2025.02.24 16:33:49.004 3: /dev/serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC62B6ABCD-if00 reappeared (ModbusRS485_1WS_OG2_HZR)
2025.02.24 16:33:49.075 3: /dev/serial/by-id/usb-WCH.CN_USB_Quad_Serial_BC62B6ABCD-if00 disconnected, waiting to reappear (ModbusRS485_1WS_OG2_HZR)
Was mich dabei irritiert ist Schnittstellen Fehlermelung im LOG und trotzdem Daten aus dem Deye Inverter ausgelesen werden.
list ModbusRS485_1WS_OG2_HZR
Internals:
CFGFN /media/hdd/fhem/mycfg/schnittstellen_rasp02.cfg
DEF /dev/ttyACM0@9600
DeviceName /dev/ttyACM0@9600
EXPECT idle
FD 52
FUUID 66881de9-f33f-f4d2-fd51-f91eca06b2e06599
LASTOPEN 1740411538.40597
MODE master
NAME ModbusRS485_1WS_OG2_HZR
NOTIFYDEV global
NR 403
NTFY_ORDER 50-ModbusRS485_1WS_OG2_HZR
PARTIAL
PROTOCOL RTU
STATE opened
SerialConn 1
TYPE Modbus
devioLoglevel 3
devioNoSTATE 1
eventCount 1312
nextOpenDelay 60
nextQueueRun 1740411554.71805
QUEUE:
HASH(0x55a4a7c818)
HASH(0x55a4acb018)
HASH(0x55a4c8d038)
HASH(0x55a422c3c8)
HASH(0x55a419e258)
HASH(0x55a41267c8)
HASH(0x55a4c639f0)
HASH(0x55a4a4a628)
HASH(0x55a4b2e2f8)
HASH(0x55a4bafaf8)
HASH(0x55a4b37df8)
HASH(0x55a41347b0)
HASH(0x55a4ac3f08)
HASH(0x55a4f1b5f0)
HASH(0x55a4e6bc28)
HASH(0x55a45f1508)
HASH(0x55a466c540)
HASH(0x55a505dae0)
HASH(0x55a4667c90)
HASH(0x55a4e1c890)
HASH(0x55a49e2570)
READ:
BUFFER
READINGS:
2025-02-24 16:38:58 state opened
REMEMBER:
lid 12
lname Deye_12k
lrecv 1740411554.61735
lsend 1740411554.58323
defptr:
Deye_12k 12
Attributes:
alias ModBus RS485 1 | WaveShare USB - OG2 Heizraum
devStateIcon opened:lan_rs485@0CFB0C Open:lan_rs485@red disconnected:lan_rs485@red disabled:lan_rs485@orange
devStateStyle style="text-align:left;font-weight:bold;"
disable 0
group Schnittstellen Modbus
icon lan_rs485
queueDelay 1
queueMax 200
room _RxTx
sortby 01.01
Was mir zudem aufgefallen ist, ist das beim list der Schnittstelle einmal nur die Internals der Schnittstelle auftauchen und einmal der komplette Inverter hinter der Schnittstelle.
list ModbusRS485_1WS_OG2_HZR inklusive Inverter Internals.
Internals:
CFGFN /media/hdd/fhem/mycfg/schnittstellen_rasp02.cfg
DEF /dev/ttyACM0@9600
DeviceName /dev/ttyACM0@9600
EXPECT response
FD 52
FUUID 66881de9-f33f-f4d2-fd51-f91eca06b2e06599
LASTOPEN 1740411538.40597
MODE master
NAME ModbusRS485_1WS_OG2_HZR
NOTIFYDEV global
NR 403
NTFY_ORDER 50-ModbusRS485_1WS_OG2_HZR
PARTIAL
PROTOCOL RTU
STATE opened
SerialConn 1
TYPE Modbus
devioLoglevel 3
devioNoSTATE 1
eventCount 1312
nextOpenDelay 60
nextQueueRun 1740411825.13608
nextTimeout 1740411826.13435
FRAME:
QUEUE:
HASH(0x55a4b31af8)
HASH(0x55a4e91948)
HASH(0x55a4963278)
HASH(0x55a41585c0)
HASH(0x55a4c222d0)
HASH(0x55a4bd8658)
HASH(0x55a4bf7b08)
HASH(0x55a417b380)
HASH(0x55a4163d80)
HASH(0x55a4bc5300)
HASH(0x55a4196e88)
HASH(0x55a4a7ca58)
HASH(0x55a5025f80)
HASH(0x55a4e685a8)
HASH(0x55a4bcf280)
HASH(0x55a49ac518)
HASH(0x55a4bcf298)
HASH(0x55a4b71758)
HASH(0x55a412eb38)
HASH(0x55a464a130)
HASH(0x55a4a502f8)
HASH(0x55a4baf420)
HASH(0x55a4c68660)
HASH(0x55a4b38020)
HASH(0x55a4af8528)
READ:
BUFFER
READINGS:
2025-02-24 16:38:58 state opened
REMEMBER:
lid 12
lname ModbusRS485_1WS_OG2_HZR
lrecv 1740411822.63217
lsend 1740411824.13596
REQUEST:
ADR 500
DBGINFO getUpdate for Betriebsstatus len 1
FCODE 3
FRAME ␌␃␁�␁�␙
LEN 1
MODBUSID 12
OPERATION read
QUEUED 1740411824.06883
READING Betriebsstatus
SENT 1740411824.13435
TYPE h
MASTERHASH:
CFGFN /media/hdd/fhem/mycfg/pv_anlagen/pv_anlagen_rasp02.cfg
DEF 12 5
FUUID 66894adc-f33f-f4d2-6b74-3b3294e22a06e154
IODev ModbusRS485_1WS_OG2_HZR
Interval 5
MODBUSID 12
MODE master
MODULEVERSION Modbus 4.5.6 - 7.11.2023
NAME Deye_12k
NOTIFYDEV global
NR 1359
NTFY_ORDER 50-Deye_12k
PROTOCOL RTU
STATE
<b>
<br>
<span style='color:#2986cc'>Akku Alterung<span style='color:transparent'>....<span style='color:#2986cc'>100 %
<span style='color:transparent'>.............
<span style='color:#2986cc'>Akku Kapazität<span style='color:transparent'>....<span style='color:#2986cc'>85 %
<br>
<br>
<span style='color:#FFDD00'>Akku Spannung<span style='color:transparent'>....<span style='color:#FFDD00'>320.70 V
<span style='color:transparent'>.............
<span style='color:#AAFF00'>Akku Strom<span style='color:transparent'>....<span style='color:#AAFF00'>-1.87 A
<span style='color:transparent'>.............
<span style='color:#00FFFF'>Akku Leistung<span style='color:transparent'>....<span style='color:#00FFFF'>-0.590 kW
<br>
<br>
<span style='color:#c90076'>Akku Energie Entladung Heute<span style='color:transparent'>....<span style='color:#c90076'>5.4 kWh
<span style='color:transparent'>...........
<span style='color:#c90076'>Akku Energie Entladung Gesamt<span style='color:transparent'>....<span style='color:#c90076'>1.9083 MWh
<br>
<span style='color:#c90076'>Akku Energie Ladung Heute<span style='color:transparent'>....<span style='color:#c90076'>3.2 kWh
<span style='color:transparent'>................
<span style='color:#c90076'>Akku Energie Ladung Gesamt<span style='color:transparent'>....<span style='color:#c90076'>2.2298 MWh
<br>
<br>
<br>
<span style='color:transparent'>
<span style='color:#FFFFFF'>Status
<span style='color:transparent'>...
<span><svg class=" rc_dot #00fb45" data-txt="rc_dot@#00fb45" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.0" width="468pt" height="468pt" viewBox="0 0 468 468" id="svg2"> <defs id="defs12" /> <metadata id="metadata4"> Created by potrace 1.8, written by Peter Selinger 2001-2007 <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <g transform="matrix(0.189474,0,0,-0.189474,0,468)" id="g6" /> <path d="m 459.3017,232.56468 a 225.07627,225.07627 0 0 1 -450.1525409,0 225.07627,225.07627 0 1 1 450.1525409,0 z" id="path2984" style="fill:#00fb45;fill-opacity:1;stroke:none" /> </svg>
</span>
..............................................................................................
Entweder habe ich einen Fehler bei der Deye Inverter Konfiguration der mit /dev/ttyACM0@9600 nicht auffällt, oder es liegt an der Kombination.