ich arbeite gerade an einem Script, in dessen Ergebnis eine zeitgesteuerte Aktion gestartet werden soll. Die Zeit ist aber noch nicht bekannt und muss erst berechnet werden.
Hintergrund:
Über die Schaltsteckdose mit Energiemessung werden Waschmaschine (3h Laufzeit), Trockner (4 Stunden Laufzeit) und Geschirrspüler (2 StundenLaufzeit) gesteuert.
Ich habe eine Solaranlage und möchte gern, dass die Geräte hintereinander angeschaltet und zur besten Energiezeit betrieben werden.
Über die Astrofunktion bekomme ich die Zeit für den höchsten Sonnenstand.
Wenn ich nun z.B. einen Auftrag für die Waschmaschine und den Geschirrspüler habe, errechnet sich der Startzeitpunkt:
höchster Sonnenstand - ((Waschmaschine-Zeit + Geschirrspüler-Zeit)/2), z.B. 09:37 Uhr für den Geschirrspüler und 11:37 Uhr für die Waschmaschine. Trockner wird heute nicht gebraucht und deshalb auf irgendeinen Wert fern in der Zukunft gesetzt.
Eine Statusverwaltung für die Aufträge habe ich bereits implementiert. Ich muss nun nur noch die Timer korrigieren.
Jetzt möchte ich also die drei bereits angelegten Timer auf die entsprechenden Startzeiten per Skript einstellen, Geschirrspüler auf heute 09:37 Uhr und Waschmaschine aif 11:37 Uhr.
Das Objekt "Geschirrspüler.StartRunning" beinhaltet den Timer (einzige Condition in dem Programm).
Ich habe bereits folgenden Code:
Code: Alles auswählen
object prg = dom.GetObject("Geschirrspüler.StartRunning");
object rule = prg.Rule();
object cond=rule.RuleCondition(0).CndSingleCondition(0);
Ich finde Im Netz leider keine entsprechenden Objektbeschreibungen zu CndSingleCondition und weiß nicht einmal wie das Timer-Objekt heißt. Ich würde mich auch für die entsprechenden Konstanten/Typen interessieren.
Habt Ihr da was für mich?
Viele Grüße, Didiator