Automatischer Skriptstart nach astronomischen Ereignissen (Sonnenaufgang, Dämmerung)

Sorry aber manchmal ist Arbeit wichtiger als Forum lesen.

Wie gemacht:

In je einer Variable die Min- und Max-Werte als Timestamp (Sekunden seit 1.1.1970 00:00 GMT, siehe time()-Befehl usw). Diese wiederum werden einmal pro Tag aus den eigentlichen und per Oberfläche gepflegten datumsfreien Zeit-Strings generiert

Ein kleines sekündlich schedultes Script, dass mir eigentlich primär die Strings für die Digitaluhr im Dashboard generiert (time() --> date() ) vergleicht diese Zeitstempel gleich mit und setzt bedarfsweise die Sollpositionsvariablen meines zentralen Jalousiensteuerungs-Script. Geht sicher auch anders, aberdas Script ist nunmal da und arbeitet fleißig einmal je Sekunde und kann das nebenbei gleich mitmachen.

  1. per time() aktueller Zeitwert,
  2. per Sonnenauf-/untergang gelieferter Wert (dafür gibt es PHP-Befehle, die das liefern, auch bzgl der Dämmerungen, siehe php.net)
  3. Variablen mit Grenzwerten (nicht früher als / später als)

–> diese Werte vergleichen und ggf. Ereignis auslösen
(4. Beim Auslösen Merk-Variablen mit Zeitstempel setzen, somit speichern, wann zuletzt geöffnet / geschlossen wurde, und auch diese oben mit auswerten, damit nur einmal am Tag geöffnet / geschlossen wird)

Enabled:
Global (soll Automatik überhaupt…) per ausgewerteter Boolean-Variable im Sekunden-Script, Fenster-Individuell im Jalousien-Script, Identifikation des konkreten Fensters und seinem enabled-Status im zentralen Scripts anhand der auslösenden Trigger-Variable mit der Sollposition (gleicher Variablennamens-Präfix oder gleiches Parent-Objekt wie Trigger auslösende Sollpositions-Variable)

Gruß Gerd

Hallo ich wil ein script machen das die lampen an macht und mit ein andere script die lampen aus macht’ wie ghet das? sonsaufgang und untergang

und kan jemend mir helfenwie ich mein script hier in mien thema einfhuge kan?

danke

Schau Dir mal das hier an: Automatischer Skriptstart nach astronomischen Ereignissen (Sonnenaufgang, Dämmerung) - IP-Symcon Community Forum

danke, aber ich bin anfanger, wie schreibe ich dat script? ich habe shon ein script mit schalter an und aus (variablen)

danke, Ron

Hallo Ron,

ich habe für die Steuerung meiner Anwesenheitssimulation IPSTwilight von Brownson im Einsatz. Man erhält eine tolle graphische Auswertung und kann auch die Grenzen im Webfront setzen.

Die Installation ist auch im Wiki gut dokumentiert.

Grüße, Benjamin

Hallo Ron.

Das Skript lässt Du im Prinzip einmal am Tag laufen. Es erzeugt dann die notwendigen Timer die Deine eigentlichen Skripte für Deine Lichschaltung aufrufen.
Angenommen Dein Skript hätte die ID 12345 und soll bei Sonnenuntergang +1 Stunde ausgeführt werden dann musst Du folgende Zeile in das Astro-Skript einbauen:

$scripts[] = array("id" => 12345, "offset" => 1, "type" => "sunset");

Es sind ein paar Beispiele schon drin.

Moin,
bei einer Stunden Verschiebung ist der Offset bei mir 60 („offset“ => 60), da die Angabe in Minuten einzutragen ist - zumindest in meinem Script.

Dieser Skript ist wunderbar. Ich bräuchte aber einen kleinen Zusatz, und ich bin mir nicht sicher, wie das am besten geht.

Was ich bräuchte, wäre eine global Boolean variable welche jeden Tag angelegt wird und anzeigt, ob die momentane Uhrzeit im Tagesbereich oder im Nachtbereich fällt. Damit könnte ich dann gewisse Ereignisse zulassen oder nicht in Abhängigkeit von der (theoretischen) Aussenhelligkeit.

Kann mir jemand ein bisschen Hilfe geben bei diesem Unterfangen?

wenn Du eine Bool-Variable anlegst und diese durch das Script „sunrise“ auf True setzen lässt hast du eine Zustandsanzeige die Dir sagt ob es Tag oder Nacht ist.

Script „sunrise“:


setValueBoolean(46445 /*[Astro-Script\Tag]*/, true);

Aber: je nachdem was Du vorhast: Steuerungen, die anhand der Uhrzeit eine bestimmte Helligkeit annehmen funktionieren in der Regel eher schlecht. Z.B. für eine Lichtsteuerung denkbar ungeeignet. Es mag aber Anwendungen geben wo diese „Genauigkeit“ ausreicht. Wenn möglich/vorhanden ist hier eine Steuerung nach Helligkeitswerten besser.

Nachtrag:
ach, ich seh gerade: Hälfte vergessen. Die Statusvariable muss natürlich nach SU auch auf „Nacht“ gesetzt werden. Das erfolgt durch einen Befehl im Script „sunset“:


setValueBoolean(46445 /*[Astro-Script\Tag]*/, false); 

Hab ich genau so erst realisiert. Also eine Variable (Bool) für Tag Nacht. Und dann zwei Scripte. Eine für Sunrise und eins für Sunset. Dann kann ich schön Abfragen ob Tag oder Nacht. Geht einwandfrei.

Oh. Sehe gerade. Die Version von Raketenschnecke ist noch besser. Er triggert das ganze schon im Astroscript. Da muss ich bei mir nochmal umbauen.

rrrrööööööchhhtööööchh :smiley:

Danke vielmals. Ich habe zwar einen Bewegungs/Licht-Sensor, aber die Lichtmessung ist unbefriedigend. Nun möchte ich probieren wie es kommt, wenn die Bewegung eine Einschaltung nur Nachts, nicht aber tagsüber bewirkt. Dazu ist der Skript prima.

Noch eine Frage: wie schalte ich das Licht xy Minuten nach dem Einschaltvorgang wieder ab?

dazu ist ein Timer-Event bestens geeignet. Im Forum sollte es dazu reichlich Beispiele geben

Ich meine mit Helligkeitsmessung eine „richtige“ Helligkeitsmessung (Wetterstation, prof. Helligkeitssensor), nicht diese Schätzeisen aus dem Baumarkt - die detektieren nur.

da fällt mir ein: ich hab vor einem Jahr mit einem eltako FAH60 angefangen (um abhängig von derr Aussenhelligkeit zu steuern), der tut es für diesen Zweck sehr gut. Und da Du schon enocean hast…

Hi Raketenschnecke,

dass hat mir jetzt keine Ruhe gelassen. Wo genau triggerst du die Variable ? Das Astroscript läuft ja nur 1 x pro Tag und hat die Fähigkeit Timer an weitere Scripte einzutragen. Das genau mach ich. Ich hab ein Script sunset und sunrise und lass das vom Astroscript aufrufen. Da aber das Astroscript nur 1 x läuft… Da kann es ja von sich selbst aus garnicht zu sunset oder sunrise ausgeführt werden… Oder seh ich was falsch ?

Hi Stephan,

das Astroscript rennt nur einmal Nachts, richtig. Es setzt aber unter die beiden Scripte Timer und konfiguriert diese Timer auf Sunrise-Time bzw. Sunset-Time :wink:

Von dem her habt ihr nur aneinander vorbei geredet … :D;)

Gruß
Bruno

oooch, solange Du Deinen Spaß hast :smiley:

Extra für mich :smiley: … danke … :smiley:

Ich versuche mal zu erklären, wie ich es bei mir gelöst habe:

Das AstroScript legt ja die Timer auf die gewünschten Scripte. Ich lasse von jedem Ereignis (Sunset, Sunrise, CivilTwilight … etc.) immer das selbe Script triggern. Im Script schaue ich mit einer Switch-Konstruktion nach $IPS_SENDER. Je nachdem, welcher Timer der $IPS_SENDER ist, wird eine entsprechende Bool-Variable auf TRUE gesetzt und alle anderen auf False. Gleichzeitig habe ich noch eine Bool-Variable „dunkel“, welche gleichzeitig mit auf TRUE gesetzt wird, wenn bestimmte andere Variablen ebenfalls TRUE sind.

Hoffe, es halbwegs verständlich erklärt zu haben …

Gruß,
Christoph

@DerStandart

Das klingt auch interessant. Kannst du das Script mal posten ?