Anbindung Wärmepumpe Lambda EU08L/EU13L/EU15L

Begonnen von FhemPiUser, 31 Oktober 2023, 15:44:07

Vorheriges Thema - Nächstes Thema

ringidigiding

hier noch die gekürzte Definition meines Lambda Modbus Objektes in fhem. Hat in den ersten Post nicht mehr reingepasst
define Lambda ModbusAttr 42 15 192.168.3.125:502 TCP
attr Lambda DbLogInclude GeneralAmbient-Status,GeneralAmbient-FehlerCode,\
GeneralEManager-Status,GeneralEManager-FehlerCode,GeneralEManager-ActualPower,GeneralEManager-ActualPowerConsumption,\
HeatPump-Status,HeatPump-FehlerStatus,HeatPump-COP,HeatPump-CompressorRating,HeatPump-FIPowerConsumption,HeatPump-QpHeating,HeatPump-TEQIn,HeatPump-TEQOut,HeatPump-TFlow,HeatPump-TReturn,HeatPump-VolumeSink,HeatPump-VolumeSource,\
Boiler-Status,Boiler-Fehlercode,Boiler-Temperatur,\
Heizkreis1-FlowLineTemperatur,\
Heizkreis2-FlowLineTemperatur,\
Puffer-FehlerNummer,Puffer-ActualHighTemperature
attr Lambda dev-h-defPoll 1
attr Lambda dev-timing-commDelay 0.2
attr Lambda dev-timing-sendDelay 0.2
attr Lambda disable 0
attr Lambda enableControlSet 1
attr Lambda event-on-change-reading .*
attr Lambda icon sani_heating_heatpump
attr Lambda obj-h00000-map 0:kein Fehler
attr Lambda obj-h00000-reading GeneralAmbient-FehlerCode
attr Lambda obj-h00001-map 0:aus, 1:Automatik, 2:manuell, 3:Fehler
attr Lambda obj-h00001-reading GeneralAmbient-Status
attr Lambda obj-h00002-expr $val / 10
attr Lambda obj-h00002-format %.1f °C
attr Lambda obj-h00002-reading GeneralAmbient-ActualAmbientTemp
attr Lambda obj-h00003-expr $val / 10
attr Lambda obj-h00003-format %.1f °C
attr Lambda obj-h00003-reading GeneralAmbient-AverageAmbientTemp
attr Lambda obj-h00004-expr $val / 10
attr Lambda obj-h00004-format %.1f °C
attr Lambda obj-h00004-reading GeneralAmbient-CalculatedAmbientTemp
attr Lambda obj-h00100-map 0:NONE, 1:MESSAGE, 2:WARNING, 3:ALARM, 4:FAULT
attr Lambda obj-h00100-reading GeneralEManager-FehlerCode
attr Lambda obj-h00101-map 0:aus, 1:Automatik, 2:manuell, 3:Fehler, 4:offline
attr Lambda obj-h00101-reading GeneralEManager-Status
attr Lambda obj-h00102-format %d W
attr Lambda obj-h00102-reading GeneralEManager-ActualPower
attr Lambda obj-h00103-format %d W
attr Lambda obj-h00103-reading GeneralEManager-ActualPowerConsumption
attr Lambda obj-h00104-format %d W
attr Lambda obj-h00104-reading GeneralEManager-PowerConsumptionSetpoint
attr Lambda obj-h01000-map 0:NONE, 1:MESSAGE, 2:WARNING, 3:ALARM, 4:FAULT
attr Lambda obj-h01000-reading HeatPump-FehlerStatus
attr Lambda obj-h01001-reading HeatPump-FehlerNummer
attr Lambda obj-h01002-map 0:INIT, 1:REFERENCE, 2:Sperrzeit, 3:betriebsbereit, 4:START PUMPS, 5:START COMPRESSOR, 6:Vor-Regelbetrieb, 7:Regelbetrieb, 8:Not Used, 9:COOLING, 10:DEFROSTING, 20:Stop, 30:FAULT-LOCK, 31:ALARM-BLOCK, 40:ERROR-RESET
attr Lambda obj-h01002-reading HeatPump-Status
attr Lambda obj-h01003-map 0:STBY, 1:Heizen, 2:Brauchwasser, 3:CC, 4:CIRCULATE, 5:DEFROST, 6:OFF, 7:FROST, 8:STBY-FROST, 9:Not used, 10:SUMMER, 11:HOLIDAY, 12:ERROR, 13:WARNING, 14:INFO-MESSAGE, 15:TIME-BLOCK, 16:RELEASE-BLOCK, 17:MINTEMP-BLOCK, 18:FIRMWARE-DOWNLOAD
attr Lambda obj-h01003-reading HeatPump-OperatingStatus
attr Lambda obj-h01004-expr $val / 100
attr Lambda obj-h01004-format %.1f °C
attr Lambda obj-h01004-reading HeatPump-TFlow
attr Lambda obj-h01005-expr $val / 100
attr Lambda obj-h01005-format %.1f °C
attr Lambda obj-h01005-reading HeatPump-TReturn
attr Lambda obj-h01006-expr $val / 100
attr Lambda obj-h01006-format %.1f [l/min]
attr Lambda obj-h01006-reading HeatPump-VolumeSink
attr Lambda obj-h01007-expr $val / 100
attr Lambda obj-h01007-format %.1f °C
attr Lambda obj-h01007-reading HeatPump-TEQIn
attr Lambda obj-h01008-expr $val / 100
attr Lambda obj-h01008-format %.1f °C
attr Lambda obj-h01008-reading HeatPump-TEQOut
attr Lambda obj-h01009-expr $val / 100
attr Lambda obj-h01009-format %.1f [l/min]
attr Lambda obj-h01009-reading HeatPump-VolumeSource
attr Lambda obj-h01010-expr $val / 100
attr Lambda obj-h01010-format %.1f %
attr Lambda obj-h01010-reading HeatPump-CompressorRating
attr Lambda obj-h01011-expr $val / 10
attr Lambda obj-h01011-format %.1f kW
attr Lambda obj-h01011-reading HeatPump-QpHeating
attr Lambda obj-h01012-format %.f W
attr Lambda obj-h01012-reading HeatPump-FIPowerConsumption
attr Lambda obj-h01013-expr $val / 100
attr Lambda obj-h01013-reading HeatPump-COP
attr Lambda obj-h01014-reading HeatPump-h01014
attr Lambda obj-h01015-reading HeatPump-h01015
attr Lambda obj-h01016-reading HeatPump-h01016
attr Lambda obj-h01017-reading HeatPump-h01017
attr Lambda obj-h01018-reading HeatPump-h01018
attr Lambda obj-h01019-reading HeatPump-h01019
attr Lambda obj-h01050-reading HeatPump-SetErrorQuit
attr Lambda obj-h02000-map 0:kein Fehler
attr Lambda obj-h02000-reading Boiler-Fehlercode
attr Lambda obj-h02001-map 0:standby, 1:DHW, 2:Legionellen, 3:Sommer, 4:Frost, 5:Urlaub, 6:prio-Stop 7:Fehler, 8:aus, 9:prompt-DHW, 10:trailing-stop, 11:temp-lock 12:standby-Frost
attr Lambda obj-h02001-reading Boiler-Status
attr Lambda obj-h02002-expr $val / 10
attr Lambda obj-h02002-format %.1f °C
attr Lambda obj-h02002-reading Boiler-Temperatur
attr Lambda obj-h02003-expr $val / 10
attr Lambda obj-h02003-format %.1f °C
attr Lambda obj-h02003-reading Boiler-MinTemperatur
attr Lambda obj-h02050-expr $val / 10
attr Lambda obj-h02050-format %.1f °C
attr Lambda obj-h02050-reading Boiler-MaxTemperatur
attr Lambda obj-h02050-set 1
attr Lambda obj-h02050-setexpr $val * 10
attr Lambda obj-h03000-map 0:No Error
attr Lambda obj-h03000-reading Puffer-FehlerNummer
attr Lambda obj-h03001-map 0:STBY, 1:HEATING, 2:COOLING, 3:SUMMER, 4:FROST, 5:HOLIDAY, 6:PRIO-STOP, 7:ERROR, 8:OFF, 9:STBY-FROST
attr Lambda obj-h03001-reading Puffer-Status
attr Lambda obj-h03002-expr $val / 10
attr Lambda obj-h03002-format %.1f °C
attr Lambda obj-h03002-reading Puffer-ActualHighTemperature
attr Lambda obj-h03003-expr $val / 10
attr Lambda obj-h03003-format %.1f °C
attr Lambda obj-h03003-reading Puffer-ActualLowTemperature
attr Lambda obj-h03050-expr $val / 10
attr Lambda obj-h03050-format %.1f °C
attr Lambda obj-h03050-reading Puffer-MaxPufferTemperature
attr Lambda obj-h05000-reading Heizkreis1-FehlerNummer
attr Lambda obj-h05001-map 0:HEATING,  1:ECO,  2:COOLING,  3:FLOORDRY,  4:FROST,  5:MAX-TEMP,  6:ERROR,  7:SERVICE,  8:HOLIDAY,  9:CH-SUMMER,  10:CC-WINTER,  11:PRIO-STOP,  12:OFF,  13:RELEASE-OFF,  14:TIME-OFF,  15:STBY,  16:STBY-HEATING,  17:STBY-ECO,  18:STBY-COOLING,  19:STBY-FROST,  20:STBY-FLOORDRY
attr Lambda obj-h05001-reading Heizkreis1-Status
attr Lambda obj-h05002-expr $val / 10
attr Lambda obj-h05002-format %.1f °C
attr Lambda obj-h05002-reading Heizkreis1-FlowLineTemperatur
attr Lambda obj-h05003-expr $val / 10
attr Lambda obj-h05003-format %.1f °C
attr Lambda obj-h05003-reading Heizkreis1-ReturnLineTemperatur
attr Lambda obj-h05004-expr $val / 10
attr Lambda obj-h05004-format %.1f °C
attr Lambda obj-h05004-reading Heizkreis1-RoomDeviceTemperature
attr Lambda obj-h05005-expr $val / 10
attr Lambda obj-h05005-format %.1f °C
attr Lambda obj-h05005-reading Heizkreis1-SetpointFlowLineTemperature
attr Lambda obj-h05006-map 0:OFF(RW),  1:MANUAL(R),  2:AUTOMATIK(RW),  3:AUTO-HEATING(RW),  4:AUTO-COOLING(RW),  5:FROST(RW),  6:SUMMER(RW),  7:FLOOR-DRY(R)
attr Lambda obj-h05006-reading Heizkreis1-OperatingMode
attr Lambda obj-h05050-expr $val / 10
attr Lambda obj-h05050-format %.1f °C
attr Lambda obj-h05050-poll 1
attr Lambda obj-h05050-reading Heizkreis1-FlowLineTemperatureOffset
attr Lambda obj-h05050-set 1
attr Lambda obj-h05050-type S16
attr Lambda obj-h05051-expr $val / 10
attr Lambda obj-h05051-format %.1f °C
attr Lambda obj-h05051-reading Heizkreis1-SetpointRoomHeatingTemperature
attr Lambda obj-h05052-expr $val / 10
attr Lambda obj-h05052-format %.1f °C
attr Lambda obj-h05052-reading Heizkreis1-SetpointRoomCoolingTemperature
attr Lambda obj-h05100-reading Heizkreis2-FehlerNummer
attr Lambda obj-h05101-map 0:HEATING,  1:ECO,  2:COOLING,  3:FLOORDRY,  4:FROST,  5:MAX-TEMP,  6:ERROR,  7:SERVICE,  8:HOLIDAY,  9:CH-SUMMER,  10:CC-WINTER,  11:PRIO-STOP,  12:OFF,  13:RELEASE-OFF,  14:TIME-OFF,  15:STBY,  16:STBY-HEATING,  17:STBY-ECO,  18:STBY-COOLING,  19:STBY-FROST,  20:STBY-FLOORDRY
attr Lambda obj-h05101-reading Heizkreis2-Status
attr Lambda obj-h05102-expr $val / 10
attr Lambda obj-h05102-format %.1f °C
attr Lambda obj-h05102-reading Heizkreis2-FlowLineTemperatur
attr Lambda obj-h05103-expr $val / 10
attr Lambda obj-h05103-format %.1f °C
attr Lambda obj-h05103-reading Heizkreis2-ReturnLineTemperatur
attr Lambda obj-h05104-expr $val / 10
attr Lambda obj-h05104-format %.1f °C
attr Lambda obj-h05104-reading Heizkreis2-RoomDeviceTemperature
attr Lambda obj-h05105-expr $val / 10
attr Lambda obj-h05105-format %.1f °C
attr Lambda obj-h05105-reading Heizkreis2-SetpointFlowLineTemperature
attr Lambda obj-h05106-map 0:OFF(RW),  1:MANUAL(R),  2:AUTOMATIK(RW),  3:AUTO-HEATING(RW),  4:AUTO-COOLING(RW),  5:FROST(RW),  6:SUMMER(RW),  7:FLOOR-DRY(R)
attr Lambda obj-h05106-reading Heizkreis2-OperatingMode
attr Lambda obj-h05150-expr $val / 10
attr Lambda obj-h05150-format %.1f °C
attr Lambda obj-h05150-reading Heizkreis2-FlowLineTemperatureOffset
attr Lambda obj-h05151-expr $val / 10
attr Lambda obj-h05151-format %.1f °C
attr Lambda obj-h05151-reading Heizkreis2-SetpointRoomHeatingTemperature
attr Lambda obj-h05152-expr $val / 10
attr Lambda obj-h05152-format %.1f °C
attr Lambda obj-h05152-reading Heizkreis2-SetpointRoomCoolingTemperature
attr Lambda room Technik->Wärmepumpe
attr Lambda silentReconnect 1
attr Lambda stateFormat { sprintf("OP-Status: %s <br/>Status: %s <br/>Lambda COP: %.2f True COP: %.2f<br/>Wärmeleistung: %.1f kW elektr. Leistung %.0f W", ReadingsVal($name, "HeatPump-OperatingStatus", "-"), ReadingsVal($name, "HeatPump-Status", "-"), ReadingsNum($name, "HeatPump-COP", "0"), ReadingsNum($name, "TrueCOP-Now", "0"), ReadingsNum($name, "HeatPump-QpHeating", "0"), ReadingsNum($name, "HeatPump-FIPowerConsumption", "0") ) }
attr Lambda userReadings HeatPump-QEnergy:HeatPump-QpHeating.* integral {ReadingsNum("Lambda","HeatPump-QpHeatingOld",0)/3600},\
EnergieTH-Total:HeatPump-QpHeating.* integral {my $val = ReadingsVal("Lambda","HeatPump-Status","");; if ( $val eq "START COMPRESSOR" or $val eq "Vor-Regelbetrieb" or $val eq "Regelbetrieb" ) { return ReadingsNum("Lambda","HeatPump-QpHeatingOld",0)/3600;;} return 0;;},\
\
\
HeatPump-QpHeatingOld:HeatPump-QpHeating.* {my $val = ReadingsNum("Lambda","HeatPump-QpHeating",0);; if ( $val > 20 ) { return 3;;} return $val;;},\
EnergieTH-Today:EnergieTH-Total.* { sprintf("%.1f kWh", ReadingsNum("Lambda","EnergieTH-Total",0) - ReadingsNum("Lambda","EnergieTH-TotalYesterday",0) ) },\
TrueCOP-Now:HeatPump-QpHeating.* { sprintf("%.1f", ReadingsNum($name,"HeatPump-QpHeating",0) / ( ReadingsNum("LEM_Waermepumpe","em_0_total_act_power",-1) / 1000 ) ) },\
TrueCOP-Today:HeatPump-QpHeating.* { sprintf("%.1f", ReadingsNum($name,"EnergieTH-Today",0) / ( ReadingsNum("LEM_Waermepumpe","ENERGY_Today",-1) / 1000 ) ) },\

attr Lambda verbose 1
#  DEF        42 15 192.168.3.125:502 TCP
#  DeviceName 192.168.3.125:502
#  EXPECT    idle
#  FD        4
#  FUUID      64b0b058-f33f-641a-aba6-7781e162f4ff5922
#  FVERSION  98_ModbusAttr.pm:0.277000/2023-06-23
#  IODev      Lambda
#  Interval  15
#  LASTOPEN  1709168437.36007
#  LeadingZeros 1
#  MODBUSID  42
#  MODE      master
#  MODULEVERSION Modbus 4.5.5 - 9.5.2023
#  NAME      Lambda
#  NOTIFYDEV  global
#  NR        1210
#  NTFY_ORDER 50-Lambda
#  PARTIAL   
#  PROTOCOL  TCP
#  STATE      OP-Status: Heizen <br/>Status: Regelbetrieb <br/>Lambda COP: 4.28 True COP: 3.70<br/>Wärmeleistung: 4.7 kW elektr. Leistung 1090 W

# ... truncated to 50k, original length 52948

FhemPiUser

Hast Du mal in der lambda steuerung geschaut, ob die befehle nicht ausgeführt wurden, auch wenn du es in fhem nicht siehst? Das Auslesen per modbus geht bei manchen beschreibbaren registern wie operating mode nicht richtig.

ringidigiding

#17
Ja, hatte ich schon überprüft. Auf der Lambda Seite steht immer noch der alte Wert, der sich nicht verändert hat.
Habe jetzt aber auch noch einmal Deine Defintion mit meiner verglichen, und den Fehler gefunden.
Das Problem saß mal wieder wie üblich auf meiner Seite vor dem Bildschirm. Nachdem ich das Attribut dev-h-write mit dem Wert 16 angelegt hatte, kann ich jetzt auch Werte zurückschreiben.
Jetzt muss ich nur noch herausfinden, warum bei mir einige Parameter immer den Wert 62536 anzeigen.