NEWS
Pi 3 als Bluetooth LE Scanner (Beispielscript)
-
Das ist ja SEHR SEHR genial!
Ich nutze aktuell ebenfalls Geofency auf den iPhones im Hause. Funktioniert ganz gut, aber ne Nummer sicherer wäre für mich natürlich ebenfalls eine Beacon Methode, bei der mich aber bislang immer der Umfang der Einrichtung abgeschreckt hat.
Heißt aber im Klartext:
Ich habe aktuell eine Single-Host installation.
Diese könnte ich problemlos auf Multihost erweitern und ein RPI3 +
BT Dongle (Jemand Erfahrungen hiermit? https://www.lm-technologies.com/product … nge-lm540/)
irgendwo im Netzwerk via WLAN platzieren.
Wenn ich dann z.B. G-Tags nutze, wäre das auf jeden Fall praktischer.
Hat jemand Erfahrungen mit dem (scheinbar) Nachfolger vom G-Tag: Gigaset keeper?
Und nutzt jemand das MiBand2 als Leuchtfeuer?
Grüße,
p
-
Hello again!
Alten RPI2 mit BT Dongle rausgekramt, raspian und iobroker draufgeschmissen, NPM noble installiert (hoffentlich!)
Resultat des Scannerscriptes:
! ````
javascript.0 2018-02-14 11:39:29.894 error at ContextifyScript.Script.runInContext (vm.js:35:29)
javascript.0 2018-02-14 11:39:29.894 error at script.js.btscanner:281:1
javascript.0 2018-02-14 11:39:29.894 error ReferenceError: logs is not defined
javascript.0 2018-02-14 11:39:29.894 error ^
javascript.0 2018-02-14 11:39:29.893 error logs('--== ' + name + ' ==-- gestartet. Instanz: "' + instanz + '", Loglevel: ' + loglevel,"info","darkgreen");
javascript.0 2018-02-14 11:39:29.893 error script.js.btscanner: script.js.btscanner:281
javascript.0 2018-02-14 11:39:29.893 error at require (internal/module.js:20:19)
javascript.0 2018-02-14 11:39:29.893 error at Module.require (module.js:504:17)
javascript.0 2018-02-14 11:39:29.893 error at Function.Module._load (module.js:445:3)
javascript.0 2018-02-14 11:39:29.892 error at tryModuleLoad (module.js:453:12)
javascript.0 2018-02-14 11:39:29.892 error at Module.load (module.js:494:32)
javascript.0 2018-02-14 11:39:29.892 error at Object.Module._extensions..js (module.js:586:10)
javascript.0 2018-02-14 11:39:29.892 error at Module._compile (module.js:577:32)
javascript.0 2018-02-14 11:39:29.891 error at Object. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/noble/index.js:2:49)
javascript.0 2018-02-14 11:39:29.891 error at module.exports (/opt/iobroker/node_modules/iobroker.javascript/node_modules/noble/lib/resolve-bindings.js:13:12)
javascript.0 2018-02-14 11:39:29.891 error at require (internal/module.js:20:19)
javascript.0 2018-02-14 11:39:29.891 error at Module.require (module.js:504:17)
javascript.0 2018-02-14 11:39:29.890 error at Function.Module._load (module.js:445:3)
javascript.0 2018-02-14 11:39:29.890 error at tryModuleLoad (module.js:453:12)
javascript.0 2018-02-14 11:39:29.890 error at Module.load (module.js:494:32)
javascript.0 2018-02-14 11:39:29.890 error at Object.Module._extensions..js (module.js:586:10)
javascript.0 2018-02-14 11:39:29.889 error at Module._compile (module.js:577:32)
javascript.0 2018-02-14 11:39:29.889 error at Object. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/noble/lib/hci-socket/bindings.js:9:11)
javascript.0 2018-02-14 11:39:29.888 error at require (internal/module.js:20:19)
javascript.0 2018-02-14 11:39:29.887 error at Module.require (module.js:504:17)
javascript.0 2018-02-14 11:39:29.887 error at Function.Module._load (module.js:445:3)
javascript.0 2018-02-14 11:39:29.887 error at tryModuleLoad (module.js:453:12)
javascript.0 2018-02-14 11:39:29.887 error at Module.load (module.js:494:32)
javascript.0 2018-02-14 11:39:29.886 error at Object.Module._extensions..js (module.js:586:10)
javascript.0 2018-02-14 11:39:29.886 error at Module._compile (module.js:577:32)
javascript.0 2018-02-14 11:39:29.885 error at Object. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/noble/lib/hci-socket/hci.js:6:26)
javascript.0 2018-02-14 11:39:29.885 error at require (internal/module.js:20:19)
javascript.0 2018-02-14 11:39:29.884 error at Module.require (module.js:504:17)
javascript.0 2018-02-14 11:39:29.884 error at Function.Module._load (module.js:445:3)
javascript.0 2018-02-14 11:39:29.884 error at tryModuleLoad (module.js:453:12)
javascript.0 2018-02-14 11:39:29.883 error at Module.load (module.js:494:32)
javascript.0 2018-02-14 11:39:29.883 error at Object.Module._extensions..js (module.js:586:10)
javascript.0 2018-02-14 11:39:29.882 error at Module._compile (module.js:577:32)
javascript.0 2018-02-14 11:39:29.882 error at Object. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/bluetooth-hci-socket/index.js:8:20)
javascript.0 2018-02-14 11:39:29.882 error at require (internal/module.js:20:19)
javascript.0 2018-02-14 11:39:29.881 error at Module.require (module.js:504:17)
javascript.0 2018-02-14 11:39:29.881 error at Function.Module._load (module.js:445:3)
javascript.0 2018-02-14 11:39:29.880 error at tryModuleLoad (module.js:453:12)
javascript.0 2018-02-14 11:39:29.880 error at Module.load (module.js:494:32)
javascript.0 2018-02-14 11:39:29.880 error at Object.Module._extensions..js (module.js:586:10)
javascript.0 2018-02-14 11:39:29.879 error at Module._compile (module.js:577:32)
javascript.0 2018-02-14 11:39:29.879 error script.js.btscanner: Error: Cannot find module '../build/Release/binding.node'Fehlen mir noch weitere Node Module?
-
Ich habe den USB-Dongle und noble installiert.
Nur beim ersten Scan wurde hier überhaupt nichts gescannt.
Dann bin ich auf dumm auf das log gegangen.
Da fand ich folgendes: (siehe Bild)
ich habe die MAC-Adressen der G-Tags von einem anderen Raspberry mit einer Linux Grundinstallation übernommen, bei dem es einwandfrei ging.
Als USB-Stick habe ich mir den LogiLink BT0015 USB 2.0 Adapter Micro Bluetooth V4.0 Dongle Stick gekauft.
Irgentwie will der auf meinem NUC nicht.
Gruß,
Mathias
1435_iobroker-radar.jpg -
Hi zusammen,
ich finde das Projekt wirklich sehr spannend, habe aber jedoch ein gewaltiges Problem:
Wenn ich den Raspberry PI2 als single-host laufen lasse, werden alle G-tags gescannt.
Wenn ich den Raspberry als Slave laufen lasse, laufen die Scripts nicht mehr.
Ich habe den Slave mit einer Minimalinstallation laufen lassen und habe über das Admin des Masters alles nachinstalliert,
wie Homoran mir es geschrieben hat.
Siehe http://forum.iobroker.net/viewtopic.php?f=8&t=12136.
Muß ich nun die Skripte auf dem Slave oder dem Master laufen lassen?
Gruß,
Mathias
-
ich weiß, der treat ist schon älter.
ich versuche schon seit Wochen, meine Anwesenheits-Variablen der CCU2 mit einem Blocky-Programm zu triggern.
ich bin jedoch nach Aktualisierung des Blocky-Skripts nur eine Sekunde anwesend, danach wieder abwesend.
Hier ist der versuch, das umzusetzen:
viewtopic.php?f=21&t=13213&p=140444#p140444
jedoch sind alle Versuche, das umzusetzen, gescheitert.
Der Multihost-Betrieb läuft nun stabil.
Gruß,
Mathias
-
ich weiß, der treat ist schon älter.
ich versuche schon seit Wochen, meine Anwesenheits-Variablen der CCU2 mit einem Blocky-Programm zu triggern.
ich bin jedoch nach Aktualisierung des Blocky-Skripts nur eine Sekunde anwesend, danach wieder abwesend.
Hier ist der versuch, das umzusetzen:
Ich kann heute Abend mal näher schauen.
In Blockly habe ich zwar keine Karten, aber vielleicht kommen wir ja trotzdem weiter
Funktioniert den der Datenpunkt, denn Du für Dein Skript nehmen willst?
Überwach den Datenpunkt mal mit History und am Besten auch noch mit einem Diagramm-Adapter, wie Flot.
Dann kannst Du beim Datenpunkt schon einmal in die Tabelle schauen, ob die Infos so sind, wie Du Sie benötigst und im Flot Adapter auch grafisch, ob das für die Anwesenheit passt.
Du müsstest dann ein Diagramm haben, bei dem der Ausschlag oben ist, wenn Du anwesend bis und auf 0, wenn Du abwesend bist.
Du nutzt dafür einen nicht an der G-Tag App angemeldeten G-Tag?
Folgende Möglichkeiten für die Überwachung sind denkbar:
-
das BLE Skript, funktioniert mit nicht angemeldeten G-Tags
-
der BLE Adapter (habe ich mit G-Tag noch nicht probiert)
-
Radar Adapter (nicht mit G-Tag probiert)
Wenn wir einen funktionierenden Datenpunkt haben, können wir darauf aufbauen.
Poste dann mal bitte die Tabelle aus History und ggf. auch das Flot Diagram.
Und ich brauche die ID des Datenpunkts, der funktioniert.
-
-
Radar funktioniert bei mir nicht.
es werden keine tags erkannt. Im Log steht zwar, dass meine Tags online sind. in den Objekten finde ich aber nichts.
Meine Tags sind keiner App zugeordnet.
Ich bin trotzdem nur eine Sekunde da und danach wieder weg.
Wenn ich den Blocky-Skript aktualisiere oder aus- und wieder einschalte, bin ich wieder für eine Sekunde da.
ich habe auch schon einen zeitgesteuerten Scan jede Sekunde versucht.
Dann bekam ich sekündlich 2 Pushnachrichten, dass ich anwesend und dann wieder abwesend bin.
Mit History habe ich noch nichts versucht.
ich werde erst mal eine längere Pause einlegen, da ich es bereits seit 3 Monaten versuche, eine einigermaßen vernünftige Anwesenheitskennung hinzubekommen. Alle Versuche schlugen bisher fehl.
ich werde mich hier erst einmal verabschieden, bis ich wieder die nötige Muße gefunden habe, weiter zu machen.
Vllt geht ja bis dahin der NUC wieder.
Gruß,
Mathias
-
es werden keine tags erkannt. Im Log steht zwar, dass meine Tags online sind. in den Objekten finde ich aber nichts.
Meine Tags sind keiner App zugeordnet.
Ich bin trotzdem nur eine Sekunde da und danach wieder weg. `
Im Log online gemeldet vom BLE Skript?
Poste bitte mal das Log und die Baumstruktur vom BLE Skript in den Objekten.
Und deni Bereich vom Skript, in dem man die Einstellungen vornimmt.
-
Das ist ganz einfach erklärt.
Ich habe den Beispielskript 1:1 ohne Änderungen übernommen.
Bei BLE sehe ich nur die dB-Angaben. Ob die da oder weg sind, sehe ich nicht.
So jetzt werde ich eine längere Pause einlegen.
Ich werde in der nächsten Zeit definitiv nichts in diesem Bereich unternehmen. Hatte zu viele Rückschläge und brauche Ruhe.
Gruß,
Mathias
Gesendet von meinem SM-N915FY mit Tapatalk
-
Ich versuche das System zu installieren. Allerdings bekomme ich die iBeacon nicht angezeigt. Der "hcitool lescan" Befehlt gibt folgendes wieder.
root@RASPBERRY-SVEN:/home/pi# sudo hcitool lescan
Set scan parameters failed: Input/output error
root@RASPBERRY-SVEN:/home/pi# hcitool lescan
Set scan parameters failed: Input/output error
Was mache ich falsch?
-
root@RASPBERRY-SVEN:/home/pi# sudo hcitool lescan
Set scan parameters failed: Input/output error
root@RASPBERRY-SVEN:/home/pi# hcitool lescan
Set scan parameters failed: Input/output error `
Schau mal die erste Antwort ob Dir das hilft:
https://stackoverflow.com/questions/220 … -i-o-error
An Pi3 lief das bei mir ansonsten problemlos.
Ich denke den Bluetooth Stack (erster Post) hast Du installiert:
-
Ja, dass habe ich gemacht. Der findet das IPhone nicht, liegt es vllt. daran? Ich hatte vorher die Homebridge installiert mit einem anderen iBeacon tutorial - da hat er es ohne Probleme gefunden.
-
Hallo
Ich habe das Sript installiert und es findet fast alle BLE Geäte.
Dazu später wenn die warnungen weg sind mehr.
Ich bekomme aber noch laufend warnungen vom Script.
nodejs -v = v6.14.1
node -v = v6.14.1
javascript.0 2018-04-24 11:42:47.464 info script.js.common.Skript1: noble.state ist nicht powerdOn. noble.state: unknown javascript.0 2018-04-24 11:42:47.464 warn at Object.stopScan (script.js.common.Skript1:1337:5) javascript.0 2018-04-24 11:42:47.464 warn at delDelDevices (script.js.common.Skript1:1044:19) javascript.0 2018-04-24 11:42:47.464 warn getState "Bluetooth.Device.b0b448dab8f5.Control.Delete_Device" not found (3) javascript.0 2018-04-24 11:42:47.463 warn at Object.stopScan (script.js.common.Skript1:1335:5) javascript.0 2018-04-24 11:42:47.463 warn at scanEndeVerarbeiten (script.js.common.Skript1:1245:9) javascript.0 2018-04-24 11:42:47.463 warn at nichtErreichbar (script.js.common.Skript1:1171:13) javascript.0 2018-04-24 11:42:47.463 warn State "Bluetooth.Device.b0b448dab8f5.lastStateCount" not found javascript.0 2018-04-24 11:42:47.463 warn at Object.stopScan (script.js.common.Skript1:1335:5) javascript.0 2018-04-24 11:42:47.462 warn at scanEndeVerarbeiten (script.js.common.Skript1:1245:9) javascript.0 2018-04-24 11:42:47.462 warn at nichtErreichbar (script.js.common.Skript1:1171:61) javascript.0 2018-04-24 11:42:47.462 warn getState "Bluetooth.Device.b0b448dab8f5.lastStateCount" not found (3) javascript.0 2018-04-24 11:42:47.462 warn at Object.stopScan (script.js.common.Skript1:1335:5) javascript.0 2018-04-24 11:42:47.462 warn at scanEndeVerarbeiten (script.js.common.Skript1:1245:9) javascript.0 2018-04-24 11:42:47.462 warn at nichtErreichbar (script.js.common.Skript1:1170:13) javascript.0 2018-04-24 11:42:47.461 warn State "Bluetooth.Device.b0b448dab8f5.lastState" not found javascript.0 2018-04-24 11:42:47.461 warn at Object.stopScan (script.js.common.Skript1:1321:9) javascript.0 2018-04-24 11:42:47.461 warn at nichtErreichbar (script.js.common.Skript1:1171:13) javascript.0 2018-04-24 11:42:47.461 warn State "Bluetooth.Device.b0b448dab8f5.lastStateCount" not found javascript.0 2018-04-24 11:42:47.461 warn at Object.stopScan (script.js.common.Skript1:1321:9) javascript.0 2018-04-24 11:42:47.461 warn at nichtErreichbar (script.js.common.Skript1:1171:61) javascript.0 2018-04-24 11:42:47.460 warn getState "Bluetooth.Device.b0b448dab8f5.lastStateCount" not found (3) javascript.0 2018-04-24 11:42:47.460 warn at Object.stopScan (script.js.common.Skript1:1321:9) javascript.0 2018-04-24 11:42:47.460 warn at nichtErreichbar (script.js.common.Skript1:1170:13) javascript.0 2018-04-24 11:42:47.459 warn State "Bluetooth.Device.b0b448dab8f5.lastState" not found
Es liegt wohl am Noble ?
Noble ist im Javascript-Adapter eingetragen.
apt-get install bluetooth bluez libbluetooth-dev libudev-dev
ist auch installiert.
Was muss ich machen?
Gruß NetFritz
-
Erlaub mal bitte in der Javascript Instanz und schalte setObjects()
Ich nutze das Skript schon lange nicht mehr und habe es jetzt extra wieder auf einem Slave installiert.
Beim ersten Start hatte ich auch die Fehler. Die Objekte waren noch nicht angelegt.
Nach dem zweiten Start läuft es bei mir fehlerfrei.
Das Skript müsste aber trotzdem mal überarbeitet werden.
Die Grenze, die als max. Anzahl Geräte eingestellt ist greift nicht. Wahrscheinlich ein Bug im Skript.
Und offensichtlich hat die Webseite app.macvendors.com ein Problem mit den ganzen MAC-Adressen Abfragen und meldet tlw.
{"errors":{"detail":"Too Many Requests","message":"Please slow down your requests or upgrade your plan at https://app.macvendors.com"}}
Hier müsste dann ein Timing eingebaut werden, dass die Anfragen in Zeitabständen abgefragt werden.
-
Hallo
> Erlaub mal bitte in der Javascript Instanz und schalte setObjects()
Hatte ich schon gemacht.
> die Grenze, die als max. Anzahl Geräte eingestellt ist greift nicht. Wahrscheinlich ein Bug im Skript.
Habe ich auch schon festgestellt.Ich hatte den ble-Adapter zuerst installiert.
Der liefert noch weniger Objekte.
Ich hatte mir zum ausprobieren von DSD Tech SH-M08 mit dem TI CC2551 gekauft,
der erscheint aber in den Objekten nicht.
Kann seoin das es an den max 10 Gräten liegt?
Gruß NetFritz
-
Kannst Du Dein Gerät mit einem BLE Scanner auf dem Handy finden?
Oder ist es mit einer App verbunden?
Bei den Gtags ist es z.B. So, dass sie nur gefunden werden, solange sie nicht mit der G-Tag App verbunden sind.
Gesendet von iPad mit Tapatalk
-
Hi ruhr70,
Mit der Beebox habe ich wohl aufs falsche Pferd gesetzt.
Ich warte jetzt noch auf meinen NUC, um IObroker und die Visualisierung neu aufzusetzen. Ein Backup gibt es natürlich nicht. Selbst schuld.
Sobald das erledigt ist, beginne ich, Slaves mit 2 Raspberry PI2 fertig zu machen.
Der NUC kann leider kein BLE, deshalb der Umweg über die 2 Raspberries.
Gruß,
Mathias
P.S. Ein Xiaomi Gateway unf ein Switch als Klingeltaster sollen dann auch noch arbeiten.
Gesendet von meinem SM-N915FY mit Tapatalk
-
Hallo
> Kannst Du Dein Gerät mit einem BLE Scanner auf dem Handy finden?
Ja.Kein Gerät ist mit einer App verbunden.
Der G-tag wird auch gefunden.
Gruß NetFritz
-
So jetzt bin ich so weit!
Die Beebox rennt wieder, auf beiden Slaves werden alle G-Tags erkannt.
Das war sowieso ein Gezeter. Ubuntu wollte einfach nicht laufen. Das Gehäuse aufgeschraubt und nu….... SATA-Kabel war hin.
Nun zur Frage, kann man ein Programm schreiben, vorzugsweise in Blocky, das G-Tag 1 Slave1 - Slave2 zusammenfasst?
Das würde ich dann mit G-Tag 2 Slave1 - Slave2 und G-Tag 3 Slave1 - Slave2 machen.
Ich will damit bezwecken, dass ich wirklich abwesend bin, wenn der G-Tag bei beiden Slaves false ist.
Gruß,
Mathias
Gesendet von meinem SM-N915FY mit Tapatalk
-
Nun zur Frage, kann man ein Programm schreiben, vorzugsweise in Blocky, das G-Tag 1 Slave1 - Slave2 zusammenfasst?
Das würde ich dann mit G-Tag 2 Slave1 - Slave2 und G-Tag 3 Slave1 - Slave2 machen.
Ich will damit bezwecken, dass ich wirklich abwesend bin, wenn der G-Tag bei beiden Slaves false ist. `
Hi Matthias,
Mit Blockly kann ich Dir nicht weiterhelfen.
In Javascript würdest Du mit on() die Datenpunkte Deiner G-Tags überwachen und auf Änderung reagieren.
Dann jeweils den Zustand des korrespondierenden G-Tag abfragen und mit ODER verknüpfen.
Bei min 1x true ist der G-Tag da, bei 2x false abwesend.
Wenn da die Zustände gezählt werden, kannst Du dies auch noch mit dem Datepunkt .lastStateCount verküpfen.
einer true, lastStateCount egal -> anwesend
Beide false und bei beiden .lastStateCount >= 5: abwesend.
ungetestet für einen G-Tag (ohne Count):
var logOn = true; // logging true/fals var idGtag1slave1 = "javascript.1.Bluetooth.Device.DEINGTAG1.lastState"; var idGtag1slave2 = "javascript.2.Bluetooth.Device.DEINGTAG1.lastState"; on({id:[idGtag1slave1,idGtag1slave2],change:'ne'}, function (obj) { if(logOn) ("Zustandsänderung von " + obj._id + " auf " + obj.state.val); var gtag1slave1 = getState(idGtag1slave1); var gtag1slave2 = getState(idGtag1slave2); if(logOn) log("G-Tag 1: Slave 1: " + gtag1slave1 + " - Slave 2: " + gtag1slave2); if(gtag1slave1 || gtag1slave2) { if(logOn) log("G-Tag 1: ist anwesend"); } else { if(logOn) log("G-Tag 1: ist abwesend"); } });