Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Pi 3 als Bluetooth LE Scanner (Beispielscript)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Pi 3 als Bluetooth LE Scanner (Beispielscript)

    This topic has been deleted. Only users with topic management privileges can see it.
    • ruhr70
      ruhr70 last edited by

      @lobomau:

      So, läuft nun auch. Die Beschreibung ist echt super. Habe mich nur mit dem Script zum Runterladen etwas doof angestellt. Habe es schließlich mit Geany geöffnet und reinkopiert.

      Meine drei G-tags sind auch heute angekommen zum Ausprobieren. Bei mir kommt bei dem Device aber nur eine Zeile. Ist das normal? Anzeige von Entfernung bzw. Empfangsstärke hätte ich auch gerne.

      EDIT: habe den zweiten G-Tag aktiviert und schwupps….zeigt alles an. Aber nicht der Erste!?

      EDIT2: habe dann das erste Device gelöscht über Mülleimer "alle Kinder löschen". Nun ist es nicht mehr da, aber auch nicht in der Blacklist. Wie bekomme ich das gelöschte Device wieder in die Liste? Ich möchte es ja mit den vollständigen Infos wie beim zweiten Device auch.

      Übrigens: das erste Device hatte ich vorher an die Handy APP gekoppelt wo es dann nicht erkannt wurde vom Raspi. Dann aus der APP gelöscht und es wurde vom Raspi sofort erkannt (mit den fehlenden Infos)... das sei erwähnt falls das einen Unterschied ausmacht. `

      Das nur der Channel angezeigt wurde, hatte ich leider auch schon einmal. Allerdings nicht reproduzierbar.

      Wenn Du ein G-Tag an der G-Tag angemeldet hast, ist es für das Skript nicht mehr sichtbar. Wenn Du es in der App wieder abmeldest, dann ist es wieder da. Die Erfahrung hattest Du ja auch schon gemacht.

      Das gelöschte Gerät dürfte noch in dem Datenpunkt javascript.0.Bluetooth.InfoDevices.ListAll auftauchen.

      Du kannst zwei Dinge tun:

      1.)

      Das Gerät in dem Datenpunkt javascript.0.Bluetooth.InfoDevices.ListAll löschen. Dann sollte es wieder angelegt werden. Allerdings habe ich das so nie getestet.

      2.) oder einfach das Skript stoppen, 30 Sekunden warten und dann alle Datenpunkte löschen, in dem Du den Zweig Bluetooth auswählst und diesen inkl. aller Unterpunkte löschst. Einmal Objekte aktualisieren und das Skript wieder starten.

      Wenn Du das dann wieder hast, dass für ein Gerät nur der Channel angelegt wird, kannst DU das noch einmal wiederholen oder wir müssen mit den Logs auf Debug2 Level ran.

      Ich habe das Skript bei mir auf max. 10 Geräte eingestellt, die innerhalb kürzester Zeit gefunden und angelegt wurden. Und das Skript läuft seit Tagen stabil durch.

      1 Reply Last reply Reply Quote 0
      • lobomau
        lobomau last edited by

        @ruhr70:

        2.) oder einfach das Skript stoppen, 30 Sekunden warten und dann alle Datenpunkte löschen, in dem Du den Zweig Bluetooth auswählst und diesen inkl. aller Unterpunkte löschst. Einmal Objekte aktualisieren und das Skript wieder starten.

        Wenn Du das dann wieder hast, dass für ein Gerät nur der Channel angelegt wird, kannst DU das noch einmal wiederholen oder wir müssen mit den Logs auf Debug2 Level ran.

        . `
        Hab ich nun zweimal gemacht. Nützt nichts.

        Aber ich habe wohl ein größeres Problem 😞
        1146_unbenannt.png

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          @lobomau:

          Hab ich nun zweimal gemacht. Nützt nichts.

          Aber ich habe wohl ein größeres Problem 😞 `

          Nein, Du hast kein größeres Problem. Das läuft auch so.

          Mir ist das noch nicht aufgefallen, weil auf dem Raspberry Pi 3 noch eine alte ioBroker Version läuft. Die neue meckert, wenn man die Datentypen unsauber benutzt. Habe ich wohl gemacht 😢 :oops:

          Ist aber kein großer Akt das zu korrigieren.

          Wenn Du 40 MB Ram übrig hast, kannst Du eine eigene Javascript-Instanz für das Skript aufmachen (ist dann wie ein eigener Adapter) und den Loglevel auf Error stellen. Dann läuft das Log nicht voll.

          Ich komme leider erst am Wochenende dazu das Skript zu überarbeiten. Das Thema, dass nur der Channel angelegt wird, dürfte allerdings etwas knifflig werden, da ich es nicht nachstellen kann. Die Datenpunkttypen korrigiere ich.

          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            @lobomau:

            Hab ich nun zweimal gemacht. Nützt nichts. `

            Was Du noch mal machen kannst.

            Den Bluetooth-Zweig noch einmal löschen und in den Javascript-Adapter Einstellungen für die Instanz den Haken bei "erlaube setObject" rausnehmen.

            Eventuell geht es dann. Ansonsten hilft es den Fehler einzugrenzen.

            1 Reply Last reply Reply Quote 0
            • lobomau
              lobomau last edited by

              @ruhr70:

              @lobomau:

              Hab ich nun zweimal gemacht. Nützt nichts. `

              Was Du noch mal machen kannst.

              Den Bluetooth-Zweig noch einmal löschen und in den Javascript-Adapter Einstellungen für die Instanz den Haken bei "erlaube setObject" rausnehmen.

              Eventuell geht es dann. Ansonsten hilft es den Fehler einzugrenzen. `
              Alles gut! Nix gemacht und heute Morgen werden alle drei G-Tags komplett angezeigt 🙂

              Die Warnungen bleiben, aber machen wohl kein Problem. Ich teste mal deine Hinweise aus…

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                Selbst heilender Code 🙂

                Gesendet von iPhone mit Tapatalk

                1 Reply Last reply Reply Quote 0
                • lobomau
                  lobomau last edited by

                  Hab jetzt mal etwas mit den drei G-Tags rumgespielt.

                  2 werde ich permanent in die Autos legen. So soll dann in VIS angezeigt werden, ob die Autos da sind.

                  Zusätzlich könnte ich mir abends eine Nachricht zuschicken lassen, wenn das Auto nicht in der Nähe ist, dann steht es wahrscheinlich auf der anderen Straßenseite wo man Werkstags nur von 14:00 - 7:00 Uhr parken darf. Ich fahre meist gegen 7:15 - 7:30 zur Arbeit 😉

                  Schick wäre es auch zu sehen welches Auto vorne steht, aber das scheint von der Auflösung nicht zu klappen:
                  1146_g-tag-empfang.gif

                  1 Reply Last reply Reply Quote 0
                  • ruhr70
                    ruhr70 last edited by

                    @lobomau:

                    Schick wäre es auch zu sehen welches Auto vorne steht, aber das scheint von der Auflösung nicht zu klappen: `

                    Interessanter Anwendungsfall. Zur Erkennung der Reihenfolge der Autos kann ich mir vorstellen, dass die Genauigkeit dazu nicht ausreicht.

                    Du könntest aber die schwankenden Entfernungen in Mittelwerte umwandeln und dann mal schauen, ob eine Unterscheidung je nach Stellplatz besser wird.

                    1 Reply Last reply Reply Quote 0
                    • lobomau
                      lobomau last edited by

                      @ruhr70:

                      @lobomau:

                      Schick wäre es auch zu sehen welches Auto vorne steht, aber das scheint von der Auflösung nicht zu klappen: `

                      Interessanter Anwendungsfall. Zur Erkennung der Reihenfolge der Autos kann ich mir vorstellen, dass die Genauigkeit dazu nicht ausreicht.

                      Du könntest aber die schwankenden Entfernungen in Mittelwerte umwandeln und dann mal schauen, ob eine Unterscheidung je nach Stellplatz besser wird. `
                      Ja, genau. Daran habe ich auch gleich gedacht. Aber beim Umsetzen der Programmierung hätte ich mein Problem 😞

                      1 Reply Last reply Reply Quote 0
                      • ruhr70
                        ruhr70 last edited by

                        @lobomau:

                        Ja, genau. Daran habe ich auch gleich gedacht. Aber beim Umsetzen der Programmierung hätte ich mein Problem 😞 `

                        Schau Dir das mal an den Charts an, ob das was bei Dir bringt. In Flot bekommst Du eine gewisse Glättung hin,wenn Du bei dem Datenpunkt unter "Art" statt "minmax" "mittel" einstellst.

                        Wenn das was bringt, kann man ein Miniskript schreiben, welche einen "geglätteten" Datenpunkt erzeugt.

                        Wenn Du die Warnungen weghaben willst:

                        Der Datenpunkt war im Skript falsch angelegt:

                            "Distanz" : {
                                "init": 0,
                                "dp": {
                                    "name": 'Bluetooth Device Distanz',
                                    "desc": 'Bluetooth Device errechnete Entfernung',
                                    "type": 'number',
                                    "unit": 'm',
                                    "role": 'value' 
                                }
                        
                        

                        Unter "type" stand dort "float" (gibt es als Type in ioBroker nicht).

                        Wenn Du das so im Skript änderst (solltest Du wg. möglicher neuer Geräte trotzdem tun), hat das keine Auswirkung, da die Datenpunkte schon angelegt sind.

                        Zur Korrektur:

                        Die Distanz-Datenpunkte in den Objekten korrigieren (Objekte/Datenpunkt, Zahrad für Einstellungen). Dort steht unter "Allgemein/Type"nun wahrscheinlich "boolean". Das muss für jedes Gerät auf "Zahl" geändert werden.

                        1 Reply Last reply Reply Quote 0
                        • lobomau
                          lobomau last edited by

                          @ruhr70:

                          Schau Dir das mal an den Charts an, ob das was bei Dir bringt. In Flot bekommst Du eine gewisse Glättung hin,wenn Du bei dem Datenpunkt unter "Art" statt "minmax" "mittel" einstellst.

                          Wenn das was bringt, kann man ein Miniskript schreiben, welche einen "geglätteten" Datenpunkt erzeugt. `
                          Ja, bringt was 🙂
                          1146_entfernung_gemittelt.gif

                          1 Reply Last reply Reply Quote 0
                          • ruhr70
                            ruhr70 last edited by

                            schön das es klappt 😉

                            Gesendet von iPhone mit Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • lobomau
                              lobomau last edited by

                              @ruhr70:

                              Unter "type" stand dort "float" (gibt es als Type in ioBroker nicht).

                              Wenn Du das so im Skript änderst (solltest Du wg. möglicher neuer Geräte trotzdem tun), hat das keine Auswirkung, da die Datenpunkte schon angelegt sind.

                              Zur Korrektur:

                              Die Distanz-Datenpunkte in den Objekten korrigieren (Objekte/Datenpunkt, Zahrad für Einstellungen). Dort steht unter "Allgemein/Type"nun wahrscheinlich "boolean". Das muss für jedes Gerät auf "Zahl" geändert werden. `
                              Yeah! Keine Warnungen mehr 🙂 Danke!

                              1 Reply Last reply Reply Quote 0
                              • S
                                Solear last edited by

                                So, jetzt habe ich auch das Bluetooth Script von ruhr70 auf dem NUC als Unterhost installiert 8-)

                                Klappt sehr gut, die Funkfeuerkanonen namens Apple TVs zeigt er auch sofort an, aber mein iPhone 6S will er nicht anzeigen.

                                Egal ob mit Ubuntu per Bluetooth verbunden oder nicht. In dem Script habe ich im ersten Teil auch die Blacklists alle sauber gemacht und auch den Spamfilter auf false gesetzt. Das iPhone will er aber nicht anzeigen 😢

                                Gerade das ist mir aber wichtig, weil ich mit (nur) dessen Abwesenheit mir per Pushover Meldungen über die HM Fenstersensoren senden lassen will (davon habe ich gestern 20 Stück gelötet, also Spaß sieht anders aus!). Also quasi eine primitive Alarmanlage im Haus.

                                Danke für Infos und besonderen Dank an ruhr70 für das tolle Script!

                                edit: vielleicht kann man hier http://forum.iobroker.net/viewtopic.php … 976#p24976 den Fehler mit der Distanz gleich ausbessern um eine "saubere" Version zu haben. Habs per Hand bei mir vorm einkopieren gemacht.

                                1 Reply Last reply Reply Quote 0
                                • ruhr70
                                  ruhr70 last edited by

                                  Das iPhone ist leider nicht dafür geeignet. Außer Du findest eine App, wo es sich z.B als iBeacon nutzen lässt. Ich meine aber iOS lässt das nicht zu.

                                  Alternativen:

                                  _ diverse Fitnessarmbänder

                                  _ Gigaset G-Tag

                                  _ blukii (oder so ähnlich) die haben ganz brauchbare Schlüsselanhänger oder Tags, die man sich an der Kleidung Heften kann

                                  _ Beispiele stehen ganz am Anfang

                                  Gesendet von iPad mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Solear last edited by

                                    Mh, ich dachte, weil beim Auto meldet es sich ja auch automatisch an… [emoji26]

                                    Gesendet von iPhone mit Tapatalk

                                    1 Reply Last reply Reply Quote 0
                                    • ruhr70
                                      ruhr70 last edited by

                                      @Solear:

                                      Mh, ich dachte, weil beim Auto meldet es sich ja auch automatisch an… [emoji26]

                                      Gesendet von iPhone mit Tapatalk `

                                      https://blog.passkit.com/configure-ipho … ansmitter/

                                      Von unterwegs gegoogelt. Scheint also eine Lösung zu geben.

                                      Dann gibt es bestimmt auch Apps.

                                      Gesendet von iPad mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • ruhr70
                                        ruhr70 last edited by

                                        Mit der App könnte es funktionieren:

                                        „Beacon-tx“ von Luca Ciciriello

                                        https://appsto.re/de/KfQW9.i

                                        Gesendet von iPad mit Tapatalk

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          Solear last edited by

                                          Diese App, und alle die ich ausprobiert habe, hören leider auf zu senden sobald der Bildschirm aus ist.

                                          Schade, aber irgendwas muss das iPhone doch standardmäßig aussenden, mit dem Auto verbindet er sich auch automatisch und sofort beim einsteigen ohne mein zutun. Aber vermutlich scannt da das iPhone nur, ob das (bekannte) Auto da ist.

                                          Dann muss ich mir doch so einen Schlüsselanhänger-Beacon besorgen oder ich nutze die Geofency App.

                                          @ruhr70

                                          Du hast doch auch den TI Sensor. Den kann man ja auch als Beacon missbrauchen. Bei mir schaltet er sich leider nur nach einer gewissen Zeit aus und man muss ihn manuell per Knopfdruck aktivieren. Ist das bei dir auch so? Wie kann man den dann im Dauereinsatz einbinden?

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            rascal last edited by

                                            hey,

                                            habe heute meinen Rasp 3 bekommen, sofort installiert und iobroker als slave eingebunden.

                                            leider funktioniert das Script nicht, bekomme folgende Fehlermeldung:

                                            
                                            22:36:43.387	[info]	javascript.0 Stop script script.js.Bluetooth
                                            22:36:43.392	[info]	javascript.1 Stop script script.js.Bluetooth
                                            22:36:43.368	[info]	javascript.2 Stop script script.js.Bluetooth
                                            22:36:43.466	[info]	javascript.2 Start javascript script.js.Bluetooth
                                            22:36:43.467	[error]	javascript.2 script.js.Bluetooth: Cannot find module 'debug' at Module._compile (module.js:409:26), at Object.Module._extensions..js (module.js:416:10), at Module.load (module.js:343:32), at Function.Module._load (module.js:300:12), at Module.require (module.js:353:17), at require (internal/module.js:12:17), at Object. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/noble/index.js:1:75), at Module._compile (module.js:409:26), at Object.Module._extensions..js (module.js:416:10), at Module.load (module.js:343:32), at Function.Module._load (module.js:300:12), at Module.require (module.js:353:17), at require (internal/module.js:12:17), at sandbox.require (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:644:32), at script.js.Bluetooth:353:15
                                            22:36:43.467	[info]	javascript.2 script.js.Bluetooth: --== script.js.Bluetooth ==-- gestartet. Instanz: "javascript.2.", Loglevel: debug2
                                            22:36:43.467	[info]	javascript.2 script.js.Bluetooth: debug2: Vars, Loglevel und Scriptname gesetzt
                                            22:36:43.468	[error]	javascript.2 script.js.Bluetooth: node.js Module "noble" steht nicht zur Verfügung
                                            22:36:43.468	[error]	javascript.2 script.js.Bluetooth: Voraussetzung für noble: https://github.com/sandeepmistry/noble#prerequisites
                                            22:36:43.468	[info]	javascript.2 script.js.Bluetooth: Liste bluetoothBlacklistManufacturerData auf gültige Werte geprüft. Anzahl Einträge: 3
                                            22:36:43.468	[info]	javascript.2 script.js.Bluetooth: Liste bluetoothBlacklistMac auf gültige Werte geprüft. Anzahl Einträge: 2
                                            22:36:43.468	[info]	javascript.2 script.js.Bluetooth: warn: Das Skript wurde nicht gestartet. Siehe Fehlermeldungen.
                                            22:36:43.468	[info]	javascript.2 script.js.Bluetooth: registered 0 subscriptions and 0 schedules
                                            

                                            was mache ich falsch?

                                            ich habe 3 javascript instanzen

                                            2 auf dem "main" System

                                            1 auf dem client-rasp 3

                                            das logs script liegt auf dem rasp 3 im global ordner

                                            das bluetooth script ebenfalls auf dem rasp 3 im "root" Verzeichnis der Scripts

                                            in den Instanzen steht im Config "noble" - Ohne die " - und das Hackerl darunter ist gesetzt

                                            was mache ich falsch? 😞

                                            Bitte Hilfe

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            555
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            28
                                            254
                                            57359
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo