Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

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.

Gerd

Zitat von: FhemPiUser am 01 März 2024, 19:31:01Hast 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.
Moin,
da ich mich auch gerade beschäftige mien neu LambdaEU08 einzubinden, was auch gut funktioniert, mal eine Frage.
Du beschreibst die Register obwohl die nicht richtig auslesbar sind ?

Also bei mir sind es folgende Register die keine plausiblen Werte liefern:
 
Setpoint flow line temp. 5005
Operating mode 5006
T-EQout 1008

Wie schaut es da bei Euch aus ?


FhemPiUser

Ja, ich konnte den mode durch beschreiben ändern auch wenn das auslesen keine plausiblen werte lieferte.

einfach mal schreiben ausprobieren und per vnc schauen, ob sich das in der steuerung ausgewirkt hat

Gerd

ok, das habe ich mal probiert aber wen ich zb. den OP-Mode auf "0" schreibe, verstellt der sich nach irgendeiner Zeit wieder auf "Heizen".
Es läuft dann, leider auch ohne das im Haus Wärme benötigt wird (Heizkörper), die Heizkreispumpe.

Mal sehen wie sich das lösen lässt.

Aber schon mal Danke für den Tip und die "Vorarbeit"

Mathias R

Hallo,
ich beschreibe die Lambda teilweise auch mit mbpoll, Beispiel Register 5050 auf 50 setzen:
mbpoll -0 -r 5050 192.168.x.x 50 230
Bei negativen Werten sind 65536 zu addieren, also -10 ergibt somit -10 + 65536 = 65536.
Das schreiben per mbpoll funktioniert bei mir aber nur, wenn ich gleichzeitig mindestens ein folgendes Register mit beschreibe (oben die 5051 mit 230).
Gruß, Mathias

herbert19

Habe eine neue Lambda EU08L Wärmepumpe und kann die Daten wie hier im Forum beschrieben auslesen.

Ab Januar '25 habe ich einen dynamischen Stromtarif und möchte dann die Wärmepumpe
automatisch aktivieren, wenn der Strom laut Anbieter günstig ist.

Gibt es da Tipps?
Bin leider noch nicht sehr gut im FHEM.