Wäre es nicht überaus praktisch, wenn das Licht wie von Geisterhand an geht, sobald es dunkel wird? Mit Tasker und PowerSwitch ist das mit wenig Aufwand möglich. Interesse geweckt? Los geht’s!

Wann genau geht die Sonne eigentlich unter?

Zuerst müssen wir herausfinden, zu welcher Uhrzeit die Sonne untergeht. Die einfachste Möglichkeit besteht darin in Tasker eine Webseite zu öffnen und sich die gewünschten Parameter herauszupicken. Dazu erstellen wir uns einen neuen Task namens “Get Sun Data”:
Screenshot_2013-11-15-02-13-18 Screenshot_2013-11-15-02-13-43

Keine Panik, sieht schlimmer aus als es ist 🙂
Damit nichts schief geht, hier noch einmal alle Aktionen einzeln:
1. Variable Split
Name: %Date
Splitter: -
(Wenn ihr Tasker auf Deutscher Sprache benutzt müsst ihr hier "." statt "-" eintragen!)

Diese Aktion ist etwas komplexer. Da der Sonnenauf- und Sonnenuntergang abhängig von Datum und Aufenthaltsort sind, müssen diese beiden Informationen in der URL angegeben werden:
2. HTTP Get
Server:Port: www.new.earthtools.org
Path: /sun/Längengrad/Breitengrad/%DAYM/%DATE2/Zeitzone/Sommerzeit
Dabei wählt ihr für Längengrad und Breitengrad Werte eures ungefähren Standorts (z.B. 55.4 und 13.4). Den bekommt man am einfachsten bei Google Maps oder in Tasker (Location Profile) heraus. Bei Maps einfach Straße und Hausnummer suchen und Linksklick auf die Haustür (eine Freie Fläche in der Nähe), dann stehen links oben die Koordinaten.
Für die Zeitzone tragt ihr in Deutschland “+1” ein, die Sommerzeit mit “1” für ja und “0” für nein.
Mime Type: text/xml

Screenshot_2013-11-15-02-12-50 Screenshot_2013-11-15-02-13-01

3. Variable Set
Name: %HTTPD0
To: %HTTPD

4. Variable Split
Name: %HTTPD0
Splitter: </sunrise>

5. Variable Split
Name: %HTTPD01
Splitter: <sunrise>

6. Variable Set
Name: %Sunrise
To: %HTTPD012

7. Variable Split
Name: %HTTPD0
Splitter: </sunset>

8. Variable Split
Name: %HTTPD01
Splitter: <sunset>

9. Variable Set
Name: %Sunset
To: %HTTPD012

10. Variable Clear
Name: %HTTPD+

11. Variable Clear
Name: %DATE+

12. Flash
Text:
Sunrise: %Sunrise
Sunset: %Sunset

13. Variable Split
Name: %Sunrise
Splitter: :

14. Variable Split
Name: %Sunset
Splitter: :

Ein kurzer Druck auf die Play Taste sollte nun schon eine kurze Nachricht mit den Zeiten ausgeben.

Licht passend zu Sonne schalten

Tasker unterstützt (momentan) leider keine variablen Uhrzeiten in einem Profil. Damit die Aktionen trotzdem jeden Tag zu einer anderen Uhrzeit gestartet werden können, müssen wir uns eines Tricks bedienen. Jeden Morgen, wenn das Handy die Sonnenauf- und Sonnenuntergangszeiten abruft erstellen wir im Kalender des Telefons jeweils einen passenden Termin, auf den wir dann wiederum mit Tasker reagieren können. Damit die Termine nicht online synchronisiert werden, tragen wir sie nur im lokalen Kalender des Gerätes ein.
Dazu erstellen wir einen weiteren Task mit dem Titel “Set sun calendar entries”:
Screenshot_2013-11-15-02-15-49

Da Termine nicht mit der absoluten Uhrzeit, sondern dem Abstand in Minuten zum aktuellen Zeitpunkt erstellt werden, müssen wir uns die Uhrzeiten zuerst in Minuten umrechnen:
1. Variable Set
Name: %sunrisemin
To: 60 * %Sunrise1 + %Sunrise2 - 90

FYI: 90 Minuten ziehe ich hier ab, weil meine Kalendereinträge um 1:30 Uhr erstellt werden.

2. Calendar Insert
In / For (Minutes): %sunrisemin/1
Calendar: Google:Phone
Title: Sunrise

3. Variable Set
Name: %sunsetmin
To: 60 * %Sunset1 + %Sunset2 - 90 - 60

FYI: Die zusätzlichen 60 Minuten ziehe ich ab, damit das Licht schon eine Stunde vor dem Sonnenuntergang an geht. Meist ist es zum Zeitpunkt des Sonnenuntergangs schon sehr finster, ein wenig Vorlauf schadet daher nicht.

4. Calendar Insert
In / For (Minutes): %sunsetmin/1
Calendar: Google:Phone
Title: Sunset

Dazu die passenden Screenshots:
Screenshot_2013-11-15-02-16-11 Screenshot_2013-11-15-02-16-04 Screenshot_2013-11-15-02-15-55 Screenshot_2013-11-15-02-16-16

Im Kalender sieht das ganze dann so aus:
Screenshot_2013-11-15-03-45-16

Um die beiden Tasks zu nutzen, erstellen wir ein Profil mit der Bedingung:
Time 1:00 bis 1:30
Als Eingangstask wählen wir “Get Sun Data” und als Ausgangstask “set sun calendar entries”:
Screenshot_2013-11-15-02-16-53

Ganz unten sind auch schon die Profile zu sehen, die wir für die eigentliche Lichtsteuerung benötigen. Es muss also ein Calendar Entry mit dem Titel “Sunrise” / “Sunset” im Kalender Google:Phone existieren. Ist dies der Fall, schalten wir unser Licht aus/ein.

Screenshot_2013-11-15-04-09-50 Screenshot_2013-11-15-04-09-57

Ortsabhängigkeit

Da die Lichtsteuerung nur Sinn ergibt, wenn man auch tatsächlich zu Hause ist, bietet es sich an dies entweder im Task oder im Profil (mit einer weiteren Bedingung) zu überprüfen. Dazu kann man in einem Profil mit Location eine Variable (z.B. %ZUHAUSE) auf 1 setzen und diese dann im Kalendertask prüfen, oder schlicht den Status eines anderen Profils überprüfen.

Damit sollte nun ab dem nächsten Tag das Licht automatisch geschaltet werden. Aufgrund der relativen Zeitangabe beim erstellen der Termine lässt sich das erstellen ebenjener sehr schwer testen. Sollte sich kein Fehler eingeschlichen haben, ist dies aber auch nicht nötig.

Fragen & Anregungen wie immer in die Kommentare.
Ich wünsche angenehm beleuchtete Abende 🙂

Licht an, wenn die Sonne untergeht

4 Gedanken zu „Licht an, wenn die Sonne untergeht

  • 2. Juli 2017 um 3:52
    Permalink

    Coool

    Vielen lieben Dank für die Mühe – das vereinfacht mir einiges. Werde das gabze zwar modifizieren, aber das Gerüst hast du hier vorbildlich gebaut. Respekt! !

    Antworten
  • 20. Oktober 2017 um 18:00
    Permalink

    Hallo,
    eine sehr schöne und mächtige Lösung ist das.
    Für das weniger mächtige Llama habe ich folgendes vorgenommen:
    – Immer dann, wenn sich die Dämmerungszeit um mindestens 20 Minuten ändert, habe ich im google-Kalender einen Termin ‘sunrise’ bzw. ‘sundown’ vermerkt. Diese Daten gibt es z.B. in der app ‘Kalender – Sonne und Mond’.
    – Llama kann diesen Kalendereintrag als Bedingung auswerten und Llama setzt mir ein Ereignis mit einer Variable (z.B. ‘Dämmerzeit =7:40’) daraus.
    – Diese Variable bleibt automatisch in Llama – auch beim booten – so lange erhalten, bis dass sie geändert wird.
    – Die gesetzte Variable wird für die Schaltereignisse mit Zeitzu- oder abschlag genutzt.

    Antworten
  • 7. November 2017 um 16:20
    Permalink

    Hallo,

    ich möchte mit Hilfe Deiner Anleitung über Tasker und PowerSwitch helligkeitsabhängig meine Rolläden steuern.
    Da ich absoluter Neuling in Sachen Tasker bin, habe ich mich an Deiner Anleitung entlang gehangelt und die oben beschriebenen Punkte 1:1 im Tasker eingetragen.
    Schon beim ersten Test hinter Schritt 14 im Task “Get Sun Data” bekomme ich folgenden Fehler: Variable Split: “can´t split unset value to set %Date”. “Result: stop task (error).”
    Ferner auch im Task “Set sun calendar entries” der Fehler: “Calendar insert: action: 567 arg: 0 type: str requested type: int” und weiterhin “calendar insert: bad start: 60 * %Sunrise1 + %Sunrise2 – 90/1”. “Result: stop task (error).”
    Was habe ich falsch gemacht? Kannst Du mir einen Tip geben?
    Gibt es evtl. die Tasks für mein Vorhaben zum Downloaden?

    Danke vorab und Gruß
    Martin

    Antworten
  • 14. Dezember 2017 um 20:53
    Permalink

    Dann ersetze mal unter 1:
    Name: %Date
    Splitter: –
    durch
    Name: %DATE
    Splitter: –

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.