Mikey/Pressy App mit Tasker simulieren

  • 26 Antworten
  • Letztes Antwortdatum
M

Maxe12345

Neues Mitglied
1
Hallo zusammen ☺

Ich habe mich heute angemeldet, da ich ohne eure spezielle Hilfe nicht mehr weiter komme. Ich lese hier schon lange mit, habe auch schon einiges durch euch gelernt, aber zu meinem heutigen Problem gibt es noch keine Lösungen, die mir haben helfen können.

Ich habe mir einen Knopf für die Kopfhörerbuchse angelacht. Die im Playstore vorhandenen App funktionieren selten bis gar nicht. Ok, kein Problem, Tasker kann das auch.

Profil erstellt, Task erstellt und schon leuchtet die "Taschenlampe", wenn ich 1x auf den Knopf drücke.

Was ich nicht hinkriege, ist ein switch. Zweites Mal 1x drücken und die Lampe geht aus. Oder noch kniffliger, 2x drücken und die Musik stoppt. Beim ersten Mal müßte sich Tasker den Zustand der Lampe über eine Variable merken, bei der zweiten Variante mitzählen.

Habt ihr vielleicht Ideen, wie ich das umsetzen könnte?

Schöne Grüße an alle,
Maxe.
 
Für den switch gibt es unter Task die if und else Bedinungen
Dar Task sieht denn so aus:
Code:
A1: If [ %Taschenlampe !~ Ein ]
A2: Taschenlampe [ setzen:An ]
A3: Variable Setzen [ Name:%Taschenlampe Zu:Ein ]
A4: Else
A5: Taschenlampe [ setzen:Aus ]
A6: Variable Setzen [ Name:%Taschenlampe Zu:Aus ]


Für die unterschiedliche Anzahl von Tastendrücken braucht es mehrere Profile.
Das erste Profil zählt die Anzahl an Tastendrücken. Der Auslöser fürs Profil ist dein Tastendruck. Der Task sieht dann so aus:
Code:
A1: Variable Addiere [ Name:%Zähler Wert:1 Obergrenze:0 ]
A2: Warte [ MS:300 Sekunden:0 Minuten:0 Std.:0 Tage:0 ]
A3: Variable Setzen [ Name:%Anzahl Zu:%Zähler ]
A4: Variable Lösche [ Name:%Zähler Mustervergleich:Aus Local Variables Only:Aus Clear All Variables:Aus ]
A5: Variable Lösche [ Name:%Anzahl Mustervergleich:Aus Local Variables Only:Aus Clear All Variables:Aus ]
Wichtig beim erstellen des Task ist dass du bei den Einstellungen des Task (Zahnrad oben) bei Kollisionshandling die Option "aktuellen Task abbrechen" auswählst.


Für jeden Tastendruck braucht es dann ein eigenes Profil. Als Auslöser für die Profile dient "Variablen Wert".
Bei Conditions dann %Anzahl~1 für 1x drücken.
Für 2x drücken %Anzahl~2 usw.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Maxe12345, ilkaskim und Spardas
Profil (Kamerataste auslöser ist ein Platzhalter für deine Aktion)
Download Profil
Code:
    Profil: Knopfprofil (156)
        Restore: no
        Ereignis: Taste: Kamera
    Eingang: Anon (157)
        A1: Variable Addiere [ Name:%Knopfzähler Wert:1 Obergrenze:0 ] 
        A2: Task Ausführen [ Name:Kopfsteuerung Priorität:%priority Parameter 1 (%par1): Parameter 2 (%par2): Rücksetzungswert Variable: Stop:Aus ]

Task (die Zeit von Aktion 1 kannst du noch anpassen)
Download Task
Code:
    Kopfsteuerung (155)
        A1: Warte [ MS:0 Sekunden:1 Minuten:0 Std.:0 Tage:0 ] 
        A2: Taschenlampe [ setzen:Umschalten ] If [ %Knopfzähler gl 1 ]
        A3: Medienkontrolle [ Kommandozeile:Pause umschalten Medien Taste simulieren:An Package/App Name: Use Notification If Available:Aus ] If [ %Knopfzähler gl 2 ]
        A4: Variable Lösche [ Name:%Knopfzähler Mustervergleich:Aus Local Variables Only:Aus Clear All Variables:Aus ]
 
  • Danke
Reaktionen: Maxe12345 und rtwl
Folgen kann ich euch beiden, @Spardas und @Mathens seltsamerweise noch nicht so ganz. Irgendwo fehlt mir noch Wissen. (Und ich dachte, ich beherrsche die Grundlagen.) Ich verstehe, was ihr mir da vorgelegt habt, ich kann es, da die Importfunktion bei mir nicht funktioniert, nur nicht umsetzen.

Ich versuche mich die nächsten zwei Tage daran und melde mich (hoffentlich mit einer Erfolgsmeldung) wieder zurück.

Bis dahin habt vielen Dank für eure Hilfe!

-Maxe
Beiträge automatisch zusammengeführt:

Knifflig! Der Befehl "Taschenlampe an", bzw. aus, direkt durch Tasker ausgeführt, funktioniert ohne Probleme. Derselbe Befehl über ein Profil auf Knopfdruck des Mikey macht nix. Über einen Task "starte App Taschenlampe" geht die Lampe zwar an, aber nach rund einer Sekunde wieder aus, sobald im task irgendwelche Variablen abgefragt werden. Nur ein Task "starte App Taschenlampe" funktioniert einwandfrei.

Ich halte euch auf dem Laufenden.

-Maxe
 
Zuletzt bearbeitet:
Lösung gefunden. Dank eurer Hilfe und ein wenig Frickelei funktioniert es jetzt mit Lampe an und Lampe aus.

Ich brauche ein Profil und drei Tasks. Im Profil steht nur: Wenn Headphone eingestöpselt (also Button gedrückt) starte Task 1. Darin wird nicht direkt die Lampe angesprochen, sondern über if-then-else der Zustand einer var abgefragt.

Wenn %Taschenlampe != 1, starte Taschenlampe An und setze var auf 1. Sonst starte Taschenlampe Aus.

Läuft. Danke euch! ✔👍🏼
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Spardas
In den paar Zeilen Code steckt mehr drin, als ich angenommen hatte. Faszinierend!
 
Vielleicht klappt das Importieren mit der xml-Datei.
Zum importieren lange unten links aufs Haus drücken, dann auf "Projekt importieren" und die heruntergeladene Datei auswählen.
Beim Profil "Zähler" musst du noch den Auslöser anpassen.
 

Anhänge

  • Mikey.prj.xml
    6 KB · Aufrufe: 49
  • Danke
Reaktionen: Maxe12345
Klasse, der Download hat über die Project-Datei funktioniert. Vielen Dank an dich. Ich war, nach langer Knobelei auf einem ähnlichen Weg. Und wie bei Dir, (bitte nicht übelnehmen!), taucht auch bei mir der selbe Fehler auf. Den ich nicht finde.

Ausgangspunkt war der Task "Setze %Zähler auf %Zähler +1 bei jedem Druck auf den Button, warte 300ms und wandle %Zähler in %Anzahl um.

Sobald ein Wert an die var %Anzahl übergeben wurde, griff ein Profil "%Anzahl != 0". Wenn %Anzahl != 0, gehe mehrere If Schleifen durch... Ich muss da gerade mal was testen! Möglicherweise nicht if then if then if then, sondern if then else else else... Bin gleich wieder da!
Beiträge automatisch zusammengeführt:

Ähm... Nö. Auch mit Else-If funktioniert es nicht. Genauer gesagt funktioniert es jetzt gar nicht mehr.

Was vorhin noch funktionierte war folgendes: Der erste Eintrag Anzahl = 1 wurde ausgeführt. (Lampe an / Lampe aus). Ein Wert höher als 1 wurde jedoch nicht an %Anzahl übergeben. Somit ging nur "Lampe".

Dies ist - bedauerlicherweise - auch bei deinem Projekt der Fall.

Ich teste es mal mit einem anderen Auslöser, um ausschließen zu können, daß es am Knopf liegt.
Beiträge automatisch zusammengeführt:

Wenn ich die 300ms Wartezeit herausnehme, komme ich der Sache näher. Wenn ich zudem das Zurücksetzen der beiden Variablen in die einzelnen Tasks setze, scheine ich dem gewünschten Ergebnis näher zu kommen.

Danke für deine Hilfe. Ohne Euch hätte ich es nicht bis hierher geschafft.
 
Zuletzt bearbeitet:
Anscheinend greift das Kollisionshandling "aktuellen Task abbrechen" nicht sauber. Dadurch wird die var %Anzahl nicht erhöht.
 
Was nimmst du als Auslöser für das Profil wenn du den Knopf drückst?
Beiträge automatisch zusammengeführt:

Hier noch eine Möglichkeit die ohne die Option "aktuellen Task abbrechen" auskommt.

Die Wartezeit darfst du nicht entfernen. Da du sonst keine Zeit hast den Knopf ein zweites mal zu drücken. Möglicherweise sind aber die 300ms zu kurz und müssen erhöht werden.
 

Anhänge

  • Mikey_2.prj.xml
    7,6 KB · Aufrufe: 57
Zuletzt bearbeitet:
  • Danke
Reaktionen: Maxe12345
Als Auslöser nehme ich im Profil im Bereich Status/Hardware den Punkt Headphone angeschlossen.

Die 300ms habe ich von 0 bis 1s ausprobiert. Das Ergebnis war immer das gleiche, Tasker zählt 1. Daher kam ich darauf, daß das Kollisionshandling wohl nicht greift. Er arbeitet den task ab, ohne zu unterbrechen...
Beiträge automatisch zusammengeführt:

Es scheint mit dem Knopf als Auslöser zusammen zu hängen. Auch bei deinem neuen Projekt zählt Tasker nur bis zur 1.
*seufz
 
Zuletzt bearbeitet:
Ist dann das Profil nicht dauerhaft aktiv?
Es gibt auch noch als Auslöser Medien Taste. Dazu muss aber zuerst noch per ADB die Berechtigung dazu erteilt werden
 
Doch, das Profil ist aktiv. Lampe funktioniert einwandfrei. Es ist "nur" der Zähler, der bei 1 stoppt. Irgendwo habe ich noch einen Denkfehler. Wenn ich wüsste, wie eine der Apps aus dem Playstore funktioniert,... Aber vermutlich würde das auch nicht weiter helfen.

Bei adb bin ich leider raus. Das übersteigt mein Können und Wissen.
 
Ist das Profil nach dem drücken des Knopf dauerhaft aktiv? Wenn das Profil aktiv ist, ist die Schrift grün.
 
Nein, es blitzt kurz grün auf, um anzuzeigen, daß es aktiviert wurde und fällt dann zurück in den Normalzustand. Es wird also sauber beendet.

Ich werde recht lange brauchen, um die Idee, die ich vorhin hatte umzusetzen, aber vielleicht kannst du mir ja einen Daumen hoch oder runter geben.

Profil 1: Bei Knopfdruck %Zähler +1
Profil 2: warte 300ms, übergebe %Zähler an %Anzahl

Soweit wie gehabt. Dann aber:
Task 1
If %Anzahl größer 1, gehe zu task 2.
Else starte Lampe

Task 2
If %Anzahl größer 2, gehe zu task 3
Else öffne App1

Task 3
If %Anzahl größer 3, gehe zu task 4
Else öffne App2

Macht das Sinn?
Beiträge automatisch zusammengeführt:

Ich habe gerade ein ganz einfaches Profil erstellt. Wenn Knopf, dann %Zähler +1. Alarm Popup Tasker, zeige %Zähler.

Ergebnis:
Bei jedem Knopfdruck erhöht sich %Zähler um 1, vorausgesetzt, zwischen den Drucks liegen zwischen 500ms und einer Sekunde. Klicks, die näher zusammenliegen, werden ignoriert.
Beiträge automatisch zusammengeführt:

Eventuell wird der Zustand der Kopfhörerbuchse von Android lediglich im Sekundentakt überprüft?
 
Zuletzt bearbeitet:
Maxe12345 schrieb:
Es funktioniert, hat aber den gleichen Effekt wie meine Profile

Maxe12345 schrieb:
Eventuell wird der Zustand der Kopfhörerbuchse von Android lediglich im Sekundentakt überprüft?
Habs mal mit einem Kopfhörer getest. Dort erkennt er mit 500ms den Kopfhörer mehrmals. Profil 2x gedrückt und 3x gedrückt wurden aktiviert.

Wenn du den Knopf gedrückt hälst, bleibt dann das Profil solange du gedrückt hälst aktiv?
 
  • Danke
Reaktionen: Maxe12345
Ich such mir mal einen Kopfhörer! Bin gleich wieder da.
Beiträge automatisch zusammengeführt:

Ok, Beim Kopfhörer funktioniert es auch nicht. 1x = Lampe, mehrmals = nix oder Lampe. 🤷🏻‍♂️
Beiträge automatisch zusammengeführt:

Bei einem langen Klick blieb das Profil grün. Und das ist es auch jetzt noch. Es wird nicht mehr "Nicht-grün".
Beiträge automatisch zusammengeführt:

Ok, mein Fehler. Ich habe den Knopf mit gedrücktem Knopf in die Buchse geschoben. Das erzeugt Fehlfunktionen.

Ach so ja, ich sitze hier vor einem Huawei mate 20 mit Android 9.
 
Zuletzt bearbeitet:
Und ohne Fehlfunktion bleibt das Profil dur so lange aktiv wie gedrückt wird?
 
Ja, nur ein kurzes Aufleuchten. Vermutlich 300ms lang, vermute ich.

Beiträge automatisch zusammengeführt:

Kann man vielleicht per tasker den Zustand der Kopfhörerbuchse für die Zeit nach dem ersten Drücken für 300ms permanent abfragen?
 
Zuletzt bearbeitet:
Genau das war mein Gedanke als ich danach gefragt habe.

Code:
    Profil: Taste gedrückt (185)
        Restore: no
        Status: Headset Angeschlossen [ Typ:Alle ]
    Eingang: Anon (179)
        A1: Warte [ MS:250 ]
        A2: If [ %PACTIVE !~ *,Taste gedrückt,* ]
        A3: Task Ausführen [ Name:Task 1 ]
        A4: Else
        A5: Task Ausführen [ Name:Task 2 ]
Die 250ms musst du falls nötig noch anpassen.
Bei der IF-Bedingung muss der abgefragte Wert mit dem Profilnamen übereinstimmen, plus vor den Namen *, und danach ,*
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Maxe12345

Ähnliche Themen

coolzero3389
  • coolzero3389
Antworten
12
Aufrufe
339
coolzero3389
coolzero3389
M
Antworten
3
Aufrufe
176
Hastenichgesehen
H
holms
Antworten
1
Aufrufe
156
holms
holms
Zurück
Oben Unten