Wechselrichter:
hoymiles HMS-800W-2T. WiFi Version
Panels : jasolar 2 x 445W
Hallo zusammen,
ich habe seit zwei Wochen ein kleines Balkonkraftwerk mit 800 Watt.
Am Hauptzähler habe ich powerfox mit Home assistant, so dass ich ein negativen Strom angezeigt bekomme, wenn ich mehr Strom produziere wie ich verbrauche.
Ich glaube nicht, dass sich dafür eine Batterie rentieren würde.
Frage:
Ist es mit Home assistant möglich aller erzeugter negativen Strom auf zu summieren und sich anzeigen zu lassen?
Vielen Dank
Welcher Sensor zeigt negative Werte? Der Leistung Sensor (Watt) oder der Verbrauch Sensor (kWh)
Wenn es der Leistung Sensor ist, kannst Du über ein Template Sensor (Helfer) nur die negativen Werte erfassen.
{% set power = states('sensor.power_xyz') | float(0) %}
{{ iif(power < 0, power, 0) }}
Und über einen Riemann Summenintegral Sensor (Helfer) die Energie also den Verbrauch ermitteln. Quelle wäre dann der erstellte Template Sensor.
Gruß
Osorkon
@Osorkon
Danke für deine schnelle Antwort.
Im Dashboard sehe ich folgendes.
Habe das von Simon42 übernommen.
Ich habe das so mal versucht.
Als Sensor habe ich geschaut was in der Konfiguration.yaml stand.
Wie schon bereits geschrieben. Einen Template Sensor erstellen (Helfer), mit dem oben genannten Template. sensor.power_xyz
durch die Entität des Strom-EG-aktuell ersetzen.
Einstellungen → Geräte & Dienste → Helfer → HELFER ERSTELLEN → Template → Template für einen Sensor erstellen.
Und diesen Template Sensor dann als Quelle für einen Riemann Summenintegral Sensor (Helfer) verwenden.
Gruß
Osorkon
Danke für deine Hilfe.
Irgend was mach ich falsch.
{% set power = states('sensor.poweropti') | float(0) %}
{{ iif(power < 0, power, 0) }}
Auszug aus Configuratin.ymal
# ---------- Stromzaehler ----------
rest:
- authentication: basic
username: !secret username
password: !secret password
scan_interval: 30
resource: https://backend.powerfox.energy/api/2.0/my/main/current?unit=kwh
sensor:
- name: "poweropti"
json_attributes:
- "Watt"
- "Timestamp"
- "A_Plus"
- "A_Minus"
- "Outdated"
template:
- sensor:
- name: "Strom-EG-aktuell"
unit_of_measurement: "W"
device_class: "power"
state_class: "measurement"
state: >
{{ state_attr('sensor.poweropti', 'Watt') }}
- name: "Strom-EG-Bezug"
unit_of_measurement: "kWh"
device_class: "energy"
state_class: "total_increasing"
state: >
{{ state_attr('sensor.poweropti', 'A_Plus') }}
Liegt es vielleicht an dem Eintrag unter Gerät?
ich hab dort poweropti eingetragen.
Warum wütest Du den in der configuration.yaml?!
Sowohl den Template Sensor wie auch den Riemann Summenintegral Sensor kannst Du einfach als Helfer in der GUI wie eben beschrieben erstellen.
Gruß
Osorkon
Warum wütest Du den in der configuration.yaml?!
Um nachzusehen wie der Sensor heißt.
Nachtrag:
Ist das Intergral so richtig erstellt?
Nachtrag.
Das Problem scheint zu sein, dass der negative Strom nicht angezeigt wird.
Da steht immer 0W

Nachtrag 2
Juhu, es scheint zu funktionieren.
Was ich geändert habe:
Ich habe bei dem Helfer solar2 statt der Entität sensor.poweropti die entität sensor.strom_eg_aktuell verwendet.
Ich habe bei beim Helder Badenwerk nun Rechte Riemanssche Summe ausgewählt
Weiß zwar nicht was der Unterschied ist, scheint aber zu funktionieren.
@Osorkon vielen Dank
1 „Gefällt mir“

Hauptsache es funktioniert jetzt.
Kannst ja noch den für Dich passenden Beitrag als Lösung markieren.
Gruß
Osorkon
Ich nochmal,
Verstehe ich das hier so richtig, dass man in homesistent den wechselrichter einbinden kann?
https://community.home-assistant.io/t/hoymiles-hms-xxxw-2t/612792/13
Und hier
https://github.com/DennisOSRM/hms-mqtt-publisher
Ist das sehr kompliziert?
Danke
1 „Gefällt mir“
Hallo @Osorkon,
ich habe mich getraut und das hier eingebunden.

Jetzt habe ich wirklich viele Entitäten bezüglich meines Wechselrichters.
Unter anderem habe ich eine Entität namens
Wechselrichter Port 1 DC-Gesamtenergie
sensor.wechselrichter_port_1_dc_gesamtenergie
Wechselrichter Port 2 DC-Gesamtenergie
sensor.wechselrichter_port_2_dc_gesamtenergie
Nun würde ich mir gerne den Gesamt Gewinn anzeigen lassen.
Dazu müsste ich ich, wenn ich es richtig verstehe, den Wert der Entitäten zusammen addieren, und davon das den Wert des Sensor des Riemann Summenintegrals abziehen.
Es wäre schön, wenn du mir da behilflich sein könntest.
Zusammenfassung:
sensor.wechselrichter_port_1_dc_gesamtenergie
Plus (+)
sensor.wechselrichter_port_2_dc_gesamtenergie
Minus (-)
sensor.badenwerk
Das ganze mal den Strompreis von 0,383€
Nachtrag:
Was ich versucht habe.
Unter Einstellungen/Geräte & Dienste/ Helfer ausgewäht.
Ich verwendete den Helfer Kombiniere den Zustand mehrer Sensoren
Da das Ergebnis der Leistung die zum Energieunternehmer negativ ist, habe ich alle drei Wert addiert.
Leider funktioniert das aber nicht.
Wenn ich die Entität des Riemann Summenintegrals sensor.badenwerk weglasse, werden die Werte addiert, das funktioniert, aber wenn ich den sensor.badenwerk hinzufüge, steht nur unbekannt
Vielen Dank
Frank
Kannst Du Dir eine Template Sensor erstellen.
Helfer → Template → Template für ein Sensor.
Und folgendes Template verwenden.
{{ ((states('sensor.wechselrichter_port_1_dc_gesamtenergie') | float(0)
+
states('sensor.wechselrichter_port_2_dc_gesamtenergie') | float(0)
-
states('sensor.badenwerk') | float(0)) * 0.383) | round(2) }}
Gruß
Osorkon
1 „Gefällt mir“
Meine Güte, du bist ja super Dank.
Jedoch stimmt das Ergebnis nicht ganz
(39,73kWh-4,07)kWh*0,383€=37,468€
Was meinst Du mit stimmt nicht?
(39.73-4.07)*0.383 = 13.65778
39.73-4.07*0.383 = 38.17119
Punkt vor Strich beachten, bzw. die Klammern richtig setzen.
Gruß
Osorkon
Ich schäme mich zu tiefst. Ich hatte in der summe durch das Rumprobieren noch den falschen Sensor drinnen.
Dennoch liegt es um ca. zwei Euro daneben.
Errechnet wird 15,219,68€ statt 13,65778€
{{ ((states('sensor.wechselrichter_port_1_dc_gesamtenergie') | float(0)
+
states('sensor.wechselrichter_port_2_dc_gesamtenergie') | float(0)
-
states('sensor.badenwerk') | float(0)) * 0.383) | round(2) }}
Falsches Vorzeichen?
minus mal minus, ergibt plus
{{ ((states('sensor.wechselrichter_port_1_dc_gesamtenergie') | float(0)
+
states('sensor.wechselrichter_port_2_dc_gesamtenergie') | float(0)
+
states('sensor.badenwerk') | float(0)) * 0.383) | round(2) }}
Gruß
Osorkon
Danke, dass du noch dabei bist.
Der Wert ist immer noch viel zu groß.
Kann es sein, dass ein Komma falsch ist, oder er mit den Einheiten Wh und kWh durcheinander kommt?
Nachtrag:
Ja, das Ergebnis stimmt, wenn ich die Werte des sensor.badenwerk in Wh statt in kWh ändere.
Verwundert hat mich nur die amerikanische Schreibweise des Ergebnisses
13.663,142
Wenn Du kWh und Wh hast und der Preis die Einheit €/kWh hat.
Dann Musst den den Sensor, der Wh liefert, natürlich durch 1000 dividieren.
Du kannst nur kWh miteinander verrechnen.
(kWh+kWh) / €/kWh = €
Gruß
Osorkon
Dachte ich mir. Habe den Fehler aber erst jetzt gesehen, dass die Summer der Panels im Wh, statt in kWh angegeben wird. Bein sensor.badenwerk kann man einstellen in was man es haben möchte, bei den sensor.wechselrichter_port_1_dc_gesamtenergie und sensor.wechselrichter_port_2_dc_gesamtenergie leider nicht.
Somit müsste ich folgendes durch 1000 teilen.
weiß aber nicht wie man das in der Formel eingibt.
{{ ((states('sensor.wechselrichter_port_1_dc_gesamtenergie') | float(0)
+
states('sensor.wechselrichter_port_2_dc_gesamtenergie') | float(0)
by HarryP: Post korrigiert
Auf meiner Suche habe ich das gefunden
- platform: template
sensors:
energie_totaal:
friendly_name: Vermogen (totaal)
unit_of_measurement: "kWh"
value_template: '{{ states("sensor.youless_consumption_high" )| float + states("sensor.youless_consumption_low") | float }}'
Quelle Quelle des Codes
Kann man die unit_of_measurement: “kWh” bei mir auch einbauen?
Habe ich das richtig verstanden?
- sensor.wechselrichter_port_1_dc_gesamtenergie & sensor.wechselrichter_port_2_dc_gesamtenergie
geben Wh wieder
und der
- sensor.badenwerk ist in kWH
Dan einfach die Summe der 2 Sensoren durch 1000 teilen
(((a + b) / 1000) - c) * x
{{ (((states('sensor.wechselrichter_port_1_dc_gesamtenergie') | float(0)
+
states('sensor.wechselrichter_port_2_dc_gesamtenergie') | float(0)) /1000
-
states('sensor.badenwerk') | float(0)) * 0.383) | round(2) }}
Gruß
Osorkon
Falls noch jemand mit gelesen hat oder wird, so funktioniert es super.
Lediglich noch das - Zeichen durch das + Zeichen ersetzen.
Vielen lieben dank. Genau so passt es.
Nochmals Danke für deine Geduld. Habe leider keine Ahnung vom programmieren.
Ich wünsche dir eine Gute Nacht.
{{ (((states('sensor.wechselrichter_port_1_dc_gesamtenergie') | float(0)
+
states('sensor.wechselrichter_port_2_dc_gesamtenergie') | float(0)) /1000
+
states('sensor.badenwerk') | float(0)) * 0.383) | round(2) }}
@Osorkon
Ich notiere für mich noch was was wir gemacht haben, um es besser zu verstehen.
- Das Templat (sensor.solar2) ist da für da,
alle negativen Werte zu anzuzeigen.
{% set power = states('sensor.power_xyz') | float(0) %}
{{ iif(power < 0, power, 0) }}
- Damit die neativen Werte des Templat (sensor.solar2) auch gespeichert werden,
wurde der Riemann Summenintegral Sensor sensor.badenwerk erstellt.
Dieser addiert mit diesen abgebildeten Einstellungen alle negativen Werte bis zum Sankt-Nimmerleinstag, also für alle Zeiten auf.
Frage:
Wenn ich jetzt nur für einen Tag aufzeichnen wollte, so dass ich ersehen kann, wie viel Energie ich als -Energie ans Badenwerk gesendet habe, bzw. um später den aktuellen Gewinn an einem Tag zu errechnen, trage ich dann hier einfach 24 Stunden ein?
Wird dann durch den Riemann Summenintegral Sensor nur 24 Stunden aufgezeichnet, bzw. wird ab 24 Uhr die Messung zurückgesetzt und beginnt dann von neuem?
oder müsste man da Trapetzregel oder statt rechte die Linke riemansche Summe wählen? Schon sehr kompliziert das Ganze.
Wenn morgen negative Energie kommt, werde ich mal testen was bei Trapetzregl passiert.