Tageszeit ermitteln

Schnell kommt der Wunsch auf, abhängig von der Tageszeit Programme auszuführen. Aufgrund der Positionsangaben die du bei der Installation deiner CCU2 eingetragen hast, ermittelt dieses Script die entsprechende Tageszeit. Unterschieden wird in: Nacht, frühmorgens, Morgengrauen, Vormittag, Mittag, Nachmittag, Dämmerung und Abend.

Das Script habe ich ebenfalls im HomeMatic-Forum gefunden, Milan01 hat dort eine Frage gestellt und gleich dazu die Antwort gegeben. 😉

Ich gehe davon aus, dass du CUxD bereits installierst hast! Falls dies noch nicht geschehen ist, findest du hier eine Anleitung.

Hier in aller Kürze, wie du das Script zum Laufen bringst:

  • Eine Systemvariable mit dem Namen „Tageszeit“ vom Typ Werteliste erstellen. Die Werte sind: Nacht; frühmorgens; Morgengrauen; Vormittag; Mittag; Nachmittag; Dämmerung; Abend;
  • Ein Programm Tageszeiten (Achtung: Systemvariable und Programm sollten eindeutige Namen bekommen!) erstellen und das Script an entsprechende Stelle kopieren.
! Tageszeit (homematic-forum.de, Milan01) - Tageszeit ermitteln

!Stand 09.03.2016  http://homematic-forum.de/forum/viewtopic.php?f=26&t=11321

!zuerst folgende Systemvariable anlegen
!Achtung: exakte Schreibweise mit Copy&Paste übernehmen
!
!Tageszeit	Zeichenkette

! Tageszeiten
! Tagesbeginn - 2 <04.00 Nacht
! Tagesbeginn - 2 <04.00 Tagesbeginn - 1    frühmorgens
! Tagesbeginn - 1       Tagesbeginn         Morgengrauen
! Tagesbeginn           Mittag - 1          Vormittag
! Mittag                Mittag + 1          Mittag
! Mittag + 1            Tagesende           Nachmittag
! Tagesende             Tagesende + 1       Dämmerung
! Tagesende + 1         Tagesende + 2 >2200 Abend
! Tagesende + 2 >2200                       Nacht

real c_zeit = (0.01 * system.Date("%M").ToInteger()) + system.Date("%H").ToInteger();
real c_tagesbeginn = (0.01 * system.SunriseTime("%M").ToInteger()) + system.SunriseTime("%H").ToInteger();
real c_tagesende = (0.01 * system.SunsetTime("%M").ToInteger()) + system.SunsetTime("%H").ToInteger();
real c_mittag = 0.5 * (c_tagesbeginn + c_tagesende);

integer v_tageszeit = 0; ! Nacht

if ((c_zeit < c_tagesende + 2) || (c_zeit < 22.00)) {
  v_tageszeit = 7; ! Abend
}

if (c_zeit < c_tagesende + 1) {
  v_tageszeit = 6; ! Abenddaemmerung
}

if (c_zeit < c_tagesende) {
  v_tageszeit = 5; ! Nachmittag
}

if (c_zeit < c_mittag + 1) {
  v_tageszeit = 4; ! Mittag
}

if (c_zeit < c_mittag - 1) {
  v_tageszeit = 3; ! Vormittag
}

if (c_zeit < c_tagesbeginn) {
  v_tageszeit = 2; ! Morgengrauen
}

if (c_zeit < c_tagesbeginn - 1) {
  v_tageszeit = 1; ! fruemorgens;
}

if ((c_zeit < c_tagesbeginn - 2) && (c_zeit < 04.00)) {
  v_tageszeit = 0; ! Nacht
}

object s_tageszeit = dom.GetObject("Tageszeit");
if (s_tageszeit.Value() != v_tageszeit) {
  s_tageszeit.State(v_tageszeit);
}

tageszeit

zeitsteuerung03

wetterdaten-neu
Zeitsteuerung: alle 10 Minuten von 00:01 – 23.59 Uhr

Die aktuelle Tageszeit kannst du dir sehr schön auf der Startseite in der rechten Leiste unter „Systeminformationen“ einbinden.

Autor: Erhard Simdorn

Am 1. September 2014 habe ich mir meine erste CCU2 gekauft und war von den Möglichkeiten der Hausautomation sofort begeistert. Am 22. November 2014 folgte dann die zweite CCU2 für einen weiteren Standort und bis heute sind es schon acht CCU2 für die ich der "Auslöser" war.

3 Gedanken zu „Tageszeit ermitteln“

  1. hallo ich wollte fragen wie man die tageszeit bei der systeminformation einbindet
    gruss andy

      1. Hallo Andreas,

        wenn man selbst auf die Lösung kommt, ist das doch die schönste Erfahrung. Viel Spaß noch beim Tüfteln und beim Ausbau deiner HomeMatic-Installation.

        Gruß Erhard

        P.S.: Für alle die weiterhin an der Antwort auf die Frage von Andreas interessiert sind und die ermittelte Tageszeit rechts auf der CCU2-Startseite anzeigen möchten:
        – [Einstellungen]/[Benutzerverwaltung]
        – Beim Benutzer (meist Admin) die Aktion [Bearbeiten] aufrufen
        – Unter [Startseite/Systeminformationen] die Aktion [Systemvariable hinzufügen] aufrufen
        – Die Systemvariable [Tageszeit] suchen und die Aktion [Auswahl] aufrufen
        – Mit [zurück] das Fenster schliessen und anschliessen mit [Startseite] die hinzugefügte Systemvariabel überprüfen.

Kommentare sind geschlossen.