Dienstag, 10. Mai 2011

[Profil] Powersafe Widget

Heute möchte ich ein Widget vorstellen mit dem man in einen "Powersafe" Modus wechseln können soll. Mit "Powersafe" meine ich, dass alle nützlichen aber Akku ziehenden Features deaktiviert werden, wie zum Beispiel die Datenverbindung, das W-Lan und so weiter. Natürlich könnte man dies auch alles einzeln ausschalten, aber alles mit einem Knopfdruck zu de/aktivieren ist doch viel praktischer. :)

Da nun jeder andere Features während des Powersafe-Moduses deaktivieren wollen wird, teile ich die Taskauflistung diesmal in zwei Teile. Zu Erst zeige ich den Grundaufbau des Tasks und dann eine Sammlung an Aktionen die dann jeder beliebig in den Task einbauen kann. Um einen neuen Task anzulegen, wählt man "Tasks -> New Task". Nachdem der Task angelegt wurde kann man ein Tasker Widget mit dem jeweiligen Task auf den Homescreen anlegen.

Hier nun also das Grundgerüst:

  • Task: "Powersafe"
    1. Tasker -> If %PSAFE !~ 1
    2. hier kommen nun die Powersafe Aktionen hin
    3. Variable -> Variable Set
      • Name: %PSAFE
      • To: 1
    4. Tasker -> Set Widget Icon
      • Name: Powersafe
      • Icon: für aktivierten Powersafe
    5. Tasker -> Stop
    6. Tasker -> EndIf
    7. Tasker -> If %PSAFE ~ 1
    8. hier nun wieder alles zurücksetzen
    9. Variable -> Variable Set
      • Name: %PSAFE
      • To: 0
    10. Tasker -> Set Widget Icon
      • Name: Powersave
      • Icon: für deaktivierten Powersave
Damit nun mit Ausführung des einen Taskes der Powersafe-Modus, aktiviert und deaktiviert werden kann, wurde die Zustandsvariable %PSAFE eingeführt.  Bei den Icons sollte jeder selber mal schauen, welches für ihn am besten den jeweiligen Zustand repräsentiert.

Kommen wir nun zu den möglichen Aktionen für den Powersafe:

  • Net -> Mobile Data (APN): Set: Off
  • Net -> WiFi: Set: Off 
  • Auto Brightness: Set: Off
  • Display Brightness: Level: 76 (entspr. ca 30 %)
Die sollten Standardaktionen sein, mit welchen sich schon ein bisschen sparen lässt. Vor allem die ausgeschaltete Datenverbindung spart recht viel Akku.

Für alle die noch etwas mehr rausholen wollen, können auch noch an den CPU Einstellungen rumspielen. Dazu benötigt Tasker allerdings "Root" Rechte. Wie diese erlangt werden können lässt sich in einschlägigen Foren erfahren. Allerdings rate ich dies nur Anwendern mit Erfahrung im Umgang mit ihrem Androiden!

Um die Frequenzen auszuwählen einfach auf die Lupe klicken. Bei "Min. Frequency" sollte schon die kleinstmögliche standardmäßig drin stehen. Für die "Max. Frequency" muss man ein bisschen testen, bei welchen Frequenzen das Handy noch halbweg ruckelfrei zu bedienen ist. Dabei ist es intelligent von oben nach unten zu testen & nicht mit der kleinsten Stufe anzufangen, da dann unter Umständen das Handy sehr sehr träge wird. Der Governor gibt an wie das automatische Takten der CPU von statten gehen soll, also eher auf Performance ausgelegt oder um Akku zu sparen. 
  • Misc -> CPU: 
    • Governor: Powersafe
    • Max. Frequency: irgendwas unterm Maximalen
Eventuell hat man noch Profile im Tasker, welche im Powersafemodus deaktiviert werden soll, dazu einfach eine Zustandsvariable einführen welche 1 oder 0 gesetzt wird.
  • Variable -> Variable Set:
    • Name: %PSAFE
    • To: 1
Im jeweiligen Profil muss dann nur noch der Trigger "Variable Value" hinzugefügt werden
  • Trigger
    • State -> Variable Value
      • %PSAFE !~ 1 
Oder man möchte ein Profil aktivieren, dann müsste der Trigger "Variable Value" natürlich "%PSAFE ~ 1" lauten.  Ein Beispiel für so ein Profil wäre das kurzzeitige aktivieren der Datenverbindung um Emails etc. abzurufen. Solche Profile finden sich in diversen Foren. Ich werde demnächst mal eins erstellen und hier posten.

13 Kommentare:

  1. Bei "9. Variable -> Variable Set" muss %PSAFE auf 0 gesetzt werden denke ich.

    Absolut geniales Blog, vielen Dank :)

    AntwortenLöschen
  2. vielen Dank für Hinweis und Lob :)

    AntwortenLöschen
  3. Ich hänge bei Punkt 8
    Was meinst Du mit "hier nun wieder alles zurücksetzen" ?

    AntwortenLöschen
  4. alles was du bei 2. gesetzt hast, soll bei 8. wieder in den vorherigen Zustand zurückgesetzt werden. Zum Beispiel deaktivierst du unter 2. die mobile Datenverbindung, in 8. aktivierst du sie dann wieder.

    2. aktiviert also die PowerSafe Funktionen und 8. deaktiviert sie wieder.

    AntwortenLöschen
  5. Hallo zusammen,

    manchmal klappt die Schaltung nicht. Ich muss dann immer zweimal aufs Symbol tasten.
    Ist das normal ?
    Wie kann ich das Verhalten verbessern/beschleunigen ?

    Gruß
    Martin

    AntwortenLöschen
    Antworten
    1. ist bei mir noch nicht geschehen, kannst ja mal ganz zu beginn des Tasks eine Notification oder ähnliches einbauen, um zu sehen ob der Task gestartet wird.
      Falls der Task manchmal einfach nicht gestartet wird, kann man nix machen. Das liegt dann an Tasker.

      Löschen
    2. Hallo Daniel,

      ich habe den Fehler gefunden.
      Hatte irrtümlich bei "Display on" die Variable PSAFE auf "1" gesetzt.
      Das führte wohl zu "Verwirrungen" wie auch immer.

      Jetzt gehts.

      Danke für deine Hilfe. Ich werde dann jetzt Juice Defender löschen.

      Gruß
      Martin

      Löschen
  6. Hi zusammen,

    echt tolle Seite um Tasker näher kennen zu lernen!
    Ich habe den hier vorgestellten Task wirklich 1-zu-1 so übernommen wie er geschrieben wurde. Bei mir klappt es leider garnicht :(.
    Ich kann zwar den PowerSafe Modus einstellen (WLAN aus bei %psafe !~ 1) und das war's.
    Nach vielem Überlegen wie in der Programmierung gemacht, ein PopUp VOR der eigentlichen if-Abfrage, eine PopUp-Meldung IN beiden if-Abfragen nachdem %psafe gesetzt werden soll.

    Drücke ich das allererste Mal auf das Widget (Variable %psafe noch nicht gesetzt) zeigt mir das PopUp an: "PSafe ist: %psafe". Kurz danach (da %psafe ja !~ 1 ist) zeigt es mir an "PSafe ist: 1".

    Wenn ich nun den PowerSafe Modus deaktivieren möchte, also nochmal auf das Widget klicke... Zeigt das Popup: "PSafe ist: %psafe", das heißt er scheint nach Beendigung der ersten if-Abfrage wieder %psafe zurückzusetzen.

    Irgendeine Idee wie ich das zum Laufen kriegen kann? Mir sind die Ideen ausgegangen :(.

    Noch eine kleine Frage nebenbei:
    Anstatt eine 2. if-Abfrage zu machen kann ich doch bestimmt auf ein einfaches Else nehmen oder?
    Wieso wird eigentlich nicht in der 2. if-Abfrage auch ein stop gesetzt? Wenn er den Powersafemodus ja wieder deaktiviert braucht er die Variable ja nicht nochmal abzufragen!?

    Freue mich auf Antwort,
    Liebe Grüße,
    Ben

    AntwortenLöschen
    Antworten
    1. zu 1.)
      nutze bitte anstelle von %psafe %Psafe, Variablen mit nur kleinen Buchstaben werden lokal gehalten und sind nur im jeweiligen Task bekannt.

      zu 2.)
      Else geht auch, If ist sauberer falls %PSAFE mal einen anderen Zustand einnehmen sollte, falls man es woanders noch nutzt.
      Ich seh in der 2. Abfrage kein Stop

      Löschen
  7. Hey, irgendwie hat der Druck auf den Button keine Auswirkung. Was habe ich falsch gemscht?

    Screenshot 1:
    https://dl.dropbox.com/u/9419862/Unsortiert/2013-04-06%2012.37.24.png

    Screenshot 2:
    https://dl.dropbox.com/u/9419862/Unsortiert/2013-04-06%2012.37.29.png

    AntwortenLöschen
  8. Hallo!
    Würde mir auch gerne ein solches Widget anlegen, bleibe aber schon ganz am Anfang stecken:
    Ich kann einen neuen Task anlegen (Namen eintragen).
    Bei '1.' ging ich davon aus dass ich etwas aus der Kategorie 'Tasker' hinzufügen soll.
    Da gibt es 8 Möglichkeiten (von 'Change Icon Set' bis 'Set Widget Label') - welches muss ich nehmen?!

    AntwortenLöschen
  9. Also es geht nun prima :-)
    Was '1.Tasker' angeht habe ich die 'If-Geschichte'
    unter 'Task' finden können!

    Andere Frage:
    Habe ein Profil welches mir bei einer bestimmten Funkzelle
    das WLAN anschaltet. Sollte das im Powersafe nicht deaktiviert sein?
    Die "Variable -> Variable Set:
    Name: %PSAFE
    To: 1" habe ich doch schon eingetragen, oder?
    Ausserdem finde ich den 'trigger' nicht!

    AntwortenLöschen
    Antworten
    1. Der Nova Launcher zeigt mir gelegentlich das Icon nicht an . . . ;-(

      Löschen