Suche Skript für Regenmenge
Moderator: Co-Administratoren
Suche Skript für Regenmenge
Hallo Homematic User,
ich kann nicht programmieren, daher eine Frage;
kann mir jemand ein Skript erstellen das folgendes ausgibt:
Regenmenge/Woche = Regenmenge der letzten 7 Tage.
Ich habe den Kombisensor.
Habe nirgends Brauchbares gefunden.
Für Hilfe wäre ich sehr dankbar.
MfG
ich kann nicht programmieren, daher eine Frage;
kann mir jemand ein Skript erstellen das folgendes ausgibt:
Regenmenge/Woche = Regenmenge der letzten 7 Tage.
Ich habe den Kombisensor.
Habe nirgends Brauchbares gefunden.
Für Hilfe wäre ich sehr dankbar.
MfG
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------
Suche Skript für Regenmenge
Das ist nicht ganz so trivial wie es sich zuerst anhört, weil das nicht irgend eine Summe ist, die zu einem Zeitpunkt auf null gesetzt wird. Wie genau muss das sein?
Einfach ist: Regen seit Montag d.h. Immer am Sonntag Nacht wird auf 0 gestellt.
Wenn's wirklich "die letzten sieben Tage" sein sollen wäre ein möglicher Kompromiss sich die Summe der einzelnen 7 Wochentage zu merken. Und immer um 0 Uhr den dann aktuellen Wochentag auf 0 setzt. Damit bekommt man jeweils die Summe der vergangenen 6 Wochentage + aktueller Tag
Einfach ist: Regen seit Montag d.h. Immer am Sonntag Nacht wird auf 0 gestellt.
Wenn's wirklich "die letzten sieben Tage" sein sollen wäre ein möglicher Kompromiss sich die Summe der einzelnen 7 Wochentage zu merken. Und immer um 0 Uhr den dann aktuellen Wochentag auf 0 setzt. Damit bekommt man jeweils die Summe der vergangenen 6 Wochentage + aktueller Tag
Re: Suche Skript für Regenmenge
Vielen Dank erst mal für die Antwort.
Ich habe es mir so vorgestellt:
Jeden Tag der Woche wird die TagesRegenmenge 23:55 Uhr in eine Variable z.B.(RegenMo,RegenDi,RegenMi...) gespeichert. Die Regenmenge/heute haben wir ja im Kombisensor. Dazu habe ich 7 Programme erstellt für jeden Wochentag.
Jeden Tag der Woche 23:58 Uhr wird ein Skript aufgerufen das einfach die Regenmengen addiert:
Am Dienstag z.B. also:
Regenmengeletzte7Tage = RegenMo+RegenDi+RegenMi+RegenDo+RegenFr+RegenSa+RegenSo
Die Programme habe ich bereits erstellt nur kennne ich mich mit den Variablen nicht aus. Ich weiss nicht wie ich die Werte in die Variablen überführen soll. Die Systemvariablen habe ich allerdings schon erstellt.
Ich habe es mir so vorgestellt:
Jeden Tag der Woche wird die TagesRegenmenge 23:55 Uhr in eine Variable z.B.(RegenMo,RegenDi,RegenMi...) gespeichert. Die Regenmenge/heute haben wir ja im Kombisensor. Dazu habe ich 7 Programme erstellt für jeden Wochentag.
Jeden Tag der Woche 23:58 Uhr wird ein Skript aufgerufen das einfach die Regenmengen addiert:
Am Dienstag z.B. also:
Regenmengeletzte7Tage = RegenMo+RegenDi+RegenMi+RegenDo+RegenFr+RegenSa+RegenSo
Die Programme habe ich bereits erstellt nur kennne ich mich mit den Variablen nicht aus. Ich weiss nicht wie ich die Werte in die Variablen überführen soll. Die Systemvariablen habe ich allerdings schon erstellt.
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------
Re: Suche Skript für Regenmenge
Folgendes Script am Ende eines Tages ausgeführt setzt die aktuelle Tagesvariable auf den wert von der Systemvariable "Regen heute" und anschließend die Systemvariable "Regen7Tage" auf die Summe der Tagesvariablen:
Code: Alles auswählen
var aktuell = dom.GetObject("Regen heute");
var mo = dom.GetObject("RegenMo");
var di = dom.GetObject("RegenDi");
var mi = dom.GetObject("RegenMi");
var do = dom.GetObject("RegenDo");
var fr = dom.GetObject("RegenFr");
var sa = dom.GetObject("RegenSa");
var so = dom.GetObject("RegenSo");
var woche = dom.GetObject("Regen7Tage");
var today;
integer wday = system.Date("%u").ToInteger();
if (wday == 1) { today = mo;}
if (wday == 2) { today = di;}
if (wday == 3) { today = mi;}
if (wday == 4) { today = do;}
if (wday == 5) { today = fr;}
if (wday == 6) { today = sa;}
if (wday == 7) { today = so;}
today.State(aktuell.Value());
woche.State(mo.Value() + di.Value() + mi.Value() + do.Value() + fr.Value() + sa.Value() + so.Value());
Re: Suche Skript für Regenmenge
Hallo DrTob,
vielen Dank für die tolle Hilfe.
Ich werde das Skript gleich ausprobieren.
Viele Grüße.
PS: Zur Info: Ich brauche das Skript für meine Beregnungsanlage .
vielen Dank für die tolle Hilfe.
Ich werde das Skript gleich ausprobieren.
Viele Grüße.
PS: Zur Info: Ich brauche das Skript für meine Beregnungsanlage .
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------
-
- Beiträge: 6693
- Registriert: 19.03.2007, 08:21
- Danksagung erhalten: 2 Mal
Re: Suche Skript für Regenmenge
...kleine Anmerkung am Rande:
meteorologisch korrekt wird die Tagesregenmenge um 07:00 Uhr bestimmt, nicht beim Tageswechsel um 24:00
meteorologisch korrekt wird die Tagesregenmenge um 07:00 Uhr bestimmt, nicht beim Tageswechsel um 24:00
Gruß - Toni
KS300 + Sonnendauer + Windrichtung, KS888, HM-CC-TC/HM-CC-VD, FHT80b, und etwas FS20-xx, Keymatic, EM1000, CCU2 und FHZ2000 sowie HP Studio, HPCL + Upgrade für FHZ
KS300 + Sonnendauer + Windrichtung, KS888, HM-CC-TC/HM-CC-VD, FHT80b, und etwas FS20-xx, Keymatic, EM1000, CCU2 und FHZ2000 sowie HP Studio, HPCL + Upgrade für FHZ
-
- Beiträge: 219
- Registriert: 02.01.2016, 14:24
- Danksagung erhalten: 21 Mal
Re: Suche Skript für Regenmenge
Hallo, ich hänge mich hier nochmal ran. Ich suche ein script für die Regenmenge des Monats,bzw. Vormonats? Wie stell ich das am geschicktesten an?
Grüße
Grüße
-
- Beiträge: 219
- Registriert: 02.01.2016, 14:24
- Danksagung erhalten: 21 Mal
Re: Suche Skript für Regenmenge
Kann mir das bitte jemand in ein script "übersetzen"?
ich lege variable a an!
ziehe immer am letzten tag des monats von der aktuellen gesamtregenmenge des OC3 den wert der variable a ab und speichere diesen neuen wert in variable b! kopiere danach die aktuelle gesamtregenmenge des oc3 in variable a!
Ich bin da leider noch zu dumm für!
ich lege variable a an!
ziehe immer am letzten tag des monats von der aktuellen gesamtregenmenge des OC3 den wert der variable a ab und speichere diesen neuen wert in variable b! kopiere danach die aktuelle gesamtregenmenge des oc3 in variable a!
Ich bin da leider noch zu dumm für!
-
- Beiträge: 219
- Registriert: 02.01.2016, 14:24
- Danksagung erhalten: 21 Mal
Re: Suche Skript für Regenmenge
Variablen:
Regen Zwischenspeicher Zahl 0 - 65000 !fiktiv gefüllt mit dem Wert 500
Regen letzter Monat Zahl 0 - 65000
Programm wird über das Zeitmodul ausgeführt!
Ich habe mir jetzt mit Hilfe der Homematic Script Dokumentation dieses Script gebaut, laut Fehlerprüfung fehlerfrei aber es funktioniert eben nicht! Was ist falsch? Ist mein erster Script Versuch
Regen Zwischenspeicher Zahl 0 - 65000 !fiktiv gefüllt mit dem Wert 500
Regen letzter Monat Zahl 0 - 65000
Programm wird über das Zeitmodul ausgeführt!
Code: Alles auswählen
var wds = dom.GetObject("AG_Gar-Wetterstation-1:1");
var curRain = wds.DPByHssDP("RAIN_COUNTER");
var helpRain = dom.GetObject("Regen Zwischenspeicher");
var monthRain = dom.GetObject("Regen letzter Monat");
monthRain = curRain - helpRain;
curRain.Variable(helpRain.Value());
monthRain.Variable(monthRain.Value());
Re: Suche Skript für Regenmenge
Schau einmal in Zeile 5 Deines Skriptes.
Du versuchst einem Objekt die Subtraktion von zwei Objekten zuzuweisen, was keinen Sinn macht, aber durchaus keinen syntaktischen Fehler ergibt, da Objekte wie Zahlen behandelt werden.
.
Code: Alles auswählen
monthRain = curRain - helpRain;
.