NEWS
Pi 3 als Bluetooth LE Scanner (Beispielscript)
-
Bei mir läufts, npp auf UTF8 without BOP umgestellt, statt kodierung automatisch erkennen.
Trotzdem hat es beim Kopieren auf die Website erst einmal nicht geklappt.
Bin dan nicht mehr über den visuellen editor, sondern über Quelltext gegangen.
Jetzt scheint es zu passen.
Habe aber nur Zeile 797 verglichen - bin halt faul
EDIT:
nachdem jetzt keine devices gefunden werden habe ich nochmal den gesamten Thread durchgelesen.
ok, vielleicht habe ich ja die falschen Geräte.
Samsung TV steht im Keller - war noch nie angeschaltet, muss ich dann mal machen
Handy ist "Analog"-Handy Nokia 215
Mein Notebook kann angeblich auch BT 4.0 - passiert nichts, auch nicht während des selbst aktiven Scans von 2 Minuten.
OK, vielleicht sind es ja die falschen Geräte.
läuft der Scan unendlich weiter? Zur Anwesenheitserkennung UND zum Finden neuer Geräte?
Gruß
Rainer
-
EDIT:
nachdem jetzt keine devices gefunden werden habe ich nochmal den gesamten Thread durchgelesen.
ok, vielleicht habe ich ja die falschen Geräte.
Samsung TV steht im Keller - war noch nie angeschaltet, muss ich dann mal machen
Handy ist "Analog"-Handy Nokia 215
Mein Notebook kann angeblich auch BT 4.0 - passiert nichts, auch nicht während des selbst aktiven Scans von 2 Minuten.
OK, vielleicht sind es ja die falschen Geräte. `
Ja, das sind die falschen Geräte. Der Samsung TV eventuell, wenn er Bluetooth hat.
Im Skript ist das so eingestellt, das der Scan weiterläuft, bis 10 unterschiedliche Geräte gefunden und als Datenpunkte angelegt wurden. Die Anzahl ist einstellbar. Das Skript ist recht genügsam und frisst kaum Ressourcen. Lass einfach mal laufen. Bei mir werden auf Anhieb sechs Geräte gefunden.
Wenn bei Dir ein Jogger mit aktueller Fitnessuhr oder Brustgurt vorbei rennt, hast Du ihn schon einmal
Ansonsten werde ich mich demnächst ähnlichen Themen widmen:
1.) Pi3 als iBeacon/Beacon
2.) Pi3 als IBeacon Scanner
3.) Verbindung mit einem SensorTag CC2650
Kann man alles mit dem BLE Scanner kombinieren.
-
Hallo Michael,
@ruhr70:Ja, das sind die falschen Geräte. `
Wenn bei Dir ein Jogger mit aktueller Fitnessuhr oder Brustgurt vorbei rennt, `
Hoffnung - aber da bin ich wohl auch ein Dinosaurier;Alte Polar Brustgurte herausgekramt - ohne Erfolg; aber die sind wohl auch nicht mehr "aktuell"
Und schon der nächste Tiefschlag:
Wollte todesmutig das Ganze auf dem BPi M3 ans laufen bekommen.
- Bluez bereits aktuelle Version, Rest installiiert. M3 rebooted, Skripte eingefügt, js.0 neu gestartet - alles rot:
! ````
Error: Could not start scanning, state is poweredOff (not poweredOn) at Noble.startScanning (/opt/iobroker/node_modules/iobroker.javascript/node_modules/noble/lib/noble.js:71:17) at startScan (script.js.Bluetoothscanner:1369:11) at Object. (script.js.Bluetoothscanner:1746:13) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1206:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:541:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2430:17) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:537:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:215:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1973:80) at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:45:30) at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20) at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:263:10) at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:221:12) at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:131:20) at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:333:8) at Decoder. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20) at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:247:12) at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:323:16) at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20) at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:441:14) at WS. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/socket.js:258:10) at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/component-emitter/index.js:134:20) at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:143:8) at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transport.js:135:8) at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/lib/transports/websocket.js:132:10) at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:418:14) at emitTwo (events.js:87:13) at WebSocket.emit (events.js:172:7) at Receiver.ontext (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:816:10) at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:477:18 at Receiver.applyExtensions (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:364:5) at /opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:466:14 at Receiver.flush (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:340:3) at Receiver.opcodes.1.finish (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:482:12) at Receiver.expectHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:457:31) at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/Receiver.js:95:24) at Socket.realHandler (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib/WebSocket.js:800:20) at emitOne (events.js:77:13) at Socket.emit (events.js:169:7) at readableAddChunk (_stream_readable.js:153:18) at Socket.Readable.push (_stream_readable.js:111:10) at TCP.onread (net.js:531:20)Wo um alles in de Welt schaltet manbei dem Teil den BT an???? Gruß Raiiner
-
Das ist doch super…
Ich konnte nie diesen Fehlerfall provozieren, da bei mir noble.state immer poweredOn war.
Kannst Du die neue Version bitte mal probieren, ob damit der Fehler abgefangen wird?
Danach können wir uns um Deine exotische Hardware kümmern.
-
Das ist doch super… `
Na, wenigstens einer, der es positiv sieht!Kannst Du die neue Version bitte mal probieren, ob damit der Fehler abgefangen wird? `
Klar kann ich das!Soll ich auch?
! ````
20:36:24.843 [info] javascript.0 Start javascript script.js.Bluetoothscanner
20:36:24.845 [info] javascript.0 script.js.Bluetoothscanner: --== script.js.Bluetoothscanner ==-- gestartet. Instanz: "javascript.0.", Loglevel: info
20:36:24.845 [info] javascript.0 script.js.Bluetoothscanner: Liste bluetoothBlacklistManufacturerData auf gültige Werte geprüft. Anzahl Einträge: 3
20:36:24.845 [info] javascript.0 script.js.Bluetoothscanner: Liste bluetoothBlacklistMac auf gültige Werte geprüft. Anzahl Einträge: 2
20:36:24.846 [info] javascript.0 script.js.Bluetoothscanner: registered 0 subscriptions and 0 schedules
20:36:25.844 [info] javascript.0 script.js.Bluetoothscanner: Kommando Bluetooth Scanner an: true
20:36:25.845 [info] javascript.0 script.js.Bluetoothscanner: noble.state ist nicht powerdOn. noble.state: poweredOff~~@ruhr70:~~ > Danach können wir uns um Deine exotische Hardware kümmern. ;-) ` Ich bitte darum :twisted: Gruß Rainer
-
Kannst Du die neue Version bitte mal probieren, ob damit der Fehler abgefangen wird? `
Klar kann ich das!Soll ich auch? `
Hast Du ja gemacht
Also… jetzt wird es interessant.
Du sagst, das Du das ausgeführt hast und es die aktuellste Version ist:?
sudo apt-get install bluetooth bluez-utils libbluetooth-dev
Teste mal bitte, ob hcitool installiert ist (ist in bluez-utils enthalten) und ob hcitools ein Device findet:
pi@rasp31:~ $ hcitool dev Devices: hci0 B8:27:EB:7B:99:76
Du kannst auch mit dem hcitool einen Testscan machen (ein paar Sekunden Geduld):
pi@rasp31:~ $ hcitool scan Scanning ... 00:1A:E8:04:16:B4 OpenStage 00:1A:E8:04:16:B4 00:24:E4:18:5F:A3 Withings Aura A2 04:0C:CE:E1:C8:39 Michaels MacBook Air
-
Du sagst, das Du das ausgeführt hast und es die aktuellste Version ist:? `
Du glaubst mir nicht? :evil:root@bananapi:~# sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev Reading package lists... Done Building dependency tree Reading state information... Done bluez is already the newest version. libbluetooth-dev is already the newest version. Suggested packages: bluez-cups bluez-obexd The following NEW packages will be installed: bluetooth libudev-dev 0 upgraded, 2 newly installed, 0 to remove and 5 not upgraded. Need to get 59.4 kB of archives. After this operation, 332 kB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 http://httpredir.debian.org/debian/ jessie/main bluetooth all 5.23-2 [36.3 kB] Get:2 http://httpredir.debian.org/debian/ jessie/main libudev-dev armhf 215-17+deb8u4 [23.1 kB] Fetched 59.4 kB in 0s (106 kB/s) Selecting previously unselected package bluetooth. (Reading database ... 56285 files and directories currently installed.) Preparing to unpack .../bluetooth_5.23-2_all.deb ... Unpacking bluetooth (5.23-2) ... Selecting previously unselected package libudev-dev:armhf. Preparing to unpack .../libudev-dev_215-17+deb8u4_armhf.deb ... Unpacking libudev-dev:armhf (215-17+deb8u4) ... Setting up bluetooth (5.23-2) ... Setting up libudev-dev:armhf (215-17+deb8u4) ...
Teste mal bitte, ob hcitool installiert ist (ist in bluez-utils enthalten) und ob hcitools ein Device findet: `
Ja, … und nein!root@bananapi:~# hcitool dev Devices:
Du kannst auch mit dem hcitool einen Testscan machen (ein paar Sekunden Geduld): `
Nein, kann ich nichtroot@bananapi:~# hcitool scan Device is not available: No such device
Vielleicht doch:
@ruhr70:Deine exotische Hardware `
@[url=http://bananapi.com/index.php/component/content/article?layout=edit&id=85:~~BananaPi Website"]~~Bluetooth
BT4.0 `
Gruß
Rainer
-
Du glaubst mir nicht? :evil: `
Naja… das hier :
root@bananapi:~# sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev ```` `
sieht anders aus, als das was ich geschrieben hatte:
sudo apt-get install bluetooth bluez-utils libbluetooth-dev
Wobei das auch gemein ist. In der Anleitung steht Deine Zeile.
Ich meine gelesen zu haben, dass noble auf den hcitool aufsetzt. Wenn ja, dann würde es das Problem erklären.
Wenn Du bluetoothctl eingibst und dann darin list.
Wird dann ein Corntroler angezeigt?
-
und das kannst Du auch einmal probieren:
sudo service bluetooth restart
-
na gut, demnächst sehe ich etwas genauer hin
apt-get install bluetooth bluez-utils libbluetooth-dev Reading package lists... Done Building dependency tree Reading state information... Done Package bluez-utils is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: bluez E: Package 'bluez-utils' has no installation candidate
Wenn Du bluetoothctl eingibst und dann darin list.
Wird dann ein Corntroler angezeigt? `
Nö.und das kannst Du auch einmal probieren:
Code:
sudo service bluetooth restart `
Nützt auch nix:root@bananapi:~# sudo service bluetooth restart [ ok ] Stopping bluetooth: /usr/sbin/bluetoothd. [ ok ] Starting bluetooth: bluetoothd. root@bananapi:~# hcitool dev Devices: root@bananapi:~# hcitool scan Device is not available: No such device
Danke für deine Mühe, dann muss der Cubietruck am Feiertag dran glauben.
Der M3 läuft mit Armbian, ich lade gerade debian und Raspbian-lite für BPi runter, falls es an der Distro liegt.
Gruß
Rainer
-
Wenn bei Dir ein Jogger mit aktueller Fitnessuhr oder Brustgurt vorbei rennt, hast Du ihn schon einmal `
ich hab da was gefangen:
Was sind das denn für Geräte, die du standardmäßig auf der Blacklist hast?Und wieso drei verschiedene Zeiten?
Gruß
Rainer
-
filename="BT_Scan02.jpg" index="0">~~
Was sind das denn für Geräte, die du standardmäßig auf der Blacklist hast?Und wieso drei verschiedene Zeiten?
Gruß
Rainer `
Geblockt ist:
! ````
// ---------------------------------------------------
// Blacklist anhand der MAC-Adresse
// ---------------------------------------------------
// Hex- Wert (a-f, 0-9) * als Joker am Ende
var bluetoothBlacklistMac = [ // Bluetooth IDs/Mac-Adressen, die nicht verarbeitet werden (Blacklist), Joker am Ende möglich
"badefeebadef",
"affeaffeaffe"
];
! // ---------------------------------------------------
// Blacklist anhand des local Name (Name vom Gerät)
// ---------------------------------------------------
var bluetoothBlacklistLocalName = [ // Bluetooth "local name" (Namen, die vom Gerät übertragen werden), die nicht verarbeitet werden (Blacklist)
"Apple Pencil"
];
! // ---------------------------------------------------
// Blacklist anhand Manufacturrer Data
// ---------------------------------------------------
// Hex- Wert (a-f, 0-9) * als Joker am Ende
// Aufbau der Meldungen bei Beacons: https://developer.mbed.org/blog/entry/BLE-Beacons-URIBeacon-AltBeacons-iBeacon/
// ersten zwei Bytes = Herstellerkennung, siehe https://www.bluetooth.com/specifications/assigned-numbers/company-Identifiers
// 4c00 = Apple, 0075 = Samsung, 8700 = Garmin, 8a00 = Jawbone, ...
// 3. Byte = Type: 02 = iBeacon
var bluetoothBlacklistManufacturerData = [ // Bluetooth manufacturerData, welche nicht verarbeitet werden (Blacklist), Joker "" am Ende mäglich
"4c000c0e00",
"4c000b03*",
"4c00051200000000000000000*"
];Das sind alles Apple Produkte. Alles was mit "4c00…" beginnt. Und der "Apple Pencil". Die IDs "badefee..., affe...." sind nur Test-IDs und haben keine Auswirkungen. Das ganze Apple zeugt müllt einen nach ein, zwei Tagen die Objekte zu, da die andauernd ihre ID ändern. Das dürfte ggf. dafür gesorgt haben, das @Pix auch wenig von seiner Apple Infrastruktur gesehen hat ;-) Die Datenpunkte "NewDevice" und "NewDeviceMoreInfo" sollten eigentlich synchrone laufen. Das sieht für mich aber wie ein Fehler im Javascript Adapter aus.Hatte ich auch immer wieder, das einer der Datenpunkte einfach nicht beschrieben wurde, obwohl beide setStates() direkt hintereinander kamen. Das mit den Zeitstempeln ist in der Tat komisch. Die sollten alle drei identisch sein. Ein neu identifiziertes Device wird genau einmal eingetragen. Das muss ich mir genauer anschauen. Danke für die Rückmeldung! Ansonsten beneide ich Dich um Deine strahlenfreie Umgebung!
-
Du wirst lachen, den Quelltext habe ich bereits nach den Informationen durchsucht, und sogar die darin enthaltenen webadressen aufgerufen.
Dort hatte Apple dann aber die 0x04c
Nachdem ich dann auf einmal 3 geblockte geräte hatte und gesehen hatte, dass die erste Kombination ganz anders aussah, habe ich versucht diesen Datenpunkt (new device blocked) zu loggen, um dann diese Eintreäge zu vergleichen.
Leider steht in der Spalte "Wert" nur "null"
Weiters habe ich festgestellt, dass bei allen Datenpunkten ack = false ist. Leider hat das ändern auf true auch nicht geholfen den Inhalt dieses Feldes in der Datenbank zu loggen.
Was die drei verschiedene Timestamps angeht, hatte ich auf einmal 5 geblockte Geräte, der Timestamp unter "Wert" war jetzt exakt 2 Stunden vor den beiden anderen Timestams, diese waren identisch.
(Ich glaube irgendwo gelesen zu haben, dass du einen delay eingebaut hast bevor die Daten eingetragen werden - ist es das?)
Auch habe ich weitere Nachforschungen angestellt.
Was das Problem mit dem M3 angeht habe ich gesehen dass es für noble jede mege offene issues und opull requests gibt, habe aber so auf die schnelle nichts gefunden, von dem ich (als js-legatheniker) denke, dass es in die Richtung geht.
Komme da im Moment auch nicht weiter
Gruß
Rainer
-
Rainer, Du machst mir Angst…
Du wirst lachen, den Quelltext habe ich bereits nach den Informationen durchsucht, und sogar die darin enthaltenen webadressen aufgerufen.
Dort hatte Apple dann aber die 0x04c `
Das ist korrekt. Ein 16-Bit Wert, dargestellt durch zwei 8-Bit-Werte, die in dem Fall in umgekehrter Reihenfolge gespeichert werden lower-Byte, upper-Byte. D.h. 0x004c wird in der Reihenfolge 0x4c, 0x00 gespeichert.
Allerdings hatte ich auch Hersteller gesehen, die es mal so und mal so geschickt haben.
Nachdem ich dann auf einmal 3 geblockte geräte hatte und gesehen hatte, dass die erste Kombination ganz anders aussah, habe ich versucht diesen Datenpunkt (new device blocked) zu loggen, um dann diese Eintreäge zu vergleichen.
Leider steht in der Spalte "Wert" nur "null" `
Das Problem habe ich leider ganz oft mit Datenpunkten vom Typ String.
siehe: http://forum.iobroker.net/viewtopic.php … 772#p24892
Was die drei verschiedene Timestamps angeht, hatte ich auf einmal 5 geblockte Geräte, der Timestamp unter "Wert" war jetzt exakt 2 Stunden vor den beiden anderen Timestams, diese waren identisch.
(Ich glaube irgendwo gelesen zu haben, dass du einen delay eingebaut hast bevor die Daten eingetragen werden - ist es das?) `
Nein, das Delay ist nur wenige Millisekunden. Keine Ahnung, woran das liegt. Bei mir sind die Zeiten alle gleich. Das muss ich mir im Code noch einmal ansehen.
Auch habe ich weitere Nachforschungen angestellt.
Was das Problem mit dem M3 angeht habe ich gesehen dass es für noble jede mege offene issues und opull requests gibt, habe aber so auf die schnelle nichts gefunden, von dem ich (als js-legatheniker) denke, dass es in die Richtung geht.
Komme da im Moment auch nicht weiter `
Es sieht so aus, als ob an noble fleissig gearbeitet wird. Das Change-Log wurde zuletzt vor 9 Tagen geändert (auf Version 1.5.0).
Bei Deinem M3 glaub ich auch eher, dass es nicht an noble liegt, sondern daran, dass wir die BluetoothHardware noch "nicht sehen".
-
Homoran hat geschrieben:
Nachdem ich dann auf einmal 3 geblockte geräte hatte und gesehen hatte, dass die erste Kombination ganz anders aussah, habe ich versucht diesen Datenpunkt (new device blocked) zu loggen, um dann diese Eintreäge zu vergleichen.
Leider steht in der Spalte "Wert" nur "null"
Das Problem habe ich leider ganz oft mit Datenpunkten vom Typ String. `
Habe jetzt ausser influxdb auch sql und history aktiviert, in history wird es korrekt, ind influx und sql als "null" angezeigt.
Was ist die erste Angabe - ID des Geräts???
Bei Deinem M3 glaub ich auch eher, dass es nicht an noble liegt, sondern daran, dass wir die BluetoothHardware noch "nicht sehen". `
Dann ist die Meldung:Bluetoothscanner: noble.state ist nicht powerdOn. noble.state: poweredOff
aber irreführend
kann ich der Hardware noch irgendwie eine Brille aufsetzen, damit die uns besser sieht?
Gruß
Rainer
-
Nachdem ich dann auf einmal 3 geblockte geräte hatte und gesehen hatte, dass die erste Kombination ganz anders aussah, habe ich versucht diesen Datenpunkt (new device blocked) zu loggen, um dann diese Eintreäge zu vergleichen.
Leider steht in der Spalte "Wert" nur "null" `
Das Problem habe ich leider ganz oft mit Datenpunkten vom Typ String. `
Habe jetzt ausser influxdb auch sql und history aktiviert, in history wird es korrekt, ind influx und sql als "null" angezeigt.
Was ist die erste Angabe - ID des Geräts??? `
Ich verstehe "was ist die erste Angabe - ID des Geräts nicht?".
Der Datenpunkt ist als Typ String definiert. Im SQL-Adapter sollte man die Datenpunkte String, Boolean und Number speichern können. Warum da oft "null" drin steht…? Ich fürchte, dass es ein Fehler im SQL-Adapter ist.
Du bist da schon einen Schritt weiter in der Fehleranalyse. History funktioniert, die SQL-Varianten nicht.
Bei Deinem M3 glaub ich auch eher, dass es nicht an noble liegt, sondern daran, dass wir die BluetoothHardware noch "nicht sehen". `
Dann ist die Meldung:Bluetoothscanner: noble.state ist nicht powerdOn. noble.state: poweredOff
aber irreführend `
Noble kennt folgende Zustände, die Abhängig vom.. nun ja.. Zustand sind:
state = <"unknown" | "resetting" | "unsupported" | "unauthorized" | "poweredOff" | "poweredOn">
Die kann man selbst nicht ändern. Man kann nur im Skript darauf reagieren, wenn sich der Zustand ändert. Dank Deiner Hilfe und M3 Hardware konnte ich einen Fehler abfangen, der bei mir selbst nie aufgetreten ist (Bluetooth hat ja funktioniert).
dazu:
NOTE: noble.state must be poweredOn before scanning is started.
Die Zeile oben soll also aussagen, das der benötigte noble Status nicht auf "poweredOn" steht und danach wird der Status ausgegeben, bei Dir "poweredOff" (<- das Problem Deines M3).
Wie soll ich es umformulieren, damit es nicht missverständlich ist?
Die Zeile sehen aber nur diejenigen, bei denen noble nicht aktiv wird, z.. wg. Bluetooth-Problemen.
kann ich der Hardware noch irgendwie eine Brille aufsetzen, damit die uns besser sieht? `
Ich dachte das Thema wolltest Du abbrechen? g Dein Post von gestern.
Ich suche mal, ob ich was dazu finde. Wir müssen auf der Linux-Ebene irgendwie ein Feedback Deines Bluetooth-Moduls bekommen. hcitools, bluetoothctl, und "sudo service bluetooth restart" haben ja nicht die gewünschte Erkenntnis gebracht.
Noble sehe ich da aber nicht als Ursache. Das Problem liegt weiter vorne.
-
ch verstehe "was ist die erste Angabe - ID des Geräts nicht?".
Der Datenpunkt ist als Typ String definiert. `
Wie sag ich's mainam Kinde? Der Datenpunkt enthält mehrere Informationen, durch Komma getrennt.Mich interessiert die Bedeutung der ersten "Zahl" (sonst muss ich mich wieder durch 100 Zeilen Code kämpfen).
Ich hatte den Verdacht, dass dies eine eindeutige ID für ein Gerät sein könnte, anhand derer ich sehen kann, ob es immer wieder das selbe Gerät ist.
Diese Vermutung erhärtet sich nun, da der Eintrag der gester irgendwann um 15:xx war, anscheinend heute um 14:59 wieder auftauchte. Habe leider nur noch die ersten 4 Digits im Kopf, da der influx das ja leider nicht aufgezeichnet hat. Das könnte der Briefträger gewesen sein.
Noble kennt folgende Zustände, die Abhängig vom.. nun ja.. Zustand sind: `
Dann habe ich das wohl nicht korrekt verstanden. Ich hielt diese Meldung für den Zustand Noble-Scanner, nicht noble-BTdeviceIch dachte das Thema wolltest Du abbrechen? `
Wollte ich auch, aber ich mag keine nicht funktionierenden Sachen - und gehrt nicht gibt's nicht, auch wenn ich nicht alles verstehe probiere ich dann solange, bis ich es denke zu verstehen.Außßerdem wollte ich dich unterstützen - klappt leider nicht so einfach, wie ich gehofft hatte
Gruß
Rainer
Sag mir, ob und wie ich noch was für dich tun kann.
-
ch verstehe "was ist die erste Angabe - ID des Geräts nicht?".
Der Datenpunkt ist als Typ String definiert. `
Wie sag ich's mainam Kinde? Der Datenpunkt enthält mehrere Informationen, durch Komma getrennt.Mich interessiert die Bedeutung der ersten "Zahl" (sonst muss ich mich wieder durch 100 Zeilen Code kämpfen).
Ich hatte den Verdacht, dass dies eine eindeutige ID für ein Gerät sein könnte, anhand derer ich sehen kann, ob es immer wieder das selbe Gerät ist.
Diese Vermutung erhärtet sich nun, da der Eintrag der gester irgendwann um 15:xx war, anscheinend heute um 14:59 wieder auftauchte. Habe leider nur noch die ersten 4 Digits im Kopf, da der influx das ja leider nicht aufgezeichnet hat. Das könnte der Briefträger gewesen sein. `
Ach sooooo….
Ja, das ist die ID, mit der sich ein Gerät eindeutig identifizieren lässt.
Es entspricht der Mac-Adresse. Normalerweise gibt es zu der Mac-Adresse einen eingetragenen Hersteller. Das ist hier nicht der Fall. D.h., die wird frei dynamisch generiert. Es gibt drei Arten von IDs/Mac-Adressen im Bluetooth. Die häufigste ist public, der man direkt einen Hersteller zuweisen kann (macht das Skript, wenn es eine Internetverbindung hat).
An den Manufacturer-Data siehst Du, dass es ein Apple Gerät ist (4c00...). Von Apple habe ich Geräte gefunden, die sich brav mit einer öffentlichen und gleichbleibenden Mac melden und welche, die dauernd Ihre ID ändern (Datenschutzfeature?). Diese habe ich bei mir auf die Blacklist gesetzt, da sich die Geräte dann im Laufe der Zeit mehrmals eingetragen haben. Der Apple Pencil war z.B. so ein Kandidat.
Wenn Du auch mal gefüllte Objekte haben willst (da wird z.B. auch eingetragen, wann das Gerät zuletzt "gesehen" wurde), dann lösch am Besten die Blacklists.
Die Stellen, an denen die Blacklists gefüllt werden mit [] ersetzen:
`var bluetoothBlacklistMac = []; var bluetoothBlacklistLocalName = []; var bluetoothBlacklistManufacturerData = []; [/code]` ~~[quote]~~ ~~[quote]~~Ich dachte das Thema wolltest Du abbrechen? ` ` Wollte ich auch, aber ich mag keine nicht funktionierenden Sachen - und gehrt nicht gibt's nicht, auch wenn ich nicht alles verstehe probiere ich dann solange, bis ich es denke zu verstehen. Außßerdem wollte ich dich unterstützen - klappt leider nicht so einfach, wie ich gehofft hatte :( Gruß Rainer Sag mir, ob und wie ich noch was für dich tun kann. ` ` Für mich war das schon perfekt :!: . Fehlerfall "kein aktives noble" konnte ich abfangen. Bei den SQL-Historie und dem Datenpunkt, der nciht beschrieben wird, vermute ich den Fehler in den iobroker.Adaptern (SQL und Javascript). Ansonsten... works as designed... :lol: Ein M3 ist in den Skript-Spezifikationen nicht vorgesehen :lol: Spaß beiseite... das mit dem M3 bekommen wir auch noch hin. Ich hab nur noch nichts gefunden dazu (Details: M3 und Bluetooth).
-
Ich wäre immernoch daran interessiert, den Texas Instrument CC2650 Sensortag http://www.ti.com/tool/cc2650stk mittels Adapter zu nutzen.
Ich lasse einen CC2650 springen für den der es macht 8-)
-
4.) Bluetooth Scanner Skript (Post Nr. 3) in Skripte kopieren und starten `
Nun muss ich nur noch wissen wie ich das runtergeladene bluetooth_BLE_0.4.0 script in iobroker bekomme.Inhalt mit bestimmtem Programm öffnen, kopieren und einsetzen?