wie hier http://homematic-forum.de/forum/viewtop ... 35&t=29963
beschrieben habe ich jetzt einen einstellbaren wecker mit einem slider
realisiert, das ganze wird dann in neo per webseitenelement dargestellt
und sieht z.b. so aus
der slider macht schritte von 5 minuten, mit wecker1, wecker2, wecker3 buttons werden
die aktuellen weckzeiten aus der variable TriggerWecker geholt und dargestellt,
schiebt man den slider, werden die zeiten geändert, nach dem button setzen, druck
wird die eingestellte zeit in die TriggerWecker variable geschrieben, für aktuellen wecker button (1,2,3)
man braucht also eine variable TriggerWecker in der ccu von dem typ werteliste
so anlegen
14:00:00;20:15:00;17:45:00
dann brauchen wir ein programm welches einmal pro tag ausgeführt wird,mit dem namen z.b weckerscript
im wenn teil mit zeitsteuereung, jeden tag um 00:10 uhr auslösen
im dann teil dieses script
Code: Alles auswählen
!Trigger Wecker
string lTriggerSysVarName = "TriggerWecker"; !Systemvariable vom Typ Werteliste
!-----------Ende Einstellungen--------------------
object lTmpObj1 = null;
object lTmpObj2 = null;
object lTmpObj3 = null;
object lTmpObj4 = null;
integer liZ1;
string lSplit1;
string lTmpList1 = "";
time lTmpDateTime1;
time lTmpDateTime2;
time lDateTime = (system.Date("%F %X")).ToTime();
integer lSecondsAfterMidnight = (lDateTime.Hour() * 3600) + (lDateTime.Minute() * 60) + lDateTime.Second();
if (dom.GetObject(lTriggerSysVarName))
{
lTmpList1 = dom.GetObject(lTriggerSysVarName).ValueList();
if (lTmpList1 <> "")
{
lTmpObj1 = dom.CreateObject(OT_PROGRAM);
lTmpObj1.Name("AutoCreateTrigger");
lTmpObj2 = lTmpObj1.Rule();
lTmpObj3 = lTmpObj2.RuleDestination();
liZ1 = 0;
foreach(lSplit1, lTmpList1.Split(";"))
{
lTmpDateTime1 = ("1970-01-02 " # lSplit1).ToTime() - lSecondsAfterMidnight;
lTmpObj4 = lTmpObj3.DestAddSingle();
lTmpObj4.DestinationParam(19);
lTmpObj4.DestinationDP(dom.GetObject(lTriggerSysVarName).ID());
lTmpObj4.DestinationValueType(16);
lTmpObj4.DestinationValue(liZ1);
lTmpObj4.DestinationValueParamType(28);
lTmpObj4.DestinationValueParam("1970-01-01" # " " # lTmpDateTime1.Format("%H:%M:%S"));
liZ1 = liZ1 + 1;
}
lTmpObj1.ProgramExecute();
dom.DeleteObject(lTmpObj1.ID());
}
}
wecker1.php
wecker2.php
wecker3.php
setze_zeit.php
in jeder datei 1,2,3 muss man in dieser zeile die ip der ccu anpassen
Code: Alles auswählen
$url ="http://xxx.xxx.xxx.xxx:8181/loksoft.exe?ret=dom.GetObject%28%22TriggerWecker%22%29.ValueList%28%29";
Code: Alles auswählen
$CCU_IP = "xxx.xxx.xxx.xxx";
im neo diese url einfügen im webseiten element
Code: Alles auswählen
http://serverip/wecker/wecker1.php
wes man beachten muss, die eingestellten zeiten werden in ccu geschrieben, werden aber nicht abgearbeitet, bevor das programm weckerscript einmal ausgeführt wird, da wir es einmal am tag
ausführen werden die zeiten dann gesetzt, um 00.10 uhr oder wie im zeitmodul eingestellt, also ändert man die zeiten mit slider jetzt, wird erst morgen mit denn werten gearbeitet.
möchte man die zeiten jetzt setzen, z.b auf 21:00:00 und möchte man dass heute noch um diese zeit reagiert wird muss man im neo ein button legen mit welchen man das programm
wetterscript ausführt, nachdem man zeiten gesetzt hat.
wie kann man jetzt in programmen reagieren ist einfach
man stellt einfach die 1. 2.oder 3. zeit als auslöser und reagiert im dann teil was man machen möchte...
was in den zeiten steht ist egal, sie werden per slider eingestellt und wenn das weckerscript ausgeführt wird, entsperechend bearbeitet/gesetzt
das ausehen vom slider und buttons kann man in der style.css datei ändern
die zip datei hier viel spass