Hilfe bei erstem Automationsversuch

Ich möchte eine weitere, generelle Automation hinzufügen.
Dabei soll der Sensor battery_charging_power überwacht werden.
Ziel dabei ist es, die maximale Batterieladeleistung auf 5kW zu begrenzen.
Die "überschüssige" Energie soll in den Heizstab fließen.
Auslösung ist soweit klar, erreicht der Sensor 5kW für eine Zeit X, dann Heizstab an.
Zeit spielt keine Rolle.
Gibt es eine elegante Kombi, wo nach Unterschreiten der 5kW diese Automation wieder beendet wird, alles andere aber unbeeindruckt bleibt?
Also im Sinne: Solange Zustand XY wahr ist, mache Z. Wenn XY unwahr ist, dann mache nichts.
Durch den Hinweis der Zustandsabfrage des Heizstabschalters sollten die anderen Automationen unbeeindruckt ihren Job machen können.
 
Du kannst in der neuen Automation beim anschalten des Heizstabs eine zweite Aktion mit einfügen. Die zweite Aktion ist der Dienst "Automation: Turn Off". Da wählst du die Automation, die währenddessen aussetzen soll. Aber nicht vergessen, dass sie auch wieder angeschaltet werden muss mit dem Dienst "Automation: Turn On".
 
Du willst doch, dass ab 5kW der Heizstab grundsätzlich an ist und nicht durch eine andere Automation abgeschaltet wird. Also schaltest du bei Überschreiten der 5kW nicht nur den Heizstab an, sondern auch Automationen ab, die den Heizstab wieder ausschalten könnten.

Allerdings kannst du genau das auch in deine bestehenden Automationen fürs An- und Abschalten vom Heizstab einpflegen. Dafür müsste die aber etwas komplizierter gestaltet werden.
 
Ich glaube ich verrenne mich gerade in zu sehr Hardwaredenken.
Ich habe mir einen Switch gebaut.
In den bestehenden Abschaltungen kann ich diesen per Zustand als Bedingung berücksichtigen, könnte also das Abschalten verhindern.
Nun habe ich eine Automation aufgesetzt, die als Auslöser Batterieladung > 5000W hat.
Bedingungen erscheinen mir egal, ist ja ein Switch, der halt eingeschaltet wird.
Den Hardwareswitch (Shelly) für den Heizstab finde ich in Aktion.
Ich finde nicht den angelegten Softwareswitch, den ich auch betätigen möchte, um die Abschaltung zu vermeiden.

Abschalten würde ich dann genauso machen:
eine Automation aufsetzen, die als Auslöser Batterieladung < 5000W hat
Softwareswitch abschalten.
Den Heizstab würde ich laufen lassen, da dann ja die normalen Abschaltungsautomationen wieder greifen sollte.
 
Du verrennst dich nicht, du willst bloß zu viel für den Anfang. Du hast bisher noch nicht wirklich die Grundlagen am laufen und baust immer mehr Ideen ein, die du mit deinem Kenntnisstand noch gar nicht richtig umsetzen kannst.

Guckst du hier, das ist das, was ich nebenbei für dich gebaut habe. Da ist auch schon deine 5kW-Idee mit drin.

YAML:
alias: Neue Automatisierung
description: ""
trigger:
  - platform: numeric_state
    entity_id: sensor.total_dc_power
    above: 1500
    alias: Überschuss
    id: An
    for:
      hours: 0
      minutes: 15
      seconds: 0
  - platform: numeric_state
    entity_id: sensor.total_dc_power
    alias: Kein Überschuss
    id: Aus
    below: 1500
    for:
      hours: 0
      minutes: 30
      seconds: 0
  - platform: time
    at: "10:30:00"
    alias: Morgens
    id: An
  - platform: time
    at: "14:00:00"
    alias: Mittags
    id: An
  - platform: time
    at: "16:00:00"
    alias: Abends
    id: An
  - platform: numeric_state
    entity_id: sensor.battery_charge
    above: 5
    alias: Batterie > 50%
    id: An
  - platform: numeric_state
    entity_id: sensor.battery_charge
    above: 7
    alias: Batterie > 70%
    id: An
  - platform: numeric_state
    entity_id: sensor.battery_charge
    above: 8
    alias: Batterie > 80%
    id: An
  - platform: numeric_state
    entity_id: sensor.battery_charge
    alias: Batterie < 50%
    id: Aus
    below: 5
  - platform: numeric_state
    entity_id: sensor.battery_charge
    alias: Batterie < 70%
    id: Aus
    below: 7
  - platform: numeric_state
    entity_id: sensor.battery_charge
    alias: Batterie < 80%
    id: Aus
    below: 8
  - platform: numeric_state
    entity_id: "sensor.battery_charging_power "
    for:
      hours: 0
      minutes: 30
      seconds: 0
    above: 5000
    alias: Ladeleistung > 5kW
    id: Ladeleistung >
  - platform: numeric_state
    entity_id: "sensor.battery_charging_power "
    for:
      hours: 0
      minutes: 30
      seconds: 0
    alias: Ladeleistung < 5kW
    below: 5000
    id: Aus
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: Ladeleistung >
            alias: Ladeleistung > 5kW
          - condition: state
            entity_id: switch.wasserspeicher_16a
            state: "off"
            alias: Heizstab aus?
        sequence:
          - service: switch.turn_on
            data: {}
            target:
              entity_id: switch.wasserspeicher_16a
            alias: Heizung an
      - conditions:
          - condition: time
            after: "10:30:00"
            before: "14:00:00"
            alias: 10:30-14 Uhr
        sequence:
          - if:
              - condition: trigger
                id: An
                alias: Trigger für Anschalten?
              - condition: numeric_state
                entity_id: sensor.total_dc_power
                above: 1500
                alias: Überschuss?
              - condition: numeric_state
                entity_id: sensor.battery_charge
                above: 5
                alias: Batterie > 50%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "off"
                alias: Heizstab aus?
            then:
              - service: switch.turn_on
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung an
            alias: Anschalten?
          - if:
              - condition: trigger
                id: Aus
                alias: Trigger für Ausschalten?
              - condition: numeric_state
                entity_id: sensor.battery_charging_power
                below: 5000
                alias: Ladeleistung < 5kW
              - condition: numeric_state
                entity_id: sensor.battery_charge
                below: 5
                alias: Batterie < 50%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "on"
                alias: Heizstab an?
            then:
              - service: switch.turn_off
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung aus
            alias: Ausschalten?
      - conditions:
          - condition: time
            after: "14:00:00"
            before: "18:00:00"
            alias: 14-18 Uhr
        sequence:
          - if:
              - condition: trigger
                id: An
                alias: Trigger für Anschalten?
              - condition: numeric_state
                entity_id: sensor.total_dc_power
                above: 1500
                alias: Überschuss?
              - condition: numeric_state
                entity_id: sensor.battery_charge
                above: 7
                alias: Batterie > 70%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "off"
                alias: Heizstab aus?
            then:
              - service: switch.turn_on
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung an
            alias: Anschalten?
          - if:
              - condition: trigger
                id: Aus
                alias: Trigger für Ausschalten?
              - condition: numeric_state
                entity_id: sensor.battery_charging_power
                below: 5000
                alias: Ladeleistung < 5kW
              - condition: numeric_state
                entity_id: sensor.battery_charge
                below: 7
                alias: Batterie < 70%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "on"
                alias: Heizstab an?
            then:
              - service: switch.turn_off
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung aus
            alias: Ausschalten?
      - conditions:
          - condition: time
            after: "18:00:00"
            before: "22:00:00"
            alias: 18-22 Uhr
        sequence:
          - if:
              - condition: trigger
                id: An
                alias: Trigger für Anschalten?
              - condition: numeric_state
                entity_id: sensor.total_dc_power
                above: 1500
                alias: Überschuss?
              - condition: numeric_state
                entity_id: sensor.battery_charge
                above: 8
                alias: Batterie > 80%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "off"
                alias: Heizstab aus?
            then:
              - service: switch.turn_on
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung an
            alias: Anschalten?
          - if:
              - condition: trigger
                id: Aus
                alias: Trigger für Ausschalten?
              - condition: numeric_state
                entity_id: sensor.battery_charging_power
                below: 5000
                alias: Ladeleistung < 5kW
              - condition: numeric_state
                entity_id: sensor.battery_charge
                below: 8
                alias: Batterie < 80%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "on"
                alias: Heizstab an?
            then:
              - service: switch.turn_off
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung aus
            alias: Ausschalten?
    alias: An/Aus Steuerung
mode: restart


Wie du siehst, ist dein Vorhaben sehr komplex und für einen "Anfänger" erstmal ne Nummer zu groß. Daher sag ich ja die ganze Zeit, mach erstmal die Basics, danach kann man weitergucken.
 
Danke dir. Das muss ich mir mal anschauen und verstehen.
Ich habe auf die Schnelle gar nicht alles, was ich aktuell einkonfiguriert habe.
Das mache ich noch einmal fertig, auch um zu sehen, wo in deinem Code die Stellschrauben sind.
 
Ich hab alles bestmöglich beschriftet. In den Aktionen im Code findest du Optionen, die nach Uhrzeit gegliedert sind. Zu jedem Zeitraum gibt es dann noch jeweils eine Option mit Bedingungen fürs An- und Ausschalten.
 
Bevor ich nun mit der Kontrolle und Umsetzung deiner Automation starte, habe ich noch einmal das, was ich aktuell am Laufen habe, aufgenommen.
Es fehlen aktuell 2 Umsetzungen bei mir:
1. Die Urlaubsschaltung. Anforderung hier ist, dass ich vor einer Reise die Zeitpläne aussetzen kann, idealerweise so, dass ich nicht zu Hause sein muss, um diese wieder aktiv zu setzen.
2. Die 5000W Batterie-Ladekontrolle. Zu keinem Zeitpunkt soll die Batterie mit mehr als 5000W geladen werden. Diese Leistung soll in den Heizstab abgeleitet werden.

Zeitpläne

Warmwasser_Zeitplan_Mo-Fr_morgens
Montag - Freitag 05:30 - 09:00

Warmwasser_Zeitplan_Mo-Fr_abends
Montag - Freitag 16:00 - 20:00

Warmwasser_Zeitplan_Tag
Montag - Sonntag 10:30 - 14:00

Warmwasser_Zeitplan_Mo-Fr_morgens
Samstag - Sonntag 06:30 - 10:00

Warmwasser_Zeitplan_Mo-Fr_abends
Samstag - Sonntag 15:00 - 20:30

Automationen

Warmwasser_Tag_an
Auslöser:
When Warmwasser_Zeitplan_Tag changes from 'Aus' to 'An'
When Battery level is above 60 (sensor.battery_level)(über 60)
When Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Bedingungen:
Confirm Battery level is above 60 (sensor.battery_level)(über 60)
Confirm Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Confirm Warmwasser_Zeitplan_Tag is 'An' (Zustand "On")
Wasserspeicher 16A ist ausgeschaltet (shellypro4pm-ec62609fd424)
Aktionen:
Schalte Wasserspeicher 16A ein Schalte Wasserspeicher 16A aus.

Warmwasser_Tag_aus
Auslöser:
When Battery level is below 55 (sensor.battery_level)(unter 55)
When Total DC power is below 1500 for 30 seconds (sensor.total_dc_power) (unter 1500) (für 30 sec)
When Warmwasser_Zeitplan_Tag changes from 'An' to 'Aus'
Bedingungen:
Aktionen:
Schalte Wasserspeicher 16A aus (shellypro4pm-ec62609fd424)

Warmwasser_Mo_Fr_morgens_an
Auslöser:
When Warmwasser_Mo_Fr_morgens_an changes from 'Aus' to 'An'
When Battery level is above 30 (sensor.battery_level)(über 30)
When Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Bedingungen:
Confirm Battery level is above 30 (sensor.battery_level)(über 30)
Confirm Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Confirm Warmwasser_Zeitplan_Mo-Fr_morgens is 'An' (Zustand "On")
Wasserspeicher 16A ist ausgeschaltet (shellypro4pm-ec62609fd424)
Aktionen:
Schalte Wasserspeicher 16A ein (shellypro4pm-ec62609fd424)

Warmwasser_Mo_Fr_morgens_aus
Auslöser:
When Battery level is below 25 (sensor.battery_level)(unter 25)
When Total DC power is below 1500 for 30 seconds (sensor.total_dc_power) (unter 1500) (für 30 sec)
When Warmwasser_Zeitplan_Mo-Fr_morgens changes from 'An' to 'Aus'
Bedingungen:
Aktionen:
Schalte Wasserspeicher 16A aus (shellypro4pm-ec62609fd424)

Warmwasser_Mo_Fr_abends_an
Auslöser:
When Warmwasser_Zeitplan_Mo-Fr_abends changes from 'Aus' to 'An'
When Battery level is above 85 (sensor.battery_level)(über 85)
When Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Bedingungen:
Confirm Battery level is above 85 (sensor.battery_level)(über 85)
Confirm Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Confirm Warmwasser_Zeitplan_Mo-Fr_abends is 'An' (Zustand "On")
Wasserspeicher 16A ist ausgeschaltet (shellypro4pm-ec62609fd424)
Aktionen:
Schalte Wasserspeicher 16A ein (shellypro4pm-ec62609fd424)

Warmwasser_Mo_Fr_abends_aus
Auslöser:
When Battery level is below 75 (sensor.battery_level)(unter 75)
When Total DC power is below 1500 for 30 seconds (sensor.total_dc_power) (unter 1500) (für 30 sec)
When Warmwasser_Zeitplan_Mo-Fr_abends changes from 'An' to 'Aus'
Bedingungen:
Aktionen:
Schalte Wasserspeicher 16A aus (shellypro4pm-ec62609fd424)

Warmwasser_Sa_So_morgens_an
Auslöser:
When Warmwasser_Zeitplan_Sa-So_morgens changes from 'Aus' to 'An'
When Battery level is above 30 (sensor.battery_level)(über 30)
When Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Bedingungen:
Confirm Battery level is above 30 (sensor.battery_level)(über 30)
Confirm Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Confirm Warmwasser_Zeitplan_Sa-So_morgens is 'An' (Zustand "On")
Wasserspeicher 16A ist ausgeschaltet (shellypro4pm-ec62609fd424)
Aktionen:
Schalte Wasserspeicher 16A ein (shellypro4pm-ec62609fd424)

Warmwasser_Sa_So_morgens_aus
Auslöser:
When Battery level is below 25 (sensor.battery_level)(unter 25)
When Total DC power is below 1500 for 30 seconds (sensor.total_dc_power) (unter 1500) (für 30 sec)
When Warmwasser_Zeitplan_Sa-So_morgens changes from 'An' to 'Aus'
Bedingungen:
Aktionen:
Schalte Wasserspeicher 16A aus (shellypro4pm-ec62609fd424)

Warmwasser_Sa_So_abends_an
Auslöser:
When Warmwasser_Zeitplan_Sa-So_abends changes from 'Aus' to 'An'
When Battery level is above 80 (sensor.battery_level)(über 80)
When Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Bedingungen:
Confirm Battery level is above 80 (sensor.battery_level)(über 80)
Confirm Total DC power is above 1500 (sensor.total_dc_power) (über 1500)
Confirm Warmwasser_Zeitplan_Sa-So_abends is 'An' (Zustand "On")
Wasserspeicher 16A ist ausgeschaltet (shellypro4pm-ec62609fd424)
Aktionen:
Schalte Wasserspeicher 16A ein (shellypro4pm-ec62609fd424)

Warmwasser_Sa_So_abends_aus
Auslöser:
When Battery level is below 75 (sensor.battery_level)(unter 75)
When Total DC power is below 1500 for 30 seconds (sensor.total_dc_power) (unter 1500) (für 30 sec)
When Warmwasser_Zeitplan_Sa-So_abends changes from 'An' to 'Aus'
Bedingungen:
Aktionen:
Schalte Wasserspeicher 16A aus (shellypro4pm-ec62609fd424)
 
Ich habe nun immer mal versucht, dein Programm zu verstehen.
Vom Grundgedanken glaube ich verstanden zu haben, wie die Funktion gedacht ist - auch wenn mir das so nie eingefallen wäre und ich auch noch nicht alle Abhängigkeiten nachvollzogen habe.
Aber:
Gehe ich richtig in der Annahm, dass der Heizstab nie wirklich läuft?
Code:
          - if:
              - condition: trigger
                id: Aus
                alias: Trigger für Ausschalten?
              - condition: numeric_state
                entity_id: sensor.battery_charging_power
                below: 5000
                alias: Ladeleistung < 5kW
              - condition: numeric_state
                entity_id: sensor.battery_charge
                below: 8
                alias: Batterie < 80%
              - condition: state
                entity_id: switch.wasserspeicher_16a
                state: "on"
                alias: Heizstab an?
            then:
              - service: switch.turn_off
                data: {}
                target:
                  entity_id: switch.wasserspeicher_16a
                alias: Heizung aus
            alias: Ausschalten?
Da in meiner PV-Installation sehr selten eine Ladeleistung >5000W erreicht werden wird, lese ich hier die Zeilen so, dass der Heizstab grundsätzlich bei <5000W ins "off" geht.
Nach meiner Überlegung wäre eigentlich ein dediziertes Ausschalten nach der >5000W Bedingung gar nicht nötig.
Warum?
Der Heizstab schaltet auf Grund seiner manuellen Einstellung bei 60° intern ab. Damit ist zwar der Shelly noch an, aber spätestens mit einer der nächsten Abschaltebedingungen ist der auch aus.
Ich werde das aber den Sommer über auch erst einmal beobachten, welche Leistungen tatsächlich anliegen.
Ggf. gibt es auch die Option, die Ladeleistung per Befehl generell auf 5000W zu begrenzen, so dass diese Einschaltung an eine andere Abhängigkeit (Netzeinspeisung) zu koppeln wäre.
 
@IvoryBalboa90 Es gelingt mir nicht, das Funktionieren nachzuvollziehen :-/
Ich glaube verstanden zu haben, dass du alle möglichen Bedingungen und Zustände eingangs definierst und mit Variablen (alias) versiehst. Diese werden dann irgendwie verknüpft und abgefragt.
Ich würde jetzt in der Hoffnung, dass ich dann besser etwas erkennen kann, eine neue Automation erstellen.
Dann den Code als YAML einfügen und hoffen, dass ich im visuellen Editor etwas "mehr" erkenne.
Ich würde dann die Automation erst einmal deaktivieren, um zu forschen.
Kann da was schief gehen in Zusammenhang mit meinen laufenden Automationen?
 
Genau so kannst du es machen. Wenn sie deaktiviert ist, passiert auch nix.
Im visuellen Editor kannst du besser lesen, was da passiert.
Tip zum lesen: nicht stumpf von oben nach unten lesen, es gibt nämlich mehrere "Handlungsstränge"
 
Oh man....will ich das wirklich? ;-)
Ich werde nie ein Programmierer.
Ich glaube, mit viel Bitfieselei bekomme ich deine Zeilen auf die aktuellen Anforderungen umgemünzt.
Ich verstehe aktuell nicht, warum
bei Überschuss "An" ein Zeitwert drin ist,
bei beiden Ladeleistungen (an/aus) ein Zeitwert drin ist.
Ich würde nun zuerst die Auslöser umdefinieren auf die aktuellen Anforderungen.
Interessant wird es, wenn hier etwas dazu kommen muss - aber das überblicke ich gerade nicht.
Dann würde ich die Zeitpläne nach deinem Muster umsetzen, hier erst einmal Mo-Fr (morgens und abends) und Tag.
Dann den rest anpassen und schauen, wo Sa/So reinpasst.
Dann wahrscheinlich alles in die Ecke schmeißen, da nix geht ;-)
 
Da sind Zeiten drin, damit nicht bei jedem Peak (kurzer Sonnenschein) ausgelöst wird. Im Falle vom Überschuss muss 15 Minuten lang Überschuss herrschen zum anschalten und 30 Minuten kein Überschuss sein zum ausschalten.

Du hast in den Aktionen verschiedene Optionen, die (ab Option 2) jeweils Uhrzeiten als Bedingung haben.

Die sehen so aus:

YAML:
condition: time
after: "10:30:00"
before: "14:00:00"
alias: 10:30-14 Uhr

Die kannst du so Umbauen:

YAML:
condition: or
conditions:
  - condition: time
    after: "10:30:00"
    before: "14:00:00"
    alias: 10:30-14 Uhr Mo-Fr
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  - condition: time
    after: "08:30:00"
    before: "14:00:00"
    alias: 08:30-14 Uhr Mo-Fr
    weekday:
      - sun
      - sat
alias: Oder

So sind Zeiten für Werktags und fürs Wochenende definierbar, ohne größeren Aufwand zu betreiben
 
Wie müsste dann für die Auslöser am Beispiel "Morgens" die definition aussehen?
Code:
platform: time
at: "10:30:00"
alias: Morgens
id: An
Es wäre ja Mo-Fr anders als Sa/So
 
Die Trigger sind nur Uhrzeiten, die Tage kommen erst später als Bedingung dazu. Soll heißen, du kannst sowas machen:

YAML:
platform: time
at: "10:30:00"
alias: Morgens Mo-Fr
id: An
YAML:
platform: time
at: "08:30:00"
alias: Morgens Sa-So
id: An
 
Verstehe ich nicht wirklich.
Entweder trigger ich, Beispiel Mo-Fr ab 05:30 bis, dass ist egal, kommt später oder ich trigger Sa-So ab 06:30
Nach meinem Verständnis ist nun also unter Auslöser die eingestellte Zeit völlig belanglos?
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.556
Beiträge
54.721
Mitglieder
5.384
Neuestes Mitglied
BlueEclipse
Zurück
Oben