PowerSwitch – Licht an, wenn die Sonne untergeht

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 :)

Über Markus Ressel

Hallo, ich bin Markus. Ohne Technik würde ich in Depressionen verfallen, Musik hören und machen hält mich am leben und Sport sorgt noch für ein wenig körperliche Fitness.
Dieser Beitrag wurde unter PowerSwitch, Tech abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

17 Kommentare zu PowerSwitch – Licht an, wenn die Sonne untergeht

  1. Mario Zimmermann sagt:

    Hallo Max,

    zunächst muss ich sagen tolles App und deine Beschreibung für den Tasker einfach super. Zeitsteuerung klappt schon prima!

    Aber die Steuerung mit Sonnenaufgang hakt leider:
    Ich habe die Schritte 1-14 genau so wie du geschrieben hast erfasst.
    Leider bekomme ich beim testen durch die Play Taste keine Popup mit Zeiten, sondern folgenden:

    Sunrise: %HTTPD012
    Sunset: %HTTPD012

    Was habe ich falsch gemacht, bin wirlich alle 14 Punkte mehrmals durch gegangen und habe nichts gefunden.

    Im Voraus besten Dank für deine Mühen.
    Viele Grüße
    Mario Zimmermann

  2. Helmut Riemer sagt:

    Kann ich mein „Windows -phone“ (Nokia Lumia625) auch für Steuerungen verwenden?

    Warum kann ich keine Funksteckdosen über mein Windows Nokia Lumia 625 steuern? Warum funktioniert die Steuerung
    nicht über ein „Windows – phone“?

    • Markus Ressel sagt:

      Nein das geht leider nicht, ebenso ist iOS nicht möglich. PowerSwitch ist eine Android App.
      Du kannst ein Windows Programm ja auch nicht auf einem Apple Mac benutzen (wenn dort kein Windows, sondern Mac OS installiert ist).

  3. Ralf sagt:

    Hallo,
    ich bekomme immer beim einrichten von Get Sun Data die Fehlermeldung bei HTTP Get:
    Unknown Host in http://www.earthtools.org/sun/xx.xx/xx.xx/13/08/+1/1
    Die xx.xx stehen für Längen und Breitengrad….
    Was mache ich falsch?
    Gruß Ralf

    • Markus Ressel sagt:

      Es kann sein, dass es den Anbieter der sonnenauf- und untergänge nicht mehr gibt. Ich habe ebenfalls seit einer Weile Probleme damit, bin aber noch nicht dazu gekommen es zu beheben.

  4. Phei sagt:

    Hallo,

    Ich habe es mir noch etwas leichter gemacht und einfach einen fertigen Kalender abonniert. :D

    Danke!

  5. Benedikt sagt:

    Hey ich hab ein Problem.
    Wenn ich im Tasker die Sprache auf Englisch stelle und dann den Task Get Sun Data laufen lasse, bekomme ich die richtigen Zeiten per PopUp angezeigt.

    Aber wenn ich die Sprache auf Deutsch stelle bekomme ich immer als Sunrise und Sunset den Wert %HTTPD012 zurück.

    Wo ist der Fehler? Habe alles so gemacht wie oben beschrieben.

    Gruß Ben

    • Markus Ressel sagt:

      Hui, das hat ne Weile gedauert…

      Der Fehler liegt in Tasker selbst. Das Datum (also die Variable %Date) wird in Englisch in der Form 01-01-2000 angegeben (also mit „-“ getrennte Daten), in Deutsch allerdings mit 01.01.2000 (also mit „.“ als Trennzeichen).

      Damit der Task nun auch in Deutsch funktioniert musst du bei der ersten Aktion (Split Variable Date) als „Teiler“ statt „-“ nun „.“ eintragen. Danach sollte alles wieder funktionieren.

      • Benedikt sagt:

        Hey Danke für die schnelle Antwort.

        Das war genau der Fehler. Jetzt funktioniert es einwandfrei.

        Vielen Dank für die tolle Anleitung.

        Gruß, Ben

  6. Frank Kohlpaintner sagt:

    Gibt es den download als apk vom powerswitch noch kann leider nix finden. Gruss Frank

Schreibe einen Kommentar

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