Hallo Chris und oder zusammen
So funktioniert mein Script, (Vorlage von Dir) wenn ich die Terrassentüre öffne, dass heisst, das Licht der Aussenbeleuchtung geht an. (das Ereignis wird gestartet)
Nun bis mein Hellikeitssensor eingetroffen ist, (geht ja bekanntlich etwas länger bis das Packet aus Deutschland den Weg in die Schweiz findet) möchte ich dies zeitlich einschränken.
Von 21°° bis 5°° soll dies aktiv sein, der Rest vom Tag nicht, ist ja hell drausen, o.k., jetzt ja nicht mehr…
So geht’s:
<?
/* SKRIPT EINMAL VON HAND AUSFÜHREN, danach wird das Skript automatisch beim Öffnen/Schließen von Fenster/Tür ausgeführt, oder nicht */
$Fenster_Garten_ID = 17316 /*[Wohnung\Fensterkontakt Wohnung\Fenster Garten]*/;
// Diese Zeile legt ein Event an, welches die Variable mit der ID 17316 auf Variablenänderung überwacht und bei jeder Variablenänderung (und auch nur dann) dieses Skript ausführt
CreateEventTrigger("Gartentuer_Oeffnung", 17316 /*[Wohnung\Fensterkontakt Wohnung\Fenster Garten]*/, $_IPS['SELF'], 1); // Legt ein Trigger-Event (bei Variablenänderung) für die Variable mit der Objekt-ID 12345 an (damit dieses Skript hier ausgeführt wird, wenn die Variable sich ändert)
if (GetValueBoolean($Fenster_Garten_ID) === true) { // Wenn das Gartenfenster offen ist dann...
TMEX_F3A_SetPin(42899 /*[Garten\switch licht garten]*/, 0, true); // Dann das Licht im Garten einschalten, sonst nichts machen (kein else)
TMEX_F3A_SetPin(42899 /*[Garten\switch licht garten]*/, 1, true); // Dann das Licht im Garten einschalten, sonst nichts machen (kein else)
}
else { // Oder wenn das Gartenfenster geschlossen ist/wurde
TMEX_F3A_SetPin(42899 /*[Garten\switch licht garten]*/, 0, false); // Dann das Licht im Garten ausschalten
TMEX_F3A_SetPin(42899 /*[Garten\switch licht garten]*/, 1, false); // Dann das Licht im Garten ausschalten
}
// Diese Funktion erstellt ein Event
function CreateEventTrigger($EventName, $VarID, $ParentID, $EventTyp) {
$eid = @IPS_GetEventIDByName($EventName, $ParentID);
if (is_numeric($eid) == false) {
$eid = IPS_CreateEvent(0);
IPS_SetEventTrigger($eid, $EventTyp, $VarID);
IPS_SetParent($eid, $ParentID);
IPS_SetName($eid, $EventName);
IPS_SetEventActive($eid, true);
}
}
?>
wenn ich jetzt aber die zeitliche Einschränkung noch einbeziehe,
if ((date("H") >= 21) AND (date("H") <= 5)) { // Und wenn es zwischen 21.00 und 4.59 Uhr ist
unterhalt dieser Zeile:
if (GetValueBoolean($Fenster_Garten_ID) === true) { // Wenn das Gartenfenster offen ist dann…
TMEX_F3A_SetPin(42899 /[Garten\switch licht garten]/, 0, true); // Dann das Licht im Garten einschalten, sonst nichts machen (kein else)
TMEX_F3A_SetPin(42899 /[Garten\switch licht garten]/, 1, true); // Dann das Licht im Garten einschalten, sonst nichts machen (kein else)
bekomme ich ein fehlerhaftes Script.
Später würde ich dann hier gerne natürlich die Abfrage vom Hellikeitssensor einbauen.
Habe ich hier einen Tippfehler oder etwas vergessen?
Merci für die Hilfe, gruss Urs