Open RalphDiesinger opened 1 year ago
You could do this without integration:
In configuration.yaml add a modbus hub:
modbus:
- name: EU08L
type: tcp
host: 192.168.1.198 ## EU08L.fritz.box
port: 502
Add a automation:
alias: Kostal -> EU08L
description: ""
trigger:
- platform: state
entity_id:
- sensor.ksem_ac_meter_watts
- platform: time_pattern
seconds: /5
condition: []
action:
- service: modbus.write_register
data:
address: 102
hub: EU08L
value:
- "{{states('sensor.ksem_ac_meter_watts') | int | bitwise_and(65535)}}"
mode: single
Replace "ksem_ac_meter_watts" with your grid connection meter (value: negativ for export, positiv for import). "hub:" is case sensitiv
Thank you for your quick support. What does mean (value: negativ for export, positiv for import) ? I would like to send this to the heat pump in case of PV surplus. Is it possible to set other settings via Modbus? I would also like to link the launch of the Legio program to the weather. In other words, if, for example, 10 a.m. is set and, according to PV forcast, the sun does not come until 2 p.m., the start should be postponed to 2 p.m. Is that possible?
It would be possible via ha, but there is no value in the Lambda Modbus registers to set the legio program only RO.
I would also like to link the launch of the Legio program to the weather. In other words, if, for example, 10 a.m. is set and, according to PV forcast, the sun does not come until 2 p.m., the start should be postponed to 2 p.m. Is that possible?
If you build a new WP heating, think about a "fresh water module" which is a heat exchanger which heats up your domestic hot water right at the time when you need it. No legio issues. I have it on my Lambda and I am happy with it.
Another comment re. PV surplus: the Lambda system has an so called "E-Manager" which manages the PV-usage. In my Lambda it seems the E-Manager is not active, I can't change any value so I think you need to talk to Lambda support to get it activated.
Cheers....Ralf
Hello, since this week I have a Lambda EU13L Heatpump. And I am trying to send my PV Grid out to the lambda. When generating the automation with the automation tool I get an error 500. I changed the sensor name for my measured Grid input by my sonnenbattery. And the values look valid in HA. But can't get rid of this error. To test i have set the E-Manager to auto. I can't change the communication mode. It is fixed Modbus client. Perhaps this might be the problem. I would very much appreciate your help!
@doncuco Try the changed config above, this should work. If not pls post your config in configuration.yaml and the automation as yaml.
Hello, this seems to work right now. Have to verify, once I have a PV output. Thanks a lot! Right now I am sending the measured Grid Output to the HP, because I have a battery as well. But I am not sure if that is working correct. Because at the point where the HP starts using the energy the output value will drop to 0. And then it would stop working. Or am I understanding this wrong? Wouldnt it be better to send a grid inout value, where negative is for example the input and positive is the output. When the value then stays 0. everything is fine and the heat pump uses the maximum available power. But once the value gets negative it should stop.
To configure it in the right way:
Your grid metering point should present in & out, where negativ value is producing energy (excess power, sending to grid, E-Überschuss) and positiv value is consuming energy (input power, consuming from grid, E-Verbrauch).
actual excess power [INT16 (min = -32768W; max = 32767W)] (depends on settings in Module)
And you have to set in the heat pump following:
Other configuration should work, but I haven´t tested a other config.
Ok. That worked. But for me positive is sending to grid. So works fine. I can't change the Value for "E-Meter Messpunkt". Do you have higher permissions? And do you know what the "Batteriespeicher vorhanden" setting changes? Couldnt find anything in the Documentation about it.
You have to write an E-Mail to Lambda, they will change it.
If you have positive values for sending to grid:
value:
- "{{(states('sensor.ksem_ac_meter_watts') * -1) | int | bitwise_and(65535)}}"
May you could even ask for an explanantion for "Batteriespeicher vorhanden". I don´t now, but assume there will be no activation of E-Manger when both excess power and night is true. To prevent a discharging where is no PV production. Or there will be no activation of the E-Heater until there is only power consume from grid.
Hi, thank you very much! This helped all. On the weekend I installed a TASMOTA reader for my energy meter and now I am sending the PV surplus to my Lambda. Great! Next Task is to Load my Battery based on dynamic market prices.
Hi, thank you very much! This helped all. On the weekend I installed a TASMOTA reader for my energy meter and now I am sending the PV surplus to my Lambda. Great! Next Task is to Load my Battery based on dynamic market prices.
Hi @doncuco: I also have an Lambda and PV and want to use PV surplus with Home Assistant (I'm a Newbie). Could you please describe, what to do to use this? (in English or German)
@Eisbaer2 what do you have in place? Grid meter? Home Assistant? @doncuco do you writing the values directly out of tasmota to the heatpump?
@Eisbaer2 what do you have in place? Grid meter? Home Assistant?
I have a PowerOpti which shows the current power value (positive or negative). I see this value in my Home Assistant energy dash board. I use Home Assistent 11.2 installed on a Raspi 4.
Did you try my description? Should also work for you.
Hi, Yes of course. I have documented everything. I can post it here as soon as I am home again.
Am 03.01.2024 um 09:26 schrieb thecem @.***>:
Did you try my description? Should also work for you.
— Reply to this email directly, view it on GitHubhttps://github.com/RalfWinter/lambda-heatpump-modbus-tcp-HA/issues/1#issuecomment-1874999314, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5F3PZ63EOH63PAS7JL2GMLYMUI4JAVCNFSM6AAAAAAYDSIJYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZUHE4TSMZRGQ. You are receiving this because you were mentioned.Message ID: @.***>
@Eisbaer2 what do you have in place? Grid meter? Home Assistant? @doncuco do you writing the values directly out of tasmota to the heatpump?
Hi, no I was reading the values with tasmota and send them to the lambda heat pump via modbus. But since this year I am using tibber and the pulse. As the timber integration is not showing one value for Grid In/Out it has separate values for consumption and production. So right now I am using Grid In/out from my sonnenbattery to send it to my heat pump. Perhaps power value of tibber might show both. But as it is winter I can not confirm that. I am using a helper to make it easier for me to change the entity that provides the value. more about that in my next post.
@Eisbaer2 what do you have in place? Grid meter? Home Assistant?
I have a PowerOpti which shows the current power value (positive or negative). I see this value in my Home Assistant energy dash board. I use Home Assistent 11.2 installed on a Raspi 4.
I had a poweropti as well. But it did not provide reliable values so I switched to the tasiota solution. so here is my documentation. I post it in German. Sorry about that but if anyone wants to have it in English please use chatgpt or so.
step is to add the tasmota Reader: Zum Einbinden des Lesekopfes:
Step add template entries:
Templates anlegen um die Zähler im Energiedashboard und in der Automation zu verwenden: ○ Helfer hinzufügen: Einstellungen => Geräte = > Helfer § Template => einen Senser § Stromerzeugung: □ Maßeinheit kWh □ Zustandvorlage: {{ float(states('sensor.bitshake_smartmeterreader_power_total_out')) | round(3) }} □ Geräteklasse Energie □ Zustandsklasse Insgesamt steigend § Stromverbrauch □ Maßeinheit kWh □ Zustandvorlage: {{ float(states('sensor.bitshake_smartmeterreader_power_total_in')) | round(3) }} □ Geräteklasse Energie □ Zustandsklasse Insgesamt steigend § Momentanverbrauch □ Maßeinheit W □ Anzeeigegenauigkeit => ohne Nachkommastelle => Wichtig für Wärmepumpe zum Daten senden □ Zustandvorlage: {{ float(states('sensor.bitshake_smartmeterreader_power_power_curr'))*(-1) }} ® Wichtig: Wir drehen den Stromfluss um damit die Wärmepumpe den richtigen Wert bekommt ◊ Positiv ist daher Erzeugung ◊ Negativ ist Bezug □ Geräteklasse Leistung □ Zustandsklasse Messung
Wir senden Per Modbus TCP den PV Überschuss an die Wärmepumpe. Gemessen am Stromzähler. Das macht eine Automation:
- Einbindung Lambda Wärmepumpe: https://github.com/RalfWinter/lambda-heatpump-modbus-tcp-HA/tree/main
○ Configuration.yaml:
hier die Pumpe anlegen
○ Sensor.yaml:
die sensoren einbinden
- Automation.yaml anlegen und in Configuration.yaml einbinden: https://github.com/RalfWinter/lambda-heatpump-modbus-tcp-HA/issues/1
Code einbinden. alternativ kann man auch die Sonnenbatterie einträge verwenden. Statt des sensor.strommomentanverbrauch helpers. Ich würde aber eher den Code im Helper anpassen. Das ist der eigentliche Ort um den Wert festzulegen. Hier der Code für die Automation:
alias: SonnenBatterie -> EU13L description: "" trigger:
- "{{(states('sensor.strommomentanverbrauch')) | int | bitwise_and(65535)}}"
mode: single
Ich hoffe das hilft dir.
@RalfWinter: Hallo Ralf, habe in deiner Readme-Grafik gesehen (danke für deine Modbus-Daten), dass du dir bei der Lambda auch die Soll-Daten des HK anzeigen lässt. Ich habe schon alles ausprobiert, aber ich den Soll-Wert finde ich bei den Modbus-Daten einfach nicht. Zur Sicherheit: Mit Soll meine ich den Wert links oben:
Kriegst du den tatsächlich über Modbus? Wenn ja, welcher Wert ist denn das?
@doncuco : vielen Danke! Gibt es eine Möglichkeit, dich per E-Mail o.Ä. zu erreichen? Bei Github scheint es keine Möglichkeit der direkten 1:1-Kommunikation zu geben.
Welche SW hast Du? V0.0.4 da wurde das rausgenommen Ralf hat die Alte SW die Daten liefert.
Das der Soll und der PV Überschuss Status nicht ausgelesen werden kann ist echt ärgerlich! So kann man einer Nachfolgeregelung die Werte zur Stuereung nicht übergeben.
Laut der Anzeige habe ich 0.0.1:
Oder wo sehe ich die richtige Version?
Genau, die habe ich auch. 0.0.4 ist die SW unter I in dem WP Modul und dann auf den Chip rechts unten. (ARC)
Diese Version gibt die Werte nicht raus, du kannst zwar die Werte beschreiben und dann lesen aber eben nicht was im Display steht lesen. Ich habe dazu drei Anfragen laufen, macht aber Nix wenn du dich auch noch mal bei denen meldest.
Habe die 0.0.4-3K Werde auch noch anfragen.
Sorry, war ein paar Tage Offline. Inzwischen hat man mir auch die V0.0.1 gepushed, jetzt sehe ich die Sollwerte leider auch nicht mehr. Ein Ticket habe ich geöffnet, allerdings antwortet Lambda aktuell mit 2 Monaten Verzögerung.
@RalfWinter: Hallo Ralf, habe in deiner Readme-Grafik gesehen (danke für deine Modbus-Daten), dass du dir bei der Lambda auch die Soll-Daten des HK anzeigen lässt. Ich habe schon alles ausprobiert, aber ich den Soll-Wert finde ich bei den Modbus-Daten einfach nicht. Zur Sicherheit: Mit Soll meine ich den Wert links oben:
Kriegst du den tatsächlich über Modbus? Wenn ja, welcher Wert ist denn das?
@doncuco : vielen Danke! Gibt es eine Möglichkeit, dich per E-Mail o.Ä. zu erreichen? Bei Github scheint es keine Möglichkeit der direkten 1:1-Kommunikation zu geben.
ja unter klenk85 beim großen G
Hallo@Tecem:
Am am 10. November 2023 haben Sie geschrieben, dass man [INT16 (min = -32768 W; max = 32767 W)] einfügen muss, um positive und negative Werte zu übertragen. Wo genau muss man das einfügen ?
Das bezieht sich auf den Wert der übergeben wird, Datentyp INT16 (Signed int 16Bit) kann Hexadezimal Werte von dezimal -32768 bis 32767 übergeben. Der INT16 Hexwert wird auf register 102 der Lambda geschrieben.
Zur Umrechnung des Dezimalwert in der Automatisation aus Home Assistant:
- "{{states('sensor._sensor_mit_dem_hausverbrauchs_und_übershusswert') | int | bitwise_and(65535)}}"
Hallo Ralf Winter, liebe Kollegen, ich versuche den PV-Überschuss an die Lambda zu schicken und komme leider nicht klar, bin leider kein Homeassistant-Experte. Die Integration von Ralf Winter habe ich in die configuration.yaml angehängt und das funktioniert auch und ich bekomme die aktuellen Werte von meiner Lambda-WP. Lambda hat somit wohl Modbus richtig freigeschaltet. Die automation von thecem bekomme ich aber leider nicht zum laufen.
Wie kann ich die automation von thecem zur integration von Ralf Winter in der configuration.yaml hinzufügen, ohne dass es zu Fehlern kommt?
Mein Versuch, den ich angehängt habe:
alias: go-e -> EU13L
description: ""
trigger:
- platform: state
entity_id:
- sensor.go_echarger_238566_pgrid
- platform: time_pattern
seconds: /5
condition: []
action:
- service: modbus.write_register
data:
address: 102
hub: EU13L
value:
- "{{states('sensor.go_echarger_238566_pgrid') | int | bitwise_and(65535)}}"
mode: single
Ein 2. Modbushub durfte nicht definiert werden. Evtl. hängen die Fehler auch mit meiner Huawei-Wechselrichter-Integration zusammen, die auch über Modbus läuft und jetzt auch nicht mehr funktioniert. Ich frage meine Wallbox go-e-charger ab, die zuverlässig den Wert für dem PV-Überschuss über MQTT an homeassistant liefert. Wie kann ich das Senden des PV-Überschusses zu Ralf Winters Integration hinzufügen? Bin sehr dankbar für Eure Hilfe.
Was für Fehler bekommst du denn? Was hat der sensor.go_echarger_238566_pgrid für Werte? Die Automation sollte so funktionieren.
Wenn du schreibst, dass dein anderes Modbus Gerät auch nicht mehr geht, dann würde ich zu aller erst mal da angreifen. Aber dass nur ein Modus Gerät parallel gehen kann, kann ich mir nicht vorstellen.
Bring beide wieder zum laufen dann können wir hier schauen.
Meine Integration lief eigentlich 3 Monate lang perfekt. Und macht seit einem Monat ungefähr auch zicken. Ab und an muss ich HASS neu starten, damit er wieder sendet. Das kann mal helfen. Selten sind es die Sensoren die aussetzen. Dann muss ich die Integration meiner Sonnenbatterie neu laden.
Vielleicht hilft dir das.
Ein 2. Modbushub durfte nicht definiert werden.
Hi @karl1809 , wenn Du ein zweites Gerät per Modbus abfragst, muss das Gerät im gleichen modbus:
Abschnitt definiert werden (heisst: modbus:
darf nicht zweimal in der configuration.yaml auftauchen). Hier mein Beispiel: am Ende der Lambda-Definitionen kommt direkt das zweite Modbus Gerät:
modbus:
- name: "EU13L"
type: tcp
host: 192.168.1.120
port: 502
sensors:
#General Ambient
- name: EU13L_Ambient_Error_Number
address: 0000
input_type: holding
state_class: total
scale: 1
......viele Zeilen....
- name: EU13L_Hc2_Set_cooling_mode_room_temperature
address: 5152
input_type: holding
unit_of_measurement: "°C"
state_class: total
scale: 0.1
precision: 1
data_type: int16
# ---> ab hier zweite Modbus Integration: Elfin EW11 Modbus/TCP Integration
- name: "EW11*
type: tcp
host: 192.168.1.78
port: 502
sensors:
...... etc.etc......
Ansonsten mal im home-assistant.log reinschauen.
Vielen Dank für Eure Unterstützung.
Habe noch einmal versucht den Automations-code von thecem (s.o) an die von Ralf Winter bezeichnete Position einzufügen. Aber das ändert auch nichts. Es ist ja kein neues Modbus-Gerät aber es soll jetzt eben dann auch PV-Überschuss geschrieben werden. Wo soll ich den Automationstext in der configuration.yaml einfügen? Wie kann ich bei der Lambda sehen, dass PV-Überschuss empfangen wurde (EU13L_EMgr_Actual_Power -32.768W)?
Fehlermeldungen nach einfügen der Automation: Logger: homeassistant.setup Quelle: setup.py:271 Erstmals aufgetreten: 19:00:50 (6 Vorkommnisse) Zuletzt protokolliert: 19:00:50
Setup failed for 'alias': Integration not found. Setup failed for 'description': Integration not found. Setup failed for 'trigger': Integration not found. Setup failed for 'action': Integration not found. Setup failed for 'condition': Integration not found.
Macht es Sinn einen Modbusproxy zu installieren, da HA ja gleichzeitig mit der Lambda und dem Huawei-Wechselrichter per Modbus kommunizieren muss. go-e-Wallbox geht über MQTT.
Hi Karl,
du must mit dem Code eine Automatisation erstellen:
Wie kann ich bei der Lambda sehen, dass PV-Überschuss empfangen wurde (EU13L_EMgr_Actual_Power -32.768W)?
Korrekt Die Stelle wo die Automation reinkommt hat @thecem erklärt.
Ich ging davon aus, Du hättest ein 2. Modbus Geräte in der configuration.yaml definiert, scheint aber nicht der Fall zu sein.
Vielen Dank thecem, RalfWinter und doncuco für Eure Unterstützung, ihr seid ein tolles team. Jetzt wird auch der PV-Überschuss mit der Automation zur Wärmepumpe gesendet und im Energie Managementmodul der Lambda angezeigt.
Ich habe ein ähnliches Problem. Abfrage und Anzeige der Werte in HomeAssistant funktioniert super, aber ich bekomme den Überschuss einfach nicht in das Register 102 geschrieben und in der Steuerung angezeigt.
Egal was ich auswähle (pos, neg, E-Eintrag) und welchen Template Code ich benutze - inkl. dem hier geposteten.
Wenn jemand evtl. einen Tipp hat, was ich noch probieren könnte wäre ich sehr dankbar
Ich habe ein ähnliches Problem. Abfrage und Anzeige der Werte in HomeAssistant funktioniert super, aber ich bekomme den Überschuss einfach nicht in das Register 102 geschrieben und in der Steuerung angezeigt.
Egal was ich auswähle (pos, neg, E-Eintrag) und welchen Template Code ich benutze - inkl. dem hier geposteten.
Wenn jemand evtl. einen Tipp hat, was ich noch probieren könnte wäre ich sehr dankbar
Hallo @andreas-bulling
Welche Software ist auf Deiner lambda? Kannst Du bitte den Code Deiner Automatisierung hier posten. Dann lässt sich das Problem evtl. eingrenzen.
LG Pitri
Hast du versucht mit mit einer freien Windows Software für modbus TCP einzelne Werte vom Rechner an die 102 zu senden? Damit habe ich gemerkt, dass die Lambda keine negativen Werte als Überschuss akzeptiert. Sie oben.
@Pitri82 mahst du mal ein Screenshot deiner Automatisation als YAML und der Einstellung im E-Manager posten.
@Briese-henne geht es denn jetzt bei Dir? Und wenn ja was hat geholfen?
@Pitri82 mahst du mal ein Screenshot deiner Automatisation als YAML und der Einstellung im E-Manager posten.
Hi @thecem
Klar doch. Habe die Schnipsel von aus diesem Threat zusammen kopiert und ein bisschen rumprobiert. Damit funktioniert es in meinem System und die lambda geht regelmäßig in den PV-Überschussbetrieb.
Screenshot der Automation im Yaml-Code
Hier der Yaml-Code
`alias: lambda - Sende PV-ueberschuss description: Sent PV-Excess to Heatpump mode: single triggers:
{{states('sensor.hm_es_tx_wm_seq3474786_iec_power_ch1') | int | bitwise_and(65535)}} action: modbus.write_register `
Und der Screenshot der Einstellungen in der lambda:
Lambda passt, bitte ein Screenshot aus der Automation vorher umstellen auf yaml mode, damit ich die formatierung richtig sehe. Danke!
Lambda passt, bitte ein Screenshot aus der Automation vorher umstellen auf yaml mode, damit ich die formatierung richtig sehe. Danke!
Siehe oben
Bitte das hier korrigieren:
bei dir ist es - >
es muss aber - >-
(Minus Leer Pfeil Minus) sein:
Hier noch mal die ganze konfig für Dich, wenn Du die so im YAML Mode der Automation einträgst sollte er das richtig formatieren:
alias: lambda - Sende PV-ueberschuss
description: Sent PV-Excess to Heatpump
triggers:
- entity_id:
- sensor.hm_es_tx_wm_seq3474786_iec_power_ch1
attribute: value_state
trigger: state
- minutes: /5
trigger: time_pattern
conditions: []
actions:
- data:
hub: EU20L
address: 102
value:
- "{{states('sensor.hm_es_tx_wm_seq3474786_iec_power_ch1') | int | bitwise_and(65535)}}"
action: modbus.write_register
mode: single
Bitte das hier korrigieren:
bei dir ist es
- >
es muss aber- >-
(Minus Leer Pfeil Minus) sein:Hier noch mal die ganze konfig für Dich, wenn Du die so im YAML Mode der Automation einträgst sollte er das richtig formatieren:
alias: lambda - Sende PV-ueberschuss description: Sent PV-Excess to Heatpump triggers: - entity_id: - sensor.hm_es_tx_wm_seq3474786_iec_power_ch1 attribute: value_state trigger: state - minutes: /5 trigger: time_pattern conditions: [] actions: - data: hub: EU20L address: 102 value: - "{{states('sensor.hm_es_tx_wm_seq3474786_iec_power_ch1') | int | bitwise_and(65535)}}" action: modbus.write_register mode: single
Hi @thecem
Warum muss ich das korrigieren? Meine Konfiguration funktioniert und die lambda bekommt die richtigen (negative) Werte bei PV-Überschuss. Meine Sensor am Hauptzähler liefert bereits negative Werte bei Einspeisung.
OK! dachte es geht bei Dir nicht!
@Briese-henne geht es denn jetzt bei Dir? Und wenn ja was hat geholfen?
Ja es geht. Die Umrechnung in Int16 ohne Vorzeichen ist in den Vorlagen enthalten. Heute hat die Lambda komischerweise ohne Überschuss die höhere Warmwassertemperatur gemacht. Da muss ich mal forschen. Ich werde zukünftig die zu senden Werte aus HA mal mitloggen.
@thecem : @andreas-bulling hat Probleme mir PV-Überschuss.
Ich habe einen Trace ausgeführt, nachdem ich o.g. Coding verwendet habe, aber stattdessen den Inhalt meiner Variablen eingetragen habe (in diesem Fall -134W). Die Automatisierung habe ich manuell ausgelöst.
Ausgeführt: 5. Oktober 2024 um 20:04:46
Ergebnis:
params:
domain: modbus
service: write_register
service_data:
hub: eu08l
address: 102
value:
- 134
target: {}
running_script: false
Der PV-Überschuss wurde aber scheinbar nicht an die Lambda übertragen, da der Wert dort nach wie vor auf 0.00 steht.
Woran kann es liegen?
Zur Sicherheit hier noch mein Automatisierungs-YAML-Code:
alias: hzg_wp_pv_pwr
description: Sent PV-Power to Heatpump
triggers:
- trigger: state
entity_id:
- sensor.homematic_raspberrymatic_hsh_sv_s10_ems_power_grid
from: "-9000"
to: "-1"
conditions: []
actions:
- data:
hub: eu08l
address: 102
value:
- >-
{{states('sensor.homematic_raspberrymatic_hsh_sv_s10_ems_power_grid')
| int | bitwise_and(65535)}}
action: modbus.write_register
mode: single
Zeige mal den State des Sensors -Entwickler-> Status und nim erst mal einen Timer als Auslöser. Wie ist die lambda eingestellt?
Hello I became aware of the project here through a note in the HomeAssistant community. My Lambda is still coming, but I'm already interested in the possibilities and have the following question. Is it also possible to send the PV surplus to the heat pump with this project? There is something about this in the OpenWB forum. https://www.openwb.de/forum/viewtopic.php?t=5380