Script für gleitenden Mittelwert
Moderator: Co-Administratoren
-
- Beiträge: 9738
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 705 Mal
- Danksagung erhalten: 1644 Mal
Re: Script für gleitenden Mittelwert
Aber wenn man doch eh CUxD am laufen hat - warum den nicht nutzen. Ich sehe eigentlich nur Vorteile bei der Lösung.
Man muss nur einmal durch die Konfiguration durchsteigen.
Aber: mal wieder sehr schöner, eleganter Code!
Man muss nur einmal durch die Konfiguration durchsteigen.
Aber: mal wieder sehr schöner, eleganter Code!
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: 10672
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 327 Mal
- Danksagung erhalten: 503 Mal
Re: Script für gleitenden Mittelwert
Da hast du natürlich Recht, Michael. Hatte gestern nur mal Lust, ein Skript zu schreiben. =
Danke. Allerdings ist mir aufgefallen, dass die Systemvariable mit der Werteliste so überläuft. Hab's noch mal geändert. Aber wie gesagt, ist ungetestet.
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.
Re: Script für gleitenden Mittelwert
Hallo
ich verwende das von Belly vorgeschlagene Skript für den gleitenden Mittelwert.
Funktioniert für Helligkeit (ILLUMINATION) super
jetzt habe ich es angepasst für Wind - ich habe aber nicht herausgefunden, wie die Original Bezeichnungen für Wind heißen - mit WIND funktioniert es nicht.
Wie bekommt man das raus (Datenblatt sagt dazu nichts)
Code ist
object averageObject = dom.GetObject("Wind_avg");
real current = dom.GetObject("HmIP-RF.0017DBE99E90D3:1.WIND").Value();
real n = 5.0;
real average = (averageObject.Value() * (n - 1) / n) + (current / n);
averageObject.State(average);
WriteLine(average); ! Hier könnte eine Meldung via Messenger stehen
Kann mir jemand weiterhelfen?
Boris
ich verwende das von Belly vorgeschlagene Skript für den gleitenden Mittelwert.
Funktioniert für Helligkeit (ILLUMINATION) super
jetzt habe ich es angepasst für Wind - ich habe aber nicht herausgefunden, wie die Original Bezeichnungen für Wind heißen - mit WIND funktioniert es nicht.
Wie bekommt man das raus (Datenblatt sagt dazu nichts)
Code ist
object averageObject = dom.GetObject("Wind_avg");
real current = dom.GetObject("HmIP-RF.0017DBE99E90D3:1.WIND").Value();
real n = 5.0;
real average = (averageObject.Value() * (n - 1) / n) + (current / n);
averageObject.State(average);
WriteLine(average); ! Hier könnte eine Meldung via Messenger stehen
Kann mir jemand weiterhelfen?
Boris
CCU2, CCU3, HmIP-W, HmIP
-
- Beiträge: 9738
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 705 Mal
- Danksagung erhalten: 1644 Mal
Re: Script für gleitenden Mittelwert
Das sollte in HmIP_Device_Documentation.pdf zu finden sein
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 +++
Re: Script für gleitenden Mittelwert
Super, danke für den Hinweis
mit
WIND_SPEED
funktioniert es
LG BOris
mit
WIND_SPEED
funktioniert es
LG BOris
CCU2, CCU3, HmIP-W, HmIP
-
- Beiträge: 652
- Registriert: 03.01.2017, 17:39
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 9 Mal
Re: Script für gleitenden Mittelwert
Hallo muss hier mal nachfragen. Die beiden Systemvariablen sind angelegt: Das Gerät Wetterstation habe ich im Script eingefügt. Und habe auch das Startscript einmal ausgeführt.hanan hat geschrieben: ↑11.11.2016, 14:16Hallo stephanw
Hier das Script welches ich durch die tollen Menschen in diesem Forum benutze...
Zwei Variablen anlegen:
- "AussenMittel" als "Zahl" und Masseinheit "°C"
- "AusssenTListe" als "Zeichenkette" und Masseinheit "°C"
Jetzt einmal folgender Skript unter "Skript tetsen" durchlaufen lassen, damit die Variable AussenTListe mit allen 8 Werten gefüllt wird.In einem Programm stündlich diesen Script ausführen lassen:Code: Alles auswählen
! Liste initialisieren string raum = "Aussen"; integer n = 8; string x = dom.GetObject(raum#".Sensor").DPByHssDP("TEMPERATURE").Value().ToString(1); string list = x; integer i = 1; while(i < n) {list = list#","#x; i = i + 1; } dom.GetObject(raum#"TListe").State(list);
Dieses ergibt eine durchschnittliche Temperatur der letzten 8 Stunden.Code: Alles auswählen
! gleitender Mittelwert über n Werte ! Programm muß zyklisch per Zeitmodul ausgelöst werden ! Raumname ist Bestandteil des Kanalnamens (Raum.Sensor) ! und des Namens der Systemvariablen (RaumTListe) string raum = "Aussen"; ! Konstante: Anzahl Werte in der Liste integer n = 8; ! Lokale Variablen string list; ! Meßwertliste integer len; ! Element-Länge real s = 0.0; ! Summe ! Werte einlesen und verschieben list = dom.GetObject(raum#"TListe").Value(); len = list.StrValueByIndex(",",0).Length() + 1; list = list.Substr(len, list.Length() - len); list = list#","#dom.GetObject(raum#".Sensor").DPByHssDP("TEMPERATURE").Value().ToString(1); dom.GetObject(raum#"TListe").State(list); string summand; foreach(summand, list.Split(",")) {s = s + summand.ToFloat(); } ! Mittelwert in Systemvariable schreiben dom.GetObject(raum#"Mittel").State(s / n);
Gruess aus der Schweiz
Würde jetzt das eigentliche Script jede Stunde einmal laufen lassen um einen Tagesdurchschnitt zu bekommen.
Code: Alles auswählen
! gleitender Mittelwert über n Werte
! Programm muß zyklisch per Zeitmodul ausgelöst werden
! Raumname ist Bestandteil des Kanalnamens (Raum.Sensor)
! und des Namens der Systemvariablen (RaumTListe)
string raum = "Aussen";
! Konstante: Anzahl Werte in der Liste
integer n = 24;
! Lokale Variablen
string list; ! Meßwertliste
integer len; ! Element-Länge
real s = 0.0; ! Summe
! Werte einlesen und verschieben
list = dom.GetObject(raum#"TListe").Value();
len = list.StrValueByIndex(",",0).Length() + 1;
list = list.Substr(len, list.Length() - len);
list = list#","#dom.GetObject(raum#".Wetterstation:3").DPByHssDP("TEMPERATURE").Value().ToString(1);
dom.GetObject(raum#"TListe").State(list);
string summand;
foreach(summand, list.Split(","))
{s = s + summand.ToFloat();
}
! Mittelwert in Systemvariable schreiben
dom.GetObject(raum#"Mittel").State(s / n);
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge
-
- Beiträge: 9738
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 705 Mal
- Danksagung erhalten: 1644 Mal
Re: Script für gleitenden Mittelwert
Der Kanal der Wetterstation muss auch
heißen. Da Du für raum
definiert hast also
Aussen.Wetterstation:3
Code: Alles auswählen
raum#".Wetterstation:3"
Code: Alles auswählen
string raum = "Aussen";
Aussen.Wetterstation:3
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 +++
- Baxxy
- Beiträge: 10933
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 617 Mal
- Danksagung erhalten: 2253 Mal
Re: Script für gleitenden Mittelwert
Man könnte auch mal bei Status & Bedienung gucken auf welchem Kanal die relevanten Werte zu finden sind.
Kleiner Tipp: Kanal:3 ist es nicht.
Kleiner Tipp: Kanal:3 ist es nicht.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 652
- Registriert: 03.01.2017, 17:39
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 9 Mal
Re: Script für gleitenden Mittelwert
Nein stimmt es ist Kanal 1 und damit muss dort 001818A992BC16:1 rein.
Das Startprogramm schaut so aus:
Alles schon getestet aber die Systemvariablen ändern sich nicht. Leider.
Das Startprogramm schaut so aus:
Code: Alles auswählen
! Liste initialisieren
string raum = "Aussen";
integer n = 24;
string x = dom.GetObject(raum#".001818A992BC16:1").DPByHssDP("TEMPERATURE").Value().ToString(1);
string list = x;
integer i = 1;
while(i < n)
{list = list#","#x;
i = i + 1;
}
dom.GetObject(raum#"TListe").State(list);
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge
- Henke
- Beiträge: 1535
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 142 Mal
- Danksagung erhalten: 309 Mal
Re: Script für gleitenden Mittelwert
Sieht falsch aus. Trag hier mal den korrekten Wert ein. "HmIP-RF.001818A992BC16:1" ?