nachdem ich nun den Grossteil meiner Aktoren mit einigen Kopfschmerz im IPS eingebunden habe und einfachere Schaltungen auch ohne Skripte hinbekommen habe, nun meine erste komplexere Aufgabe. Da meine PHP Kenntnisse fast gegen null laufen ich mich aber gerne damit auseinandersetzen würde hier mal eine grundsätzliche Anfrage. Leider habe ich kein Beispielskript in dieser From hier gefunden, vielleicht kann aber doch einer weiter helfen. Über einen HM Türkontakt würde ich gerne einen Merten Dimmer auf 100% einschalten. Dieser soll nach einer Zeit von 60 Sek. wieder ausschalten, es sei den mein EZ Motion erkennt eine Bewegung. In diesem Fall soll das Licht weitere 120 Sek. eingeschaltet bleiben (nach der letzten Bewegungserkennung). Keine Bewegung über 120Sek. dann licht wieder aus. Wird erneut Bewegung erkannt soll das Licht sofort wieder eingeschaltet werden für 120 Sek. … das war es dann eigetnlich auch schon wäre für jede Hilfe dankbar …
das wäre mega perfekt. Zumindest würde ich darüber auch mal den Ablauf mitbekommen. Zur Zeit hangel ich mich hier durchs Forum und diverse Skripte, wo ich bei den meisten aber schon den Grundsatz nicht so recht nachvollziehen kann.
Schau mal ob du damit schon klar kommst, ansonsten erläutere ich dir den Ablauf noch genauer…
Denke aber das durch die IPS Kommentare es recht gut verständlich ist.
Ich schalte über Bewegungsmelder oder Türkontakt den Timer auf 3min (3*60sec) und schalte das Licht ein
Wenn der Timer abläuft schaltet er das Licht aus.
Das ganze mache ich nur zwischen 17 Uhr abend und morgens 9 Uhr ansonsten ist es hell genug (kannst du gerne rausnehmen)
<?
$aktTime=date("Hi");
// aktuelle Uhzeit im Format 1200 für 12:00Uhr
$id_Bewegungsmelder_Motion=16026
/*[Keller\Waschkeller\Bewegungsmelder Kellerausgang\Bewegungserkennung\MOTION]*/;
$id_Kellerausgang_tuer=11672
/*[Keller\Waschkeller\Kellerausgang\STATE]*/;
$id_timer_event=55823 /
*[Keller\Waschkeller\Beleuchtung_Waschkeller\]*/;
$id_Beleuchtung=39899
/*[Keller\Hobbyraum\Bewässerungsventile\VENTIL 4 derzeit noch für Waschkellerlicht]*/;
if ( $aktTime <= 900 || $aktTime >= 1700 ) {
if(@$_IPS['VARIABLE'] == $id_Bewegungsmelder_Motion ) {
IPS_SetScriptTimer($IPS_SELF, 60*3); // Timer um 3 Minuten verlängern
HM_WriteValueBoolean($id_Beleuchtung,"STATE",true); //Licht einschalten
} else if (GetValueBoolean( $id_Kellerausgang_tuer/*[Keller\Waschkeller\Kellerausgang\STATE]*/)){
IPS_SetScriptTimer($IPS_SELF, 60*3); // Timer um 3 Minuten verlängern
HM_WriteValueBoolean($id_Beleuchtung,"STATE",true);
}else
{
IPS_SetScriptTimer($IPS_SELF, 0);
HM_WriteValueBoolean($id_Beleuchtung ,"STATE",false);
}
}
if (@$_IPS['EVENT'] == $id_timer_event )
{
IPS_SetScriptTimer($IPS_SELF, 0);
HM_WriteValueBoolean($id_Beleuchtung ,"STATE",false);
}
//ENDE
?>
auf den ersten Blick sieht es schonmal verständlich aus. Auf Grund des allgemeinen Weltfriedens (oder auch Familienfriedens), komme ich leider erst morgen früh dazu mir das ganze in Ruhe anzuschauen. Puhh und es kribbelt wirklich in den Fingern … naja mal schauen vielleicht dann auch noch heute zu etwas späterer Stunde
so den Teil mit der Uhrzeit habe ich entfernt den Rest soweit möglich auf meinen Objektbaum angepasst. Allerdings fehlt mir so ein wenig das Verständnis für die Zeile $id_timer_event=55823 … ansonsten wenn ich das skript manuell ausführe bekomme ich einen Fehler aus der Zeile ZW_SwitchMode($id_Beleuchtung, false); mit der Fehlermeldung ZW_SwitchMode: Instance #33709 not found! in F:\IP-Symcon\scripts\38740.ips.php on line 21
[0] in function ZW_SwitchMode in F:\IP-Symcon\scripts\38740.ips.php on line 21
aber die id ist vorhanden und stimmt auch ???
Wenn ich die obere Instanz nehme kommt zwar kein Fehler mehr aber eine wirkliche Funktion hat dann dieses Skript auch nicht
Vielleicht noch jemand mit zWave Nodes hier der weiter helfen kann ?? im übrigen ist das Licht manuell eingeschaltet worden steigt das Skript schon früher aus (zw_switch…true) und das mit der gleicher Fehlermeldung.
gruss marko
PS: Türkontakt ist ein Homematic, Beleuchtung Merten Superdimmer ZWave, Bewegung EZMotion ZWAVE
Lösung gefunden … die obere Instanz muss angegeben werden bei der Beleuchtung und „oh wie peinlich“ das Ereignis welches das Skript dann auch auslöst. Naja so ist das wohl bei den ersten Skripten die man einbaut
Hallo,
mal wieder scheitere ich daran ein einfaches Script zu übernehmen.
Der Timer wurde angelegt und die passende ID eingetragen.
Ich habe den Teil mit dem Türkontakt rausgenommen.
aehm, hasse auch das Ereignis angelegt, welches das Skript auslöst ??? Also ich hatte es vergessen und Stundenlang hier rumgesucht woran es liegen könnte