Hallo, brauche mal eure Hilfe. Ich würde gerne 3 Heizschlangen abhängig vom Einspeisestrom schalten. Die 3 Stufen sollen durch ein shelly (2pmplus) gesteuert werden. Stufe 1 S0, Stufe 2 S1, Stufe 3 S0+S1 … Die Abfrage des Leistungsüberschusses habe ich hin bekommen. Nur bin ich mit den Schleifen if,then,else überfordert. Es soll folgende Steuerung funktionieren:
P < 400W keine Funktion
P > 400 W Stufe1
p > 800 W < 1200 W Stufe2
p > 1200W Stufe 3
Hab keine Ahnung wie ich das machen kann, das zwischen den Stufen Hoch und Runter bzw. Ausgeschaltet wird.
Hier mal das Yaml was ich bisher habe:
Ich habe mich noch immer nicht mit NodeRed auseinander gesetzt. Muss ich unbedingt mal machen. Daher habe ich zum Glück bisher alles mit “HA Boardmitteln” oder der Hilfe aus diesem Forum lösen können
Wie gesagt, du hast zwar 3 Auslöser erstellt aber nur einen Schalter zur Verfügung gestellt: entity_id: switch.wasser_heizung_switch_0
Wir müssten wissen ob dieser Schalter den von dir gewünschten Zustand schaltet und wie die anderen Schalter dafür lauten.
Überprüfe bitte vorher ob diese auch bereits existieren und ob diese den gewünschten Zustand auch schalten.
Danach ist es nicht schwierig diese in einer Automation nach deinen Wünschen zu nutzen.
Diese Automation basiert auf den von dir bereitgestellten Auslösern und schaltet die Schalter entsprechend der ausgelösten Stufe ein. Wenn die Stufe 1 ausgelöst wird, wird der Schalter switch.wasser_heizung_switch_0 eingeschaltet, wenn die Stufe 2 ausgelöst wird, wird der Schalter switch.wasser_heizung_switch_1 eingeschaltet und wenn die Stufe 3 ausgelöst wird, werden beide Schalter eingeschaltet.
Eigentlich wird ja folgendes gesucht wenn ich es richtig verstanden habe:
(einfach mal die 2 Zeilen bei Entwicklerwerkzeuge>Template reinpasten und mit dem Wert “956” spielen.
{% set x = ((956 | float) // 400) | int %}
{{ x }}
x wäre dann der sensor.einspeisung
Kann man ja mal mit 300, 420, 810 und 1230 probieren was passiert aber eigentlich sollte man das aus dem YAML auch so rauslesen können.
damit bekommt man auf einfache Weise 4 Stati, 0,1,2 & 3
PS: die 2 slashes sind kein Kommentar auch wenn das der Code Abschnitt farblich so suggeriert
Bin mir aber nicht sicher wieso es zu der Fehlermeldung kam, wenn es also nicht funktioniert, sollte man evtl. besser dem Vorschlag von @justone nachkommen
Halt mein Vorschlag ist keine Komplettlösung sondern nur eine Abkürzung wie man zu den unterschiedlichen Stati kommt, also den Stufen1-3 oder den IDs.
Der Rest muss schon so mit CHOOSE und den Options bewerkstelligt werden wie @Flens das vorgeschlagen hat.
Zum Fehler. Ja da ist HA etwas gruselig.
Da steht das in der ersten Action (erste ist 0) in der 1. Auswahl (choose[0]) bei der ersten Condition beim state etwas nicht funktioniert.
Wenn ich mir das in den Automatisierungseditor lade (den YAML code) und dann im visuellen Editor anzeigen lassen zeigt sich das Dilemma. eine condition numeric_state kann nicht ‘Stufe1’ haben denn das ist kein numerischer Wert. Deshalb zeigt der visuelle Editor dann auch das dort geprüft wird das trigger.id sozusagen nix ist. Hätte ich jetzt vermutet.
Wenn man den numeric_state durch eine state Bedingung ersetzt springt die Fehlermeldung dann zu (choose[1]) weil man choose[0] behoben hat.
Ich habe noch eine andere Alternative, die mir einfacher umsetzbar erscheint und den Vorteil hat, dass über eine Hysterese nicht die Gefahr besteht, dass dauernd hin- und hergeschaltet wird.
Mit drei Schwellwertsensor-Helfern für Stufe1 bis 3, die automatisch die Hysterese bereitstellen, die dann direkt als Trigger in einer Automation genutzt werden können.
Dort kann man dann die Aktionen je nach Auslöser definieren.
Erste Testumsetzung hat ca. 45 Minuten gedauert.
Edit: Die Abstimmung der Hysteresewerte (hab mal mit 5 Watt begonnen) muss ich natürlich demnächst austesten.
Oh sorry, ich dachte der Ansatz war so verständlich. Hier jetzt die Automatisierung auf Basis von 4 Schwellwertsensoren. Habe zum Test nur irgendwelche Schaltsteckdosen genommen:
entity_id: sensor.aktueller_solar_ueberschuss
hysteresis: 5
lower: 40
position: unknown
sensor_value: null
type: range
upper: 80
device_class: power
friendly_name: Solar Überschuss - Stufe 2
Die entity_id ist diejenige die ich abfrage, um den Schwellwertsensor “Solar Überschuss - Stufe 2” (binary_sensor.solar_uberschuss_stufe_2) zu setzen.
Habe beim rumspielen natürlich gelernt/verstanden, dass die Hysterese nicht für alle Schwellwertschalter gleich sein sollte. eventuell muss man in der Automation noch die jeweils anderen Schwellwertschalter auf off setzen. Aber das sind Feinheiten. So funktioniert es hier bei meinen Minitests zumindest ersteinmal.