Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. (gelöst) Buffer-Behandlung?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

(gelöst) Buffer-Behandlung?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 1.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #1

    Ich habe noch ein kleines Problem mit der Auswertung eines Buffers.

    das node.js module noble liefert den Bluetooth Hersteller als <buffer>Folgendes habe ich versucht, um die Info in einen lesbaren Text umzuwandeln:

    Variante 1:

        var herstellerBuffer = peripheral.advertisement.manufacturerData;
        var hersteller = '';
        if (typeof herstellerBuffer != "undefined") {
            hersteller = herstellerBuffer.toString('utf8');
        } else {hersteller = "undefinied"}
    
    

    Und Variante 2:

        var herstellerBuffer = peripheral.advertisement.manufacturerData;
        var hersteller = '';
        if (typeof herstellerBuffer != "undefined") {
            hersteller = String.fromCharCode.apply(null, new Uint16Array(herstellerBuffer));
        } else {hersteller = "undefinied"}
    
    

    In beiden Fällen erhalte ich unlesbare Sonderzeichen, wie: Ls�@j���7 �f �

    Help ;-)</buffer>

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

    1 Antwort Letzte Antwort
    0
    • H Offline
      H Offline
      Headroom68
      schrieb am zuletzt editiert von
      #2

      Hallo,

      hersteller = herstellerBuffer.toString('hex');

      ergibt:

      javascript.1 script.js.test.bluetooth_le_scanner: debug1: hersteller: 4c000c0e00814e8c002dad07cd235a2c4552

      :-)

      Grüße

      Headroom68

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        Hi Headroom68,

        danke. Das hatte ich auch schon probiert:-)

        meinst du denn, dass dies das Ergebnis sein soll? ich würde einen lesbaren Namen erwarten

        VG

        Gesendet von iPhone mit Tapatalk

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

        1 Antwort Letzte Antwort
        0
        • H Offline
          H Offline
          Headroom68
          schrieb am zuletzt editiert von
          #4

          Hallo,

          ja, ich fürchte nur, dass danach noch etwas zu tun ist.

          '4c00' it z.b. Apple

          https://www.bluetooth.com/specification … dentifiers

          Ich habe mich noch nicht näher damit beschäftigt. Ich hatte versucht eine Anwesenheitserkennung mit btwatch zu machen.

          Leider nur mit begrenztem Erfolg.

          Leider wird das iPhone von noble beim scannen nicht erkannt.

          Grüße

          Headroom68

          1 Antwort Letzte Antwort
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            schrieb am zuletzt editiert von
            #5

            @Headroom68:

            Hallo,

            ja, ich fürchte nur, dass danach noch etwas zu tun ist.

            '4c00' it z.b. Apple

            https://www.bluetooth.com/specification … dentifiers

            Ich habe mich noch nicht näher damit beschäftigt. Ich hatte versucht eine Anwesenheitserkennung mit btwatch zu machen.

            Leider nur mit begrenztem Erfolg.

            Leider wird das iPhone von noble beim scannen nicht erkannt. `

            Hi Headroom68,

            Deine Antwort ist in meinem Urlaub untergegangen. Es ist wirklich einfach Hex.

            Danke! Unabhängig davon, hatte ich das mittlerweile auch gefunden und eingebaut :-)

            Zu Deinem Problem:

            Vorab. Sind das nicht zwei Themen? iPhone und btwatch?

            Wir die btwatch nicht gefunden? Wenn doch, kannst Du doch schon damit arbeiten.

            Zum iPhone:

            Das BLE Skript sucht nur BLE Geräte (Geräte, die dauern Ihre Info per Bluetooth senden, z.B. das Gigaset G-Tag, solange es nicht an der App angemeldet ist). Sehr gut sind da die diversen Fitnesstrecker geeignet. Deine btwatch nicht?

            Beim iPhone kannst Du es umgekehrt machen. Du benötigst ein Bacon, bzw. ein iBeacon, auf welches Du dann mit Geofency und dem Geofency Adapter reagieren kannst. So nutze ich das bisher schon länger mit einem Raspberry 2 als iBeacon, Geofency und dem Geofency Adapter.

            Wenn ich mit meinem BLE Skript durch bin, kommt noch ein viel kürzeres Skript, mit dem Du aus dem Raspberry Pi 3 (oder andere kompatible Geräte, wie bei noble) ein Beacon/iBeacon machen kannst, sowie einen Bacon Scanner.

            Dafür gibt es das node.js Modul bleacon, vom gleichen Entwickler, der auch noble veröffentlicht hat.

            Ist ganz Simpel zu nutzen. Bei meinem Tests hat der BLE Scanner und das Skript für das iBeacon auch parallel auf einem Pi 3 funktioniert.

            Vorab die Kurzversion für ein iBeacon Skript (Bluez (wenn es ein Linux Rechner ist) und und das node Modul "bleacon" müssen installiert sein):

            ! var Bleacon = require('bleacon'); ! var uuid = 'e2c56db5dffb48d2b060d0f5a71096e0'; var major = 0; // 0 - 65535 var minor = 0; // 0 - 65535 var measuredPower = -59; // -128 - 127 (measured RSSI at 1 meter) ! Bleacon.removeAllListeners('discover'); ! Bleacon.startAdvertising(uuid, major, minor, measuredPower); Bleacon.startScanning(); logs("#### START BEACON ####","warn"); ! Bleacon.on('discover', function(bleacon) { logs("uuid: " + bleacon.uuid + ", Major: " + bleacon.major + ", Minor: " + bleacon.minor,"info","darkorange"); }); ! /* setTimeout(function () { Bleacon.stopAdvertising(); logs("#### STOP BEACON ####","warn"); Bleacon.stopScanning(); //Bleacon.removeListener('discover'); Bleacon.removeAllListeners('discover'); }, 100000); ! */ !

            Ohne das aaskommentierte Timeout am Ende sendet es dann dauerhaft, bis zum Neustart der Javascript-Instanz.

            Was man sehr einfach machen kann:

            • kurzes zweites Skript als Watchdog, welches den Listener ausschaltet, wenn das iBeacon Skript gestoppt wird.

            Die im Skript eingestellt iBeacon Kennung findest Du auch in der iPhone App "Beccon". Dort ist es das Haustier :-)

            Wenn Du das Skript inkl. dem Timeout am Ende startest, wird das Haustier für 10 Sekunden vom iPhone mit Beecon gefunden.

            Danach würde ich Geofency probieren.

            Von mir wird mit der Zeit folgendes kommen:

            • BLE Scanner als Skript in der Aerotouch Version (komplett automatisch, jede Instanz, ohne Eingriffe)

            • BLE Scanner Adapter (hoffentlich g9

            • iBeacon/Beacon Skript für ein Beaconn und als Scanner

            • und dann der Adapter dafür (mache ich wohl vor den BLE Adapter, da das schneller geht)

            bleacon findest Du hier:

            https://github.com/sandeepmistry/node-bleacon

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

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            827

            Online

            32.4k

            Benutzer

            81.5k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe