Bluetooth Scan forcieren

  • 5 Antworten
  • Letztes Antwortdatum
M

MillenChi

Fortgeschrittenes Mitglied
55
Moin,
ich bin für ein Hausautomatisierungsprojekt dabei mit einem iBeacon eine bestimmte Reaktion hervorzurufen.
Dazu wollte ich BT Near nutzen.
Ist zwar immer noch nicht das was ich wollte (wollte ein wirkliches "near" also <2m), aber prinzipiell tut es das was es soll.

Das größte Problem daran ist aber der BT Scan Zeitabstand.
Diese Einstellung lässt sich in Tasker nur auf min 25s setzen. Und das ist mir deutlich zu lange.

Die Alternativ wäre nun über einen bestimmten Auslöser einen Scan auszulösen. Habe aber keine Möglichkeit dazu gefunden.

Gibt es da was?
 
MillenChi schrieb:
Ist zwar immer noch nicht das was ich wollte (wollte ein wirkliches "near" also <2m), aber prinzipiell tut es das was es soll.
Man könnte zwar vermutlich die BT Signalstärke (irgendwie) auslesen, aber das wird auch nur auf freiem Feld wirklich funktionieren, im Haus hats definitiv zu viele Wände um auch nur halbwegs exakt die resultierende Entfernung zu bestimmen.
Das größte Problem daran ist aber der BT Scan Zeitabstand.
Diese Einstellung lässt sich in Tasker nur auf min 25s setzen. Und das ist mir deutlich zu lange.

Die Alternativ wäre nun über einen bestimmten Auslöser einen Scan auszulösen. Habe aber keine Möglichkeit dazu gefunden.

Gibt es da was?
Mit BT Near habe ich mich noch nicht genauer auseinandergesetzt, aber die Funktionsweise ist ja die gleiche wie bei Wifi Near. Da ist es so, dass wenn man ein Wifi Near Profil aktiviert, direkt ein Scan ausgeführt wird und erst danach im eingestellten Intervall gescannt wird. Wenn du dir also ein Profil baust, das in regelmäßigen Abständen das BT Near Profil aktiviert, kurz wartet und dann wieder deaktiviert, müsstest du das effektive Scanintervall runterschrauben können.
 
Thadeuz schrieb:
Man könnte zwar vermutlich die BT Signalstärke (irgendwie) auslesen, aber das wird auch nur auf freiem Feld wirklich funktionieren, im Haus hats definitiv zu viele Wände um auch nur halbwegs exakt die resultierende Entfernung zu bestimmen.

Bei BT4.0 gibt es die Möglichkeit die Entfernung relativ genau zu bestimmen. Mit 4 BT4.0 Sendern ist sogar das Triganulieren im 3d Raum möglich..

Thadeuz schrieb:
Mit BT Near habe ich mich noch nicht genauer auseinandergesetzt, aber die Funktionsweise ist ja die gleiche wie bei Wifi Near. Da ist es so, dass wenn man ein Wifi Near Profil aktiviert, direkt ein Scan ausgeführt wird und erst danach im eingestellten Intervall gescannt wird. Wenn du dir also ein Profil baust, das in regelmäßigen Abständen das BT Near Profil aktiviert, kurz wartet und dann wieder deaktiviert, müsstest du das effektive Scanintervall runterschrauben können.

Danke für den Tipp....
 
Kurzum.
Vielen Dank!

Hat zwar n Weile gedauert, bis ich rausgefunden habe, wie ein Profil aus einem Task raus aktiviert / deaktiviert wird (Die Bezeichnung "Profil Status" klingt für mich eher nach einer Abfrage) und bis ich gemerkt habe, dass das manuelle aktivieren / deaktivieren erst wirkt, wenn man den Tasker verlässt (man also auf "Ein" bzw "Aus" klickt und es keine Reaktion gibt, bevor man nicht wieder auf dem Homescreen ist).
Aber als diese Hürden durch waren, war es nur noch n bisl IF / Else Schleifen und 2 Variablen zu nem fertigen und funktionierenden Gebilde, dass mir nun, wenn ich mit dem Auto heim komme und mich der Tür nähere die Tür aufsperrt :D

Also Danke nochmal.

Gruß
 
Hallo!
Könntest du dein Profil vielleicht teilen? Will etwas ähnliches basteln :)

Vielen Dank!
 
Das Profil bringt dir nicht. Der Task evtl schon.
Das Profil "Beacon Scan Trigger" startet bei Verlust der Verbindung zur Freisprecheinrichtung den Task "Beacon Scan".
Dieser Task wiederum aktiviert / deaktiviert bei jedem Durchlauf das Profil "Beacon Scan". Dadurch wird ein Scan forciert.
Das Profil "Beacon Scan" prüft dann auf Anwesenheit des Beacons und es geschieht was geschehen soll ;)
Nennt sich bei mir dann "Beacon da" bzw "Beacon weg"
Funktioniert allerdings nur wenn das Display an ist. Das geht aber via Secure Settings.

Hier der Task "Beacon Scan"

<TaskerData sr="" dvi="1" tv="4.6u3m">
<Task sr="task11">
<cdate>1418924565486</cdate>
<edate>1423681191165</edate>
<id>11</id>
<nme>SÃD! - Beacon Scan</nme>
<pri>10</pri>
<rty>2</rty>
<Action sr="act0" ve="7">
<code>30</code>
<Int sr="arg0" val="0"/>
<Int sr="arg1" val="6"/>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act1" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Btscanns</Str>
<Str sr="arg1" ve="3">5</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act10" ve="7">
<code>890</code>
<Str sr="arg0" ve="3">%Btscanns</Str>
<Int sr="arg1" val="1"/>
<Int sr="arg2" val="0"/>
</Action>
<Action sr="act11" ve="7">
<code>135</code>
<Int sr="arg0" val="4"/>
<Int sr="arg1" val="1"/>
<Str sr="arg2" ve="3"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%Btscanns</lhs>
<op>8</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act12" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">Noch %Btscanns Versuche</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act13" ve="7">
<code>135</code>
<Int sr="arg0" val="1"/>
<Int sr="arg1" val="1"/>
<Str sr="arg2" ve="3">Start</Str>
</Action>
<Action sr="act2" ve="7">
<code>11820</code>
<se>false</se>
<Bundle sr="arg0">
<Vals sr="val">
<com.intangibleobject.securesettings.plugin.extra.BLURB>Screen &amp; Keyboard Lights On
5 Seconds</com.intangibleobject.securesettings.plugin.extra.BLURB>
<com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type>
<com.intangibleobject.securesettings.plugin.extra.SETTING>wake_device</com.intangibleobject.securesettings.plugin.extra.SETTING>
<com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type>
<com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION>5000</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION>
<com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION-type>java.lang.Long</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION-type>
<com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE>full</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE>
<com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE-type>
<com.twofortyfouram.locale.intent.extra.BLURB>Screen &amp; Keyboard Lights On
5 Seconds</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str>
<Str sr="arg2" ve="3">Secure Settings</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act3" ve="7">
<code>300</code>
<label>Start</label>
</Action>
<Action sr="act4" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">Suche Beacon</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act5" ve="7">
<code>159</code>
<Str sr="arg0" ve="3">SÃD! - Beacon Scan</Str>
<Int sr="arg1" val="1"/>
</Action>
<Action sr="act6" ve="7">
<code>30</code>
<Int sr="arg0" val="0"/>
<Int sr="arg1" val="5"/>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act7" ve="7">
<code>159</code>
<Str sr="arg0" ve="3">SÃD! - Beacon Scan</Str>
<Int sr="arg1" val="0"/>
</Action>
<Action sr="act8" ve="7">
<code>135</code>
<Int sr="arg0" val="4"/>
<Int sr="arg1" val="1"/>
<Str sr="arg2" ve="3"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%BeaconDa</lhs>
<op>8</op>
<rhs>1</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act9" ve="7">
<code>30</code>
<Int sr="arg0" val="0"/>
<Int sr="arg1" val="2"/>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
</Task>
</TaskerData>
 
  • Danke
Reaktionen: DrummingDave

Ähnliche Themen

M
Antworten
9
Aufrufe
232
Skyhigh
Skyhigh
R
Antworten
2
Aufrufe
453
rogers11
R
X
Antworten
7
Aufrufe
1.319
xyzUpdate
X
Zurück
Oben Unten