NEWS
Gelöst - Blockly - "kleiner als letztes" Problem bzw. selbst Vergleichen :)
-
Hallo zusammen,
anbei eine Frage zu Blockly und einer Umsetzung
Folgendes habe ich vor:
Es soll der Status "Solarthermie.aktiv" je nach Zustand auf true oder false gesetzt werden.
Folgende Logik soll dahinter stecken:
Vorlauf: < 25°C –> false, sonst:
Rücklauf: akt. Wert > vorheriger Wert –> True, sonst:
Vorlauf: akt. Wert > vorheriger Wert --> True, sonst:
Vorlauf: Wert > als Wert Speicher Mitte –> True, sonst:
Speicher mitte: akt. Wert > vorheriger Wert –> True, sonst false.
Bei den rot markierten habe ich mein Problem, da ich diese Funktion des vorher/nachher Vergleichs nur als Trigger finde und keine Idee habe wie ich diesen selbst anstellen kann und dann in einer Logik unterbringe.
Anbei der Vollständigkeit halber mein Screenshot, allerdings hört es bei dem ersten roten auf, da mir hier die Ideen ausgehen und ich in Google und der Suche nicht fündig geworden bin.
Das ganze selbst in Java zu schreiben ist für mich (noch) keine Option, da ich hier ganz am Anfang stehe
Vielen Dank vorab für die Unterstützung!
Gruß Walkinlarge
6112_blockly_solarthermie.png -
Für jeden der drei Temperaturwerte wird ein Trigger benötigt. Den Wert und den Vergleich "Wert steigt" kann man an Variablen übergeben, die in einer gemeinsamen Funktion ausgewertet werden. Prinzip:
-
Vielen Dank für die schnelle Antwort, ich möchte noch verstehen was ich mache, will ja nicht dumm sterben Daher noch mal ein paar Nachfragen zur Funktionsweise.
Folgendes verstehe ich:
Ich prüfe ob es eine Änderung am Objekt gibt (Falls Objekt), wenn das der Fall ist, wird im oberen Fall die Variable "VL" auf den aktuellen Wert geschrieben.
Was passiert mit der Variable "VL_steigt" in dem Fall? Das habe ich inhaltlich noch nicht ganz verstanden. Wird durch den "Größer" Vergleich der alte Wert für den späteren Vergleich geschrieben?
Wenn ich dann zwei Ergebnisse/Variablen habe, kann ich diese später dann in der Steuerung abrufen und über meine Logik prüfen lassen.
Habe ich das so richtig verstanden?
Danke
Viele Grüße
Walkinlarge
-
Was passiert mit der Variable "VL_steigt" `
Die Variablen xx_steigt enthalten das Ergebnis des Vergleichs mit den Werten true oder false.
@Walkinlarge2010!:Wenn ich dann zwei Ergebnisse/Variablen habe, kann ich diese später dann in der Steuerung abrufen und über meine Logik prüfen lassen. `
Nicht später, sondern sofort nach Aktualisierung der Variablenwerte. Dazu dient der Funktionsaufruf in allen 3 Triggern.In der Funktion werden dann die Bedingungen geprüft, z.B.
Falls VL > 25 und RL_steigt und VL_steigt und VL > Speicher und Speicher_steigt
mache aktualisiere Solarthermie.aktiv mit wahr
sonst aktualisiere Solarthermie.aktiv mit unwahr
Dient der Datenpunkt "Solarthermie.aktiv" nur zur Anzeige in ioBroker, dann ist aktualisiere richtig. Wird er allerdings an irgend ein Gerät gesendet, muss steuere verwendet werden.
-
Nachtrag: Es sollten alle Variablen bei Skriptstart initialisiert werden, weil sich sonst alle 3 Temperaturwerte geändert haben müssen, bevor die Variablen gültige Werte enthalten.
-
Super Danke, jetzt habe ich es auch verstanden
Top Support!!! Schönes Wochenende noch!