Location-Modul

Hallo Zusammen,
kurze, doofe Frage: Wie kann ich denn ein Ereignis mit Sonnenuntergang oder Sonnenaufgang oder so triggern? Bisher habe ich es nur mit der „Es ist Tag“-Variablen geschafft (wenn Tag = true…), aber wie kann ich denn mit den anderen Werten etwas triggern?

Liebe Grüße
Dennis.

Hi,
eigentlich recht einfach. Ich lasse um Mitternacht immer folgendes Script laufen:

if($_IPS['SENDER'] == "TimerEvent"){
    if (IPS_GetName($_IPS['EVENT']) == 'ScriptTimer'){
// machen was auch immer bei Sonnenuntergang passieren soll, z.B. irgendwo Licht an
        return;
    }
}

$sunset = getvalueinteger(52598 /*[Location\Sunset]*/);
IPS_SetScriptTimer($_IPS['SELF'], $sunset - time() );

Soll es vor oder nach Sonnenuntergang passieren muss man den ScriptTimer länger (+ Zeit) oder kürzer (-Zeit) machen.

Mitternacht habe ich gewählt weil da garantiert auch schon der aktuelle Sonnenuntergang war. Das Script muss nach Sonnenuntergang für den nächsten Tag getriggert werden.

Ralf

Einfach als Auslöser nutzen. Schau mal in der Doku ganz unten: Location Control — IP-Symcon :: Automatisierungssoftware

paresy

Guten Morgen @HarmonyFan und @paresy ,
vielen Dank für eure Hilfen - ich denke ich bin einen Schritt weiter bekommen.

Jetzt hab ich noch Stufe 2: Wie kann ich denn in einem laufenden Script (also nicht als Trigger wie bisher) mit einer If… Prüfen, ob wir, wenn das Script läuft, schon vor oder nach Sonnenuntergang sind und dann entsprechend etwas machen?

...
// Fensterprüfung anschalten  
    SetValueBoolean(22854, true);
    
    // Tagmodus wenn es noch dunkel ist  
    if ($LocationNacht) {
        RequestAction(56224, true);
        //Message schreiben
        IPS_LogMessage("Tag-Nacht-Modus", "Tagmodus, wenn es noch DUNKEL ist ");
        }
    
    // Tagmodus wenn es schon hell ist  
    if ($LocationTag) {
        RequestAction(54851, false);
        //Message schreiben
        IPS_LogMessage("Tag-Nacht-Modus", "Tagmodus wenn es schon HELL ist");
        }
...

Sprich ich würde gern in diesem Script das Location Tag/Nacht durch Sonnenaufgang tauschen.

LG Dennis.

LocationNacht ist doch wenn „Es ist Tag“-Variable auf false ist
und LocationTag wenn „Es ist Tag“-Variable auf true.

Kannst du doch einfach mit GetValue() machen.
Michael

Hi Michael,
ne - das sind verschiedene Zeiten - und die sind nicht mit GetValue True/False verwendbar.


Kann ich irgendwie mit den anderen Werten arbeiten? Irgendwie so: Wenn aktuelle Scriptausführungszeit nach „Ziviler Dämmerungsbeginn“, dann …
LG Dennis.

ja und?
Auch die kannst du mit GetValue lesen. Sind halt UnixTimestamps.
Kannst du also mit time() vergleichen.

Oder einfach den Auslöser des Scriptes auswerten? mit $_IPS['VARIABLE']

Michael