Script ausführen nach Werteänderung in Systemvariablen
Moderator: Co-Administratoren
-
- Beiträge: 36
- Registriert: 19.12.2019, 15:16
- System: CCU
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 3 Mal
Script ausführen nach Werteänderung in Systemvariablen
Hallo zusammen,
bin leider kein Script - Profi und hätte dazu mal eine Frage und gerne auch einen Tipp zum realisieren meines Wunsches.
Ich habe zwei Temperatursensoren, die mir über ioBroker (Raspberry) jeweils die Werte in Systemvariablen der CCU schreiben. Bei den Sensoren handelt es sich um Zigbee - Sensoren, wovon einer die Temperatur an der Haussonnenseite und der andere an der Hausschattenseite misst. Ich habe mit folgendem Script auf der CCU den Mittelwert der beiden Sensoren ausrechnen lassen und diesen dann gerundet in einer anderen Variablen ausgegeben.
Ich würde gerne, dass sich der Wert automatisch aktualisiert sobald sich die Temperatur an der Sonnenseite oder der Schattenseite ändert. Somit hätte ich ja dann immer den genauen Mittelwert.
[code
real Garten = dom.GetObject("Temperatur_garten").Value();
real Strasse = dom.GetObject("Temperatur_strasse").Value();
real Mittelwert = 0.5 * (Garten + Strasse);
dom.GetObject("Außentemperatur_test").State(Mittelwert);
var x = dom.GetObject("Außentemperatur_test").Value();
x = x.ToString(2);
dom.GetObject("Außentemperatur_mittel").State(x);
][/code]
Kann ich das irgendwie mit der CCU realisieren oder sollte ich es lieber direkt auf dem Raspberry im ioBroker versuchen?
Für eine Lösung oder gar eine bessere Anregung wäre ich echt dankbar
Danke Dirk
bin leider kein Script - Profi und hätte dazu mal eine Frage und gerne auch einen Tipp zum realisieren meines Wunsches.
Ich habe zwei Temperatursensoren, die mir über ioBroker (Raspberry) jeweils die Werte in Systemvariablen der CCU schreiben. Bei den Sensoren handelt es sich um Zigbee - Sensoren, wovon einer die Temperatur an der Haussonnenseite und der andere an der Hausschattenseite misst. Ich habe mit folgendem Script auf der CCU den Mittelwert der beiden Sensoren ausrechnen lassen und diesen dann gerundet in einer anderen Variablen ausgegeben.
Ich würde gerne, dass sich der Wert automatisch aktualisiert sobald sich die Temperatur an der Sonnenseite oder der Schattenseite ändert. Somit hätte ich ja dann immer den genauen Mittelwert.
[code
real Garten = dom.GetObject("Temperatur_garten").Value();
real Strasse = dom.GetObject("Temperatur_strasse").Value();
real Mittelwert = 0.5 * (Garten + Strasse);
dom.GetObject("Außentemperatur_test").State(Mittelwert);
var x = dom.GetObject("Außentemperatur_test").Value();
x = x.ToString(2);
dom.GetObject("Außentemperatur_mittel").State(x);
][/code]
Kann ich das irgendwie mit der CCU realisieren oder sollte ich es lieber direkt auf dem Raspberry im ioBroker versuchen?
Für eine Lösung oder gar eine bessere Anregung wäre ich echt dankbar
Danke Dirk
Zuletzt geändert von dirkheider am 09.11.2022, 18:21, insgesamt 1-mal geändert.
Grüße Dirk
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Script ausführen nach Werteänderung in Systemvariablen
wie rufst du denn aktuell dieses Skript auf?
Du musst doch nur in dem aufrufenden WebUI Programm auf die Aktualisierung der SV reagieren.
Du musst doch nur in dem aufrufenden WebUI Programm auf die Aktualisierung der SV reagieren.
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: 36
- Registriert: 19.12.2019, 15:16
- System: CCU
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 3 Mal
Re: Script ausführen nach Werteänderung in Systemvariablen
Bis jetzt rufe ich es noch nicht auf, habe es nur erstellt und möchte es ungerne alle 10 Minuten aufrufen. Alle Systemvariablen sind Zeichenketten und damit kann ich es doch nicht realisieren, oder? Vielleicht denke ich mal wieder zu kompliziert:-(
Also das script soll getriggert werden, sobald sich die Variable "Temperatur_garten, oder die V. "Temperatur_strasse" ändert. Somit hätte ich ja immer den richtigen Mittelwert, dank des scripts. oder wäre das zu oft und würde die CCU zu sehr belasten?
Also das script soll getriggert werden, sobald sich die Variable "Temperatur_garten, oder die V. "Temperatur_strasse" ändert. Somit hätte ich ja immer den richtigen Mittelwert, dank des scripts. oder wäre das zu oft und würde die CCU zu sehr belasten?
Grüße Dirk
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Script ausführen nach Werteänderung in Systemvariablen
WARUm sind es Zeichenketten, wenn da eine Zahl drin gespeichert wird?
Und unter "undokumentierte Skript-Befehle" kannst Du Dir einmal ansehen, wie man Systemvariablen korrekt referenziert.
Und unter "undokumentierte Skript-Befehle" kannst Du Dir einmal ansehen, wie man Systemvariablen korrekt referenziert.
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: 36
- Registriert: 19.12.2019, 15:16
- System: CCU
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 3 Mal
Re: Script ausführen nach Werteänderung in Systemvariablen
Danke für die Antwort. Habe die Variablen nun alle in Zahl geändert. Hatte die anderen auch als Zahl definiert. Nur die neuen waren als Zeichenkette. Nun brauche ich im Script auch nicht mehr runden. Habe mir die HM Skript Doku mal gezogen und etwas eingelesen. Wie bereits gesagt, habe ich mit scripten bis dato sehr wenig gemacht. Aber du hast mich animiert mich damit zu beschäftigen:-) Danke dir dafür.
Grüße Dirk
-
- Beiträge: 36
- Registriert: 19.12.2019, 15:16
- System: CCU
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 3 Mal
Re: Script ausführen nach Werteänderung in Systemvariablen
Trotz meinen Änderungen, habe ich doch noch nicht den richtigen Trigger gefunden. Würde es vielleicht gehen, wenn ich es mit den beiden Systemvariablen trigger, z.B. Wenn größer als -20 Grad dann bei Aktualisierung auslösen? Würde es die CCU überlasten? Denn es würde das Script ja sehr häufig ausführen, oder? Was meint ihr dazu?
Grüße Dirk
- Black
- Beiträge: 5482
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Script ausführen nach Werteänderung in Systemvariablen
Die Sensoren sind ZigBee Sensoren
Die Sensoren werden eingelesen im : IOBroker
also würde ich die Werteaufbereitung (Mittelwertbildung) logischerweise auch im IObroker machen
die Anderen Adapter (hier die CCU) bekommen die werte von der Middleware, die sie brauchen. Also den Aufbereiteten Mittelwert.
Mit so einer Verteilten Berechnung (Rechner 1 ermittelt die Rohdaten schiebt die an Rechner 2, Rechner 2 triggert bei Anderung der übermittelten daten, berechnet daraus die Mittelwerte, gibt die in einer anderen Variablen wieder an Rechner 1 zurück. Kann man so machen, ist dann halt kacke, wenn du mal nen Fehler suchst und dich erstmal auf die Suche machst, welcher Rechner in welcher Instanz dann wo und wie den Wert verbogen hat.
Black
Die Sensoren werden eingelesen im : IOBroker
also würde ich die Werteaufbereitung (Mittelwertbildung) logischerweise auch im IObroker machen
die Anderen Adapter (hier die CCU) bekommen die werte von der Middleware, die sie brauchen. Also den Aufbereiteten Mittelwert.
Mit so einer Verteilten Berechnung (Rechner 1 ermittelt die Rohdaten schiebt die an Rechner 2, Rechner 2 triggert bei Anderung der übermittelten daten, berechnet daraus die Mittelwerte, gibt die in einer anderen Variablen wieder an Rechner 1 zurück. Kann man so machen, ist dann halt kacke, wenn du mal nen Fehler suchst und dich erstmal auf die Suche machst, welcher Rechner in welcher Instanz dann wo und wie den Wert verbogen hat.
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 36
- Registriert: 19.12.2019, 15:16
- System: CCU
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 3 Mal
Re: Script ausführen nach Werteänderung in Systemvariablen
@black...du hast recht.....habe alles auf IOBroker umgestellt. Ist wirklich übersichtlicher und der Raspberry4 ist auch leistungsstärker als die CCU.
Danke
Danke
Grüße Dirk