Temperatur mit Wert in Systemvariable vergleichen
Moderator: Co-Administratoren
-
- Beiträge: 83
- Registriert: 19.01.2022, 10:41
- System: CCU
- Danksagung erhalten: 1 Mal
Temperatur mit Wert in Systemvariable vergleichen
Hallo zusammen,
ich habe derzeit folgendes Problem:
Sobalb meine Aussentemperatur unter einen bestimmten Grenzwert fällt sollen mehrere Programm unter anderem auch Scripte darauf reagieren.
Wenn Temp. wieder über dem Grenzwert natürlich nicht mehr.
Da der Grenzwert sicherlich mal geändert wird habe ich diesen in eine Systemvariable platziert um nicht durch die unterschiedlichen Programme und Scripte zu editieren.
Tja, im Script kann ich ja problemlos den aktuellen Temperaturwert und die Systemvariable auslesen und vergleichen.
Wenn ich das aber richtig sehe, kann man in einem Programm den aktuellen Temperaturwert nicht mit einem Wert in einer Systemvariablem vergleichen.
Ich könnte, theoretisch, alle Programme auf Scripte umrüsten, müsste dann aber die Aussentemperatur zyklich abfragen um eine Unterschreitung festzustellen, da das dann im Minuten Bereich liegt geht der DutyCycle wieder hoch...
Wie würde man so etwas möglichst elegant angehen ? Mir fehlt gerade eine zündende Idee...
VG
Uwe
ich habe derzeit folgendes Problem:
Sobalb meine Aussentemperatur unter einen bestimmten Grenzwert fällt sollen mehrere Programm unter anderem auch Scripte darauf reagieren.
Wenn Temp. wieder über dem Grenzwert natürlich nicht mehr.
Da der Grenzwert sicherlich mal geändert wird habe ich diesen in eine Systemvariable platziert um nicht durch die unterschiedlichen Programme und Scripte zu editieren.
Tja, im Script kann ich ja problemlos den aktuellen Temperaturwert und die Systemvariable auslesen und vergleichen.
Wenn ich das aber richtig sehe, kann man in einem Programm den aktuellen Temperaturwert nicht mit einem Wert in einer Systemvariablem vergleichen.
Ich könnte, theoretisch, alle Programme auf Scripte umrüsten, müsste dann aber die Aussentemperatur zyklich abfragen um eine Unterschreitung festzustellen, da das dann im Minuten Bereich liegt geht der DutyCycle wieder hoch...
Wie würde man so etwas möglichst elegant angehen ? Mir fehlt gerade eine zündende Idee...
VG
Uwe
Zuletzt geändert von alchy am 01.05.2023, 21:30, insgesamt 1-mal geändert.
Grund: Titel angepasst
Grund: Titel angepasst
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Tempeartur mit Wert in Systemvariable vergleichen
Meine Idee einer WebUI konformen Lösung:
viewtopic.php?f=31&t=75757
Hierbei wird das Skript nur aufgerufen, wenn sich der Soll Wert ändert.
viewtopic.php?f=31&t=75757
Hierbei wird das Skript nur aufgerufen, wenn sich der Soll Wert ändert.
Zuletzt geändert von MichaelN am 01.05.2023, 16:23, insgesamt 2-mal geändert.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 5359
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 113 Mal
- Danksagung erhalten: 722 Mal
Re: Tempeartur mit Wert in Systemvariable vergleichen
Da du innerhalb der CCU nicht wirklich den Sensor abfragst, sondern den letzten gesendeten Wert in einem Speicher der CCU, kannst du so oft du willst abfragen, ohne dass sich dabei der DC ändert. Zudem kannst du ja die Entscheidungsgrenze in der WENN-Bedingung zum Script als Trigger "Bei Änderung" definieren und das Script nur dann aufrufen, wenn die Unterschreitung passiert, nicht zyklisch.HMUser2022 hat geschrieben: ↑01.05.2023, 15:47Ich könnte, theoretisch, alle Programme auf Scripte umrüsten, müsste dann aber die Aussentemperatur zyklich abfragen um eine Unterschreitung festzustellen, da das dann im Minuten Bereich liegt geht der DutyCycle wieder hoch...
-
- Beiträge: 83
- Registriert: 19.01.2022, 10:41
- System: CCU
- Danksagung erhalten: 1 Mal
Re: Tempeartur mit Wert in Systemvariable vergleichen
@Matsch
D. h. wenn ich das richtig verstehe, wird im Programm
nur ein in der CCU abgespeicherter Wert der Aussentemperatur gelesen und nicht direkt vom Sensor ?
Das heißt dann aber auch, im Script sollte ich praktisch auch nicht direkt auf den Sensor zugreifen.
Und gehe ich recht in der Annahme, dass die letzten Werte immer die der letzten Änderung und/oder der letzten Rückmeldung sind ?
Gibt es denn da eine Möglichkeit im Script auf die in der CCU als letztes gespeicherten Werte zurück zu greifen ?
Dann könnte ich wirklich ein Minütlich getriggertes Script aufrufen welches dann die CCU Werte prüft...
D. h. wenn ich das richtig verstehe, wird im Programm
nur ein in der CCU abgespeicherter Wert der Aussentemperatur gelesen und nicht direkt vom Sensor ?
Das heißt dann aber auch, im Script sollte ich praktisch auch nicht direkt auf den Sensor zugreifen.
Und gehe ich recht in der Annahme, dass die letzten Werte immer die der letzten Änderung und/oder der letzten Rückmeldung sind ?
Gibt es denn da eine Möglichkeit im Script auf die in der CCU als letztes gespeicherten Werte zurück zu greifen ?
Dann könnte ich wirklich ein Minütlich getriggertes Script aufrufen welches dann die CCU Werte prüft...
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Tempeartur mit Wert in Systemvariable vergleichen
Du kannst (Batterie betriebene) Sensoren nicht aktiv abfragen. Du bist immer darauf angewiesen, das sie senden.
Aber wenn du Sorgen wegen dem DC hast, hast du dir meine Lösung denn mal angesehen? Die macht doch, was du willst.
Aber wenn du Sorgen wegen dem DC hast, hast du dir meine Lösung denn mal angesehen? Die macht doch, was du willst.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 83
- Registriert: 19.01.2022, 10:41
- System: CCU
- Danksagung erhalten: 1 Mal
Re: Tempeartur mit Wert in Systemvariable vergleichen
Sorry MichaelN, bin erst gerade dazu gekommen.
Ich denke das sollte passen, scheint ja ähnlich dem "Zeitbereich Manipulationsscript" zu sein.
Mich erstaunt immer wo ihr an die Infos kommt, wie man z.B. die Programmparameter manipuliert, bzw. wie diese Strukturen aufgebaut sind...
Nichtsdestotrotz schließe ich mich dem Ruf nach vergleichbaren Systemvariablen in Rasberrymatic an und hoffe es wird erhört.
Ich denke das sollte passen, scheint ja ähnlich dem "Zeitbereich Manipulationsscript" zu sein.
Mich erstaunt immer wo ihr an die Infos kommt, wie man z.B. die Programmparameter manipuliert, bzw. wie diese Strukturen aufgebaut sind...
Nichtsdestotrotz schließe ich mich dem Ruf nach vergleichbaren Systemvariablen in Rasberrymatic an und hoffe es wird erhört.
-
- Beiträge: 10655
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 320 Mal
- Danksagung erhalten: 501 Mal
Re: Temperatur mit Wert in Systemvariable vergleichen
Also du könntest auch - wie oben bereits angedeutet - ein Programm mit "bei Aktualisierung auslösen" triggern, um ein Script im Wenn-Zweig mit dem zugehörigen $src$-Wert aufzurufen, das diesen mit einem in einer Systemvariablen hinterlegten Wert vergleicht. Der Wertebereich des Sensors sollte dann so gewählt werden, dass das Programm möglichst bei jeder Aktualisierung auslöst.
Somit kannst du den Wert in der Systemvariablen verändern, um damit dann ggf. weiterführende Schritte innerhalb des Skripts zu beeinflussen.
Hier mal ein mögliches Beispielskript.
Somit kannst du den Wert in der Systemvariablen verändern, um damit dann ggf. weiterführende Schritte innerhalb des Skripts zu beeinflussen.
Hier mal ein mögliches Beispielskript.
Code: Alles auswählen
string svName = "Name der Systemvariablen";
var source;
source = dom.GetObject("$src$");
if(source.Value() >= (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svName)).Value()){
...
}
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 355
- Registriert: 19.06.2017, 09:24
- Hat sich bedankt: 20 Mal
- Danksagung erhalten: 63 Mal
Re: Temperatur mit Wert in Systemvariable vergleichen
Also bei der doch relativ überschaubaren Anforderung würde ich eine Systemvariable Typ Logik "Temp_Warm" anlegen,HMUser2022 hat geschrieben: ↑01.05.2023, 15:47Sobalb meine Aussentemperatur unter einen bestimmten Grenzwert fällt sollen mehrere Programm unter anderem auch Scripte darauf reagieren.
Da der Grenzwert sicherlich mal geändert wird habe ich diesen in eine Systemvariable platziert um nicht durch die unterschiedlichen Programme und Scripte zu editieren.
[...]
Ich könnte, theoretisch, alle Programme auf Scripte umrüsten, müsste dann aber die Aussentemperatur zyklich abfragen um eine Unterschreitung festzustellen
ein Programm mit
Temperatur < 20°, bei Änderung auslösen
Dann
Temp_Warm sofort falsch
Sonst
Temp_Warm sofort wahr
So braucht man den Entscheidungswert bei Bedarf nur in diesem einen Programm ändern.
Temp_Warm kann dann als Trigger oder Bedingung für Programme dienen und in Skripten ausgewertet werden.
Ja, LastValue() von $src$, brauchst Du in der Konstellation aber ebenso wenig wie eine zyklische Abfrage.HMUser2022 hat geschrieben: ↑01.05.2023, 16:37Gibt es denn da eine Möglichkeit im Script auf die in der CCU als letztes gespeicherten Werte zurück zu greifen ?
-
- Beiträge: 83
- Registriert: 19.01.2022, 10:41
- System: CCU
- Danksagung erhalten: 1 Mal
Re: Temperatur mit Wert in Systemvariable vergleichen
Vielen Dank für die Anregungen,
ich werde mir eine Lösung daraus zusammenbauen.
Vielleicht gibt es doch irgendwann eine Möglichkeit die Systemvariablen zu vergleichen
Vielen Dank
ich werde mir eine Lösung daraus zusammenbauen.
Vielleicht gibt es doch irgendwann eine Möglichkeit die Systemvariablen zu vergleichen
Vielen Dank