Suche Skript für Regenmenge

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benso
Beiträge: 29
Registriert: 21.04.2015, 12:45

Suche Skript für Regenmenge

Beitrag von Benso » 21.04.2015, 12:53

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
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Suche Skript für Regenmenge

Beitrag von DrTob » 21.04.2015, 13:31

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

Benso
Beiträge: 29
Registriert: 21.04.2015, 12:45

Re: Suche Skript für Regenmenge

Beitrag von Benso » 21.04.2015, 13:49

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.
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Suche Skript für Regenmenge

Beitrag von DrTob » 21.04.2015, 20:48

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());


Benso
Beiträge: 29
Registriert: 21.04.2015, 12:45

Re: Suche Skript für Regenmenge

Beitrag von Benso » 22.04.2015, 09:02

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 :-).
--------------------------------------------------------------------------------
CCU2 mit modifizierter Antenne + 2x Repeater und 2x Gateway
617 Kanäle in 139 Geräten und 83 Programmen mit 49 Variablen
--------------------------------------------------------------------------------

leknilk0815
Beiträge: 6693
Registriert: 19.03.2007, 08:21
Danksagung erhalten: 2 Mal

Re: Suche Skript für Regenmenge

Beitrag von leknilk0815 » 22.04.2015, 09:23

...kleine Anmerkung am Rande:
meteorologisch korrekt wird die Tagesregenmenge um 07:00 Uhr bestimmt, nicht beim Tageswechsel um 24:00 :D
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

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: Suche Skript für Regenmenge

Beitrag von Marcus1@@@ » 05.02.2016, 14:43

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

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: Suche Skript für Regenmenge

Beitrag von Marcus1@@@ » 13.02.2016, 17:43

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!

Marcus1@@@
Beiträge: 219
Registriert: 02.01.2016, 14:24
Danksagung erhalten: 21 Mal

Re: Suche Skript für Regenmenge

Beitrag von Marcus1@@@ » 14.02.2016, 16:24

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!

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());
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 :(

BadenPower

Re: Suche Skript für Regenmenge

Beitrag von BadenPower » 14.02.2016, 23:55

Schau einmal in Zeile 5 Deines Skriptes.

Code: Alles auswählen

monthRain = curRain - helpRain;
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.


.

Antworten

Zurück zu „HomeMatic allgemein“