Script ausführen nach Werteänderung in Systemvariablen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
dirkheider
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

Beitrag von dirkheider » 09.11.2022, 14:01

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
Zuletzt geändert von dirkheider am 09.11.2022, 18:21, insgesamt 1-mal geändert.
Grüße Dirk

MichaelN
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

Beitrag von MichaelN » 09.11.2022, 14:41

wie rufst du denn aktuell dieses Skript auf?
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 +++

dirkheider
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

Beitrag von dirkheider » 09.11.2022, 14:52

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?
Grüße Dirk

MichaelN
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

Beitrag von MichaelN » 09.11.2022, 15:32

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.
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 +++

dirkheider
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

Beitrag von dirkheider » 09.11.2022, 15:50

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

dirkheider
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

Beitrag von dirkheider » 09.11.2022, 17:10

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

Benutzeravatar
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

Beitrag von Black » 09.11.2022, 17:33

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
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

dirkheider
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

Beitrag von dirkheider » 09.11.2022, 18:21

@black...du hast recht.....habe alles auf IOBroker umgestellt. Ist wirklich übersichtlicher und der Raspberry4 ist auch leistungsstärker als die CCU.

Danke
Grüße Dirk

Antworten

Zurück zu „HomeMatic allgemein“