Zeitschaltuhr mit Astrofunktion

Bin mir nicht sicher ob das hier der richtige Thread ist. Falls nicht, dann bitte verschieben.

Hallo IPS Fans,
nachdem ich jetzt viele viele Stunden und Abende mit dem IPS / PHP verbracht habe und schon so einige hier mit mehr oder noch mehr „sinnlosen“ Fragen genervt habe und sogar schon manch einen zur Weissglut gebracht habe, möchte ich hier doch das Ergebniss meiner „ANFÄNGER“-Arbeit posten.

Ich bin mir noch nicht mal sicher ob diese Funktion doch nicht schon irgenwo in einer IPS-Library integriert ist oder jemand schon sowas ähnliche hier gepostet hat oder möglicherweisse auch keiner braucht.

Mein Ziel dieses Programms war, in meinem Eigenheim die Rolläden abhängig vom Sonnenauf-/untergang hoch/runter zu fahren, dabei aber trotdem in dem WebFront die Möglichkeit zu haben den Zeitpunkt dieses Ereigniss zu wählen (komplett aus, fester Zeitpunkt, Sonnenuntergang, Dämmerung) und auch diese Zeit zu begrenzen (z.B. Rolladen runter beim Sonnenuntergang aber frühestens 18:00 Uhr und spätestens 21:00 Uhr).

Hier paar Bilder:

Dafür habe ich zwei Scripte. Das eigentliche Aktionsscript „AstroSchaltuhr.ips.php“, das die Uhrzeit des Ereignisses (abhängig von den Einstellungen) bestimmt und das IPS Ereigniss beschreibt / aktiviert. Und ein Script „Create_AstroSchaltuhr.ips.php“ was allein als Tool zum anlegen der ganzen Variablen, Profile, Module und Links dient.

Zur Bestimmung der Uhrzeiten wie Sonnenuntergang, uws läuft bei mir das Script von Horst.
https://www.symcon.de/forum/threads/8059-Automatischer-Skriptstart-nach-astronomischen-Ereignissen-%28Sonnenaufgang-D%C3%A4mmerung%29

Wichtig für mein Programm ist der Pfad wo diese Script liegt. Bei mir unter ‚Service.Astro.Astro‘.


Dieser Pfad (‚Service.Astro.Astro‘) muss in den beiden Scripten „AstroSchaltuhr“ und „Create_AstroSchaltuhr“ in der Zeile 3 angepasst werden.

Ganz wichtig. Die eigentlichen Ereignisse müssen mit ihrer Aktion schon angelegt sein. Bei mir habe ich für jeden Rolladen 4 Ereignisse (AUF für die Werktage, AUF für das Wochenende und noch mal zwei für ZU). Wichtig hier sind auch die Namen der Ereignisse ‚ZU (Mo-Fr)‘ / ‚ZU (Sa-So)‘ / ‚AUF (Mo-Fr)‘ / ‚AUF (Sa-So)‘.

Zur Konfiguration noch die Zeilen 5 - 17 und 33 in dem Script anpassen. Script starten. FERTIG!


Das Ergebniss sieht dann so aus:

Ein Besonderheit in der Konfiguration ist die Namen"Zusammenstellung" der Ereignisse ‚ZU (Mo-Fr)‘ / ‚ZU (Sa-So)‘ / ‚AUF (Mo-Fr)‘ / ‚AUF (Sa-So)‘
Die setzen sich bei mir zussamen aus den zwei Variablen
‚$NameEvent_1ab‘ und ‚$Name_1a‘ => ‚ZU‘ und ’ (Mo-Fr)’
‚$NameEvent_1ab‘ und ‚$Name_1b‘ => ‚ZU‘ und ’ (Sa-So)’
‚$NameEvent_2ab‘ und ‚$Name_2a‘ => ‚AUF‘ und ’ (Mo-Fr)’
‚$NameEvent_2ab‘ und ‚$Name_2b‘ => ‚AUF‘ und ’ (Sa-So)’
Grund: Sollte man nur ein Ergeigniss zum Öffnen der Rolladen benötigen, so setzt man die Variablen ‚$Name_2a‘ und ‚$Name_2b‘ gleich
( z.B. $Name_2a = „“; $Name_2b = „“; ) und so werden die die Ereigenisse ‚ZU (Mo-Fr)‘, ‚ZU (Sa-So)‘ und ‚AUF‘ bearbeitet.
In den Zeilen 19 bis 31 seht ihr ein Beispiel von mir, wie die Automatikfunktion eines Bewegungsmelders ein- und ausschalte.
Das Ergebniss sieht dann so aus:

GANZ GANZ GANZ WICHTIG!
Ich bin ein PHP Anfänger. Bitte schlagt mich nicht für diese Programmierart.
Ich weiss es gibt auch in PHP mehr als nur ‚if‘. Es gibt mit Sicherheit auch Klassen, Objekte und Methoden.
ABER, ich kann es (noch) nicht. Habe aber trotzdem versucht den Code so klein wie (für mich) möglich klein zu halten und keinen unnötigen doppelten Programmcode zu verwenden.

Hier noch die zwei Scripte.

AstroSchaltuhr.ips.php.txt (7.49 KB)

Create_AstroSchaltuhr.ips.php.txt (14.4 KB)

Ab der Version 5.3 bitte auch folgenden Hinweis / Einstellung beachten!

Begrenzung der Pfad Tiefe?

Hallo waldbone,

Ich habe genau deine Funktionen und noch ein paar weitere vor Jahren mit einer Wago realisiert.

Jetzt würde ich die Rolladen gerne nach KNX migrieren und die Astro sowie die Zeitsteuerung mit IPS realisieren.

Ich habe von PHP fast keine Ahnung, aber ist das von dir gebaute immer noch verwendbar?

VG

Der Bem