ich habe eine Stark in Strom Easy Wallbox aus 2021 die ich gerne smart machen würde. Hierzu wollte ich zuerst testen ob Modbus funktioniert. In der Wallbox ist ein EVSE-WB Modul verbaut, das jedoch selbst kein Modbus hat. Wie es scheint wurde damals eine UART -> RS485 Adapterplatine mitgeliefert. Am PC/Raspberry verwende ich einen USB -> RS485 Stick von Amazon (https://www.amazon.de/Greluma-Konverter ... 09P8CX69G/). Verkabelt wurde das ganze mit einem ca 40cm langen twisted-pair billig Lan Kabel, also bei der Schrimung etc bin ich mir nicht ganz sicher. Ich habe nichts getan um Modbus zu aktivieren (AN->GND 5x in 3sec) da zumindest die erste Abfrage auch ohne ging und Modbus damit aktiv sein musste.
Nun zu meinem Problem. Nach dem (Neu-)Start der Wallbox (via Sicherung oder Schalter vorn) ist es möglich genau einmal die Register auszulesen, alle darauf folgenden Versuche schlagen leider fehl. Habe das ganze unter Windows mit QModBus und unter Linux/Python mit pymodbus versucht.
Anbei mal logs vom auslesen direkt nach dem Einschalten:
Code: Alles auswählen
>>> import pymodbus
>>> pymodbus.pymodbus_apply_logging_config("DEBUG")
>>> from pymodbus.client import ModbusSerialClient
>>> c = ModbusSerialClient(method = "rtu", port="/dev/ttyUSB0", baudrate=9600, stopbits=1, bytesize=8, timeout=1)
>>> rq = c.read_holding_registers(2000,count=8,slave=1)
2023-08-15 13:13:37,273 DEBUG logging:102 Current transaction state - TRANSACTION_COMPLETE
2023-08-15 13:13:37,274 DEBUG logging:102 Running transaction 28
2023-08-15 13:13:37,275 DEBUG logging:102 SEND: 0x1 0x3 0x7 0xd0 0x0 0x8 0x44 0x81
2023-08-15 13:13:37,275 DEBUG logging:102 Changing state to IDLE - Last Frame End - None Current Time stamp - 1692098677.275312
2023-08-15 13:13:37,279 DEBUG logging:102 New Transaction state "SENDING"
2023-08-15 13:13:37,280 DEBUG logging:102 Changing transaction state from "SENDING" to "WAITING FOR REPLY"
2023-08-15 13:13:37,431 DEBUG logging:102 Changing transaction state from "WAITING FOR REPLY" to "PROCESSING REPLY"
2023-08-15 13:13:37,432 DEBUG logging:102 RECV: 0x1 0x3 0x10 0x0 0x10 0x0 0x1 0x0 0x5 0x0 0x1 0x0 0x0 0x2 0x9 0x0 0x0 0x0 0x10 0x36 0xa7
2023-08-15 13:13:37,432 DEBUG logging:102 Got response!!!
2023-08-15 13:13:37,432 DEBUG logging:102 Processing: 0x1 0x3 0x10 0x0 0x10 0x0 0x1 0x0 0x5 0x0 0x1 0x0 0x0 0x2 0x9 0x0 0x0 0x0 0x10 0x36 0xa7
2023-08-15 13:13:37,433 DEBUG logging:102 Getting Frame - 0x3 0x10 0x0 0x10 0x0 0x1 0x0 0x5 0x0 0x1 0x0 0x0 0x2 0x9 0x0 0x0 0x0 0x10
2023-08-15 13:13:37,433 DEBUG logging:102 Factory Response[ReadHoldingRegistersResponse': 3]
2023-08-15 13:13:37,433 DEBUG logging:102 Frame advanced, resetting header!!
2023-08-15 13:13:37,434 DEBUG logging:102 Adding transaction 1
2023-08-15 13:13:37,434 DEBUG logging:102 Getting transaction 1
2023-08-15 13:13:37,434 DEBUG logging:102 Changing transaction state from "PROCESSING REPLY" to "TRANSACTION_COMPLETE"
>>> print(rq.registers)
[16, 1, 5, 1, 0, 521, 0, 16]
Code: Alles auswählen
>>> c.read_holding_registers(1000,7,unit=1)
2023-08-15 13:14:37,219 DEBUG logging:102 Current transaction state - TRANSACTION_COMPLETE
2023-08-15 13:14:37,219 DEBUG logging:102 Running transaction 2
2023-08-15 13:14:37,220 DEBUG logging:102 SEND: 0x0 0x3 0x3 0xe8 0x0 0x7 0x85 0xa9
2023-08-15 13:14:37,220 DEBUG logging:102 Changing state to IDLE - Last Frame End - None Current Time stamp - 1692097057.220476
2023-08-15 13:14:37,225 DEBUG logging:102 New Transaction state "SENDING"
2023-08-15 13:14:37,225 DEBUG logging:102 Changing transaction state from "SENDING" to "WAITING FOR REPLY"
2023-08-15 13:14:39,231 DEBUG logging:102 No response received, Expected 19 bytes Received 0 bytes !!!!
2023-08-15 13:14:39,231 DEBUG logging:102 Changing transaction state from "WAITING FOR REPLY" to "PROCESSING REPLY"
2023-08-15 13:14:39,232 DEBUG logging:102 RECV:
2023-08-15 13:14:39,232 DEBUG logging:102 Processing:
2023-08-15 13:14:39,232 DEBUG logging:102 Getting transaction 0
2023-08-15 13:14:39,234 DEBUG logging:102 Changing transaction state from "PROCESSING REPLY" to "TRANSACTION_COMPLETE"
ModbusIOException()
Code: Alles auswählen
EVSE runtime variables:
1000 | actual amps [A] : 16
1001 | amps on PWM driver output [A] : 16
1002 | vehicle state 1=ready,2=present,3=chg,4=vent,5=err : 3
1003 | cable limit detected [A] : 16
1004 | commands : 0
b0 | turn off charging now : False
b1 | run RCD test procedure : False
b2 | clear RCD error : False
.. | reserved
1005 | firmware revision : 18
1006 | EVSE state 1=12V,2=pwm,3=off : 2
1007 | status and fails : 1
b0 | relay on/off : True
b1 | diode check fail : False
b2 | vent required fail : False
b3 | waiting for pilot release (err recovery delay) : False
b4 | RCD test in progress : False
b5 | RCD check error : False
.. | reserved
1008 | error timeout countdown : 0
2000 | default amps [A] : 16
2001 | modbus address : 1
2002 | minimum amps [A] : 5
2003 | analog input config (0=0-5V input, 1,2,...=button): 1
2004 | save / not save amps by button : 0
2005 | config bits : 521
b0 | enable button (on AN input) for current change : True
b1 | stop charging when button pressed : False
b2 | pilot ready state LED is not blinking : False
b3 | enable charging on STATUS D : True
b4 | enable RCD feedback (MCLR pin) : False
b5 | autoclear RCD error (short timeout) : False
.. | reserved
b13 | disable EVSE after charge : False
b14 | EVSE is disabled (no charge) : False
b15 | enable bootloader mode : False
2006 | reserved : 0
2007 | PP detection limit [A] : 16
2008 | reserved : 65535
2009 | bootloader FW revision : 3
2010 | amps value 6A [A] : 6
2011 | amps value 10A [A] : 10
2012 | amps value 16A [A] : 16
2013 | amps value 25A [A] : 16
2014 | amps value 32A [A] : 32
2015 | amps value 48A [A] : 48
2016 | amps value 63A [A] : 63
2017 | amps value 80A [A] : 80
Bin für jegliche Hilfe oder Anregungen dankbar!
LG