Suche Tasker For Schleife wiederholt sich nicht?

  • 10 Antworten
  • Neuester Beitrag
Diskutiere Tasker For Schleife wiederholt sich nicht? im Automatisierung - Tasker im Bereich Tools.
P

ProAndroider

Neues Mitglied
Hallo, ich habe das Problem das sich die Schleife nicht wiederholt sondern nur einmal ausführt. Mein Ziel ist es, dass bei der Variable SleepZeit immer im Minuten Takt 1 subtrahiert wird bis die Variable bei 0 ist. Was hab ich falsch gemacht?
 

Anhänge

Empfohlene Antwort(en)
Mathens

Mathens

Stammgast
Dann sollte der Vorschlag mit dem Profil schon das Richtigte sein.
Ich versuche es dir nochmals genauer zu erklären.

Das Profil ist standardmässig deaktiviert und wird nur bei gebrauch aktiviert.

Um das Profil zu aktivieren ersetzt du in deinem Task SleepTimerTEST die komplette Schleife mit der Aufgabe Profil Status. Dort dann den Profilnamen eingeben oder mit der Lupe auswählen (z.B. Timer Zeit). Danach kommen deine restlichen Aufgaben. Diese werden direkt nach der Aufgabe Profil Status ausgeführt.

Sobald du das Profil aktiviert hast, läuft es nun unabhänig von irgenwelchen Task.
Das Profil startet jetzt in einem vorgegebenem Intervall (bei dir jede Minute) einen Task der dir die Timerzeit aktualisiert. Dieser wird parallel zu den anderen Task abgearbeitet wird.

In diesem Task wird dann bei jeder Ausführung 1 vom Variablenwert %SleepZeit abgezogen.
Damit das Profil nach Ablauf des Timers nicht unnötiger Weise weiterläuft. Deaktivierst du es wieder mit der Aufgabe Profil Status wenn der Wert der Variable auf Null ist (If %SleepZeit < 1).
Der Task sieht dann so aus
Code:
A1: Variable Substrahiere [
     Name: %SleepZeit
     Wert: 1
     Obergrenze: 0 ]

A2: Profil Status [
     Name: Timer Zeit
     setzen: Aus ]
    If  [ %SleepZeit < 1 ]
Wenn du einen Task zum Abbrechen des Sleep Timers hast, nicht vergessen auch das Profil zu deaktivieren.
 
Zuletzt bearbeitet:
Alle Antworten (10)
Mathens

Mathens

Stammgast
Bei einer For Schleife hast du mehrere Objekte die du abarbeitest. In der Variable %SleepZeit hast du aber wahrscheinlich nur einen einzigen Wert.
In deinem Fall musst du die Schleife mit einer Goto-Aktion machen.

Könnte dann so aussehen
Code:
<Schleife>
A1: Anker

A2: Variable Substrahiere [
     Name: %SleepZeit
     Wert: 1
     Obergrenze: 0 ]

A3: Warte [
     MS: 0
     Sekunden: 0
     Minuten: 1
     Std.: 0
     Tage: 0 ]

A4: Goto Aktion [
     Typ: Aktion Label
     Bezeichnung: Schleife ]
    If  [ %SleepZeit > 1 ]
 
P

ProAndroider

Neues Mitglied
@Mathens Danke für die schnelle Hilfe. Werde es ausprobieren.
 
Mathens

Mathens

Stammgast
Brauchst du die Variable %SleepZeit sonst noch irgendwo?
Falls du nur eine variable Wartezeit brauchst kannst du bei der Warte-Aktion, wenn du auf die gekreuzten Pfeile drückst, die Variable %input direkt verwenden.
 
Zuletzt bearbeitet:
P

ProAndroider

Neues Mitglied
Ich möchte eine SleepTimer bauen. Ich benutze die Variable %input auch direkt im Wait Befehl. Das soll nur als Anzeige dienen für die Verbleibende Zeit(auf einer Szene). Das bringt mich zum nächsten Problem. Ich hätte gerne, dass der Task weiter läuft während der Aktion, da dies wie gesagt nur als Anzeige auf einer Szene dient.
 
Mathens

Mathens

Stammgast
Wenn der restliche Task keine weiteren Warte-Befehle mehr hat oder For-Schleifen die zum Tell viel Zeit verbrauchen, würde ich die Schleife erst am Ende platzieren.
Ansonsten könntest du ein Profil erstellen mit dem Ereignis System>Tick mit einem Intervall von 60'000 MS. Im Task aktivierst du mit der Aufgabe Tasker>Profil Status dann das Profil.
Der Task des Profil könnte dann so aussehen
Code:
A1: Variable Substrahiere [
     Name: %SleepZeit
     Wert: 1
     Obergrenze: 0 ]

A2: Profil Status [
     Name: Timer Zeit
     setzen: Aus ]
    If  [ %SleepZeit < 1 ]
 
P

ProAndroider

Neues Mitglied
Beitrag automatisch zusammengefügt:

Danke, aber ich steuere es über ein Widget. Mit Home Menü und so weiter. Und leider kommen nach dem Wait Befehl nicht andere Dinge. Gibt es noch eine andere Möglichkeit?
 
Zuletzt bearbeitet:
Mathens

Mathens

Stammgast
ProAndroider schrieb:
Ich hätte gerne, dass der Task weiter läuft während der Aktion, da dies wie gesagt nur als Anzeige auf einer Szene dient.
ProAndroider schrieb:
Und leider kommen nach dem Wait Befehl nicht andere Dinge
Das wiedersprechen sich doch deine Aussagen oder ich verstehe dein Problem nicht.
 
P

ProAndroider

Neues Mitglied
Sorry nach dem Wait Befehl kommen noch Befehle.
 
Mathens

Mathens

Stammgast
Dann sollte der Vorschlag mit dem Profil schon das Richtigte sein.
Ich versuche es dir nochmals genauer zu erklären.

Das Profil ist standardmässig deaktiviert und wird nur bei gebrauch aktiviert.

Um das Profil zu aktivieren ersetzt du in deinem Task SleepTimerTEST die komplette Schleife mit der Aufgabe Profil Status. Dort dann den Profilnamen eingeben oder mit der Lupe auswählen (z.B. Timer Zeit). Danach kommen deine restlichen Aufgaben. Diese werden direkt nach der Aufgabe Profil Status ausgeführt.

Sobald du das Profil aktiviert hast, läuft es nun unabhänig von irgenwelchen Task.
Das Profil startet jetzt in einem vorgegebenem Intervall (bei dir jede Minute) einen Task der dir die Timerzeit aktualisiert. Dieser wird parallel zu den anderen Task abgearbeitet wird.

In diesem Task wird dann bei jeder Ausführung 1 vom Variablenwert %SleepZeit abgezogen.
Damit das Profil nach Ablauf des Timers nicht unnötiger Weise weiterläuft. Deaktivierst du es wieder mit der Aufgabe Profil Status wenn der Wert der Variable auf Null ist (If %SleepZeit < 1).
Der Task sieht dann so aus
Code:
A1: Variable Substrahiere [
     Name: %SleepZeit
     Wert: 1
     Obergrenze: 0 ]

A2: Profil Status [
     Name: Timer Zeit
     setzen: Aus ]
    If  [ %SleepZeit < 1 ]
Wenn du einen Task zum Abbrechen des Sleep Timers hast, nicht vergessen auch das Profil zu deaktivieren.
 
Zuletzt bearbeitet:
P

ProAndroider

Neues Mitglied
Hallo, gibt es eine Möglichkeit mir den Akku von den Airpods durch Tasker anzeigen zulassen?