Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Pi 3 als Bluetooth LE Scanner (Beispielscript)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    888

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Pi 3 als Bluetooth LE Scanner (Beispielscript)

Scheduled Pinned Locked Moved Skripten / Logik
254 Posts 28 Posters 65.9k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • lobomauL Offline
    lobomauL Offline
    lobomau
    wrote on last edited by
    #117

    Wie funktioniert da genau mit dem löschen und auf blacklist setzen?

    Habe einfach in den Objekten den Haken auf true gestellt. Sollte das device jetzt aus der Aufstellung verschwinden? Tut es nicht.
    1146_delete_device.gif

    Host: NUC8i3 mit Proxmox:

    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
    • Slave: Pi4
    1 Reply Last reply
    0
    • R Offline
      R Offline
      rascal
      wrote on last edited by
      #118

      Das gleiche hier, habe mich auch schon gewundert

      Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk

      1 Reply Last reply
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        wrote on last edited by
        #119

        @lobomau:

        Wie funktioniert da genau mit dem löschen und auf blacklist setzen?

        Habe einfach in den Objekten den Haken auf true gestellt. Sollte das device jetzt aus der Aufstellung verschwinden? Tut es nicht. `

        Auch nicht, wenn Du die Objekte danach aktualisierst (oben links der Button)?

        Wenn nicht, muss ich mir das noch einmal ansehen, was ich da gemacht habe ;-)

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Reply Last reply
        0
        • R Offline
          R Offline
          rascal
          wrote on last edited by
          #120

          Bei mir hilft auch das aktualisieren nicht

          Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk

          1 Reply Last reply
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            wrote on last edited by
            #121

            @rascal:

            Bei mir hilft auch das aktualisieren nicht

            Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk `

            Ja, stimmt. Habe gerade nachgesehen. Da steckt das Messer noch im Schwein :lol: :(

            Habe in der letzte Version die Funktion auskommentiert.

            Werde die Funktion bis zum Wochenende neu implementieren.

            Das Skript soll ja so funktionieren, dass man im Skript nichts ändern muss. Also macht die angedachte Funktion ja auch Sinn. Wird nachgereicht.

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Reply Last reply
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              wrote on last edited by
              #122

              Anbei die Version 0.4.1

              327_bluetooth_ble_0.4.1.js

              Mit der Version sollte nun das manuelle Löschen eines angelegten Bluetooth Device funktionieren.

              Im Zweig Control des Device den Datenpunkt Delete_Device auf true setzen.

              Dann wird nach einem Scandurchlauf (im Default 10 Sekunden) das Device mit all seinen Datenpunkten gelöscht.

              Der Channel inkl. Name bleibt erhalten. Man erhält so eine Übersicht über die gelöschten Geräte.

              Ansonsten kann man nachträglich auch den Channel ohne Gefahr manuell löschen.

              Achtung! Wenn ein Gerät zum löschen gekennzeichnet wurde, würde ich den Scandurchlauf abwarten, bis das Gerät gelöscht wurde, bevor das Skript eventuell gestoppt wird.

              Das Skript ist dann auch in der Beziehung komplett ohne Eingriff bedienbar.

              Soll das Gerät wieder von der Blacklist gelöscht werden, so dass es beim Scan wieder automatisch hinzugefügt werden kann, kann die ID von der Blacklist im Zweig javascript.0.Bluetooth.InfoDevices.Blacklist.Deleted_Devices entfernt werden.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Reply Last reply
              0
              • R Offline
                R Offline
                rascal
                wrote on last edited by
                #123

                Danke,

                funktioniert so wie von dir beschrieben.

                1 Reply Last reply
                0
                • R Offline
                  R Offline
                  rascal
                  wrote on last edited by
                  #124

                  Ich benutze das Script auf einem Remote Rasp, funktioniert soweit sehr gut.

                  Das einzige was mir aufgefallen ist, wenn ich am main iobroker stoppe/restarte, dann meldet das Script bei jedem Durchlauf, dass die Bluetooth devices nicht da sind.

                  Da hilft dann das Script anhalten, ControlScan_ON auf false setzten, bisschen warten, Script starten und variable wieder auf true setzen.

                  Muss das nächste mal schauen (wenn ich nicht vergesse), ob es hilft, wenn ich das Script vor dem iobroker restart stoppe und danach wieder starte

                  1 Reply Last reply
                  0
                  • ruhr70R Offline
                    ruhr70R Offline
                    ruhr70
                    wrote on last edited by
                    #125

                    Ich habe immer noch keine Multihostumgebung aufgebaut. Muss ich wohl mal machen ;-)

                    Eventuell kann Bluefox was zu den Besonderheiten in der Multihostinstallation sagen.

                    Bekommst Du in der von Dir beschriebenen Situation dann irgendwelche Logeinträge?

                    Vielleicht kann man das ja abfangen.

                    Aus dem Bauch würde ich sagen, dass das nicht passiert, wenn Du vor dem ioBroker Restart das Skript stoppst.

                    Adapter: Fritzbox, Unify Circuit
                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      Kamikaze
                      wrote on last edited by
                      #126

                      Ich möchte mich hier einmal einklinken.

                      Die gesamte Lösung ist äußerst interessant. Da ich zwei Raspberrys habe, eine produktive Umgebung (Raspi 2) und eine Testumgebung (Raspi 3). In der Testumgebung funktioniert alles prima.

                      Nun meine Frage: Wie bekomme ich noble auf dem Raspi 2 zum Laufen?

                      Am Raspi 2 habe ich einen LogiLink USB Bluetooth 4.0 Dongle.

                      Gibt es dafür irgendeine Anleitung, die auch funktioniert?

                      Ich erhalte bei der direkten Installation Fehlermeldungen.

                      Macht bitte so weiter, ich lerne inzwischen eine ganze Menge und treibe meine iobroker-Installation voran.
                      1055_error.txt

                      1 Reply Last reply
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        wrote on last edited by
                        #127

                        Ist denn der Bluetooth Dongle richtig installiert?

                        Auf gut Glück gegoogelt:

                        https://klenzel.de/3345

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Reply Last reply
                        0
                        • K Offline
                          K Offline
                          Kamikaze
                          wrote on last edited by
                          #128

                          Hallo,

                          bei mir ist nicht der Bluetooth-Dongle das Problem,

                          pi@rasp-ccu:~ $ sudo hcitool lescan

                          LE Scan …

                          7C:2F:80:AD:C3:7F (unknown)

                          7C:2F:80:AD:C3:7F Gigaset G-tag

                          7C:2F:80:AD:C3:7F (unknown)

                          7C:2F:80:AD:C3:7F Gigaset G-tag

                          7C:2F:80:AD:C3:7F (unknown)

                          sondern die noble installation.

                          sudo npm install noble --production --prefix "/opt/iobroker/node_modules/iobroker.javascript"

                          Die Fehlermeldungen sind in meinem vorherige Post enthalten.

                          1 Reply Last reply
                          0
                          • K Offline
                            K Offline
                            Kamikaze
                            wrote on last edited by
                            #129

                            Naja, wenn man es richtig macht, dann funktioniert es auch.

                            Die Anleitung hatte ich ja schon abgearbeitet, ohne Erfolg. NAchdem ich aber die noble-Installation als root gemacht habe, lief alles durch, ohne Fehlermeldung.

                            Ich habe zwar derzeit den Überblick verloren, wann ich eine Installation als normaler User machen kann, wann mit sudo und wann als root, aber jetzt funktiniert es.

                            Danke und einen schönen Abend.

                            1 Reply Last reply
                            0
                            • ruhr70R Offline
                              ruhr70R Offline
                              ruhr70
                              wrote on last edited by
                              #130

                              Hattest Du auch mal versucht, noble einfach in der Javascript Instanz einzutragen?

                              Siehe im ersten Post:

                              "2.) "noble" in der Javascript Instanz (Config) eintragen (ohne Anführungszeichen)"

                              Adapter: Fritzbox, Unify Circuit
                              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                              1 Reply Last reply
                              0
                              • K Offline
                                K Offline
                                Kamikaze
                                wrote on last edited by
                                #131

                                Hallo ruhr70,

                                das war mein erster Versuch, der natürlich scheiterte. Es gab eine Reihe an Fehlermeldungen im iobroker log und der Scanner brachte auch Fehler.

                                Erst als ich als root die Installation gemacht habe, war alles in Ordnung.

                                Jetzt nach längeren Testen, ist mir doch noch eine Sache aufgefallen:

                                Ich setze ein G-Tag ein und stelle fest, dass sowohl auf der Produktivmaschine als auch auf der Testmaschine der Status häufig kurz wechselt, obwohl sich an dem Standort des G-Tags nicht ändert.

                                Er liegt ca. 1m von beiden Rechnern entfernt und die Variable lastState ist im Scan meistens true, wie erwartet, springt zwischendurch aber kurz auf false um dann gleich wieder true zu werden.

                                Hast du dafür eine Idee?

                                1 Reply Last reply
                                0
                                • ruhr70R Offline
                                  ruhr70R Offline
                                  ruhr70
                                  wrote on last edited by
                                  #132

                                  @Kamikaze:

                                  Ich setze ein G-Tag ein und stelle fest, dass sowohl auf der Produktivmaschine als auch auf der Testmaschine der Status häufig kurz wechselt, obwohl sich an dem Standort des G-Tags nicht ändert.

                                  Er liegt ca. 1m von beiden Rechnern entfernt und die Variable lastState ist im Scan meistens true, wie erwartet, springt zwischendurch aber kurz auf false um dann gleich wieder true zu werden. `

                                  Bei mir läuft der G-Tag sauber durch.

                                  Was bedeutet "gleich wieder auf true"?

                                  Im nächsten Scandurchlauf? Oder "flackert" der Zustand in den Objekten?

                                  Adapter: Fritzbox, Unify Circuit
                                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                  1 Reply Last reply
                                  0
                                  • lobomauL Offline
                                    lobomauL Offline
                                    lobomau
                                    wrote on last edited by
                                    #133

                                    @ruhr70:

                                    @Kamikaze:

                                    Ich setze ein G-Tag ein und stelle fest, dass sowohl auf der Produktivmaschine als auch auf der Testmaschine der Status häufig kurz wechselt, obwohl sich an dem Standort des G-Tags nicht ändert.

                                    Er liegt ca. 1m von beiden Rechnern entfernt und die Variable lastState ist im Scan meistens true, wie erwartet, springt zwischendurch aber kurz auf false um dann gleich wieder true zu werden. `

                                    Bei mir läuft der G-Tag sauber durch.

                                    Was bedeutet "gleich wieder auf true"?

                                    Im nächsten Scandurchlauf? Oder "flackert" der Zustand in den Objekten? `
                                    Bei mir passiert das erst wenn der dongle etwas weiter weg ist. In meinem Fall liegen die dongle in zwei Autos hintereinander geparkt. Das Auto weiter weg wechselt oft von true auf false und wieder zurück. Im Bild ist der X1 näher als der C3. Obwohl beide hin und wieder auf false wechseln, steht beim counter jeweils eine große positive Zahl, die anzeigt seit wievielen Versuchen es auf true steht. Müsste nicht jedes Mal wenn es auf false geht der counter auf Null gesetzt werden?
                                    1146_unbenannt.jpg

                                    Host: NUC8i3 mit Proxmox:

                                    • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                    • Slave: Pi4
                                    1 Reply Last reply
                                    0
                                    • ruhr70R Offline
                                      ruhr70R Offline
                                      ruhr70
                                      wrote on last edited by
                                      #134

                                      @lobomau:

                                      Bei mir passiert das erst wenn der dongle etwas weiter weg ist. In meinem Fall liegen die dongle in zwei Autos hintereinander geparkt. Das Auto weiter weg wechselt oft von true auf false und wieder zurück. Im Bild ist der X1 näher als der C3. Obwohl beide hin und wieder auf false wechseln, steht beim counter jeweils eine große positive Zahl, die anzeigt seit wievielen Versuchen es auf true steht. Müsste nicht jedes Mal wenn es auf false geht der counter auf Null gesetzt werden? `

                                      Ja, stimmt müsste es. Danke für den Hinweis!

                                      In der Funktion ist ein Fehler. Wenn ein Gerät nicht erreichbar ist, wird nicht auf 0 gesetzt, sondern die vorhandene Zahl um 1 reduziert.

                                      `function nichtErreichbar() {
                                          for (var i=0; i<bekanntedevicesnichterreichbar.length; i++)/{/var/id="bekannteDevicesNichtErreichbar[i];" if(!inblacklist(id))/setstate(devicepfad/+/".laststate"/,false);/".laststatecount"/,getstate(devicepfad/".laststatecount").val/-/1);/}/}<e=""></bekanntedevicesnichterreichbar.length;>`
                                      
                                      Richtig wäre:
                                      
                                      `~~[code]~~function nichtErreichbar() {
                                          for (var i=0; i <bekanntedevicesnichterreichbar.length; i++)/{/var/id="bekannteDevicesNichtErreichbar[i];" if(!inblacklist(id))/setstate(devicepfad/+/".laststate"/,false);/laststatecount="getState(devicePfad" ".laststatecount"/).val;/if(laststatecount="">0) {
                                                      lastStateCount = 0;
                                                  } else {
                                                      lastStateCount = lastStateCount - 1;
                                                  }
                                                  setState(devicePfad + id + ".lastStateCount"   ,lastStateCount);
                                               }
                                          }
                                      }</bekanntedevicesnichterreichbar.length;>`
                                      
                                      Wenn ein "Flattern" von Geräten ein Problem ist, könnte man noch einbauen, dass sich nach einem Wechsel des Zustands "erreichbar" für drei Zyklen der Zähler sich nicht ändert. 
                                      
                                      Ein Indikator für An-und Abwesend wäre dann der Wert in lastStateCount und nicht in lastState.
                                      
                                      Wenn es nötig ist, baue ich das gerne noch ein.[/i][/code][/i]
                                      

                                      Adapter: Fritzbox, Unify Circuit
                                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                      1 Reply Last reply
                                      0
                                      • lobomauL Offline
                                        lobomauL Offline
                                        lobomau
                                        wrote on last edited by
                                        #135

                                        @ruhr70:

                                        Wenn ein "Flattern" von Geräten ein Problem ist, könnte man noch einbauen, dass sich nach einem Wechsel des Zustands "erreichbar" für drei Zyklen der Zähler sich nicht ändert.

                                        Ein Indikator für An-und Abwesend wäre dann der Wert in lastStateCount und nicht in lastState.

                                        Wenn es nötig ist, baue ich das gerne noch ein. `

                                        Das wäre genial!

                                        Host: NUC8i3 mit Proxmox:

                                        • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                        • Slave: Pi4
                                        1 Reply Last reply
                                        0
                                        • K Offline
                                          K Offline
                                          Kamikaze
                                          wrote on last edited by
                                          #136

                                          Da ich beruflich viel unterwegs bin, kann ich nicht immer so schnell antworten.

                                          Erst einmal super Job ruhr70.

                                          Das "Flattern" ist in den Objekten sichtbar und damit werden auch die Ereignisse ausgelöst. Wenn du die "Stabilitätsroutine" einbauen würdest, wäre das ausgezeichnet.

                                          Grüße aus dem hohen Norden

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          345

                                          Online

                                          32.6k

                                          Users

                                          82.1k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe