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

      Hallo Jürgen,

      eine kleine Ergänzung. Wenn Du aus Deinen Androids ein Bacon machst, dann dürften die auch funktionieren.

      ich habe mal nach einer passenden App gegoogelt:

      https://play.google.com/store/apps/deta … uickbeacon

      Gruß,

      Michael

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

        315_bt.png

        nun sind es bereis 6 Geräte geworden

        Gruß

        Jürgen

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

          @derAuge:

          nun sind es bereis 6 Geräte geworden `

          Hi Jürgen,

          Danke für die Info! Laut Screenshot sind es bei Dir nur zwei Geräte (CountAll = 2), ein Gigaset G-tag und ein Samsung TV.

          Freue mich gerade. D.h. das G-Tag wird funktionieren 😉

          Sind das Deine Geräte (Samsung Fernseher und das/der G-tag)?

          VG,

          Michael

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

            @ruhr70:

            Laut Screenshot sind es bei Dir nur zwei Geräte `

            stimmt. Da hatte ich das Bild gemacht.

            inzwischen hat er bereits 11 devices gesehen.

            und Ja

            Es ist ein Samsung TV und

            ein Gigaset ?

            Gruß

            Jürgen

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

              @derAuge:

              ein Gigaset ? `

              Ein Gigaset G-tag:

              http://www.amazon.de/Gigaset-Bluetooth- … aset+g-tag

              Wenn es nicht Deins ist, dann war vielleicht jemand in der Nähe mit so einem Ding.

              Auf jeden Fall geht es mir u.a. darum. Ich hab eins zum Test bestellt und mich schon gefreut, dass es bei Dir erkannt wird 🙂

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

                ok

                dann ist es wohl vorbei gefahren

                der Wert "32.73" bei "Bluetooth Device Distanz" sind wohl Meter Entfernung?

                ich dachte erst es sei mein Gigaset Telefon SX353isdn mit BT

                NAchdem ich mein SamsungTV nun ausgeschaltet habe ist der OnlineZähler auf 0

                Gruß

                Jürgen

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

                  32,73 sollen m sein. Die Formel zur Berechnung der Distanz war inspiriert von dem Projekt: https://medium.com/truth-labs/beacon-tr … .9ou5pmul5.

                  Allerdings sind es gefühlt eher Feet, wenn ich das bei mir verglichen habe. Und es springt schon argh hin un her.

                  Vorbeigefahren glaube ich eher nicht. Vielleicht hatte der Briefträger so ein Ding am Schlüsselbund. 7:36 Uhr?

                  1 Reply Last reply Reply Quote 0
                  • P
                    Pman last edited by

                    Interessantes Skript, würde sich auch als Adapter gut machen (ähnlich dem Ping Adapter).

                    Die Entfernung bei Beacons muss im Beacon kalibriert werden:

                    zu erst sendet man mit dem Beacon die Bluetooth advertising packets und guckt mit einem Empfänger wie stark der Empfang in einem Meter Entfernung ist. Diesen Wert trägt man dann wiederum im Beacon ein, das den Wert dann glaube ich in den advertising packets mitsendet. Der Empfänger kann dann mit dem aktuellen Empfangswert und dem bekannten Wert bei einem Meter Entfernung seine eigene Distanz berechnen.

                    Bei dem Skript müsste man das dann eher umgekehrt machen, also im Skript pro Gerät die Empfangsstärke bei einer gewissen Entfernung eingeben und danach die aktuelle Distanz berechnen.

                    Ohne die Formel studiert zu haben denke ich, dass es die Variable txPower ist, welche man pro Gerät justieren müsste.

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

                      @Pman:

                      Interessantes Skript, würde sich auch als Adapter gut machen (ähnlich dem Ping Adapter).

                      Die Entfernung bei Beacons muss im Beacon kalibriert werden:

                      zu erst sendet man mit dem Beacon die Bluetooth advertising packets und guckt mit einem Empfänger wie stark der Empfang in einem Meter Entfernung ist. Diesen Wert trägt man dann wiederum im Beacon ein, das den Wert dann glaube ich in den advertising packets mitsendet. Der Empfänger kann dann mit dem aktuellen Empfangswert und dem bekannten Wert bei einem Meter Entfernung seine eigene Distanz berechnen.

                      Bei dem Skript müsste man das dann eher umgekehrt machen, also im Skript pro Gerät die Empfangsstärke bei einer gewissen Entfernung eingeben und danach die aktuelle Distanz berechnen.

                      Ohne die Formel studiert zu haben denke ich, dass es die Variable txPower ist, welche man pro Gerät justieren müsste. `

                      Hallo Pman,

                      vielen Dank für die Erklärung zur Entfernung. Ich schaue mir das an. 🙂

                      Ich möchte noch etwas an dem Skript basteln und wenn es Sinn macht dann in der Tat auf der daraus gewonnen Erfahrung einen zweiten Adapter basteln. So etwas dauert bei mir nur etwas 🙂 Vielleicht kommt mir auch Bluefox zuvor 🙂 http://forum.iobroker.net/viewtopic.php … 507#p22238.

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

                        @ruhr70:

                        @Pman:

                        Interessantes Skript, würde sich auch als Adapter gut machen (ähnlich dem Ping Adapter).

                        Die Entfernung bei Beacons muss im Beacon kalibriert werden:

                        zu erst sendet man mit dem Beacon die Bluetooth advertising packets und guckt mit einem Empfänger wie stark der Empfang in einem Meter Entfernung ist. Diesen Wert trägt man dann wiederum im Beacon ein, das den Wert dann glaube ich in den advertising packets mitsendet. Der Empfänger kann dann mit dem aktuellen Empfangswert und dem bekannten Wert bei einem Meter Entfernung seine eigene Distanz berechnen.

                        Bei dem Skript müsste man das dann eher umgekehrt machen, also im Skript pro Gerät die Empfangsstärke bei einer gewissen Entfernung eingeben und danach die aktuelle Distanz berechnen.

                        Ohne die Formel studiert zu haben denke ich, dass es die Variable txPower ist, welche man pro Gerät justieren müsste. `

                        Hallo Pman,

                        vielen Dank für die Erklärung zur Entfernung. Ich schaue mir das an. 🙂

                        Ich möchte noch etwas an dem Skript basteln und wenn es Sinn macht dann in der Tat auf der daraus gewonnen Erfahrung einen zweiten Adapter basteln. So etwas dauert bei mir nur etwas 🙂 Vielleicht kommt mir auch Bluefox zuvor 🙂 http://forum.iobroker.net/viewtopic.php … 507#p22238. `
                        Ich habe gesagt ich habe Willen dazu. Ich habe aber wirklich keine Möglichkeit.

                        Fang an wir werden helfen.

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

                          @Bluefox:

                          Ich habe gesagt ich habe Willen dazu. Ich habe aber wirklich keine Möglichkeit.

                          Fang an wir werden helfen. `

                          Ja. Ich werde das schon machen. Habe ich Lust drauf.

                          Wird halt nur wirklich was dauern 🙂

                          Danke! Und einen schönen Urlaub!

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

                            Der Gigaset G-Tag ist ist heute angekommen. Ein kurzes Feedback dazu.

                            http://www.amazon.de/Gigaset-Bluetooth- … aset+g-tag

                            • Batterieschutz entfernt, der G-Tag wird in den Objekte sofort angezeigt

                            • G-Tag App im Apple Store heruntergeladen und den G-Tag dort angemeldet. In dem Moment verschwindet der G-Tag aus den Objekten (lastState: false).

                            • G-Tag in der App wieder gelöscht. lastState geht sofort wieder auf true

                            • der G-Tag ist etwas dicker als gedacht.

                            Fazit:

                            • der G-Tag kann zur Anwesenheitserkennung genutzt werden, kann dann aber nicht parallel in der G-Tag App genutzt werden

                            • Fitnesstools, wie der Fitbit One oder das Mi-Band sind eine Alternative und senden dauerhaft

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

                              @Pman:

                              Interessantes Skript, würde sich auch als Adapter gut machen (ähnlich dem Ping Adapter).

                              Die Entfernung bei Beacons muss im Beacon kalibriert werden:

                              zu erst sendet man mit dem Beacon die Bluetooth advertising packets und guckt mit einem Empfänger wie stark der Empfang in einem Meter Entfernung ist. Diesen Wert trägt man dann wiederum im Beacon ein, das den Wert dann glaube ich in den advertising packets mitsendet. Der Empfänger kann dann mit dem aktuellen Empfangswert und dem bekannten Wert bei einem Meter Entfernung seine eigene Distanz berechnen.

                              Bei dem Skript müsste man das dann eher umgekehrt machen, also im Skript pro Gerät die Empfangsstärke bei einer gewissen Entfernung eingeben und danach die aktuelle Distanz berechnen.

                              Ohne die Formel studiert zu haben denke ich, dass es die Variable txPower ist, welche man pro Gerät justieren müsste. `

                              Danke für die Erläuterung und die Anregung!

                              Die Möglichkeit zur Kalibrierung der einzelnen Geräte, sowie die Optimierung der Distanzbrechung ist im Skript nun eingebaut.

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

                                Hallo ruhr,

                                vielen Dank für das script.

                                Ich habe es nach Anleitung installiert, bekomme aber leider relativ schnell eine exception:

                                ! ````
                                host-Raspi31 2016-03-29 16:58:24 info Restart adapter system.adapter.javascript.1 because enabled
                                host-Raspi31 2016-03-29 16:58:24 error instance system.adapter.javascript.1 terminated with code 6 (uncaught exception)
                                SyntaxError: 2016-03-29 16:58:24 error at Timer.listOnTimeout (timers.js:92:15)
                                SyntaxError: 2016-03-29 16:58:24 error at ontimeout [as _onTimeout] (timers.js:209:34)
                                SyntaxError: 2016-03-29 16:58:24 error at null. (/root/node_modules/iobroker.javascript/javascript.js:1720:44)
                                SyntaxError: 2016-03-29 16:58:24 error at Object.stopScan (script.js.Test.Bluetooth_Scanner:943:67)
                                SyntaxError: 2016-03-29 16:58:24 error at Object.parse (native)
                                SyntaxError: 2016-03-29 16:58:24 error Unexpected end of input
                                uncaught 2016-03-29 16:58:24 error exception: Unexpected end of input
                                javascript-1 2016-03-29 16:58:24 info script.js.Test.Bluetooth_Scanner: debug0: Bluetooth Scan 1 OK. Devices gescannt: 0, davon neu: 0 / Devices in DB: 0, davon nicht erreichbar: 0
                                history-0 2016-03-29 16:58:17 info sendTo "getHistory" to system.adapter.web.0 from system.adapter.history.0: {"result":[{"ts":1459263355,"val":null}],"step":300,"error":null}
                                web-0 2016-03-29 16:58:17 info sendTo "getHistory" to system.adapter.history.0 from system.adapter.web.0: {"id":"hm-rpc.0.GEQ0015983.1.TEMPERATURE","options":{"start":1459263205,"end":1459263505,"ignoreNull":false,"aggregate":"ave
                                javascript-1 2016-03-29 16:58:14 info script.js.Test.Bluetooth_Scanner: debug1: ####### start scanning - Durchlauf (1) #######
                                javascript-1 2016-03-29 16:58:14 info script.js.Test.Bluetooth_Scanner: debug2: Kommando Bluetooth Scanner an: true
                                javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: registered 0 subscriptions and 0 schedules
                                javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: debug1: dpAnlegen() - Datenpunkte angelegt (createState) in javascript.1.Bluetooth.
                                javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: debug1: Vars, Loglevel und Scriptname gesetzt
                                javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: --== script.js.Test.Bluetooth_Scanner ==-- gestartet. Instanz: "javascript.1.", Loglevel: debug2
                                javascript-1 2016-03-29 16:58:13 info Start javascript script.js.Test.Bluetooth_Scanner

                                Hast Du eine Idee woran das liegen könnte?
                                
                                Danbke und Gruß,
                                1 Reply Last reply Reply Quote 0
                                • ruhr70
                                  ruhr70 last edited by

                                  @Stmiko:

                                  Ich habe es nach Anleitung installiert, bekomme aber leider relativ schnell eine exception:

                                  […]

                                  Hast Du eine Idee woran das liegen könnte?

                                  Danbke und Gruß, `

                                  Danke erst einmal fürs Testen!

                                  Was mir auffällt, dass nach dem ersten Durchlauf kein Gerät gefunden wurde. Ich schau mal, ob ich mit der Situation (0 Geräte) noch einen Fehler drin habe.

                                  Hab die Situation bei mir nicht. Bei mir werden im ersten Durchlauf schon immer mind. 6 Geräte gefunden. Deswegen bin ich für jeden Test dankbar!

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

                                    @Stmiko:

                                    Hallo ruhr,

                                    vielen Dank für das script.

                                    Ich habe es nach Anleitung installiert, bekomme aber leider relativ schnell eine exception:

                                    ! ````
                                    host-Raspi31 2016-03-29 16:58:24 info Restart adapter system.adapter.javascript.1 because enabled
                                    host-Raspi31 2016-03-29 16:58:24 error instance system.adapter.javascript.1 terminated with code 6 (uncaught exception)
                                    SyntaxError: 2016-03-29 16:58:24 error at Timer.listOnTimeout (timers.js:92:15)
                                    SyntaxError: 2016-03-29 16:58:24 error at ontimeout [as _onTimeout] (timers.js:209:34)
                                    SyntaxError: 2016-03-29 16:58:24 error at null. (/root/node_modules/iobroker.javascript/javascript.js:1720:44)
                                    SyntaxError: 2016-03-29 16:58:24 error at Object.stopScan (script.js.Test.Bluetooth_Scanner:943:67)
                                    SyntaxError: 2016-03-29 16:58:24 error at Object.parse (native)
                                    SyntaxError: 2016-03-29 16:58:24 error Unexpected end of input
                                    uncaught 2016-03-29 16:58:24 error exception: Unexpected end of input
                                    javascript-1 2016-03-29 16:58:24 info script.js.Test.Bluetooth_Scanner: debug0: Bluetooth Scan 1 OK. Devices gescannt: 0, davon neu: 0 / Devices in DB: 0, davon nicht erreichbar: 0
                                    history-0 2016-03-29 16:58:17 info sendTo "getHistory" to system.adapter.web.0 from system.adapter.history.0: {"result":[{"ts":1459263355,"val":null}],"step":300,"error":null}
                                    web-0 2016-03-29 16:58:17 info sendTo "getHistory" to system.adapter.history.0 from system.adapter.web.0: {"id":"hm-rpc.0.GEQ0015983.1.TEMPERATURE","options":{"start":1459263205,"end":1459263505,"ignoreNull":false,"aggregate":"ave
                                    javascript-1 2016-03-29 16:58:14 info script.js.Test.Bluetooth_Scanner: debug1: ####### start scanning - Durchlauf (1) #######
                                    javascript-1 2016-03-29 16:58:14 info script.js.Test.Bluetooth_Scanner: debug2: Kommando Bluetooth Scanner an: true
                                    javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: registered 0 subscriptions and 0 schedules
                                    javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: debug1: dpAnlegen() - Datenpunkte angelegt (createState) in javascript.1.Bluetooth.
                                    javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: debug1: Vars, Loglevel und Scriptname gesetzt
                                    javascript-1 2016-03-29 16:58:13 info script.js.Test.Bluetooth_Scanner: --== script.js.Test.Bluetooth_Scanner ==-- gestartet. Instanz: "javascript.1.", Loglevel: debug2
                                    javascript-1 2016-03-29 16:58:13 info Start javascript script.js.Test.Bluetooth_Scanner

                                    Hast Du eine Idee woran das liegen könnte?
                                    
                                    Danbke und Gruß, `  
                                    

                                    Kannst Du bitte die neue Version im Post Nr. 3 http://forum.iobroker.net/viewtopic.php … 513#p22234 ausprobieren.

                                    Ich hab es recht schwer die Situation mit 0 gefundenen Devices nachzustellen 🙂

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

                                      Hi,

                                      ich habe die neue version ausprobiert.

                                      Die Exception ist leider noch da, hier das Ergebnis:

                                      ! ````
                                      Raspi31 2016-03-30 20:08:05 info host.Raspi31 Restart adapter system.adapter.javascript.0 because enabled
                                      Raspi31 2016-03-30 20:08:05 error host.Raspi31 instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
                                      Raspi31 2016-03-30 20:08:05 info host.Raspi31 Restart adapter system.adapter.javascript.0 because enabled
                                      Raspi31 2016-03-30 20:08:05 error host.Raspi31 instance system.adapter.javascript.0 terminated with code 6 (uncaught exception)
                                      javascript.0 2016-03-30 20:08:05 error SyntaxError: Unexpected end of input at Object.parse (native) at Object.stopScan (script.js.Test.Bluetooth_Scanner:982:67) at null. (/root/node_modules/iobroker.javascript/javas
                                      javascript.0 2016-03-30 20:08:05 error uncaught exception: Unexpected end of input
                                      javascript.0 2016-03-30 20:08:05 info javascript.0 script.js.Test.Bluetooth_Scanner: debug1: Bluetooth Scan 1 OK. Devices gescannt: 0, davon neu: 0 / Devices in DB: 0, davon nicht erreichbar: 0
                                      javascript-0 2016-03-30 20:07:55 info script.js.Test.Bluetooth_Scanner: debug1: ####### start scanning - Durchlauf (1) #######
                                      javascript-0 2016-03-30 20:07:54 info script.js.Test.Bluetooth_Scanner: registered 0 subscriptions and 0 schedules
                                      javascript-0 2016-03-30 20:07:54 info script.js.Test.Bluetooth_Scanner: debug1: Vars, Loglevel und Scriptname gesetzt
                                      javascript-0 2016-03-30 20:07:54 info script.js.Test.Bluetooth_Scanner: --== script.js.Test.Bluetooth_Scanner ==-- gestartet. Instanz: "javascript.0.", Loglevel: debug1
                                      javascript-0 2016-03-30 20:07:53 info Start javascript script.js.Test.Bluetooth_Scanner

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

                                        @Stmiko:

                                        Hi,

                                        ich habe die neue version ausprobiert.

                                        Die Exception ist leider noch da, hier das Ergebnis: `

                                        Danke Stmiko!

                                        Danke Deiner Infos konnte ich den Fehler nachvollziehen. Er sollte nun raus sein (neue Version).

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

                                          > Danke Deiner Infos konnte ich den Fehler nachvollziehen. Er sollte nun raus sein (neue Version).
                                          Super….läuft und keine exception mehr.

                                          Vielen Dank und Gruß

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

                                            Super Script! ideal für den Raspberry 3!

                                            Werde ich auch mal versuchen bei Gelegenheit. Überlege noch, für was. Im Prinzip kann man damit ja auch auch einen Diebstahlschutz (oder besser: -anzeige) verwirklichen. So ein LE-Bluetooth Funkfeuer (billiges Mi-Band) ins Auto legen oder irgendwie am Fahrrad unterm Sattel versteckt befestigen, und wenn das Signal weg ist, man selbst aber da ist, dann Auto = geklaut (oder so ähnlich) und Alarm wird ausgelöst.

                                            Das System hätte den Vorteil, dass auch die bei Diebstählen üblicherweise genutzten Jammer (Geräte, die sämtliche mobile Daten, wie WLAN, Bluetooth, GSM-Netz, GPS) stören, damit das geklaute Auto sich nicht melden kann. Wenn der Diebstahl aber andersherum registriert wird… Muss ich mal checken, wie stabil sowas laufen würde. Es ist halt leider nur zu spät, weil dann das Objekt schon wegbewegt worden ist...

                                            PS:der Apple TV 4 sendet auch ein Funkdauerfeuer aus. Warum auch immer :evil: Wegen der Fernbedienung vermutlich.

                                            PPS: Du hast am Anfang des Threads auch erwähnt, dass du einen 2. Raspi benutzt. Also zumindest 2 Instanzen von iobroker nutzt.

                                            Benutzt du den Multihostmodus dafür? http://www.iobroker.net/docu/?page_id=3068&lang=de

                                            Wie sind da die Erfahrungen? Wie läuft es praktisch? Läuft der Master weiter wenn ein Slave ausfällt?

                                            Wegen der Aufteilung der Rechenleistung macht es eher wenig Sinn, oder? So viel fällt ja nicht an, höchstens wenn man den vis-Webserver auslagern will weil so viele gleichzeitig darauf zugreifen wollen. Sinnvoll ist das nur, wenn man auf die Hardwareanschlüsse des 2. Slaves zugreifen will?

                                            Mein 1. Raspi 3 läuft nämlich noch als NAS und Plexserver. Ich suche gerade einen grund, dort iobroker als Slave zu installieren :lol:

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            667
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            28
                                            254
                                            57348
                                            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