PV - Überschuss - Trigger für Automation

Hey!

Seit ein paar Wochen ist unsere Photovoltaikanlage endlich in Betrieb und wurde natürlich auch gleich in HomeAssistant eingebunden. :slight_smile: Jetzt bin ich natürlich dran Automationen zu erstellen, mit denen bei PV - Überschuss der Waschtrockner oder der Geschirrspüler eingeschaltet werden soll. Doch leider funktioniert´s noch nicht so ganz, wie ich mir das vorgestellt habe… :thinking:

So sieht die Automation vom Geschirrspüler (stellvertretend auch für den Waschtrockner) aus:

alias: PV - Geschirrspüler starten bei Überschuss
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.geschirrspuler_bereit
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 2
      seconds: 0
condition: []
action:
  - wait_for_trigger:
      - platform: numeric_state
        entity_id: sensor.tasmota_sml_power
        for:
          hours: 0
          minutes: 30
          seconds: 0
        below: -2500
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.geschirrspuler_lauft
  - service: script.kuche_spulmaschine_auto_2
    data: {}
  - service: telegram_bot.send_message
    data:
      title: SPÜLMASCHINE
      target:
        - -1234567890
      parse_mode: html
      disable_notification: true
      disable_web_page_preview: true
      message: >-
        Die PV - Anlage produziert genügend Überschuss und die Spülmaschine
        wurde gestartet.
  - if:
      - condition: state
        entity_id: sensor.bosch_smi4hcs48e_operation_state
        state: Finished
    then:
      - service: input_boolean.turn_off
        data: {}
        target:
          entity_id:
            - input_boolean.geschirrspuler_bereit
      - service: input_boolean.turn_off
        data: {}
        target:
          entity_id: input_boolean.geschirrspuler_lauft
mode: restart

Habe mir hierzu zwei Helper erstellt: einen, der einfach eingeschaltet wird, wenn der Geschirrspüler läuft, den ich aber aktuell noch nicht weiter nutze. Gedacht war der vielleicht mal als Bedingung, um die Automation nicht mehrfach zu starten. Und dann gibt es noch einen Helper, der manuell eingeschaltet wird, wenn der Geschirrspüler voll ist und laufen kann. Einfach damit die Spülmaschine nicht einfach halb voll und ohne Tab gestartet wird. Den Helper - Switch nehme ich auch als Auslöser für die Automation. Wobei ich mir hier unsicher bin, ob der Helper der richtige Trigger ist, oder besser der Sensor für den PV - Überschuss…

Ich schalte dann den Helper - Switch ein, und dann wird die Automation auch gestartet. Liegt die Einspeisung in´s Stromnetz, also der PV - Überschuss, unter 2500 Watt, und wird dann nach und nach höher, bis mehr als 2500 Watt für eine halbe Stunde eingespeist werden, läuft die Automation auch weiter. Mit der halben Stunde möchte ich halbwegs sicherstellen, daß der PV - Überschuss nicht nur ein kurzer Peak gewesen ist. Mit dem Script wird der Geschirrspüler dann gestartet, es wird eine Benachrichtigung geschickt, und wenn der Geschirrspüler fertig ist, sollen die beiden Helper wieder zurückgesetzt werden.

Schalte ich aber den Helper - Switch ein, und der PV - Überschuss ist bereits über 2500 Watt, dann hängt die Automation aber irgendwie. Im Ablauf sehe ich das da “true” steht, aber mehr passiert nicht. Auch nach einer halben Stunde läuft sie hier einfach nicht weiter.

Irgendwie habe ich wohl ´nen Knoten im Kopf, wie ich die Automation am besten umsetze. Den Helper - Switch als Trigger nehmen, oder doch besser den Wert für den PV - Überschuss? Und dann lieber warten bis der Helper - Switch aktiviert wird? Aber läuft die Automation dann nicht ewig und hängt in so einem halbfertigen Zustand? :thinking: Ach so, und am tollsten wäre natürlich, daß die Automation beim Einschalten des Helper - Switches direkt losläuft, wenn der PV - Überschuss bereits eine halbe Stunde über 2500 Watt liegt.

Vielleicht habt ihr ja ´ne gute Idee, wie ich das am besten umsetzen kann, oder wo ich vielleicht irgendeinen Quatsch eingebaut oder einen Denkfehler habe… :wink:

Bis denn…

Bye, Markus

1 „Gefällt mir“

verwendest du Node Red? ich steuere meine Geräte mit PV Überschuss mit Node Red, für mich ist das einfacher umsetztbar…

Hey!

Habe Node Red installiert und nutze es für ein paar wenige Sachen. An sich würde ich die PV - Automationen gerne direkt über Home Assistant machen, aber vielleicht ist´s ja über Node Red auch eine Überlegung. Wie hast Du´s denn da umgesetzt?!? Trigger PV - Überschuss als Auslöser, oder anders?
Bis denn…

Bye, Markus

Hallo, ja ich hab die PV Überschuss als Trigger, vorgeschaltet noch einen Helfer als Schalter und noch eine Benachrichtigung über HA.
leide kann ich dir das json File nicht hochladen… nicht erlaubt :frowning:
ändere einfach die .txt in .json

flows(6).txt (7,4 KB)

Super, danke! Hab´s mir mal in Node Red importiert und angesehen. Habe daraufhin die Trigger bei mir mal “umgedreht”, und löse jetzt auch mit dem Überschuss aus. Mal sehen ob das jetzt besser funktioniert. :wink:

Hey!

Mal ein kurzes Update: habe meine beiden Automationen für den Geschirrspüler und die Waschmaschine dann doch nochmal komplett überarbeitet. Die neuen Versionen laufen jetzt seit ein paar Tagen ziemlich gut und ich denke ich lasse sie erstmal so. :wink:

Als Auslöser gibt es ein 5 - Minuten - Intervall. Dann werden als Bedingung überprüft, ob die PV - Einspeisung über 2000 Watt bzw. 2500 Watt und die zu erwartende Ertragsprognose für den Tag noch bei 4 kWh bzw. 5 kWh liegt, der Schalter für “Geschirrspüler bereit” bzw. “Waschmaschine bereit” eingeschaltet ist, und der Schalter für “Geschirrspüler läuft” bzw. “Waschmaschine läuft” ausgeschaltet ist. Sind alle vier Bedingungen erfüllt, wird das jeweilige Gerät per Script gestartet, und nach Beendigung werden die Helper - Schalter wieder zurückgesetzt.

Hier mal eine der beiden Automationen:

alias: PV - Geschirrspüler starten bei Überschuss
description: ""
trigger:
  - platform: time_pattern
    minutes: /5
condition:
  - condition: and
    conditions:
      - condition: numeric_state
        entity_id: sensor.tasmota_sml_power
        below: -2500
      - condition: numeric_state
        entity_id: sensor.energy_production_today_remaining
        above: 5
      - condition: state
        entity_id: input_boolean.geschirrspuler_bereit
        state: "on"
        for:
          hours: 0
          minutes: 2
          seconds: 0
      - condition: state
        entity_id: input_boolean.geschirrspuler_lauft
        state: "off"
action:
  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.geschirrspuler_lauft
  - service: script.kuche_spulmaschine_auto_2
    data: {}
  - service: telegram_bot.send_message
    data:
      title: SPÜLMASCHINE
      target:
        - -487977972
      parse_mode: html
      disable_notification: true
      disable_web_page_preview: true
      message: >-
        Die PV - Anlage produziert genügend Überschuss und die Spülmaschine
        wurde gestartet.
  - wait_for_trigger:
      - platform: state
        entity_id:
          - sensor.bosch_smi4hcs48e_operation_state
        to: Finished
    timeout:
      hours: 4
      minutes: 0
      seconds: 0
      milliseconds: 0
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id:
        - input_boolean.geschirrspuler_bereit
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.geschirrspuler_lauft
mode: restart

Danke nochmal für die Denkanstöße! :wink:

Bis denn…

Bye, Markus

Ich häng mich hier mal mit ran. Habe ähnliches vor wie im Eingangspost beschrieben und kann mir nicht erklären warum das so nicht funktioniert. Die Automation soll ganz einfach ablaufen:

  1. Als erstes die Spülmaschine auf das gewünschte Programm einstellen und dann von Hand starten
  2. Alexa Sprachbefehl: “Alex, schalte die Solar Spülmaschine ein” (Funktioniert bereits)
  3. Die Automation wird gestartet, ausgelöst durch ein input_boolean (Funktioniert bereits)
  4. Spülmaschinen Steckdose wird ausgeschaltet (Funktioniert bereits)
  5. Warte bis 5min eine Überschuss von 1000W verfügbar ist ( Funktioniert nicht, bleibt hier hängen)
  6. Spülmaschinen Steckdose wird eingeschaltet (Funktioniert nicht, da Bedingung vorher hängt)
  7. Input Boolean ausschalten (Funktioniert nicht, da Bedingung vorher hängt)

Überschuss war heute genug vorhanden. Der Überschuss Wert wird auch positiv ausgegeben.

alias: Solar Spülmaschine
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.solar_spuelmaschine
    to: "on"
    from: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition: []
action:
  - type: turn_off
    device_id: 3d7645dc0d3d87679cbce8967b662af6
    entity_id: 7f1516eba8ffee5808b62cbd45a4ce2f
    domain: switch
  - wait_for_trigger:
      - platform: numeric_state
        entity_id:
          - sensor.sma_metering_power_supplied
        for:
          hours: 0
          minutes: 5
          seconds: 0
        above: 1000
    timeout:
      hours: 6
      minutes: 0
      seconds: 0
      milliseconds: 0
  - type: turn_on
    device_id: 3d7645dc0d3d87679cbce8967b662af6
    entity_id: 7f1516eba8ffee5808b62cbd45a4ce2f
    domain: switch
  - service: input_boolean.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: input_boolean.solar_spuelmaschine
mode: single

Wäre Klasse wenn jemand eine Idee hat.

Gruß
Jörg

Hey Jörg!

Hm… Wirklich eine Idee habe ich nicht. Aber hast Du mal in der Automatisierung im Log bzw. Trace nachgesehen? Vielleicht steht da ja was drin, wo man ansetzen könnte. Und hast Du Dir mal den Verlauf vom Sensor “sensor.sma_metering_power_supplied” angesehen und ob der tatsächlich länger als 5 Minuten am Stück mehr als 1000 Watt Überschuss hatte?

Bis denn…

Bye, Markus

So, ich habe das Problem gefunden. Der Schwellwert muss überschritten werden, wie bei einer Leistungsänderung und darf vorher nicht schon drüber sein.

Ich habe die Automatisierung nun so verändert, dass bei genug Überschuss sofort gestartet wird und wenn nicht, dann muss für 5min der eingestellt Überschuss vorhanden sein. Funktioniert soweit einwandfrei. Hier der Code:

alias: Solar Spülmaschine
description: ""
trigger:
  - platform: state
    entity_id:
      - input_boolean.solar_spuelmaschine
    to: "on"
    from: "off"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: Solar Spülmaschine an
condition: []
action:
  - if:
      - condition: trigger
        id:
          - Solar Spülmaschine an
      - condition: numeric_state
        entity_id: sensor.sma_metering_power_supplied
        below: input_number.solar_uberschuss_schwellwert
    then:
      - type: turn_off
        device_id: 3d7645dc0d3d87679cbce8967b662af6
        entity_id: 7f1516eba8ffee5808b62cbd45a4ce2f
        domain: switch
        enabled: true
      - wait_for_trigger:
          - platform: numeric_state
            entity_id:
              - sensor.sma_metering_power_supplied
            for:
              hours: 0
              minutes: 5
              seconds: 0
            above: input_number.solar_uberschuss_schwellwert
        timeout:
          hours: 6
          minutes: 0
          seconds: 0
          milliseconds: 0
      - type: turn_on
        device_id: 3d7645dc0d3d87679cbce8967b662af6
        entity_id: 7f1516eba8ffee5808b62cbd45a4ce2f
        domain: switch
        enabled: true
      - service: notify.mobile_app_joerg_iphone_13
        metadata: {}
        data:
          message: >-
            {{ now().strftime("%H:%M") }} Uhr: Genug Solar Überschuss verfügbar.
            Spülmaschine wurde gestartet!
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.solar_spuelmaschine
    else:
      - service: notify.mobile_app_joerg_iphone_13
        metadata: {}
        data:
          message: >-
            {{ now().strftime("%H:%M") }} Uhr: Genug Solar Überschuss verfügbar.
            Spülmaschine wurde gestartet!
      - service: input_boolean.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.solar_spuelmaschine
mode: single

Schwellwert Kachel

1 „Gefällt mir“

Hallo NongJo,
Ich bin neu hier in Forum und war bis jetzt stiller Mitleser. Ich habe seit ca. 6 Monaten Home Assistant bei mir am laufen und bin fast täglich dran Sachen zu probieren bzw. zu implementieren.

Dieser Thread ist zwar schon eine Weile her, aber ich stehe vor einem ähnlichen Problem bzw. einer ähnlichen Situation. Ich habe mir einen Schwellwert Sensor angelegt der ab 15W Überschuss schaltet (mal zum Testen). Damit wird dann eine Automation gestartet die mein Powerbank oder Akku lädt ab 15W Überschuss. Funktioniert auch wunderbar. Jetzt habe gesehen das du du einen “dynamischen” Schwellwert Sensor erstellt hast.
Wie hast du diesen erstellt? Dann könnte man z.B verschiedene Akkus mit der gleichen Steckdose bei Überschuss laden. Man müsste nur den Schwellwert ändern.

Viele Grüße

Stefan

ist ganz einfach, du legst dir einen Helfer input_boolean.xxxx an. Diesen kannst du dann wie oben in der Automation nutzen und auch im Dashboard anzeigen lassen und anpassen

Aber dann müsste ich mir mehrere Schwellwert Sensoren anlegen oder? Z.b

  1. Sensor löst bei 15W aus für Powerbank
  2. Sensor löst bei 200W für E-Bike
    Usw…

Je nach dem was ich gerade laden will.
Oder kann ich irgendwie den Schwellwert Sensor mit einem Zahlenwert ändern?

Steh gerade auf dem Schlauch…

Den kannst du im Dashboard dann wie oben dargestellt ganz einfach im Wert anpassen