ich habe mir folgendes Script geschrieben, um bei entsprechender Aussentemp. und Dauer der geöffneten Fenster einen Hinweis auszugeben, um die Fenster zu schließen. Es kommt teilweise vor, dass Fenster in wenig genutzten Räumen vergessen werden. Dann stehen sie bei -5°C die ganze Nacht offen.
Das Script läuft ansich prima aber der Trigger leider nicht. Getriggert wird durch die Variablenänderung State vom HM Fenstersensor. Führe ich das Script manuell aus klappt’s prima. Ändert sich der Status von geschlossen auf gekippt oder geöffnet, startet der Timer nicht. Erst beim zweiten Mal am Fenstergriff rumspielen wird der Timer gestartet.
Kann sich das mal bitte jemand ansehen? Danke!
Was ist hier falsch?
<?
$fenster=GetValueInteger(29240 /*[HM-Komponenten\Couchfenster\STATE]*/);
$aussentemp=GetValueFloat(26197 /*[Makros\Umgebungsklima\Außentemperatur]*/);
$oeffnungszeit=GetValueInteger(55574 /*[Timer & Einstellung\Fensteröffnungsdauer bis Warnung]*/);
$grenztemp=GetValueFloat(57199 /*[Timer & Einstellung\Auslösetemperatur Fensterwarnung]*/);
if((($IPS_SENDER =="TimerEvent") AND ($fenster > 0) AND ($aussentemp < $grenztemp)))
{
TTS_Speak(24293 /*[Status und Sprachscripts\Text To Speech]*/, "Das Wohnzimmerfenster ist seit längerer Zeit geöffnet. Bitte schließen!", true);
IPS_SetScriptTimer($IPS_SELF,5*60);
Echo "Wiederholung alle 5 min";
return;
}
if(GetValue(23900 /*[Hausüberwachung]*/))
{
IPS_SetScriptTimer($IPS_SELF,$oeffnungszeit);
Echo "Timer an";
}
else
{
IPS_SetScriptTimer($IPS_SELF,0);
Echo "Timer aus";
}
?>
getriggert wird - und das beachtest Du nicht. Dein SkriptTimer wird aber gestartet, da der nicht mehr in der ersten if-Abfrage drin ist.
Also, schau nochmal im Detail drüber, eventuell kommst ja selber drauf wie Du es ändern musst. Wenn nicht, meld Dich noch mal.