Ihr fandet Locale super? Dann werdet Ihr Tasker lieben!

  • 3.673 Antworten
  • Letztes Antwortdatum
Status
Für weitere Antworten geschlossen.
Ich habe ein Problem:

Ich möchte eine Zeiterfassung machen, aber nicht im Kalender sondern mittels der App Zeiterfassung. Das eintragen und austragen klappt auch super, aber ich habe mit der Bedingung wann dies geschehen soll Probleme.

Wegen Stromverbrauch wenn dauernd GPS an ist möchte ich es über das WLAN lösen.

Einbuchen soll er immer wenn man in Reichweite des Firmen WLAN ist
Ausbuchen, wenn man die Reichweite verlässt.

Da man aber ggf. auch das WLAN man resetten muss oder kurzzeitig aus Reichweite des WLAN Netztes kommt, wenn man mal an einer ungünstigen stelle in der Firma ist, soll/darf er (sonst Probleme mit Zeiterfassungsapp) nicht sofort aus- und wieder einbuchen und genau da hab ich Probleme:



Es soll ca. so laufen:

1. Abfrage:
Ist WLAN Netz XYZ in Reichweite?

2. Eingangstask (bei Ankunft im LAN):
WENN Variable AUFARBEIT auf 0
...Einbuchen beim Zeiterfassungsapp
...Meldung anzeigen
...SETZE Variable AUFARBEIT auf 1
ENDIF

3. Ausgangstask (bei verlassen des WLAN Bereiches):
Warte 5 Minuten
WENN Netzwerk nun wieder in Reichweite <----- Mein PROBLEM
...SETZE Variable AUFARBEIT auf 1
SONST
...SETZE Variable AUFARBEIT auf 0
...Ausbuchen beim Zeiterfassungsapp
...Meldung anzeigen
ENDIF



Meine Fragen:
1. Kann ich eine Variable einfach nutzen, oder muss ich sie erst definieren?
2. Wie mache ich die Abfrage ob nach 5 Minuten wieder WLAN da ist? Scheinbar kann ich darauf im Task garnicht mehr zugreifen.
 
@Gorkde

zu 1. Variablen brauchen nicht definiert werden.
zu 2.
Kann es sein das der Exit-Task abgebrochen wird sobald das Profil wieder aktiv wird?
Was auf jeden Fall passieren kann ist das die WARTE Funktion unterbrochen wird, wenn ein anderer Task mit gleicher Priorität gestartet wird. Also musst du die Prioriät des Exit-Tasks erhöhen.
Allerdings weiß ich nicht sicher ob das dein Problem löst, da ich solche Kollisionen bisher vermeiden konnte.
 
Ich habe folgende Idee:
Tasker soll mir meine aktuelle Position (ermittelt über das Mobilfunknetz, also nicht über GPS) in den Kalender schreiben... geht sowas?
Wäre wirklich gut denn dann könnte man selbst seine Wege nachverfolgen wenn man sich z.B. fragt wo man letzte Nacht um 2 Uhr war... :)
 
CaveCanem schrieb:
@Gorkde

zu 1. Variablen brauchen nicht definiert werden.
zu 2.
Kann es sein das der Exit-Task abgebrochen wird sobald das Profil wieder aktiv wird?
Was auf jeden Fall passieren kann ist das die WARTE Funktion unterbrochen wird, wenn ein anderer Task mit gleicher Priorität gestartet wird. Also musst du die Prioriät des Exit-Tasks erhöhen.
Allerdings weiß ich nicht sicher ob das dein Problem löst, da ich solche Kollisionen bisher vermeiden konnte.

Du hast mich falsch verstanden. Das Problem ist nicht das es nicht läuft, sondern dass ich die markierte Zeile (PROBLEM) garnicht erst erstellen kann weil ichnicht weiss wie ich abfragen kann ob nach 5 Minuten das WLAN wieder da ist.
D.H. ich finde keine Funtion mehr um das im nachhinein abzufragen. (versteht man was ich meine?)
 
Vistagamer schrieb:
Ich habe folgende Idee:
Tasker soll mir meine aktuelle Position (ermittelt über das Mobilfunknetz, also nicht über GPS) in den Kalender schreiben... geht sowas?
Wäre wirklich gut denn dann könnte man selbst seine Wege nachverfolgen wenn man sich z.B. fragt wo man letzte Nacht um 2 Uhr war... :)

LOL.... Man oder die Freundin?
 
Vistagamer schrieb:
Ich habe folgende Idee:
Tasker soll mir meine aktuelle Position (ermittelt über das Mobilfunknetz, also nicht über GPS) in den Kalender schreiben... geht sowas?
Wäre wirklich gut denn dann könnte man selbst seine Wege nachverfolgen wenn man sich z.B. fragt wo man letzte Nacht um 2 Uhr war... :)

guck dir mal latitude an, is glaube einfacher :)
 
Gorkde schrieb:
LOL.... Man oder die Freundin?

hö? Wenn man besoffen ist macht es manchmal Spaß seinen Abend zu rekonstruieren...
 
Gorkde schrieb:
Du hast mich falsch verstanden. Das Problem ist nicht das es nicht läuft, sondern dass ich die markierte Zeile (PROBLEM) garnicht erst erstellen kann weil ichnicht weiss wie ich abfragen kann ob nach 5 Minuten das WLAN wieder da ist.
D.H. ich finde keine Funtion mehr um das im nachhinein abzufragen. (versteht man was ich meine?)

achso, ok

In der Variable WIFII (Wifi Info) stehen je nachdem ob man mit einem WLAN verbunden ist oder nicht verschiedene Sachen drin, evtl. kannst du damit abfragen ob du noch verbunden bist.

Eine weitere Möglichkeit wäre einfach ein weiteres Profil, welches aktiviert wird wenn du mit dem WLAN verbunden bist und einfach nur eine Variable setzt und du diese dann abfragst.
 
Hmmm... Das mit dem Variable setzen könnte gehen Das könnte ich ja sogar im selben Profil machen (gleich am Anfang) oder wird der Eingangstask blockiert wenn ich im Ausgangstask das Wait habe?

Das mit Wifi Info schnall ich leider nicht ganz, wie zeige ich denn da den Inhalt an bzw. filtere die wichtige Info raus?
 
wie das mit dem blockieren ist weiß ich nicht genau, Tatsache ist, dass sich Tasks blockieren können, deshalb kann man denen eine Priorität geben, aber ich weiß nicht genau unter welchen Umständen. Zur Wait steht im Tasker Wiki:

Wait / Wait Until
These are exceptions. A wait action can be interrupted by another task's action and will resume (if necessary) when the other task's action is finished.

Es kann also sein dass dein EntryTask das Wait unterbricht, dürfte aber nicht so tragisch sein, bzw. willst du das ja auch.

WIFII ist eine Variable. Mit Altert->Popup kannst du dir mal anschauen was in der Variable steht. Du könntest zBsp mit Variable Split dir die gewünschten Informationen rauspicken und dann per If abfragen.
 
Ich habs nun so gemacht:

wenn WLAN in Reichweite kommt

Eingangstask:

SET %WLAN_AKTIV = 1
IF %AUF_ARBEIT = 0
...Einbuchen
...Nachricht
...SET %AUF_ARBEIT = 1
ENDIF


Ausgangstask:

SET %WLAN_AKTIV = 0
WAIT 5 Min --- (ob in der Zeit der neue Einganstask es wieder auf 1 setzt)
IF %WLAN_AKTIV = 0
...IF %AUF_ARBEIT = 1
......Ausbuchen
......Nachricht
......SET %AUF_ARBEIT = 0
ENDIF


Scheint theoretisch zu gehen, aber wenn ich die Wartezeit auf 59 Sekunden hatte hat er mich trotzdem erst nach 3-4 Minuten ausgestempelt. Als ich noch nichts mit Wartezeit hatte ging es in Sekundenbruchteilen (weshalb ich ja die Wartezeit reinprogrammiert hab dann, damit er nicht dauernd ein und ausbucht), daher wundert es mich warum es nun nicht genau nach der eingestellten Zeit geht.

Ist da oben drin doch was falsch?

Ps ich habe die Tasks so eingestellt dass mehrere laufen können, damit der Eingangstask Wlan aif 1 setzen kann falls der Ausgangstask noch wartet.
 
setze mal die Priorität des Exit Tasks aufs Maximum, hatte auch mal so ein Problem mit der WARTE Funktion, da die unterbrechbar ist, kann es passieren, dass es länger dauert bis sie fertig durchlaufen ist, mit maximaler Priorität sollte das nicht mehr passieren
 
Vistagamer schrieb:
hö? Wenn man besoffen ist macht es manchmal Spaß seinen Abend zu rekonstruieren...

ich bin manchmal froh wenn ich sie nicht mehr zusammenbekomme :D
hat alles seine Vor- und Nachteile :lol:
 
Rizzen schrieb:
ich bin manchmal froh wenn ich sie nicht mehr zusammenbekomme :D
hat alles seine Vor- und Nachteile :lol:

Eine andere Lösung wäre noch einfach weniger trinken..... Der Mensch hat ein eingebautes App was sich merk to er ist.

Und... sollte es doch um die Freundin (Eifersucht) gehen, gibt es 3 Lösungen:

1. Entspannter werden
2. Rausschmeissen, neue besorgen der man vertrauen kann
3. Ansonsten gibts fertige Apps für sowas im Market
 
CaveCanem schrieb:
wie das mit dem blockieren ist weiß ich nicht genau, Tatsache ist, dass sich Tasks blockieren können, deshalb kann man denen eine Priorität geben, aber ich weiß nicht genau unter welchen Umständen. Zur Wait steht im Tasker Wiki:



Es kann also sein dass dein EntryTask das Wait unterbricht, dürfte aber nicht so tragisch sein, bzw. willst du das ja auch.

WIFII ist eine Variable. Mit Altert->Popup kannst du dir mal anschauen was in der Variable steht. Du könntest zBsp mit Variable Split dir die gewünschten Informationen rauspicken und dann per If abfragen.

Hatte ich auch gelesen, daher hab ich die Tasks so eingestellt, dass sie mehrfach gestartet werden können, unterbrechen geht nicht, weil dann der AUF_ARBEIT Counter ignoriert wird.

Andererseits wäre die einfachste lösung vielleicht gewesen einfach ein simples 5 Minuten Wait im Exit Task zu machen, wenn er vom EIngangstask eh unterbrochen wird. Aber das weiss ich eben nicht wirklich. Kann ja auch sein, dass nur der Exit Task den vorherigen Exit Task unterbrechen kann.
 
Diese Einstellungen gelten nur wenn der gleiche Task gestartet wird, nicht wenn ein anderer Task gestartet wird. Wie sich unterschiedliche Tasks beeinflussen hat mit der Priorität ihrer Profile zu tun, da deine Tasks aber dem selben Profil angehören bin ich mir da auch nicht sicher.

Wäre es nicht evtl sinnvoll, im Exit Task nur eine Variable zu setzen und in einem zweiten Profil mit niedrigerer Priorität die 5 Minuten zu warten? Also ungefähr so:

Code:
Profil1: "WiFi Near"
  Trigger: WiFi Near
Task:
  1. Set Variable %WCON = 1
  2. der Rest aus dem Profil
Exit Task:
  1. Set variable %WCON = 0

Profil2: "WCON"
  Trigger: Variable Value: %WCON = 0
Task:
  1. WAIT 5 Min.
  2. IF %WCON ~ 0
  3. der Rest aus deinem alten Exit-Task
 
Das klingt auch gut, allerdings habe ich ja gerade versucht das ganze in einem Task zusammen zu fassen. Wenn man 2 nimmt könnte man die WLAN Erkennung und die Reaktion ja sowieso strikt trennen wie schon vorgeschlagen.

Allerdings wusste ich bisher garnicht, dass man eine Variable die sich ändert auch als Trigger nehmen kann. Gut zu wissen!


Ich habe es ja nun seit heute mit mehrfach Start des Tasks laufen. Werde es so mal ein paar Tage testen und dann weitersehen glaube ich.

Zumindest hat er sich gestern ausgebucht, heute eingebucht und trotz dauernder Bastelei an der Telefonanlage / WLAN sich bisher nicht ausgebucht.
 
Ich habe nun das ganze umprogrammiert in 2 Tasks, einen der erkennt ob das WLAN da ist und einen der die Arbeit macht.

Außerdem habe ich es noch verbessert, so dass er nicht nach 5 Minuten guckt OB WLAN da ist, SONDERN WIE LANGE es nicht mehr da ist, damit vermeide ich dass es als Feierabend erkannt wird, wenn das WLAN vielleicht schon lange wieder da war aber eine Sekunde vor dem Check es wieder wegfällt.

Ich teste das und wenn es funktioniert stell ich es hier ein.

EDIT:
Scheint zu gehen, gestern einwandfrei ausgebucht, heute einwandfrei rein.

Allerdings hab ich die Verzögerung noch, aber ich glaube ich weiss nun was es ist. In den Einstellungen kann man die Abfragehäufigkeit für WLAN einstellen. Ich war bisher davon ausgegangen, dass sobald das Netz für das DHD erkannt wird auch Tasker das erkannt hat. Aber vielleicht ist es so, dass Tasker nur alle x Minuten beim DHD anfragt ob das Netz da ist. Dann würde das nämlich hinkommen mit den eingestellten Abfragezeiten + meiner Warteschleife.

Daher habe ich nun die Zeit meiner Warteschleife auf eine Minute reduziert, was eigentlich unschön ist, weil wenn zufällig die Abfrage schnell kommt darf das WLAN max. 1 Minute aus Reichweite sein, aber ich habe Angst, dass es zu viel Akku zieht, wenn ich die WLAN Abfragehäufigkeit zu hoch setze.
Auch kann ich nicht beides auf 5+6 Minuten lassen, weil dann im Extremfall 11 Minuten vergehen ehe er mein Arbeitszeitende erkennt.

Komischerweise erkennt er wenn ich in die Reichweite des Netzes komme es sofort, nur beim verlassen ist es so lahm. Keine Ahnung ob meine obige Theorie richtig ist oder es doch NUR an meiner Warteschleife liegt. Weiss das einer?
 
Zuletzt bearbeitet:
Gorkde schrieb:
Komischerweise erkennt er wenn ich in die Reichweite des Netzes komme es sofort, nur beim verlassen ist es so lahm. Keine Ahnung ob meine obige Theorie richtig ist oder es doch NUR an meiner Warteschleife liegt. Weiss das einer?
Wenn ich mich nicht irre ist es so, dass er auf das Event nicht direkt reagiert, wenn er die Verbindung verliert, sondern erst ein bißchen abwartet, ob das nicht ein kleines Funkloch ist. Erst wenn er sich sicher ist, dass es sicher weg ist kommt das Event... irgendwie sowas habe ich da im Kopf. Kann man vllt. beim Context oder in den Settings von Tasker dazu was einstellen? Habs grad nicht parat...
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

b0mb
  • b0mb
Antworten
1
Aufrufe
128
b0mb
b0mb
joerg-rz
  • joerg-rz
Antworten
3
Aufrufe
329
joerg-rz
joerg-rz
Angelchc
Antworten
4
Aufrufe
175
Angelchc
Angelchc
Zurück
Oben Unten