Thermostat-Speicher in Szenenauslöser wiederherstellen

Hallo,
Ich sehe nicht ganz, wie ich den Sollwert des „Thermostat Gladys“ im Auslöser einer Szene zurückgeben kann.
Ich erkläre es: Wenn ich die aktuelle Temperatur mit dem Sollwert vergleichen möchte, habe ich das Gefühl, dass ich das nicht kann:

Ich hatte in einem Tutorial gesehen, dass man mit { } Werte abrufen kann, aber ich habe es nicht geschafft.

Vielleicht habe ich etwas übersehen…

Ich weiß nicht, ob das das Problem lösen kann, aber um einen Wert abzurufen, verwendet man {{

Danke @tiboys für die Antwort.

Wenn ich einen Thermostat habe, der in Gladys referenziert ist:
image
dann ist die korrekte Syntax: {{ Thermostat Haus }}

Ich weiß nicht, ob ich Unsinn rede, aber ich glaube, um den {{ zu verwenden, muss man vorher die Aktion „Letzten Zustand abrufen“ ausführen…

Und deshalb kann man das nicht bei einem Trigger machen!

Ich habe es ausprobiert und ehrlich gesagt, kommt es mir kompliziert vor, ich habe es nicht geschafft.

Also müssen wir eine Szene erstellen, um den letzten Zustand des Sensors abzurufen, und dort haben wir Zugriff auf den Wert in einer anderen Szene. Aber wie heißt der Wert dann?

EDIT: Ich glaube, ich habe meine Frage fast hier wiedergefunden: Utiliser la fonctionnalité d'un device comme valeur dans "Continuer seulement si" et "Changement d'état" - #4 par guim31

Hallo @Fabic :slight_smile: Ich habe das Thema in ein neues Topic verschoben.

Es ist nicht möglich, einen Wert im Trigger einer Szene abzurufen.

Wofür wäre das gut? Vielleicht gibt es eine andere Möglichkeit, das zu tun.

Hallo @pierre-gilles,

Ich dachte, ich könnte die Funktion „Raumthermostat“ mit Gladys umsetzen, also ein Gerät ein- oder ausschalten, basierend auf der Temperatur und der Solltemperatur des Thermostats.

Dazu schien mir die einfachste Lösung, eine Szene auf diese Weise auszulösen:
Wenn die Variable Temperatur unter dem Wert der Solltemperatur liegt, dann Aktion (mit Hysterese-Management durch eine Bedingung)

Nach der Dokumentation kann man es wie @b3n.0 in diesem Beitrag Utiliser la fonctionnalité d'un device comme valeur dans "Continuer seulement si" et "Changement d'état" - #6 par Tlse-vins machen, aber mit einem zeitgesteuerten Trigger (was weniger sauber ist).

Vielleicht ist es im Moment am einfachsten, über Node-RED via MQTT zu gehen?

Andernfalls, was hält dich davon ab, das zu tun:

Du setzt eine willkürliche Bedingung im Auslöser.

Hier habe ich „WENN Temperatur“ unter 120°C, was immer wahr sein wird (außer du lebst in einem Ofen)

Und dann setzt du deine Logik ein, und die wird immer ausgeführt

@pierre-gilles, ich glaube, er möchte die Raumtemperatur mit der Solltemperatur vergleichen.
Aber die Solltemperatur ist nicht nur ein Wert, den du in deiner Szene einstellst, sondern der Wert des Thermostat-Objekts, das du entwickelt hast.

Ja, genau das ist es

In der Tat, das sollte funktionieren, indem man einen « Letzten Zustand abrufen » der Solltemperatur hinzufügt und diesen dann als Wert injiziert

Ja, aber genau das wird aktuell nicht behandelt!

Mit dem Trick von @b3n.0 wird es aber funktionieren: Utiliser la fonctionnalité d'un device comme valeur dans "Continuer seulement si" et "Changement d'état" - #7 par b3n.0

Schließlich habe ich mich für einen Node-RED in Verbindung mit MQTT Gladys entschieden und es funktioniert wirklich gut. Als Bonus eine Änderung des Sollwerts nachts, wenn es ein roter Tempo-Tag ist:

[{"id":"7be11ef3ccc79547","type":"tab","label":"Heizungsregelung","disabled":false,"info":"","env":[]},{"id":"00c5cce50b84dd0b","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"vartemp","pt":"global","to":"payload.AM2301.Temperature","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":430,"y":380,"wires":[["5dcfdfd8a863da79"]]},{"id":"5a697c78a69d9724","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"varconsigne","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":460,"wires":[["5dcfdfd8a863da79"]]},{"id":"5dcfdfd8a863da79","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$globalContext(\"vartemp\")-$globalContext(\"varconsigne\")","tot":"jsonata"},{"t":"set","p":"topic","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":760,"y":400,"wires":[["69b4ef9e8f01c17c"]]},{"id":"59a48089d39711d8","type":"inject","z":"7be11ef3ccc79547","name":"Temperatur","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"22","payloadType":"num","x":150,"y":380,"wires":[["00c5cce50b84dd0b"]]},{"id":"ccaab92a746fe040","type":"inject","z":"7be11ef3ccc79547","name":"Sollwert","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"21","payloadType":"num","x":160,"y":540,"wires":[["5a697c78a69d9724"]]},{"id":"69b4ef9e8f01c17c","type":"switch","z":"7be11ef3ccc79547","name":"Hysterese","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"0","vt":"num"},{"t":"gt","v":"0.3","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":990,"y":400,"wires":[["dc951c01368595ce"],["5bc434c29dca52c2"]]},{"id":"ea617ed9c13c0a8d","type":"debug","z":"7be11ef3ccc79547","name":"Debug 15","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1460,"y":320,"wires":[]},{"id":"6739c40be43d3488","type":"mqtt in","z":"7be11ef3ccc79547","name":"Sollwert","topic":"Thema Gladys Thermostat","qos":"2","datatype":"auto-detect","broker":"ca0557c2.d52418","nl":false,"rap":true,"rh":0,"inputs":0,"x":140,"y":480,"wires":[["083fe666d0024601","5a697c78a69d9724"]]},{"id":"ace5a1d0a89dff2d","type":"mqtt out","z":"7be11ef3ccc79547","name":"","topic":"Thema Gladys Heizung","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"ca0557c2.d52418","x":1500,"y":380,"wires":[]},{"id":"dc951c01368595ce","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1200,"y":340,"wires":[["ace5a1d0a89dff2d","ea617ed9c13c0a8d"]]},{"id":"5bc434c29dca52c2","type":"change","z":"7be11ef3ccc79547","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1200,"y":440,"wires":[["ace5a1d0a89dff2d","ea617ed9c13c0a8d"]]},{"id":"083fe666d0024601","type":"debug","z":"7be11ef3ccc79547","name":"Debug 16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":400,"y":320,"wires":[]},{"id":"0c8130f2f9645336","type":"mqtt in","z":"7be11ef3ccc79547","name":"Temperatur","topic":"Temperatursensor","qos":"0","datatype":"auto-detect","broker":"ca0557c2.d52418","nl":false,"rap":true,"rh":0,"inputs":0,"x":130,"y":320,"wires":[["00c5cce50b84dd0b","083fe666d0024601"]]},{"id":"b693e20d6c67348b","type":"comment","z":"7be11ef3ccc79547","name":"Relais ein/aus, wenn Temperatur < Sollwert","info":"","x":170,"y":260,"wires":[]},{"id":"00142a0f421ec69e","type":"comment","z":"7be11ef3ccc79547","name":"Spezial-Sollwert nachts an roten Tagen","info":"","x":150,"y":620,"wires":[]},{"id":"366c8f9d1d101463","type":"cronplus","z":"7be11ef3ccc79547","name":"22 Uhr","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"Zeitplan1","topic":"Thema1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 22 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":120,"y":680,"wires":[["4b22112740b52e12"]]},{"id":"99ea54f88f5d8c41","type":"debug","z":"7be11ef3ccc79547","name":"Debug 18","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1140,"y":660,"wires":[]},{"id":"4b22112740b52e12","type":"change","z":"7be11ef3ccc79547","name":"Farbtag","rules":[{"t":"set","p":"payload","pt":"msg","to":"farbtag","tot":"global"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":720,"wires":[["1bd1509583558337","99ea54f88f5d8c41"]]},{"id":"1bd1509583558337","type":"switch","z":"7be11ef3ccc79547","name":"wenn roter Tag","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"RED","vt":"str"},{"t":"neq","v":"RED","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":720,"y":720,"wires":[["99ea54f88f5d8c41","c8e04a4de0c117e3"],["8fa24f5c0fb9d604"]]},{"id":"da765ecac0e3f39e","type":"mqtt out","z":"7be11ef3ccc79547","name":"an Gladys Sollwert","topic":"Thema Gladys Sollwert","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f3b05caa30697468","x":1180,"y":780,"wires":[]},{"id":"c8e04a4de0c117e3","type":"change","z":"7be11ef3ccc79547","name":"Sollwert 22°C","rules":[{"t":"set","p":"payload","pt":"msg","to":"22","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":930,"y":720,"wires":[["da765ecac0e3f39e","99ea54f88f5d8c41","5a697c78a69d9724"]]},{"id":"4251162afaa2fe75","type":"inject","z":"7be11ef3ccc79547","name":"Manuell","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":740,"wires":[["4b22112740b52e12"]]},{"id":"380a3b67ae3b4754","type":"cronplus","z":"7be11ef3ccc79547","name":"6 Uhr","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"Zeitplan1","topic":"Thema1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 6 * * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":150,"y":820,"wires":[["8fa24f5c0fb9d604"]]},{"id":"8fa24f5c0fb9d604","type":"change","z":"7be11ef3ccc79547","name":"Sollwert 19°C ab 6 Uhr","rules":[{"t":"set","p":"payload","pt":"msg","to":"19","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":920,"y":860,"wires":[["da765ecac0e3f39e","5a697c78a69d9724","99ea54f88f5d8c41"]]},{"id":"0d42db205ff2380f","type":"inject","z":"7be11ef3ccc79547","name":"Manuell","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":880,"wires":[["8fa24f5c0fb9d604"]]},{"id":"ca0557c2.d52418","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"f3b05caa30697468","type":"mqtt-broker","name":"","broker":"192.168.1.124","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Völlig anderes Thema: In Gladys funktioniert das Gerät „Button Click“ über MQTT nicht auf meiner Instanz. Ist das normal?

Guten Abend,
Ich verwende bereits Gladys für meine Heizung und habe mich schließlich dem „neuen“ Thermostat gewidmet, das @pierre-gilles vor einigen Monaten entwickelt hat.
Um es nützlich zu machen, muss ich in der Lage sein, einen Wert mit diesem Thermostat auszuwählen, einen Grad für den oberen Sollwert hinzuzufügen und einen Grad für den unteren Sollwert zu subtrahieren (z. B. wenn ich 20°C wähle, schaltet sich die Heizung bei 19°C ein und bei 21°C aus).
Ich erstelle also eine Szene, in der ich den Wert des Thermostats abrufe, die Operation über mathjs sende und dann…
Mathjs will meine Variable ‹ Thermostat › nicht, obwohl es mit Zahlen funktioniert und dann…
Ich weiß nicht, wie ich das Ergebnis in ‹ Gerät steuern › zu einem fiktiven MQTT-Gerät auswählen soll.
Was ich versuche zu tun, entspricht dem oben genannten Problem? Wird das nicht unterstützt? Wie weit bin ich daneben?
Edit: Ich habe hier gesehen, dass @bertrandda an dem Thema gearbeitet hat, sollte ich mein Projekt lieber aufgeben und warten?

Testest du wirklich, indem du die globale Szene ausführst und nicht, indem du auf die Schaltfläche „HTTP-Anfrage“ klickst? Der Test-Button sendet keine Variablen, da er nur diesen Teil der Szene ausführt

Tatsächlich ist das derzeit nicht möglich. Ich weiß nicht, wie weit @bertrandda mit dem Thema ist, aber ich glaube nicht, dass es aktiv entwickelt wird, also wenn du das Thema wieder aufgreifen möchtest, kannst du das tun! :smiley:

Ich hatte etwas Funktionales, mir fehlten nur noch die Tests. Ich versuche, den Code schnell zu pushen, um zu sehen, ob es Ihnen gefällt.

Ja, und die Fehlermeldung lautet: ‹ Error: Syntaxfehler in Teil " + 1" (Zeichen 10) ›.
Mein Szenenblock sieht so aus:


Wenn ich ‹ 20 › statt der Variable einsetze, funktioniert es…
An sich ist das nicht schlimm, da die mathematischen Funktionen integriert werden, aber ich würde gerne wissen, was ich falsch mache…

Wenn ich es könnte, würde ich das mit großem Vergnügen tun! :wink:

@GBoulvin Ich habe es bei mir zu Hause mit dieser Szene getestet:

Ich starte die Szene und in meinen Nachrichten:

Alles scheint gut zu sein!

Ich weiß nicht, was du anders machst, aber da muss irgendwas sein :smiley:

Zur Info