Heidelberg control per Modbus RTU anbinden

Begonnen von thomasg, 22 November 2025, 12:39:23

Vorheriges Thema - Nächstes Thema

thomasg

Hallo zusammen,

wir haben eine Heidelberg Control die ich gerne per Modbus an fhem/raspi anbinden möchte.

Könnt ihr mir da einen guten/Preiswerten USB rs485 Adapter empfehlen, der gut mit fhem zusammenarbeitet?

Welches fhem Modul müsste ich nutzen um mit der wallbox zu kommunizieren?

Danke
Fhem + knx + 1wire auf raspi 2

aaameyer

Soweit ich weiß gibt es da ein Modul wbec, meine WB hat aber schon WLAN, so dass Modbus via TCP funktioniert. Ansonsten habe ich bei mir einige CDSENET NA111-A Umsetzer mit FHEM am Laufen, da ich Ethernet lieber mag als USB.
Amperfiled Heidelberg connect.solar Wallbox via Modbus TCP (WLAN)
define Amperfield ModbusAttr 1 60 192.168.6.218:502 TCP
attr Amperfield room Energieversorgung
attr Amperfield group Wallbox
attr Amperfield alias Heidelberg connect.solar
attr Amperfield dev-h-defPoll 1
attr Amperfield dev-i-defPoll 1
attr Amperfield event-on-change-reading Charging_State,Power.*
attr Amperfield DbLogInclude Charging_State,Power.*
attr Amperfield silentReconnect 1
attr Amperfield stateFormat {sprintf("%s | Max. Leistung: %.1f kW | Ladevorgang: %.1f kVAh", ReadingsVal("Amperfield","Charging_State",0), ReadingsVal("Amperfield","Maximal_Power_Target",0)/1000, ReadingsVal("Amperfield","Energy_Charge_Cycle",0)/1000 )}


attr Amperfield dev-type-Temperature-format %.1f °C
attr Amperfield dev-type-Temperature-expr $val/10
attr Amperfield dev-type-Current-format %.1f A
attr Amperfield dev-type-Current-expr $val/10
attr Amperfield dev-type-Energy-format %.1f VAh
attr Amperfield dev-type-Energy-len 2
attr Amperfield dev-type-Energy-unpack f>

attr Amperfield obj-i5-reading Charging_State
attr Amperfield obj-i5-map 2:A1_No-Car_Charge-Blocked, 3:A2_No-Car_Charge-Allowed, 4:B1_Car-Plugged_No-Request_Charge-Blocked, 5:B2_Car-Plugged_No-Request_Allowed, 6:C1_Car-Plugged_Charge-Request_Blocked, 7:C2_Car-Plugged_Charge-Request_Allowed, 8:Derating, 9:E_Error, 10:F_Wallbox-Locked, 11:Error

attr Amperfield obj-i6-reading Current_L1
attr Amperfield obj-i6-type Current
attr Amperfield obj-i7-reading Current_L2
attr Amperfield obj-i7-type Current
attr Amperfield obj-i8-reading Current_L3
attr Amperfield obj-i8-type Current

attr Amperfield obj-i9-reading Temperature
attr Amperfield obj-i9-type Temperature

attr Amperfield obj-i10-reading Voltage_L1
attr Amperfield obj-i10-format %d V
attr Amperfield obj-i11-reading Voltage_L2
attr Amperfield obj-i11-format %d V
attr Amperfield obj-i12-reading Voltage_L3
attr Amperfield obj-i12-format %d V

attr Amperfield obj-i13-reading Extern_Lock_State
attr Amperfield obj-i13-map 0:Locked, 1:Unlocked

attr Amperfield obj-i14-reading Power
attr Amperfield obj-i14-format %d W

attr Amperfield obj-i19-reading Energy_Charge_Cycle
attr Amperfield obj-i19-type Energy

attr Amperfield obj-i21-reading Power_L1
attr Amperfield obj-i21-format %d W
attr Amperfield obj-i22-reading Power_L2
attr Amperfield obj-i22-format %d W
attr Amperfield obj-i23-reading Power_L3
attr Amperfield obj-i23-format %d W

attr Amperfield obj-h257-reading WatchDog_TimeOut
attr Amperfield obj-h257-set 1
attr Amperfield obj-h257-max 65536
attr Amperfield obj-h257-min 0
# in ms, 0ms is disabled

attr Amperfield obj-h259-reading Remote_Lock
attr Amperfield obj-h259-set 1
attr Amperfield obj-h259-map 0:locked, 1:unlocked

# Instead use h500 or h501 with h261
#attr Amperfield obj-h261-reading Maximal_Current
#attr Amperfield obj-h261-set 1
#attr Amperfield obj-h261-type Current
#attr Amperfield obj-h262-reading FailSafe_Current
#attr Amperfield obj-h262-set 1
#attr Amperfield obj-h262-type Current
#attr Amperfield obj-h501-reading Phase_Switch_Control
#attr Amperfield obj-h501-set 1
#attr Amperfield obj-h501-map 1:1_Phase, 3:3_Phase

attr Amperfield obj-h500-reading Maximal_Power_Target
attr Amperfield obj-h500-set 1
attr Amperfield obj-h500-format %d W

attr Amperfield obj-h503-reading Duration_Time_Phase_Switch
attr Amperfield obj-h503-set 1
attr Amperfield obj-h503-format %d s

attr Amperfield obj-h504-reading Waiting_Time_Phase_Switch
attr Amperfield obj-h504-set 1
attr Amperfield obj-h504-format %d s

attr Amperfield obj-h505-reading Disconnect_Simulation
attr Amperfield obj-h505-set 1
attr Amperfield obj-h505-map 0:No_Simulation, 1:Simulate

attr Amperfield obj-i5001-reading Phase_Switch_State
attr Amperfield obj-i5001-map 0:In_Progress, 1:1_Phase, 3:3_Phase
Die kompletten Register sind bei Amperfield auf der Homepage zu finden, für mich haben diese aber ausgereicht und man kann sich anhand der Vorlage auch schnell andere Register hinzufügen.
Damit ich mitbekomme, wenn was nicht in Ordnung ist habe ich noch folgende DOIF's definiert:
define Watchdog_Amperfield_doif DOIF ([+00:10] and [?Amperfield:Voltage_L1:sec]>600)\
(set pushMsg message Problem: Wallbox per Modbus nicht erreichbar)\
(set sendMail message Subject='Problem: Wallbox' Prüfe ob das Device über WLAN/Modbus erreichbar ist)\
DOELSE