Hallo Zusammen,
ich bin ganz neu mit IPS und php (18.08.). (und ich hoffe an der stelle richtig)
ich fummel jetzt schon seid einigen Stunden herum…
folgendes hab ich mir vorgenommen:
wenn die haustür auf geht, soll das flurlicht „vorn“ und „hinten“ an gehen.
natürlich nur wenn es entspechend dunkel ist…
soweit klappt das auch alles…
hier das script dazu:
<?
//wenn ereignis "Haustür geöffnet" und es zu dunkel ist -> Flur licht an
$id_HM_flur_hinten = 24183 /*[Komponenten\OG\Flur\Aktor.UP.01:1]*/;
$id_HM_flur_vorn = 25734
/*[Komponenten\OG\Flur\Aktor.UP.01:2] "Taster" 1x an / 2te x aus*/;
$id_HM_flur_hell_hinten = GetValue(14144 /*[Komponenten\OG\Flur\MOTION_DETECTOR\BRIGHTNESS]*/);
$zeit=1; //(Warte) Zeit in Minuten
if($id_HM_flur_hell_hinten<=34)
{
echo 'der wert ist ';
echo "$id_HM_flur_hell_hinten";
HM_WriteValueFloat($id_HM_flur_hinten,'ON_TIME',1*90);
HM_WriteValueBoolean($id_HM_flur_hinten, 'STATE', true);
HM_WriteValueBoolean($id_HM_flur_vorn, 'STATE', true);
HM_WriteValueBoolean($id_HM_flur_vorn, 'STATE', false);
IPS_Sleep(28500);
HM_WriteValueBoolean($id_HM_flur_vorn, 'STATE', true);
HM_WriteValueBoolean($id_HM_flur_vorn, 'STATE', false); }
else
{
echo 'es ist hell genug ';
echo "$id_HM_flur_hell_hinten";
}
?>
nun hab ich gelesen das die sleep funtion nicht die glücklichste ist (zudem auch die max. zeit bist das script abbricht ausgereizt ist), aber es hat erstmal funktionier…
ich würde das ganze jetzt gern mit „IPS_SetScriptTimer($_IPS[‚SELF‘], 60);“ | „IPS_SetScriptTimer($_IPS[‚SELF‘], 0);“ machen (oder eine andere, bessere Lösung).
ich hab es hin bekommen, das in „Ereignisse“ ein timer angelegt wird, der „alle“ 60 sekunden gestartet wird.
aber an sich scheitere ich irgendwie.
an welche stelle mus das:
if ($_IPS['SENDER'] <> "TimerEvent"){
IPS_SetScriptTimer($_IPS['SELF'], $zeit*20); // Timer setzen
HM_WriteValueBoolean($id_HM_flur_hinten, 'STATE', true);
HM_WriteValueBoolean($id_HM_flur_hinten, 'STATE', false);
if($_IPS['SENDER'] == "TimerEvent"){
IPS_SetScriptTimer($_IPS['SELF'], 0); // Timer deaktivieren
HM_WriteValueBoolean($id_HM_flur_hinten, 'STATE', true);
HM_WriteValueBoolean($id_HM_flur_hinten, 'STATE', false);
damit es „richtig“ funktioniert.
Herzlichen Dank im Voraus
grüße fbueller76