M
MaGu64
Fortgeschrittenes Mitglied
- 11
Hallo,
ich versuche, über Tasker 2 Schaltvorgänge über Bluetooth zu steuern und komme nicht weiter.
Hardware ist Android Phone mit Tasker, ein HC-05 Bluetooth Modul und ein Attiny Mikroprozessor.
Versucht habe ich bisher:
- "AutoArduino" Tasker Plugin: wäre die Ideallösung, funktioniert aber nicht, da anstatt eines Arduino ein Attiny85 verwendet wird.
- "Arduino Bluetooth from Tasker" App: funktioniert unzuverlässig, da BT Verbindung häufig unterbrochen wird und ist zudem langsam, da es für Schaltvorgänge Dateien überwacht/erstellt, die von Tasker erstellt/ausgewertet werden.
- SL4A + Python: Funktioniert auch unzuverlässig, da nicht jeder Schaltvorgang ausgeführt wird. Die Scripts sehen wie folgt aus (Anmerkung: sind meine ersten Programmierversuche in Android):
Warum hier der Attiny85 ab und zu die Daten nicht empfängt, ist mir unklar. Unnötig ist auch die Herstellung der Verbindung für jeden Schaltvogang. Permanente Verbindung ist angestrebt, deshalb habe ich folgendes versucht:
Ausführen des OnA-Scripts aus Tasker trennt jedoch die Verbindung mit etlichen Fehlermeldungen in OnA.py und allen Python Lösungen ist gemeinsam, dass ich keine Möglichkeit finde, Tasker mitzuteilen, ob das Kommando auch wirklich per Bluetooth übermittelt wurde.
Mit der Python Lösung (auch mit Einzelverbindungserstellung) könnte ich auch ohne Feedback/Callback leben, wenn die Schaltvorgänge absolut zuverlässig ausgeführt werden würden.
In Windows könnte ich mir selbst weiterhelfen und das Connect Script in Endlosschleife laufen lassen und per SendMessage Daten zwischen den Prozessen austauschen - aber hier bin ich hoffnungslos überfordert.
Hat jemand eine Idee, wie ich weiterkomme?
Danke für alle Antworten
Matthias
ich versuche, über Tasker 2 Schaltvorgänge über Bluetooth zu steuern und komme nicht weiter.
Hardware ist Android Phone mit Tasker, ein HC-05 Bluetooth Modul und ein Attiny Mikroprozessor.
Versucht habe ich bisher:
- "AutoArduino" Tasker Plugin: wäre die Ideallösung, funktioniert aber nicht, da anstatt eines Arduino ein Attiny85 verwendet wird.
- "Arduino Bluetooth from Tasker" App: funktioniert unzuverlässig, da BT Verbindung häufig unterbrochen wird und ist zudem langsam, da es für Schaltvorgänge Dateien überwacht/erstellt, die von Tasker erstellt/ausgewertet werden.
- SL4A + Python: Funktioniert auch unzuverlässig, da nicht jeder Schaltvorgang ausgeführt wird. Die Scripts sehen wie folgt aus (Anmerkung: sind meine ersten Programmierversuche in Android):
Code:
[OnA.py]
import android
droid = android.Android()
uuid='00001101-0000-1000-8000-00805F9B34FB'
mac='xx:xx:xx:xx:xx:xx'
droid.bluetoothConnect(uuid,mac)
droid.bluetoothWrite('A')
# a OffA.py
# B OnB.py
# b OffB.py
[/OnA.py]
oder
[Switch.py] (Parameterübergabe von Tasker)
import android
droid = android.Android()
command=droid.getIntent().result[u'extras'][u'%par1']
uuid='00001101-0000-1000-8000-00805F9B34FB'
mac='xx:xx:xx:xx:xx:xx'
droid.bluetoothConnect(uuid,mac)
droid.bluetoothWrite(command)
[/Switch.py]
Warum hier der Attiny85 ab und zu die Daten nicht empfängt, ist mir unklar. Unnötig ist auch die Herstellung der Verbindung für jeden Schaltvogang. Permanente Verbindung ist angestrebt, deshalb habe ich folgendes versucht:
Code:
[Connect.py]
import android
import time
droid = android.Android()
uuid='00001101-0000-1000-8000-00805F9B34FB'
mac='xx:xx:xx:xx:xx:xx'
droid.bluetoothConnect(uuid, mac)
while True:
time.sleep(1)
print('connected')
[/Connect.py]
und
[OnA.py]
import android
droid = android.Android()
connID=list(droid.bluetoothActiveConnections().result.keys())[0]
droid.bluetoothWrite('A', connID)
[/OnA.py]
Ausführen des OnA-Scripts aus Tasker trennt jedoch die Verbindung mit etlichen Fehlermeldungen in OnA.py und allen Python Lösungen ist gemeinsam, dass ich keine Möglichkeit finde, Tasker mitzuteilen, ob das Kommando auch wirklich per Bluetooth übermittelt wurde.
Mit der Python Lösung (auch mit Einzelverbindungserstellung) könnte ich auch ohne Feedback/Callback leben, wenn die Schaltvorgänge absolut zuverlässig ausgeführt werden würden.
In Windows könnte ich mir selbst weiterhelfen und das Connect Script in Endlosschleife laufen lassen und per SendMessage Daten zwischen den Prozessen austauschen - aber hier bin ich hoffnungslos überfordert.
Hat jemand eine Idee, wie ich weiterkomme?
Danke für alle Antworten
Matthias