Montag, 11. Juni 2012

[Profil]Kraftstoffverbrauch

Heute möchte ich meine kleine Kraftstoffverbrauch-Szene vorstellen. Nach Eingabe von gefahrenen Kilometern und verbrauchtem Kraftstoff, wird der Durchschnittsverbrauch in l/100 km ausgegeben und die Daten werden inkl. Datum in einer .csv Datei abgespeichert. Gibt man also nach jedem Tanken die gefahrenen Kilometer und die getankte Spritmenge ein, kann man über die .csv Datei seine Verbrauchsstatistik recht gut verfolgen.


Als erstes erstellen wir eine neue Szene "Benzin" (im Reiter Scenes auf + klicken) mit folgenden Elementen:

  • Text
    • Text: Verbrauch
    • Text Size: 22
    • Position: Centre
  • Text
    • Text: Benzin
    • Text Size: 20
    • Position: Right
  • Text
    • Text: Strecke
    • Text Size: 20
    • Position: Right
  • TextEdit
    • Name: TEliter
    • Text: %Benzin
    • Text Size: 16
    • Position: Centre
    • Background/Colour: #FFFAFAFA
  • TextEdit
    • Name: TEstrecke
    • Text: %Strecke
    • Text Size: 16
    • Position: Centre
    • Backfround/Colour: #FFFAFAFA
  • Button
    • Name: Bsave
    • Label: Speichern
    • Label Size: 16
    • Position: Centre
  • Button
    • Name: Blog
    • Label: Log
    • Label Size: 16
    • Position: Centre
Nun schließen wir die Szene und Tasker damit die Szene gespeichert und alle Elemente angelegt werden. Danach öffnen wir sie wieder. Nun können wir die Aktionen der einzelnen Elemente bearbeiten:

  • TEliter: Text Changed
    1. Variable -> Variable Set
      • Name: %Benzin
      • To: %new_val
  • TEstrecke: Text Changed
    1. Variable -> Variable Set
      • Name: %Strecke
      • To: %new_val
  • Bsave: Tap
    1. Variable -> Variable Set
      • Name: %Verbrauch
      • To: %Benzin/%Strecke*100
      • Do Math: Yes
    2. File -> Write File
      • File: My Documents/Verbrauch.csv
      • Text: %DATE;%Strecke km;%Benzin l
      • Append: Yes
    3. Alert -> Popup
      • Title: Verbrauch:
      • Text: %Verbrauch l/100 km
      • Timeout (Seconds): 5
  • Blog: Tap
    1. File -> Open File
      • File: My Documents/Verbrauch.csv
Die TextChanged Ereignisse werden genau dann ausgeführt wenn eine Eingabe an dem jeweiligen TextEdit abgeschlossen wird. Der eingegebene Text wird dabei in der internen Variablen %new_val abgespeichert. Da es sich hierbei um eine lokale Variable handelt (alles klein geschrieben) ist sie auch nur in diesem TextEdit bekannt, das heißt also eine Kollision mit dem %new_val eines anderen TextEdit ist nich möglich.
Der Button "Bsave" errechnet nun den Verbrauch (Do Math nicht vergessen) und speichert %Strecke und %Benzin zusammen mit dem aktuellen Datum in einer Datei ab. Durch "Append" wird eine vorhandene Datei nicht ersetzt, sondern der neue Text hinten dran geschrieben. Die Systemvariable "%DATUM" beinhaltet das aktuelle Datum in lesbarer Form. %Verbrauch schreibe ich nicht in die Datei, da es sich jederzeit über Strecke und Benzin errechnen lässt und somit eine unnötige Information zur späteren Weiterverarbeitung in Excel darstellt. Wer will kann %Verbrauch natürlich einfach noch hinten dran hängen.
Zum Schluss wird in einem Popup noch der errechnete Verbrauch kurz angezeigt.

Nun brauchen wir nur noch einen Task um die Szene zu öffnen. Dazu schließen wir die Szene und wechseln in den Tasks Reiter um einen neuen Task namens "BenzinScene" zu erstellen:

  • Task: BenzinScene
    1. Scene -> Create Scene
      • Name: Benzin
      • Continue Task After Error: Yes
    2. Scene -> Show Scene
      • Name: Benzin
      • Display As: Dialog, Dim Behind
      • Show Exit Button: No
      • Continue Task Immediately: No
    3. Scene -> Destroy Scene
      • Name: Benzin

Über "Create Scene" wird unsere Szene erstellt, hierbei sollte "Continue Task After Error" angeklickt sein, sollte die Szene noch existieren, also nicht zerstört wurden sein, kann "Create Scene" nicht ausgeführt werden, ist "Continue Task After Error" nicht ausgewählt wird der Task daraufhin beendet. Mit "Show Scene" zeigen wir die Szene auf dem Bildschirm. Der Typ sollte dabei auf Dialog stehen, dieser ist immer im Vordergrund und lässt sich über die Zurück-Taste vom Android schließen, deswegen brauchen wir auch keinen Exit-Button. "Continue Task Immediately" muss abgewählt sein, nun wird der Task erst nach schließen der Szene fortgesetzt und die letzte Aktion "Destroy Scene" ausgeführt.

Jetzt kann Tasker geschlossen werden und ein "Task"-Widget im Android erstellt werden. Diesem weißen wir dann den Task "BenzinScene" zu. Nach klicken auf das Widget öffnet sich Szene "Benzin" und wir können unsere Eingaben starten.

Viel Spaß!

Kommentare:

  1. sehr abgefahren. brauche ich zwar nicht, doch es demonstriert a.) die Fähigkeiten von Taskter und b.) deine Fähigkeiten. Cool.

    Frage: hast du so was wie eine Wunschliste für Dinge die man gerne im Taskter umgesetzt hätte?

    beste Grüße,
    Sebastian

    AntwortenLöschen
  2. Hallo,
    habe es jetzt zweimal probiert, kommt immer nur ein Fenster, durchsichtig, mit weissen Felder, wo Log , Speichern usw. steht????

    AntwortenLöschen
    Antworten
    1. joa kann gut sein, sah es auch im Szenen-Editor so aus? kannst du die Werte eingeben?

      Löschen
  3. Hallo,

    habe es noch nicht versucht, aber wie wäre das, wenn man zusätzlich noch, den Preis pro Liter eingeben könnte. Und vielleicht auch nicht die gefahrenen km sondern den gesamten km Stand.
    Und um alles komplett zu machen wäre auch noch die getankte Menge sehr hilfreich.

    Ich versuche das mal selbst einzubauen, sollte ja analog zu den anderen Eingaben funktionieren.

    AntwortenLöschen
    Antworten
    1. so, ich bins nochmal,

      hab jetzt alles eingegeben, doch sehe ich die eingaben in der scene nicht, und er kann auch die datei nicht öffnen

      nach manuellem öffnen steht auch nichts in der datei drinnen

      Löschen
  4. Ich habe das nicht eingebaut, da der Preis/Liter aufm Kassenzettel bzw der Gesamtpreis im Kontoauszug steht (insofern man mit Karte zahlt).
    Gesamtkilometer ist sicherlich möglich, verkompliziert aber alles, da sichergestellt werden muss dass der letzte Eintrag noch vorhanden ist um die gefahrenen Kilometer ausrechnen zu können.
    Die Einlesefunktion für die Aktion ist auch nicht zu unterschätzen.

    Was hast du genau gebaut? Klingt nach einem Fehler im Task/Szene.

    AntwortenLöschen
  5. Hi, habe das wie oben beschrieben eingegeben und nochmal überprüft. Es kommt aber immer ne Fehlermeldung wenn ich es ausführen möchte. ( Datei nicht gefunden.
    Gruß Uwe

    AntwortenLöschen
    Antworten
    1. existiert der ordner "My Documents" ? am besten mal Pfad und Datei anlegen, die Datei kann ruhig leer sein, hauptsache sie ist da, der Ordner muss auf jeden Fall da sein.

      Löschen
    2. Danke für den Tipp, aber es klappt immer noch nicht. Fehler: öffne Datei:/mnt./sdcard/My Documents/Verbrauch.csv ist ein Verzeichnis.
      Was will mein Handy mir damit sagen??
      Gruß uwe

      Löschen
  6. hm klingt interessant, hast du den Pfad über einen Klick auf die Lupe rausgesucht? Falls nein mach das mal, bis zur Datei (also vorher anlegen). Eventuell hat der ein Problem mit dem Pfad.

    AntwortenLöschen
  7. Moin . Ich wieder;-) über die Lupe klappt nicht. Habe alles erneut neu eingegeben aber der Fehler bleibt. Wenn ich das Widget erstelle und dann öffne erscheinen die einzelnen Felder übereinander . Gehe ich auf Log kommt die genannte Fehlermeldung .

    AntwortenLöschen
    Antworten
    1. Warum funktioniert die Lupe nicht? Das klingt erst mal verdächtig

      Löschen
    2. Hi, ich denke es liegt an meinem Dateimanager. Wenn ich über die Lupe gehe kann ich keinen Ordner übernehmen. Woran kann das liegen??

      Löschen
  8. es muss auch eine Datei ausgewählt werden, kein Ordner...

    AntwortenLöschen
    Antworten
    1. Ich komm nicht klar :( Der Fehler bleibt. Ich habe in Eigene Dateien den Ordner : My Documents erstellt und darin Verbrauch .csv. Was mache ich falsch?? Hab andere Profile erstellt, die klappen

      LG Uwe

      Löschen
  9. hm klingt komisch, scho mal probiert die Datei direkt auf die SD-Karte zu legen, bzw mit einem anderen Task drauf zuzugreifen, um herauszubekommen ob es überhaupt an der Aktion liegt oder an was anderem?

    AntwortenLöschen
  10. So die Datei hab ich jetzt hinbekommen. Hab dann das Widget erstellt. Wenn ich nun was eintragen will, muss ich das ja mit dem Editor tun. Aber dann passiert nichts??

    AntwortenLöschen
  11. Im Editor wird nichts eingegeben. Du brauchst den letzten Task den ich beschrieben hab ("BenzinScene"). Wird dieser ausgeführt öffnet sich die Szene als Fenster und dort kannst du alles eintragen.

    AntwortenLöschen
  12. Hm, verstehe. Aber bei mir geht das Fenster nicht auf.

    AntwortenLöschen
    Antworten
    1. Dann stimmt was bei der Aktion Create Scene bzw Show Scene nicht.
      Ist alles so eingegeben wie hier gezeigt? Steht bei Show Scene unter "Continue Task Immediately" wirklich ein "No"?

      Löschen
  13. Ich habe es so eingegeben wie beschrieben. Ich habe bei"Continue Tsk immediately" keinen Haken reingemacht, das heißt doch "No"?

    AntwortenLöschen
    Antworten
    1. jop heißt es.
      Hast du generell schon mal eine Szene benutzt/gesehen? Scheinbar hast du da irgendwo einen Fehler gemacht

      Löschen
  14. Hallo, ich habe jetzt alles erneut eingegeben. Bei diesem Punkt ( Über "Create Scene" wird unsere Szene erstellt, hierbei sollte "Continue Task After Error" angeklickt sein, ) kann ich CTAE nicht anklicken weil nicht vorhanden?.
    Ich habe von dir das WlanProfil genommen, das klappt ohne Probleme

    LG Uwe

    AntwortenLöschen
  15. Hallo Daniel,

    als Tasker-Anfänger erstmal vielen Dank für deine hilfreichen Tutorials. Konnte ich alle super nachvollziehen. Hab mich dann gleich mal an diese Aufgabe gemacht. Klappt super! Nettes Teil. Hab mir den Verbrauch mit in die Datei schreiben lassen. Finde ich persönlich besser.

    Herzlichen Dank für deine Mühe!

    AntwortenLöschen
    Antworten
    1. Danke für das Lob :)

      Die Datei war ursprünglich dazu gedacht um sie mit Excel einzulesen, deshalb wollte ich keine doppelten Informationen drin stehen haben. Excel kann den Verbrauch ja selber aus den vorhandenen Daten errechnen.

      Aber sicher, je nachdem wozu man es nutzt sind andere Infos in der Datei sinnvoll :)

      Löschen
  16. Hallo Daniel
    als blutiger Anfänger von Tasker habe ich es nach mehrmaligen Versuchen hinbekommen das Profil zu erstellen. Alles funktioniert, fast alles, ich kann die Datei nicht speichern, ich habe in meinem internen Speicher /LG G Pro) den Ordner "My Documents" erstellt, einmal mit der Datei "Verbrauch.csv und einmal ohne diese Datei, wenn ich auf dem Save Button klicke, keine Ahnung was passiert, anscheinend nichts, denn wenn ich mit Log die Datei öffne, also mit einer App, dann ist die Datei "Verbrauch" leer alle Pfade sind hinterlegt worden.

    Hast du einen Tipp?
    Gruß Thomas

    AntwortenLöschen