Solar-Überschuss/Einspeisung feststellen ...

idurz

New member
Zugegeben - ich bin noch neu und taste mich langsam voran.
Allerdings habe ich es hinbekommen, die Energieflüsse zwischen Verbrauch, Solarertrag (2 kleine Anlagen) und Bezug korrekt darzustellen.
Die Daten kommen von zwei Shelly PM, und dem freigeschalteten Zähler mit IR-Lesekopf.
Mit der visuellen Darstellung könnte ich Verbraucher zumindest manuell zuschalten...

Nun würde ich gern für Automationen zunächst den Zeit-/Triggerpunkt feststellen, wo die erzeugte Solarleistung nicht mehr selbst verbraucht wird - ich also einspeise.
Hintergrund ist eine "großzügige" Balkonanlage und im Sommer könnte ich mit dem Überschuss 3-4 Stunden mit der Klimaanlage (eingebunden!) kostenlos das Haus kühlen.
Oder die Teichpumpe laufen lassen oder im Winter die AC als Heizung laufen lassen.

Wie kann ich die (unten: violette) Einspeisung feststellen?

Die angehängten Grafiken zeigen die Situation in den letzten (schlechten) Tagen.

Grüße
Rudolf
 

Anhänge

  • Solar_2.png
    Solar_2.png
    17,8 KB · Aufrufe: 1
  • Solar_1.png
    Solar_1.png
    15,6 KB · Aufrufe: 1
  • Solar_3.png
    Solar_3.png
    19,5 KB · Aufrufe: 1

IvoryBalboa90

Active member
Sowas Ähnliches, aber mit anderem Ziel, hatten wir gerade erst 😅

Du bräuchtest eine Entität, die dir die Produktion vom Kraftwerk in Watt ausgibt und eine (oder mehrere, die man dann kombiniert), die dir deinen Gesamtverbrauch in Watt ausgibt.

Ist das so bei dir gegeben? Oder hast du den Gesamtverbrauch nur in kWh durch Zähler-Ablesen?
 

idurz

New member
Über den freigemorsten Zähler und den Lesekopf bekomme ich schon genaue Werte... (s.u.)
Nur wie komme ich daran?
Es müsste ja sowas sein wie "Wenn "Stromzaehler_Haus: Sum active instantaneous power" kleiner Null, dann schalte die grüne Lampe im Flur für eine Stunde ein ..."
 

Anhänge

  • Auswahl_030.png
    Auswahl_030.png
    57,6 KB · Aufrufe: 6

idurz

New member
Besten Dank für deine Antwort!
An die Werte komme ich schon (s.u.)
Doch wie werte ich die für eine Automation im Sinne von "Wenn "Stromzaehler_Haus: Sum active instantaneous power" kleiner Null dann schalte die grüne Lampe im Flur für eine Stunde an"?

Danke schon mal!
 

Anhänge

  • Auswahl_030.png
    Auswahl_030.png
    57,6 KB · Aufrufe: 3

IvoryBalboa90

Active member
@u5zzug hat dir was verlinkt, da hab ich für einen anderen User was Ähnliches gemacht.

Du brauchst einen manuell geschriebenen Sensor, der dir den Verbrauch von der Produktion abzieht. Kommt dann eine positive Zahl raus, hast du eine positive Bilanz (Überproduktion), kommt eine negative Zahl raus, kaufst du Strom zu.
In dem verlinkten Thread hab ich es genau andersrum gemacht und mit dem Strompreis verrechnet, um die Armortisierung darzustellen. Guck den Thread mal durch, im Grunde steht da alles drin was du wissen musst.

Wenn du nicht mehr weiter kommst, melde dich.
 

idurz

New member
Hallo,
ich habe versucht mich einzulesen.
Das trifft für meinen Wunsch nicht zu (Zeitpunkt der Netzeinspeisung realisieren).

Ich habe ja eine Entität, die mir im Minutenabstand den realen Verbrauch in Haus, auch den negativen, mitteilt.
entity_id: sensor.stromzaehler_haus_sum_active_instantaneous_power


Ich möchte gern mitgeteilt bekommen, wann er bei Null liegt bzw. negative Werte anzeigt. Das kann man dann als Bedingung formulieren ...

Das senden auf das/die Handy/s wäre die einfachste Möglichkeit. Den Teil kann ich mir dann selbst zusammen klicken.

Ich hatte mal sowas probiert, aber leider meckert HA beim speichern. "Message malformed: extra keys not allowed @ data['entity_id']"
Ist ja auch nur ein Fragment ...

description: Einspeisung melden
trigger: []
entity_id: sensor.stromzaehler_haus_sum_active_instantaneous_power
condition: []
action:
- service: notify.mobile_app_iphone_von_rudolf
data:
message: Verbrauch ist NULL!
title: Verbrauch
alias: Neue Automatisierung

Wie schon geschrieben bin ich neu und habe keine Ahnung von Programmierung in Pyton.
Es wundert mich aber, dass diese Anforderung, die ja jeder mit einer PV-Anlage mit Netzeinspeisung haben sollte, so kompliziert umzusetzen ist.
 

Anhänge

  • Bildschirmfoto vom 2022-11-13 18-33-14.png
    Bildschirmfoto vom 2022-11-13 18-33-14.png
    106,3 KB · Aufrufe: 1

IvoryBalboa90

Active member
Also du willst lediglich eine Nachricht bekommen, wenn sensor.stromzaehler_haus_sum_active_instantaneous_power unter 0 fällt?

Dann ganz einfach so:

YAML:
description: ""
mode: single
trigger:
  - platform: numeric_state
    entity_id: sensor.stromzaehler_haus_sum_active_instantaneous_power
    below: 0
condition: []
action:
  - service: notify.mobile_app_iphone_von_rudolf
    data:
      message: Verbrauch ist NULL!
      title: Verbrauch


Dein erster Post mit der Problemstellung war insofern irreführend (für mich), weil von zwei Shellys die Rede war. In dem verlinkten Thread geht es nämlich um zwei Shellys, die in Bezug zu einander gesetzt werden und daraus eine Einspeisung festgestellt wird. Und dann wird im zweiten Schritt eine Ersparnis errechnet.

Probier mal die Automation, die ich dir geschrieben habe und berichte, ob das das ist, was du wolltest.
 

idurz

New member
Super!
Gleich eingebaut. Morgen soll ja wieder die Sonne scheinen...
Ich bin zuversichtlich ...!

Zur Lösung gehört allerdings die richtige Problembeschreibung. Im 1. Post hatte ich den Sensor:
"sensor.stromzaehler_haus_sum_active_instantaneous_power"
nicht so richtig auf dem Schirm. Im dritten Post hatte ich ein Bild davon geschickt. so what...

Statt oder zusätzlich zur Nachricht kann ich auch andere Aktionen starten. Das bekomme ich vielleicht zusammengeklickt...;o)
Allerdings muss mich wohl mal mit dem Syntax usw. des YAML beschäftigen.

Danke und Grüße!
Rudolf
 

IvoryBalboa90

Active member
Dein Dritter Post ist ehrlich gesagt - zumindest bei mir - untergegangen.

Wie dem auch sei, berichte gerne ob dein Ziel für den Anfang erreicht ist. Wenn du Hilfe brauchst, daraus was Produktives zu machen, sag bescheid.
 

idurz

New member
Die Meldung kam heute vormittag. Erst dachte ich, es funktioniert nicht, weil sie mit ca. 1/2 stündiger Verspätung kam. Das ist aber nicht schlimm.
Schlimmer ist, dass die Meldung regelmäßig kommt, und zwar immer dann, wenn der Verbrauch von über 0 wieder auf unter 0 geht. Ein Waschmaschinengang hat energieintensive Heizphasen und auch wieder Phasen ohne großen Verbrauch (sie Verlauf im Anhang). Von daher das Verhalten, zumal der Ertrag Mitte Nov. sehr übersichtlich ist.

Mich interessiert aber nur, wann zuerst der Null-Verbrauch gegeben ist (heute ca. 10.00 Uhr, und wann (dauerhaft) wieder Strom bezogen wird (heute wahrscheinlich 15.00 Uhr).
Dann könnte ich z.B. für den Zeitraum meine Teichpumpe einschalten oder im Sommer die Klimaanlage kostenlos laufen lassen.

Hat jemand eine Idee?
 

IvoryBalboa90

Active member
Du kannst beim Auslöser eingeben, dass er für eine bestimmte Zeit unter Null sein muss, damit er auslöst.

Alternativ kann ich dir heute Nachmittag auch ein Template schreiben, damit nur ein mal am Tag die Meldung "unter Null" kommt.
 

idurz

New member
Mit dem Template "nur einem am Tag" wäre super.
Die Nulldurchgänge finden evtl. häufiger am Tag statt, so dass ein Zeitfenster (lange Sommertage) nicht das Problem lösen.

Für das Ende der Einspeisephase brauche ich sowas auch.
Ich würde versuchen, dass über den Solarertrag zu lösen. Ist der unter Null, ist auch der Solartag vorbei. Damit hätte ich auch kurzzeitige Schwankungen (Wolke) ausgeblendet, weil dann der Ertrag nicht auf Null sinkt.
 

idurz

New member
Hier noch das vergessene Tagesdiagram ...
Der erste Nulldurchgang ist hier ca. 10.20 Uhr
 

Anhänge

  • Auswahl_032.png
    Auswahl_032.png
    14,3 KB · Aufrufe: 2

IvoryBalboa90

Active member
Also...
So bekommst eine Meldung, wenn der Verbrauch das erste mal am Tag unter 10 sinkt. Danach nicht mehr.
Zusätzlich bekommst eine Meldung, wenn der Verbrauch über 50 steigt. Aber auch nur, wenn er am selben Tag schon unter 10 war. Diese Meldung kommt ebenfalls nur einmal täglich.
(die 50 hab ich einfach so eingetragen als Beispiel. Du kannst da natürlich eintragen, was du als Schwellwert für "Ende Sonnenphase" erachtest).

YAML:
description: ""
mode: single
trigger:
  - platform: numeric_state
    entity_id: sensor.stromzaehler_haus_sum_active_instantaneous_power
    below: 10
    id: Unter 10
  - platform: numeric_state
    entity_id: sensor.stromzaehler_haus_sum_active_instantaneous_power
    below: 10
    id: Über 10
condition: []
action:
  - if:
      - condition: trigger
        id: Unter 10
      - condition: template
        value_template: >-
          {{
          (as_timestamp(this.attributes.last_triggered)|timestamp_custom('%D'))
          != (as_timestamp(now())|timestamp_custom('%D')) }}
    then:
      - service: notify.mobile_app_iphone_von_rudolf
        data:
          message: Verbrauch ist NULL!
          title: Verbrauch
  - if:
      - condition: trigger
        id: Über 10
      - condition: template
        value_template: >-
          {{
          (as_timestamp(this.attributes.last_triggered)|timestamp_custom('%D'))
          == (as_timestamp(now())|timestamp_custom('%D')) }}
    then:
      - service: notify.mobile_app_iphone_von_rudolf
        data:
          message: Verbrauch ist über Null!
          title: Verbrauch

Ist das so wie du es gerne hättest oder reden wir aneinander vorbei?
 

idurz

New member
Besten Dank!
Wo ist "über 50" im Code? Sehe nur unter 10 und über 10...
Mit dem "Ende Sonnenphase" ist as nicht zielführend.
Wie geschrieben: Die Waschmaschine oder der Kaffeeautomat würde zum unerwünschten Auslösen führen.
Schau mal auf das Diagram in o.a. Post
Ich würde es über den nachlassenden Solarertrag em Ende des Tage machen, evtl in einer weiteren Automatisierung.
 

idurz

New member
Mein solarertrag wird übrigens aus den beiden Entitäs-IDs:

sensor.solar_garage_power +
sensor.shelly_klima_power

addiert.
Wenn Summe unter (z.B.) 50 Watt -> Nachricht
 

IvoryBalboa90

Active member
Oh, hast recht. Ich wollte ne 50 draus machen, bin aber irgendwie davon abgekommen.

Also hättest du statt "über 10" lieber die Summe der beiden Entitäten als Auslöser?
Wäre dann so:
YAML:
description: ""
mode: single
trigger:
  - platform: numeric_state
    entity_id: sensor.stromzaehler_haus_sum_active_instantaneous_power
    below: 10
    id: Unter 10
  - platform: template
    value_template: >-
      {{ ((states('sensor.solar_garage_power') |float(0) +
          (states('sensor.shelly_klima_power') |float(0)) < 50 }}
    id: Ertrag sinkt
condition: []
action:
  - if:
      - condition: trigger
        id: Unter 10
      - condition: template
        value_template: >-
          {{
          (as_timestamp(this.attributes.last_triggered)|timestamp_custom('%D'))
          != (as_timestamp(now())|timestamp_custom('%D')) }}
    then:
      - service: notify.mobile_app_iphone_von_rudolf
        data:
          message: Verbrauch ist NULL!
          title: Verbrauch
  - if:
      - condition: trigger
        id: Ertrag sinkt
      - condition: template
        value_template: >-
          {{
          (as_timestamp(this.attributes.last_triggered)|timestamp_custom('%D'))
          == (as_timestamp(now())|timestamp_custom('%D')) }}
    then:
      - service: notify.mobile_app_iphone_von_rudolf
        data:
          message: Ertrag sinkt!
          title: Verbrauch

Da findest du die 50 jetzt aber. Die kannst du natürlich ändern wie du möchtest. Die Nachricht für sinkenden Ertrag hab ich für die Übersicht mal geändert auf "Ertrag sinkt"
Rest ist wie vorher. Meldungen kommen nur einmal am Tag, Meldung "Ertrag sinkt" kommt bei "Summe Ertrag kleiner 50" und wenn an diesem Tag einmal "Verbrauch < 10" war.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
1.725
Beiträge
21.436
Mitglieder
1.234
Neuestes Mitglied
Doneinei
Oben