Task ausführen, wenn Gerät X Sekunden ohne USB-Power

  • 13 Antworten
  • Letztes Antwortdatum
O

obelix76

Ambitioniertes Mitglied
9
ich hab grad mal wieder eine Denkblockade vom Feinsten ;)

folgendes Szenario: Ein Task soll nach X Sekunden ausgeführt werden, wenn die Spannungsversorgung über USB wegfällt. Nach X Sekunden wird geprüft, ob USB-Power wieder da ist - dann soll gar nix passieren.

Beim Erstellen eines Profiles kann man ja den USB-Powerstatus abfragen und als Kontext für das Profil hernehmen. In meinem Fall also Power Source AC. Wenn Power Source != AC, springt also der Eingangstask des Profils an. Dort setze ich jetzt ein Wait auf X Sekunden. Aber wie prüfe ich dann danach, ob USB Power wieder da ist oder immer noch fehlt? Ich finde das leider nur als Kontext-Option, nicht aber in den Task-Optionen. Oder ist das am Ende "nur" eine Systemvariable, die ich über Variable Check prüfen könnte?

Kann mich jemand erleuchten bitte? ;)
 
Moin

Profil mit Entry-/Exit-Task
Code:
Profil: Power
  Entry: Power
  Exit: Power

Task: Power (Kollision: Abort Existing Task)
  if %PACTIVE !~ *,Power,*
    wait seconds 30
    if %PACTIVE !~ *,Power,*
      [hier deine Aktionen]
    end if
  else
    stop
  end if
Anturix
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: obelix76
danke für deinen Post, Anturix.
leider bekomme ich den Task / das Profil über deinen Aufschrieb hier nicht zum Laufen - es passiert mal schlichtweg gar nix. :(

Könntest du das Profil und den Task bitte mal als XML exportieren, damit ich das hier in meinem Tasker importieren kann? Ich vermute, ich hab bei den IF-Klauseln irgendwas verdaddelt (habs nach deinem Post 1:1 so abgetippt, aber mit den * und den Kommata da drin - ich weiß nicht, ob ich da irgendwas mißverstehe/falsch mache...)

danke schon mal vorab!
 
Moin

Poste mal dein Profil.

Long Tap auf das Profil - Menü - Export - Description (CODE-Tags)
Dann siehst Du den Unterschied zu meinem Vorschlag vermutlich auch selber.

Anturix
 
so, denk jetzt tuts... Warum es erst nicht lief, kann ich nicht nachvollziehen.

dein Task war noch "falschrum" von der Logik, hat Aktionen ausgeführt, wenn Strom für X Sekunden *da* war.

so siehts jetzt aus:
Code:
 Profile: Power (9)
    State: Power [ Source:Any ]
Enter: Power (5)
    Abort Existing Task
    A1: If [ %PACTIVE !~ *,Power,* ]
    A2: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ] 
    A3: If [ %PACTIVE !~ *,Power,* ]
    A4: Popup [ Title: Text:Strom zu lange wech Background Image: Layout:Popup Timeout (Seconds):5 Show Over Keyguard:On ] 
    A5: End If 
    A6: Else 
    A7: Stop [ With Error:Off Task: ] 
    A8: End If 
 Exit: Power (5)
    Abort Existing Task
    A1: If [ %PACTIVE !~ *,Power,* ]
    A2: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ] 
    A3: If [ %PACTIVE !~ *,Power,* ]
    A4: Popup [ Title: Text:Strom zu lange wech Background Image: Layout:Popup Timeout (Seconds):5 Show Over Keyguard:On ] 
    A5: End If 
    A6: Else 
    A7: Stop [ With Error:Off Task: ] 
    A8: End If
 
Moin

Sorry. Hatte das ! vor dem ~ in meinem Vorschlag vergessen. (hab ich geändert)

Anturix
 
kein Ding - das war ja ne relativ einfache Übung, das konnt ich mir noch erschließen ;)
 
Hallo, ich bin schon ganzen Tag an dem Task. So langsam sollte ich es haben.
Wie bekomme ich den Befehl Abort Existing Task eingestellt?
 
Moin

Wenn Du im Task bist, Settings-Button unten 2. von rechts.

Anturix
 
Danke für die Hilfe. Um die Option zu finden, muss ich den Anfängermodus deaktivieren.
So bei mir kommt noch der Popup, trotz das ich innerhalb der Zeit wieder lade.

Hier mein Script, wo habe ich den Fehler.
Profile: Power (2)
State: Power [ Source:Any ]
Enter: Power (3)
Abort Existing Task
A1: If [ %PACTIVE !~ *,Power,* ]
A2: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ]
A3: If [ %PACTIVE !~ *,Power,* ]
A4: Popup [ Title: Text:Keine Spannung Background Image: Layout:popup Timeout (Seconds):20 Show Over Keyguard:On ]
A5: End If
A6: Else
A7: Stop [ With Error:Off Task: ]
A8: End If

Exit: Power (3)
Abort Existing Task
A1: If [ %PACTIVE !~ *,Power,* ]
A2: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ]
A3: If [ %PACTIVE !~ *,Power,* ]
A4: Popup [ Title: Text:Keine Spannung Background Image: Layout:popup Timeout (Seconds):20 Show Over Keyguard:On ]
A5: End If
A6: Else
A7: Stop [ With Error:Off Task: ]
A8: End If
 
Wenn ich das richtig verstehe, willst Du lediglich ein Popup anzeigen lassen, wenn die Stromversorgung unterbrochen ist.
Dafür brauchst Du nur den Ausgangstask:

Code:
Exit: Power (3)
Abort Existing Task
[color=red]A1: If [ %PACTIVE !~ *,Power,* ][/color]
A2: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ] 
A3: If [ %PACTIVE !~ *[color=red],[/color]Power[color=red],[/color]* ]
A4: Popup [ Title: Text:Keine Spannung Background Image: Layout:Popup Timeout (Seconds):20 Show Over Keyguard:On ] 
[color=red]A5: End If [/color]
A6: Else 
A7: Stop [ With Error:Off Task: ] 
A8: End If
 
Zuletzt bearbeitet:
Nee Nee, das mit dem Popup ist nur zum testen.
Ich möchte gerne das, das Gerät herrunterfährt, wenn für 10 Sekunden nicht geladen wird. Ich habe ein Tab in meinem Auto eingebaut. Und es soll, wenn ich das Auto starte nicht, eben noch nicht herunterfahren. Sondern wenn es wirklich abgestellt habe.
 
Moin
600N818 schrieb:
So bei mir kommt noch der Popup, trotz das ich innerhalb der Zeit wieder lade.
Ich seh da grade keinen Fehler. Sollte eigentlich funktionieren.

So funktioniert es bei mir.
Code:
Profile: Power (2)
  Restore: no Notification: no
  State: Power [ Source:Any ]

Enter: Power (3)
  Abort Existing Task
  A1: If [ %PACTIVE ~ *,Power,* ]
    A2: Flash: [ Text:Power On Long:On ]
  A3: Else
    A4: Flash: [ Text:Power Off Long:On ]
    A5: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ] 
    A6: If [ %PACTIVE !~ *,Power,* ]
      A7: Flash: [ Text:Power Off >10 sec. Long:On ]
    A8: End If 
  A9: End If 

Exit: Power (3)
[...]
*)
A2, A4 und A7 kannst Du später deaktivieren. Die sind nur zur Fehlersuche.

Sonst musst Du mal das LOG-File bemühen und schauen, was da funktioniert und was nicht.

cramu schrieb:
Wenn ich das richtig verstehe, willst Du lediglich ein Popup anzeigen lassen, wenn die Stromversorgung unterbrochen ist.
Dafür brauchst Du nur den Ausgangstask:
Dann wird der Exit-Task aber nicht vom Entry-Task abgebrochen (Abort Existing Task), wenn innerhalb der Wartezeit der Strom wieder angeht.

Anturix

*) Bitte verwende Code-Tags.
 
Zuletzt bearbeitet:
Danke, dann such ich mal weiter.
 

Ähnliche Themen

G
Antworten
1
Aufrufe
178
bbfh
bbfh
P
Antworten
25
Aufrufe
1.862
Pentatulim
P
Zurück
Oben Unten