Donnerstag, 19. Mai 2011

[Profil] Handy Locator mit Maps Link per Mail oder Klingeln

Was tun wenn das Handy nicht auffindbar ist? Meist ist es ja nur irgendwo in der Wohnung verschollen, da würde es meist reichen wenn es sich mal melden würde :). Doch was ist wenn es ganz unauffindbar ist? Dann wäre es doch praktisch zu wissen, wo ungefähr es sich gerade befindet.

Für beide Fälle habe ich je ein Profil geschrieben, welches auf eine Email mit einem bestimmten Betreff reagiert. Für den Fall, dass das Handy nur in der Wohnung verschollen ist, soll es lautstark auf sich aufmerksam machen, bis es gefunden wurde. Für den Fall, dass es sich wo ganz anders befindet soll es eine Email zurücksenden mit einem Maps Link der aktuellen Position.


Fall 1: Handy in der Wohnung verlegt: 
Schauen wir uns als erstes das Profil für den weniger schlimmen Fall an, also dass das Handy nur in der Wohnung verlegt wurde.
  • Profil 1: Melde dich
    • Trigger
      1. Event -> 3rd Party -> K9 Email Received
        • Subject: Melde dich!
    • Tasks
      1. Audio -> Silent Mode
        • Set: Off
      2. Variable -> Variable Set
        • Name: %VOLMOLD
        • To: %VOLM
      3. Audio -> Media Volume
        • Level: 15
      4. Media -> Music Play Dir
        • Dir: Music
        • Subdirs: On
        • Audio Only: On
      5. Alert -> Popup Task Names
        • Test: Gefunden
        • Task: Musik Stop
Was passiert also nun:
Wenn eine Mail mit dem Betreff "Melde dich!" eingeht, wird als erstes das Handy auf klingeln gestellt, um sicherzugehen dass es nicht im lautlos Modus ist. Danach wird die derzeitige Medienlautstärke gespeichert um sie später wieder setzen zu können. Nun kann die Medienlautstärke auf Maximum gesetzt werden und danach Die Musik in einem bestimmten Ordner abgespielt werden. Mit "Popup Task Names" wird ein Popup erstellt. Dieses zeigt dann einen Button mit "Musik Stop", dieser Task soll die Musik stoppen und die Medienlautstärke wieder zurücksetzen. Diesen Task müssen wir natürlich auch noch erstellen:
  • Task: Musik Stop
    1. Media -> Music Stop
    2. Audio -> Media Volume
      • Set: %VOLMOLD
Um bei der Medienlautstärke ein Eingabefeld anstelle des Schiebereglers zu bekommen, muss der Button mit den zwei Pfeilen gedrückt werden.

Fall 2: Handy verloren 
Kommen wir nun zu Fall 2, dass das Handy sich an einem komplett unbekannten Ort befindet. Hierbei soll wieder auf eine eingehende Mail reagiert werden, aber anstatt zu klingeln, soll nun die letzte bekannte Position an den Absender der Mail gesendet werden. Wie man eine Mail mit Tasker versendet habe ich in einem Tutorial schon beschrieben:


Das Handy soll nun auf eine eingehende Email mit dem Betreff "Wo bist du?" eine Mail an den Absender schicken mit aktueller Position in Koordinaten und einem Google Maps Link. Für das Mail-Skript muss ein Konfigurationsfile mit folgendem Inhalt geschrieben werden:

mailto: %EFROM
subject: Hier bin ich
body:
Ort %LOCN
Genauigkeit %LOCNACC Meter
vor %AGE Sekunden
http://maps.google.com/maps?f=q&sources=s_q&hl=de&geocode=&q=%LOCN

Die Mail geht also an den Absender der zuletzt empfangenen Email. In die Mail kommt die letzte "Net" Position inklusive Genauigkeit und wann sie gemessen wurde. Ich habe "Net" gewählt, da diese relativ genau ist und automatisch gemessen wird, wenn die Datenverbindung aktiviert ist.  Zum Schluss kommt noch ein Google Maps Link mit der aktuellen Position, d.h. beim klicken auf den Link öffnet sich Maps und die Position wird angezeigt. Ich habe mir den Link zusammengebastelt, evtl. gibt es noch eine kürzere Version, dann gerne mal als Kommentar posten.

Dieser Text muss mit Tasker in eine Datei geschrieben werden, dies geschieht mit der Funktion "File -> Write File". Hier nun das komplette Profil:

  • Profil 2: Wo bist du?
    • Trigger
      1. Event -> 3rd Party -> K9 Email Received
    • Tasks
      1. Variable -> Variable Set
        • Name: %AGE
        • To: %TIMES - %LOCNTMS
        • Do Math: Yes
      2. File -> Write File
        • File: Tasker/mail.conf
        • Text: (Text für die Mail)
      3. Misc -> Run Skript
        • Name: sendemail.py
Das wars schon. Die Varianle %AGE gibt an, wann der letzte Positionsfix gespeichert wurde. Dazu wird die Uhrzeit des letzten Fix in Sekunden (%LOCNTMS) von der aktuellen Uhrzeit in Sekunden (%TIMES) abgezogen.

Anstelle einer Mail, lässt sich das ganze auch per SMS lösen. Dazu gibt es den Trigger "Phone -> Received Text" und die Aktion "Send SMS". In der Variablen %SMSRN befindet sich der Absender der letzten empfangenen SMS.

Kommentare:

  1. hallo ich nutze Kaiten Mail statt k9 Mail kann ich das auch mit Kaiten Mail nutzen?
    beste grüße und 1000 dank im voraus =)

    AntwortenLöschen
  2. auf jeden fall nicht so einfach wie bei K9, da Kaiten keine Tasker Integration bietet. Aber evtl kannst du auf die Benachrichtigung von Kaiten zugreifen. Das kannst du mit dem Kontext Event -> UI -> Notification. Dort gibst du als Owner Application dann Kaiten an.
    Leg als Test mal ein Profil mit dem Kontextan, alt Task läst du ein Popup erscheinen (Alert -> Popup) welches einfach nur %NTITLE ausgibt, darin ist der Titel der letzten Notification enthalten, also nun von Kaiten. Wenn du aus dem Titel genügend INformationen bei einer empfangenen Mail ziehen kannst, lässt sich das umsetzen. Das Email senden geht ja dann unabhängig vom Programm über das Pythonskript

    AntwortenLöschen
  3. ich bin einfach auf k9 umgestiegen danke

    AntwortenLöschen
  4. Moin Chef!
    also zuerst mal Respekt für dein Wissen und deine Bemühungen!
    Wenn ich bedenke das ich den ganzen Abend nur mit Basteln, Abschreiben, Kopieren und Einfügen beschäftigt bin, muss der Aufwand ja unermässlich gewesen sein, das Script und Trigger etc. zu erstellen, also Hut ab!

    und ich vermute, wie erwartet hier meine Problemstellung:
    Funktionieren tut das Empfangen der Mail, sowie die Reaktion darauf (sprich: "Wo bist du?" -> "Hier bin ich" / mehrfach gegengetestet), jedoch beinhaltet die Antwort-Mail keinerlei Positionsdaten, bzw. einen Link... ich habe in der Konfigurationsdatei alles wie gehabt mit LOCN bzw. %LOCNACC eingegeben, dennoch erfolgt keine Positionsbestimmung... eine Idee?

    AntwortenLöschen
  5. erscheint bei empfangen der Email das Satelliten Symbol in der Benachrichtigungsleiste? (als indikator dafür dass Tasker versucht die GPS Position zu bestimmen)

    Ansonsten schau dir mal das Konfig File (also dass was du mit Tasker anlegst) für den Mail Versand an ob da alles richtig drin steht.

    Noch ein Tipp: Benutze im Body der Mail keine ":", Das Skript nutzt diesen um Empfänger, Betreff und Body zu unterteilen, somit würde der Body ignoriert ab der Stelle wo der ":" erscheint.

    AntwortenLöschen
  6. Frage: geht das auch mit dem normalen Mailcient von Google auf dem Androidphone? Nur über K9?

    AntwortenLöschen
  7. hab nur alles so gemacht wie beschreiben.
    K9: läuft und bekommt mails.
    Trigger: eingerichtet
    Task: eingerichtet

    Mail am PC geschrieben aber nix passiert.
    K9: hier kommt die mail an
    Tasker: wenn ich den Task manuell ausführe (der Play button), wird die Mail versendet und kommt am PC an (cool). Nur leider nicht automatisch (uncool).

    ergo: der Trigger funktioniert nicht. Hier gibt es aber nur zwei Optionen. "From" und "Subject". mmhh. was bedeutet das gelbe Ausrufezeichen neben dem Trigger?

    watnu?

    AntwortenLöschen
    Antworten
    1. Das gelbe Ausriufezeichen bedeutet nur dass es ein "Event" ist.
      Mach mal ein Testprofil wo du From und Subjekt leer lässt, du also auf jede Mail reagierst. Als Aktion machst du ein Popup oder was ähnliches. Guck dann mal ob der auf eine ankommende Mail reagiert. Wenn ja, hast du bei deinem Locator einen Fehler gemacht (anderer Betreff zBsp).
      Wenn nein:
      Ist Tasker aktiv? D.h. funktionieren andere Profile?

      Löschen