variable von qpython setzen

  • 0 Antworten
  • Letztes Antwortdatum
D

DanieGieb

Neues Mitglied
0
Hallo,

ich suche nach einer Möglichkeit, von einem qpython-script eine Variable von Tasker zu bearbeiten.

Hintergrund:
Habe einen Odroid C1+ auf dem Android 4.2.2 läuft. Tasker und Qpython App sind installiert.
Ich möchte nun an einen der GPIO´s des Odroid C1 einen Schlüsselschalter anschließen.
Dieser soll, wenn er present ist die Abfrage des Lockscreens überspringen (ähnlich wie bei einer bekannten WLAN-SSID)
Wenn er nicht geschlossen ist, soll die Abfrage des Lockscreens wieder eingeschalten werden.

In Tasker habe ich 2 Profile angelegt, die jeweils auf eine Variable (KEY_SWITCH_INSERTED) reagieren.
Ein Profil (Screenlock Off) schaltet den Keyguard bei (KEY-SWITCH_INSERTED = 1) aus.
Das andere Profil (Screenlock On) schaltet den Keyguard bei (KEY-SWITCH_INSERTED 0) wieder an.

Wenn ich über den Tab "Var" den Wert der Variable veränder, wird auch das richtige Profil gewählt und der zutreffende Task ausgeführt.

In den Tasker Einstellungen habe ich den Punkt "Externen Zugriff erlauben" aktiviert.

Um den Status des GPIO bzw. des Schlüsselschalters abzufragen brauche ich aber ein python-script.
Dieses Script soll den Wert der Variable (KEY_SWITCH_INSERTED) passend setzen, um die passenden Profile auszuwählen.
Leider will das aber nicht funktionieren :/

Hier mein Test-Script:
Code:
    import time
    import androidhelper
    droid = androidhelper.Android()

    class Task():
         SET_VARIABLE = 547
         def new_task(self):
             self.action_cnt = 0
             self.extras = {'version_number': '1.0', 'task_name': 'task' + str(time.time()), 'task_priority': 9 }
         def set_var(self, varname, value):
             self.action_cnt += 1
             self.extras['action' + str(self.action_cnt)] = {'action':self.SET_VARIABLE, 'arg:1': varname, 'arg:2': value, 'arg:3': False, 'arg:4': False, 'arg:5': False}
         def run_task(self):
             taskIntent = droid.makeIntent('net.dinglisch.android.tasker.ACTION_TASK', None, None, self.extras).result
             droid.sendBroadcastIntent(taskIntent)
         def set_var_now(self, varname, value):
             self.new_task()
             self.set_var(varname, value)
             self.run_task()

    t = Task()
    t.set_var_now("%KEY_SWITCH_INSERTED", 1)
    print('done')

Das Script läuft ohne Fehlermeldung.
Leider verändert es den Wert der Variable nicht.

Gibt es dafür eine Lösung?
Muss ich noch irgendwas an den Permissions ändern?

Vielen Dank!

Gruß Danie
 

Ähnliche Themen

T
Antworten
6
Aufrufe
387
Tarfi
T
0
Antworten
4
Aufrufe
272
0karsten
0
rtwl
Antworten
23
Aufrufe
1.268
Cecoupeter
Cecoupeter
Zurück
Oben Unten