NEWS
Bluetooth Device schalten - wie könnte dies gehen?
-
Hi!
Ich bin auf der Suche nach einer Lösung um ein Bluetooth Device einzubinden, welches dann geschaltet werden soll.
Konkret handelt es sich um eine Tethercell, welche mit folgenden UUIDs angesprochen werden kann.handle: 0x0024, char properties: 0x02, char value handle: 0x0025, uuid: 5ec0fff1-3cf2-a682-e211-2af96efdf667 (Family) handle: 0x0027, char properties: 0x0a, char value handle: 0x0028, uuid: 5ec0fff2-3cf2-a682-e211-2af96efdf667 (FET State) handle: 0x002a, char properties: 0x02, char value handle: 0x002b, uuid: 5ec0fff3-3cf2-a682-e211-2af96efdf667 (Battery Voltage) handle: 0x002d, char properties: 0x0a, char value handle: 0x002e, uuid: 5ec0fff4-3cf2-a682-e211-2af96efdf667 (Timers) handle: 0x0030, char properties: 0x0a, char value handle: 0x0031, uuid: 5ec0fff5-3cf2-a682-e211-2af96efdf667 (Timer access index) handle: 0x0033, char properties: 0x02, char value handle: 0x0034, uuid: 5ec0fff6-3cf2-a682-e211-2af96efdf667 (Battery Voltage Most Recent Index) handle: 0x0036, char properties: 0x02, char value handle: 0x0037, uuid: 5ec0fff7-3cf2-a682-e211-2af96efdf667 (Battery Voltage History) handle: 0x0039, char properties: 0x0a, char value handle: 0x003a, uuid: 5ec0fff8-3cf2-a682-e211-2af96efdf667 (Password) handle: 0x003c, char properties: 0x0a, char value handle: 0x003d, uuid: 5ec0fff9-3cf2-a682-e211-2af96efdf667 (Device Name) handle: 0x003f, char properties: 0x0a, char value handle: 0x0040, uuid: 5ec0fffa-3cf2-a682-e211-2af96efdf667 (UTC Time) handle: 0x0042, char properties: 0x0a, char value handle: 0x0043, uuid: 5ec0fffb-3cf2-a682-e211-2af96efdf667 (Advertising Period in s) handle: 0x0045, char properties: 0x0a, char value handle: 0x0046, uuid: 5ec0fffc-3cf2-a682-e211-2af96efdf667 (Authorization) write c (Authorization): 00000000 read 2 (FET State) read 3 (Battery Voltage) write a (UTC Time): b85f0253 read 8 (Password)
Der iobroker.ble Adapter kann ja meines Wissens nur lesen.
Ein anderer Ansatz, dies über über den ioBroker.ham (Homebridge Accessory Manager) im Wrapper Mode mit dem https://github.com/vojtamolda/homebridge-bluetooth Plugin zu realisieren, war leider erfolglos, da ich nicht verstehe, wie ich dort die notwendige Authorization einbinden kann.
Hat jemand schon schaltbare Bluetooth Geräte in ioBroker eingebunden?
Falls ja, wie?Oder hat noch jemand eine andere Idee?
-
@w00dst0ck Falls es nur um tethercell Geräte geht kannst du diese mittels tethercell Plugin in Nodered steuern. Auch die sonstige Bluetooth Kommunikation mit anderen Geräten kannst du in Nodered verwalten. Alles was min IOBroker nicht direkt ansprechbar ist lässt sich dort Dank direkter Einbindung in IOBroker trotzdem steuern. Wirf da also Mal nen Blick drauf.
MFG
CrunkFX -
@CrunkFX
Danke Dir, das ist auf jeden Fall ein möglicher Ansatz. -
@CrunkFX hast Du die Tethercell mit Node-Red im Betrieb?
Stehe mangels Dokumentation zu dem Tethercell Plugin etwas auf dem Schlauch. -
@w00dst0ck Korrekt, der BLE-Adapter kann bisher nur passiv auf die Advertisements lauschen.
Ich bin gerade dabei, das Bluetooth-Protokoll meiner Kaffeemaschine zu verstehen. Wenn ich das habe, gibts auch aktive Schreib- und Lese-Unterstützung im Adapter. Das kann aber noch ne Weile dauern.
-
@w00dst0ck Ich nutze tethercell nicht mangels Hardware. Aber vielleicht kann ich dir ja trotzdem helfen, wo hapert es denn?
MFG
CrunkFX -
@AlCalzone Cool, dass Du das Thema angehst.
@CrunkFX Zuerst hatte ich massiver Probleme den Adapter überhaupt ans fliegen zu bekommen.
Das letzte Update des node-red-contrib-tethercell ist 5 Jahre her und verweist auf ebenso alte Dependencies, die sich mit Node.js v12.19.0 nicht mehr so einfach installieren lassen. Das zugrundeliegende node-tethercell habe ich geforkt und die Version vom noble-device angepasst.Nachdem ich nun Node für tethercell in Node-RED gefunden habe, weiß ich nicht wirklich, was ich damit machen soll.
Hast Du eine Idee, wie msg & payload aufgebaut sein müssen, damit ich ein Device schalten kann?
Verstehe die function listenForLight nicht wirklich, da mir die Erfahrung in Node-RED fehlt. -
@w00dst0ck Ich habe leider nicht die Möglichkeit das mit tethercell zu testen, mangels Hardware. Eventuell kannst du ja die benötigten Infos direkt mit einer Bluetooth node Auslesen. Ansonsten wenn du weißt wie die Kommunikation mit dem geforkten Adapter laufen soll, kann ich dir gerne bei der Umsetzung der payloads helfen.
-
@CrunkFX
Ich denke, ich muss für diese Function das passende Payload aufbauen.
Wenn Du mir da helfen könntest, wäre das natürlich super.function listenForLight() { node.log('listen for message...'); node.on('input', function(msg) { var topic = msg.topic; if (topic.indexOf('/light') !== -1) { var light = JSON.parse(msg.payload).value; if (light === "on") { cell.turnOn(function() { node.log('Light on'); }); } else { cell.turnOff(function() { node.log('Light off'); }); } } }); }
msg.payload = on fürs einschalten ist klar.
Aber was ist mit topic /light ??? -
@w00dst0ck Ich muss mich hier leider bei dir entschuldigen, ich habe mir im Vorfeld die tethercell node nicht angeschaut aber so wie es scheint kann die gar keine Ausgaben. Da du aber nun die Kommunikation einigermaßen kennst, würde ich mit der normalen Bluetooth serial node gehen und dann die nodes entsprechend aufbauen. Ich werde später Mal die Bluetooth node testen und schauen ob ich die zum laufen bekomme. Btw, welche Hardware nutzt du?
-
@CrunkFX da musst Du Dich doch nicht entschuldigen.
Hast Du die Bluetooth Node zum Laufen bekommen?
Ich verwende den Pi4 und das onboard Bluetooth Modul. -
@alcalzone sagte in Bluetooth Device schalten - wie könnte dies gehen?:
Ich bin gerade dabei, das Bluetooth-Protokoll meiner Kaffeemaschine zu verstehen. Wenn ich das habe, gibts auch aktive Schreib- und Lese-Unterstützung im Adapter.
@AlCalzone, wie geht es Deiner Kaffemaschine?