Donnerstag, 4. August 2011

[Profil] Wo steht mein Auto?

Wer kennt das nicht? Nach dem Einkaufbummel steht man auf dem Parkplatz vor einer unübersehbaren Menge von Autos und irgendwo dazwischen steht das eigene, nur leider weiß man nicht mehr so genau wo. Abhilfe soll dieses Tasker Widget schaffen. Nach dem Parken kurz das Widget anklicken, nun wird GPS aktiviert und die aktuelle Position gespeichert. Nach dem einkaufen einfach nochmals klicken und es öffnet sich die Google Navigation, welche einen nun zum Auto führt. Dies ist aber sicherlich nur eine Anwendung für ein solches Profil.



Der Task besteht aus zwei Teilen, Teil 1 ermittelt die aktuelle Position und speichert diese ab. Teil 2 öffnet die Google Navigation und zeigt die gespeicherte Position an. Da immer nur ein Teil ausgeführt werden soll, nutzen wir die If-Bedingung. Diese überprüft ob die Position abgespeichert wurde, wenn ja wir die Navigation geöffnet wenn nicht wird die Position gespeichert.

Hier nun also der Task, um einen neuen Task zu erstellen einfach auf "Tasks" und dann auf "Add Task" klicken.
  • Task: "Position"
    1. Tasker -> If %POSITION Is Set
    2. App -> Open Map
      • Mode: Navigate To
      • Lat,Long: %POSITION
    3. Variable -> Variable Clear
      • Name: %POSITION
    4. Tasker -> Set Widget Icon
      • Name: Position
      • Icon: (was passendes)
    5. Tasker -> Set Widget Label
      • Name: Position
      • Label: Save Pos.
    6. Tasker -> Stop
    7. Tasker -> End If
    8. Misc -> Get Location
      • Source: GPS
      • Timeout: 120 Seconds
    9. Variable -> Variable Set
      • Name: %POSITION
      • To: %LOC
    10. Tasker -> Set Widget Icon
      • Name: Position
      • Icon: (was schönes)
    11. Tasker -> Set Widget Label
      • Name: Position
      • Label: Show Pos.
Die Aktion "Get Position" aktiviert das GPS und wartet so lange bis die aktuelle Position ermittelt, oder das Timeout überschritten wurde. In der Variable %LOC befindet sich die letzte über GPS gespeicherte Position, d.h. sie wird überschrieben wenn wir zum Beispiel Maps öffnen und warten bis die Position gefunden wurde. Deshalb speichern wir die eben über "Get Position" ermittelte Position in einer eigenen Variablen %POSITION ab.

Bei "Set Widget Label" und "Set Widget Icon" ist zu beachten, dass unter "Name" der Name des Widgets stehen muss, das verändert werden soll. Ein Widget erhält automatisch den Namen des Task der ausgeführt wird wenn es angeklickt wird. Wer also den Task nicht "Position" nennt, muss auch unter "Name" seine Version eintragen.

Im "Task Edit" Fenster wählen wir noch mit dem zweiten Button von rechts, also links neben dem roten Kreuz, ein passendes Icon aus. Das Widget erstellen wir indem wir das Widget hinzufügen Menü öffnen und dann "Task" auswählen. In dem sich öffnenden Fenster wählen wir unseren Task "Position" aus.

Bei "Open Map" kann man statt "Navigate To" auch "Point" als Modus wählen, leider zeigt Google Maps dann aber eine Karte ohne Markierung der Position an. Dies hilft uns ja nicht viel weiter, deswegen habe ich als Modus "Navigate To" gewählt.

Kommentare:

  1. das klappt bei meinem ROM Revo HD4 mit DarKKnight 2.5.2p leider nicht so ganz. Ich muß vorher immer erst manuel das GPS antippen, dann das icon, von deinem Thread. Schade das es nicht mit einem Knopfdruck geht.
    Aber auf der anderen Seite, ist es immer noch feiner, 2 Tasten zu drücken und dann zu sehen wo muß ich hin, als erst GPS an, Navigation starten und auf aufzeichnen klicken ;).

    AntwortenLöschen
  2. Das GPS wird mit diesem Task auch nicht aktiviert, da Android das selber tut wenn es notwendig ist. Wenn du GPS natürlich in den Einstellungen deaktivierst kann es nicht funktionieren, da Android jeder Anwendung dann den GPS Zugriff untersagt.

    GPS kannst du ruhig in den Einstellungen aktiviert lassen, so lange das Satellitensymbol nicht in der Benachrichtigungsleiste zu sehen ist, wird auch GPS gerade nicht benutzt und ist deaktiviert. Android aktiviert dies nur wenn eine App den Zugriff fordert.

    Dann funktioniert auch dieses Profil mit nur einem Klick ;)

    AntwortenLöschen
  3. kann es sein, dass dieses Profil den deep Sleep Modus unterbindet? Ich hatte nach dem Profil nämlich das Problem, dass mein Handy die ganze Nacht auf 100 min lief und nicht in den Deep Sleep ging. Nacht deaktivieren des Profils, ging es dann auch wieder in den Deep Sleep. Was konnte dies verursacht haben?
    Hat jemand ein ähnliches resultat?

    AntwortenLöschen
  4. Kann ich mir nicht vorstellen da dies ja genau genommen nur ein Task ist und kein Profil mit Kontext.

    Die einzige Aktion die hier längere Zeit ausgeführt werden könnte ist das Get Location, hast du da einen entsprechenden Timeout gesetzt?

    Ansonsten geht Tasker den Task bei Klick auf das Widget einmal von oben nach unten durch, mehr nicht.

    Was meinst du mit deaktivieren des Profiles? Geht bei einem Task ja schlecht, oder hast du ein Profil draus gebastelt?

    p.s. bin erst mal die Woche im Urlaub (ohne Internet :D ) Ich kann also erst im neuen Jahr wieder antworten:)

    AntwortenLöschen
  5. Habe das in mein Car Dock exit Task gemerged :)

    AntwortenLöschen
  6. wäre auch als Trigger realisierbar, wenn er die Verbindung zur Bluetooth-FSE verliert ???

    Gruss,
    Jörg

    AntwortenLöschen
  7. ja, dazu nimmst du als Kontext Bluetooth Connected und haust den Task als Exit-Task rein.

    AntwortenLöschen
  8. Hi,
    ist es auch möglich, das Zurückkommen zum Auto offline zu machen?
    Jetzt funktioniert es so, daß die Navigation geöffnet wird und eine Route zum Zielpunkt online heruntergeladen wird.

    Eine "einfache" Richtungsangabe mit Metern würde mir reichen.

    Gruß,

    P.S. danke für das Skript, wenn man die Vorgehensweise erst mal verstanden hat, geht es doch sehr schnell!

    AntwortenLöschen
    Antworten
    1. Dafür brauchst du eine Kompass App der du über Tasker die Zielkoordinaten übergeben kannst.
      Leider kenn ich eine solche nicht.

      Der zweite Weg wäre die aktuellen und Zielkoordinaten mit Tasker zu vergleichen und die Entfernung und Richtung auszurechnen.
      Also ungefähr so:
      Position_X_gespeichert - Positition_X_aktuell = Entfernung_X
      Position_Y_gespeichert - Position_Y_aktuell = Entfernung_Y

      Mit ein bisschen Vektorrechnung kannst du dir dann die Entfernung und Richtung der Luftlinie ausrechnen.

      Löschen
    2. Dieser Kommentar wurde vom Autor entfernt.

      Löschen
  9. Hi,
    danke Dir für Deine Antwort.
    Hatte vorher eine Carlocator-App auf dem Phone, dank Deines Skriptes konnte ich die jetzt runterschmeißen. Gibt wieder mehr Platz!
    Dein Skript hat den Vorteil, daß es klein und schnell ist. Top!
    Dann muß man halt mal den Mobile-Internet-Zugang anschmeißen! Besser als das Auto nicht zu finden :-)

    AntwortenLöschen
  10. Hi. Ich hab das mal in mein Tasker getippelt... Ich hab aber noch 2 kleine Probleme:
    1. Wenn ich das starte, bekommt "%POSITION" den Wert %LOC, statt Koordinaten. Ich hab bei GetLocation "Any" angewählt, für den Fall, dass das GPS nichts sieht. Das ist blöd... Dann kommt beim "Suchmodus" ne Fehlermeldung, weil wohl Maps mit dem Wert %LOC nix anfangen kann.
    Ausserdem würde ich gerne die Koordinaten an Locus Pro übergeben. Falls denn %POSITION nen bauchbaren Wert bekommt, wie mache ich das?

    AntwortenLöschen
    Antworten
    1. Macht es Sinn die Parkposition über Mobilfunk zu speichern? Die Genauigkeit ist so gering, dass du lediglich den Parkplatz ausmachen kannst, nicht jedoch die Parklücke. Somit eigentlich recht sinnlos.

      Wie man den Wert an Locus übergeben kann weiß ich nicht, es gibt ja die Möglichkeit Apps zu starten und denen auch Parameter mitzugeben, darüber geht es sicherlich, allerdings muss man dazu wissen in welcher Form Locus die Parameter erwartet und das weiß ich nicht.

      Löschen
  11. Hallo, ich finde das Profil super, habe aber ein Problem bei der Übergabe des Parameters %Position.
    Bei 2. Start App gibt es bei mir ein Feld Daten.
    Dort habe ich:
    Maps
    Mode: Navigate To
    Lat,Long: %POSITION eingegeben.
    Beim ersten Durchlauf Ikon zeigt: Save Position ist alles Ok.
    Beim zweiten, Ikon zeigt show Position, startet Maps, es gibt aber keine Zielposition sondern nur die Karte. Wenn ich Navi drücke, erscheint der Dialog zur Zieleingabe.
    Was muss ich ändern?
    Danke, viele Grüße Matti!

    AntwortenLöschen
  12. Hallo. Super idee.habs probiert und scheint zu funktionieren. Jedoch wird mein tasker komplett auf inaktiv gesetzt wenn der task durchgelaufen ist. Was hab ich falsch gemacht?

    AntwortenLöschen
  13. Bei mir kommt eine Warnung wenn ich den Task ausführen möchte.

    "Offne Karte: bad Lat,Long: %LOC."

    Kannst du mir da vielleicht helfen? :(

    AntwortenLöschen
  14. Hallo,
    also irgendwie bin ich zu blöd dafür ;)
    Kann vlt jermand die fertige xml für das Projekt
    "Wo ist mein Auto"
    mal hochladen.
    Danke schon mal

    AntwortenLöschen
  15. Stephan Schreiber: da sind wir schon zu zweit ;)

    AntwortenLöschen
  16. Hallo
    Kann man beim starten der Navi-App irgendwie die Navigation zu fuss automatisch auswählen?

    AntwortenLöschen
  17. Hmm, bin genau nach Anleitung vorgegangen, aber er will mich nicht zu meinem Auto führen, sondern immer an meine Heimadresse.

    AntwortenLöschen