Mathematische Operation mit einer „Szene-Variablen“ durchführen

Warum nicht den Vergleich von 2 Werten?
Ich weiß nicht, ob das relevant ist.
Zum Beispiel den Vergleich des Sollwerts der Temperatur mit dem Wert der Raumtemperatur.
Dann, wenn die beiden Werte gleich sind, schaltet man die Heizung aus.
Ich weiß nicht, ob das umsetzbar ist.

vielleicht auch die Rundung und der Modulo?

Ja, in der Tat

Ich weiß nicht, ob du im Screenshot gesehen hast, ich habe in dieser PR die Möglichkeit vorgesehen, Variablen in den Wert des Blocks „Nur fortsetzen, wenn“ einzufügen, ist das nicht das, was du verlangst?

Ja, man kann auf die nächste Zahl runden, auf die nächste ganze Zahl aufrunden und auf die nächste ganze Zahl abrunden, es kann interessant sein, alle drei zu haben. Guter Hinweis zum Modulo, ich notiere.

Das ist nicht unbedingt eine Anfrage für mich, aber das « Nur fortfahren, wenn » ist gut.

Um die Bedingungen zu ergänzen, gibt es die bedingten Operatoren in mathjs ? : wie die ternären Operatoren in JS, damit können pseudomäßige if…else-Anweisungen in einer Aktion erstellt werden.

Allgemeiner gesagt, bei der Hinzufügung von Berechnungen in Szenen denke ich, dass wir alle Operatoren zulassen und die mathjs-Funktionen (die mit Klammern und Parametern aufgerufen werden, dort können Sicherheitsprobleme auftreten) einschränken sollten.

Die PR ist da

Der Code ermöglicht die Verwendung von Variablen und Berechnungen in Szenen auf Ebene der Blöcke „Nur fortsetzen, wenn“ und „Gerät steuern“ (siehe Screenshots etwas weiter oben)

Wenn ihr testen wollt, ist ein Image hier verfügbar bertrandda/gladys:scene-var-eval

Danke für die Arbeit @bertrandda :clap: Das ist wirklich toll!

Ich habe dir ein paar Rückmeldungen zur PR gegeben: Add calcul and use device value in scene by bertrandda · Pull Request #1742 · GladysAssistant/Gladys · GitHub

Es ist erledigt
Das Bild bertrandda/gladys:scene-var-eval ist aktuell

@bertrandda Ich weiß nicht, ob du mein Feedback gesehen hast? :slight_smile:

Ja, ich habe es gesehen, aber ich hatte noch keine Zeit, das alles zu regeln. Ich werde es heute Abend versuchen.

Alles klar, deine Rückmeldungen sind eingestellt und das Docker-Image ist aktuell.

@bertrandda Danke für das Feedback, so ist es perfekt :slight_smile: Tolle Arbeit, es ist sehr klar und funktioniert super! Ich habe es in der Praxis getestet und keine Fehler gefunden :raised_hands:

Es ist in master gemerged und wird in der nächsten Version von Gladys veröffentlicht.

Super das !! :grin:

Schließlich hatte ich nur Ärger, weil mein Anruf bei mathjs in meinen Szenen jedes Mal fehlschlug, wenn mein Co sprang!

Kleine Frage:
Kann das Ergebnis verwendet werden, um ein Gerät zu steuern?

Ja :slight_smile: Siehe mein Screenshot oben

Hallo,
Toll, alles das! Kann es kaum erwarten, es zu testen. Es sollte mir bei der Heizungssteuerung helfen, auch wenn es im Moment weniger aktuell ist :sun::smiling_face_with_sunglasses:.
@bertrandda Ist es möglich, die Operationen auf 2 Variablen durchzuführen?

Danke für die Entwicklung

Ja, du kannst mehrere Variablen in dieselbe Berechnung einbeziehen, solange deine Variable weiter oben in der Szene deklariert ist (über eine Anfrage oder einen Block zum Abrufen eines Werts).

Ich habe ein Anwendungsfall-Szenario für Berechnungen, das ich im Moment für unmöglich halte.
Ich möchte, dass die Pumpe meines Pools für x Stunden (in Stunden) läuft.

In diesem Fall: x = Wassertemperatur / 2

Ist es technisch in Zukunft möglich, das Ergebnis dieser Berechnungen in anderen Arten von Blöcken zu verwenden?
Zum Beispiel ganz einfach:

  • Pumpe einschalten
  • X Stunden warten
  • Pumpe ausschalten

?

@bertrandda Für Info, @AlexTrovato hat einen Rückschritt in dieser Funktion gefunden. Falls die Steuerung eines Geräts einen Wert von 0 sendete (sehr wahrscheinlich, da 0 für alle Geräte „AUS“ bedeutet), stoppte die Szene :grimacing:

Glücklicherweise ist das nicht in die Produktion gegangen und er hat mir rechtzeitig einen PR gemacht! :smiley: Danke @AlexTrovato!

Der Fix: Fix zero as a number by atrovato · Pull Request #1773 · GladysAssistant/Gladys · GitHub