Anmelden

Zur Bestätigung jetzt anmelden

Passwort vergessen?

... oder mit Facebook anmelden:

Du hast noch keinen Zugang zu AndroidPIT? Registrieren

Tipps zum Akku-Fresser "Mobilfunk-Standby" - Teil 7: Tasker

Izzy
84

Was ist eigentlich "Mobilfunk-Standby" und warum verbraucht es so viel Energie? Und wie kann man diesem Akku-Fresser beikommen? Diese achtteilige Blog-Serie setzt sich mit der Frage auseinander, beleuchtet Hintergründe und zeigt Wege zur Abhilfe auf.

Im heutigen Teil: Tasker

Tasker

Überblick

Tasker

Gegen Ende des vorigen Teils kam ja der Gedanke auf, dass sich durch die Kombination verschiedener Apps vielleicht noch mehr aus dem Akku herauskitzeln ließe: Etwa NoBars zur Deaktivierung des Funksignals, und ShutUpBatterySaver zur Regelung des mobilen Datennetzes. Klar, bei Android gibt es für alles eine App. Das muss aber nicht heißen, dass man auch wirklich für alles und jedes eine separate App benötigt! Bei uns im Forum tendiert man nämlich dazu, Fragen nach dem Sinn, dem Universum, und so weiter nicht mit 42, sondern mit 6 Buchstaben zu beantworten: TASKER.

Tasker: Akku-StatistikenAuch mir war es zu dumm, jetzt alle Apps in Kombination zu testen. Daher habe ich mich einfach über unsere Sechs-Buchstaben-Antwort hergemacht, und ein paar kleine Tasker-Profile gebastelt. Das Ergebnis kann sich, meine ich, durchaus sehen lassen – und hält locker mit allem vorangegangenen mit, wie der rechte Screenshot bereits erahnen lässt: Nach vergleichbarer Laufzeit (wieder gut 11 Stunden) sind noch 78 Prozent Ladung übrig! Zum Vergleich: Der Beste unserer "Spezialisten" brachte es auf 73 Prozent (bei 7 Minuten längerem Testintervall). Und um noch einen draufzusetzen: Die Statistik "Zeit ohne Signal" zeigte bei Tasker ganze 0 Prozent (in Worten: Null) an! Unsere Vergleichskandidaten kamen hier allenfalls auf 1 Prozent.

Tasker Akku-Statistiken: DetailsWie immer, wollen wir aber an dieser Stelle auch wieder einen Blick auf die Details werfen. Zunächst auch hier eine recht gleichmäßige Entladungskurve. Und, wie erwartet, zahlreiche Löcher im Telefonsignal: Offensichtlich hat also auch Tasker den Androiden ab und an in den Flugzeugmodus versetzt. Wer ganz genau hinschaut, erkennt auch noch zwei klitzekleine rote Striche, und zwar genau zwischen zwei Löchern: Hier hat Tasker mein Milestone 2 aus dem Flugzeugmodus geweckt um zu prüfen, ob vielleicht wieder ein Signal vorhanden ist – was zu diesem Zeitpunkt offensichtlich nicht der Fall war. Die "0 Prozent ohne Signal" sind also "leicht abgerundet" – doch wen stört das? Das Ergebnis ist fantastisch, und das allein zählt!

Was also habe ich gemacht? Grob gesagt: Drei Profile erstellt. Eines schaltet das mobile Datennetz ab, wenn die Signalstärke unter zwei Balken fällt. Das zweite wechselt in den Flugzeugmodus, wenn das Signal noch schwächer wird (oder ganz verschwindet). Und ein drittes wartet einfach 5 Minuten, deaktiviert sodann den Flugzeugmodus, wartet noch einmal 15 Sekunden – und lässt dann die anderen beiden wieder ran. Jedes der Profile setzt eine globale Statusvariable, über welche die drei kommunizieren: Schließlich muss nicht auf "Signal schwach" geprüft werden, wenn das Signal ohnehin schon weg ist.

Tasker NotificationsUnd schließlich machen sich alle drei Profile auch noch im Statusbereich bemerkbar, wie der rechte Screenshot zeigt: Was ist passiert, und warum. Der jeweils aktuellste Event steht zuunterst, wie auch der Zeitstempel zeigt. Ein komplettes Protokoll ergibt dies zwar noch nicht, da beispielsweise ein zweites "Signal Low" ein bereits vorhandenes überschreibt. Mit ein paar Tricks ließe sich aber auch das sicherlich erreichen. Wie so einiges anderes zusätzliches, was ich hier aber weggelassen habe: Schließlich soll das Ganze ja auch noch einfach und nachvollziehbar darzustellen sein.

Tasker ProfileAlso zur Sache: Wie sehen die hier verwendeten Profile aus? Ich bin sicher, der eine oder andere Tasker-Fan möchte sie vielleicht nachbauen.

Links zu sehen sind die drei Profile: SigLowCheck für die Prüfung auf schwaches Signal, SigLostCheck für das verlorene Signal, und SigReturnCheck für das Warten auf ein wieder auftauchendes Signal. Diese drei verständigen sich über eine Variable, die ich %SIGSTATE genannt habe: 0 bedeutet hier "alles OK", 1 steht für "schwaches Signal", und 2 heißt "ab ins Flugzeug". Das ganz zu unterst noch sichtbare Profil namens Init tut, was sein Name verheißt: Es wird einmalig bei Aktivierung des Tasker-Monitorings ausgeführt, und setzt einige Variablen für all meine Profile. In unserem Fall hier betrifft das die Variable %SIGSTATE, die mit "0" initialisiert wird.

Wie bei Tasker üblich, besteht jedes Profil aus Bedingungen und Tasks – also gehören auch zu den genannten Profilen beide Elemente dazu. Beginnen möchte ich mit den Tasks. Diese ordne ich dann weiter unten den entsprechenden Bedingungen zu, was das Ganze etwas übersichtlicher gestalten sollte. Daraus ergeben sich dann insgesamt die Profile.

Also, los geht's:

Task "InitVars":

  • Variable -> Variable Set: %SIGSTATE = 0

Task "SigLow":

  • Net -> Mobile Data: Off
  • Variable -> Variable Set: %SIGSTATE = 1
  • Alert -> Notify Vibrate: Title "Signal Low"; Text "Mobile data disabled (Signal: %CELLSIG)"

Task "SigLost":

  • Variable -> Variable Set: %WLANSTATE = 0
  • Variable -> Variable Set: %WLANSTATE = 1 IF %Wifi ~ on
  • Net -> Airplane Mode: On
  • Net -> Wifi: On IF %WLANSTATE ~ 1
  • Variable -> Variable Set: %SIGSTATE = 2
  • Alert -> Notify Vibrate: Title "Signal Lost", Text "Entering Airplane Mode"

Task "SigReturn":

  • Task -> Wait: 5 Minutes
    (die Dauer könnt ihr natürlich anpassen – 5 Minuten sind aber ein guter Ausgangswert)
  • Net -> Airplane Mode: Off
  • Task -> Wait: 15 Seconds
    (dem Androiden Zeit geben, ein neues Signal zu finden!)
  • Net -> Mobile Data: On IF %ROAM ~ off
    (damit es nach dem Urlaub im Ausland keine böse Überraschung gibt: Nur wieder aktivieren, wenn nicht im Roaming!)
  • Variable -> Variable Set: %SIGSTATE = 0
  • Alert -> Notify Vibrate: Title "Signal On", Text "Airplane Mode disabled (Signal: %CELLSIG)"

Jetzt zu den Profilen:

Profil SigLowCheck:

  • State -> Variable -> Variable Value: Name "%SIGSTATE", Op "Math: Less Than", Value "1"
  • State -> Phone -> Signal Strength: From 0 To 2
  • State -> Tasker -> Task Running: "SigLost", [x] Invert
    (Kollision verhindern: %SIGSTATE~0 && Signal~1 würde beide aktivieren – wobei sie sich dummerweise "verklemmen"!)
  • Task: SigLow

Profil SigLostCheck:

  • State -> Variable -> Variable Value: Name "%SIGSTATE", Op "Math: Less Than", Value "2"
  • State -> Phone -> Signal Strength: From 0 To 1
  • Task: SigLost

Profile SigReturnCheck:

  • State -> Variable -> Variable Value: Name "%SIGSTATE", Op "Math: Greater Than", Value "0"
  • Task: SigReturn

Profile Init:

  • Event -> Tasker -> Monitor Start
  • Task: InitVars

Wer mag, kann sich natürlich nach Belieben weiter austoben: Sound abspielen lassen, das Display zum Blinken bringen... Aber die essentiellen Dinge zum Stromsparen sind alle bereits enthalten, einschließlich der Informationen zum aktuellen Status. Hier brummt (vibriert) es aber nur einmalig: Ist die betroffene Benachrichtigung bereits im Statusbereich präsent, scheint bei "Notify Vibrate" das Vibrieren zu entfallen.

Sofern Euer Gerät das unterstützt, lassen sich an anderer Stelle die Tasks auch vereinfachen. Anstatt im Task SigLost über Net -> Airplane Mode: Set On in den Flugzeugmodus zu wechseln, kann hier auch Phone -> Radio: Set Off zum Einsatz kommen (wird auf meinem Milestone² leider nicht unterstützt). Das spart dann auch die Prüfung (und ggf. Behandlung) des WLAN-Status. Natürlich heißt es dann in SigReturn auch, von Net -> Airplane Mode: Set Off auf Phone -> Radio: Set On umzustellen.

 

Das war heute ein wenig länger, was aufgrund der Tasker-Profile aber auch sein musste. War aber auch das (vor)letzte Mal, dass ich Euch mit dieser Serie auf den Keks gegangen bin – könnte da etwa noch ein Cliffhanger Teil folgen? Na klar, bei der Länge ist eine Zusammenfassung angesagt. Die geht einerseits auf einige der Kommentare ein, bringt aber andererseits auch noch ein paar weitere Tipps. Wer bis hierher durchgehalten hat, sollte sich den letzten Teil also auch nicht entgehen lassen!

Kommentare

Neuen Kommentar schreiben:
  • Klaus-Dieter Fromm vor 3 Monaten Link

    Mag sein, dass man das als logisch ansieht wenn man schon länger mit Tasker arbeitet, nur einen Laien ist es selbst mit Tuts nicht.

    Scheint aber nicht zu gehen, ich kann z. B. Mobile Data 2G/3G oder Flugzeugmodus nicht nutzen (rote Schrift). Laut Meldung geht das bei 4.2+ nicht.Man soll ein gerootetes Gerät nutzen (hab ich) oder das Secure Settings Plugin (muss ich mal suchen).

    0
    • Izzy vor 3 Monaten Link

      War nicht als Kritik gemeint, Klaus-Dieter – nur ist ein Blog-Eintrag nicht der beste Platz für einen "Kurs in den Kommentaren" ;) Und für die Einschränkungen, was sich nicht mehr schalten lässt, dürfen wir uns bei Android bedanken. Der Grund dafür erschließt sich mir nicht. Bzgl. "Secure Settings" (u.a.) einfach einmal in meiner o.g. Ressourcen-Sammlung nachschauen. Dort findest Du sogar Grafiken mit Auflistung/Veranschaulichung verfügbarer Bedingungen und Aktionen (für Tasker und Secure Settings).

      0
  • Izzy vor 4 Monaten Link

    Drittes Bild hier: http://blog.androidboard.org/wp-content/uploads/2014/11/c18bTasker-Task-Voice-to-Variable.png Das Feld "To" bekommt den Wert. Eigentlich selbsterklärend: "Set <Variablen-Name> To <Wert>".

    0
  • Klaus-Dieter Fromm vor 4 Monaten Link

    Ich hab wie oben gwschrieben die deutschen und englischen tuts gelesen, dort steht aber nichts dazu.

    0
  • Klaus-Dieter Fromm vor 4 Monaten Link

    Und was ist "das entsprechend andere Feld"?

    0
  • Klaus-Dieter Fromm vor 4 Monaten Link

    Ich hab versucht das ganze nachzubauen, scheitere aber schon am ersten Task. Da steht %SIGSTATE = 0, wie setze ich das? Ich hsb weder in deutschen noch englischen Guides dazu etwas gefunden. Wo muss das = und die 0 hin? Sicher nicht direkt hinter sigstate.

    0
    • Izzy vor 4 Monaten Link

      Das ist eine benutzerdefinierte Variable, die über *Action › Variables › Variable Set* gesetzt wird. Steht ja auch so im Text :) Das "=" musst Du nicht separat eingeben. Du füllst einfach den Variablen-Namen in das entsprechende Feld, und den Wert in das entsprechend andere.

      0
  • Klaus-Dieter Fromm vor 4 Monaten Link

    Ich muss hier mla fragen ob das ganze noch aktuell unter 4.4.x läuft und ob es abhängig vom Gerät ist.

    0
    • Izzy vor 4 Monaten Link

      Die Frage muss ich an jemanden weitergeben, der es unter 4.4.x einsetzt. Geräte-abhängig sollte es eigentlich nicht sein; aber es gibt immer Ausnahmen (die bestimmte Werte nicht oder anders liefern, was z.B. die Signalstärke betrifft).

      0
  • DD1HWK vor 7 Monaten Link

    Hallo habe Tasker v4.4 Installiert komme aber mit dem Abtippen nicht ganz klar da ich mich mit Tasker noch nicht auskenne könnte man die Schritte etwas ausführlicher erklären? Oder einfach mal die Datei zur Verfügung stellen so dass ich das Importieren kann und mir anschauen kann wie es programmiert wird. Der Link oben von Bernd ist leider nicht mehr verfügbar er hatte ja schon mal das Profil eingestellt.

    0
    • Izzy vor 7 Monaten Link

      Sorry von mir: Wie Du sehen kannst, ist der Post schon zwei Jahre alt (und mit einer entsprechend älteren Tasker-Version erstellt). Zum noch einmal neu Schreiben fehlt mir einfach die Zeit. Und da ich das Profil selbst nicht mehr nutze (hatte es seinerzeit auf meinem Test-Gerät erstellt), habe ich es auch nicht mehr zur Hand. Habe zwar schon ewig vor, das Ganze nochmal zu überarbeiten (um es zuverlässiger zu machen) – komme aber einfach nicht dazu...

      Vielleicht aber kann Dir jemand anderes hier seine Fassung zur Verfügung stellen – ich drück Dir die Daumen!

      0
      • DD1HWK vor 7 Monaten Link

        Okay das erklärt mir warum ich schon in der ersten Zeile „Variable -> Variable Set: %SIGSTATE = 0“ Probleme bei der Erstellung der Variable habe entweder kommt Android 4.3 mit dem Kommando SIGSTATE nicht klar oder die Tasker Version ist völlig anders schaut zu mindestens anders aus als in deinem Beitrag. Mit welscher Tasker Version ist das ganze den erstellt?

        0
      • Izzy vor 7 Monaten Link

        Die genaue Tasker-Version kann ich nicht mehr benennen (war vor dem Design-Wechsel). %SIGSTATE ist allerdings kein Android-Kommando, sondern eine Benutzer-Variable, die von Tasker selbst verwaltet wird, das sollte nach wie vor so funktionieren.

        0
      • DD1HWK vor 7 Monaten Link

        Hatte mir jetzt die alte Tasker Version 1.2 besorgt und habe mich mit der vertraut gemacht so dass ich jetzt auch mit der Version 4.4u3 klar komme. :o) Einen hacken hat die Sache nur die wichtigste Funktion „Net -> Airplane Mode: Off“ erforder das Plug-In Secure Settings für den Tasker das habe ich mir runtergeladen klappt soweit auch alles nur die Funktion Airplane Mode setzt ab Android 4.2 + ein gerootetes Gerät voraus! :o(

        0
      • Izzy vor 7 Monaten Link

        Ich habe das SecureSettings Addon nie installiert gehabt (ging und geht bei mir auch ohne). Die Krux sind allerdings in der Tat die tollen "Sicherheits-Beschränkungen" (dass eine App ohne root nicht mehr den Flugzeug-Modus und andere Dinge toggeln darf)... Meine Geräte sind halt allesamt gerootet. Falls Du diesen Schritt wagen willst, einfach einmal nach "Towelroot" suchen, sollte mit (fast) allen Geräten funktionieren.

        0
  • Daimonion vor 9 Monaten Link

    Auch ich muss sagen dass die Anleitung super ist und einen wirklichen praktischen Nutzen hat.

    Ich habe die Profile, nachdem ich endlich Root auf meinem N5 habe, auch mal abgeschrieben und musste leider feststellen, dass ich bisher bei SignalLost leider auch das WLan deaktiviert, auch wenn es noch an ist. Ich kenne mich jetzt mit Tasker noch nicht so gut aus und kann daher noch nicht ganz nachvollziehen, warum WLan nicht wieder aktiviert wird.

    Anbei habe ich mal einen Link auf einen Screenshot vom Task SignalLost gemacht.

    Könnt ihr da einen Fehler entdecken?

    https://drive.google.com/file/d/0B2tyGwXANo4NamFTeUhpRFpqNFE/edit?usp=sharing

    0
    • Izzy vor 9 Monaten Link

      Danke für das Lob!

      Ich sehe da keinen Fehler. Aber zum Debuggen kannst Du Dir ja mal %WLANSTATE mit in der Notification ausgeben lassen. Davon ab: Klappt das (De-)Aktivieren von WLAN mit Tasker in anderen Profilen? Kannst Du WLAN manuell aktivieren, wenn Du im Flugzeugmodus bist?

      0
      • Daimonion vor 9 Monaten Link

        Ja, WLan konnte in anderen Profilen aktiviert werden.
        Ich habe den Fehler gefunden. Da ich unter 4.4.4 unterwegs bin brauche ich die Secure Settings für Root und die haben mir Salz in die Suppe geworfen. Ich habe den Task nun so umgestellt, dass die WLan Aktivierung ans Ende geschoben wurde und vorher nochmal 1 Sekunde gewartet wird. Dann funktionierts. :)
        Heute kommt dann mal der Praxistest.

        1
  • rob_st 17.01.2014 Link

    Sehr schöne Anleitung. Einziger Wermutstropfen:

    Flugmodus aktivieren / deaktivieren geht mit Android 4.2+ nicht mehr (zumindest meldet das die App).

    0
Zeige alle Kommentare