NEWS
[Frage] MQTT: Topics filtern
-
Ich hätte da mal ein spezielles Problem mit dem MQTT-Adapter.
Um meinen https://www.espruino.com/Puck.js als Türkontakt zu missbrauchen, habe ich auf dem Raspi https://github.com/espruino/EspruinoHub eingerichtet, was nichts anderes tut, als die empfangenen Bluetooth Low Energy Daten in MQTT einzuspeisen. In ioBroker werden die dann vom MQTT-Adapter ganz toll in die Objekte geschrieben.
Allerdings gibts in meiner Nähe auch 2-3 Geräte, die zig mal pro Sekunde senden. Dementsprechend kommen viele Events in ioBroker an:
Wirklich interessiert bin ich nur an einem der Geräte, nämlich dieses:
Kann ich dem Adapter irgendwie beibringen, dass er nur Objekte anlegen soll, die mit "/ble/advertise/31:50:37" beginnen? -
Benutzt du den Adapter als Server oder client ?
Wen client kannst du im Adapter einstellen das er sich nur auf bestimmte topics lauschen soll.
Bei Server geht das nicht da muss die Source diese Logic machen
–-----------------------
Send from mobile device
-
Habs jetzt hinbekommen den Adapter als Client zu verbinden. Der scheint aber Probleme beim Parsen von JSON-Objekten zu haben. Für die wird entweder kein State angelegt oder der State nicht befüllt.
Funktioniert:
2017-07-22 08:34:51.161 - debug: mqtt.0 Server publishes "/ble/advertise/e4:7d:bd:d3:cb:a9/rssi": -85 2017-07-22 08:34:51.162 - debug: mqtt.0 Client received "/ble/advertise/e4:7d:bd:d3:cb:a9/rssi" (number): -85
Funktioniert NICHT:
2017-07-22 08:34:51.171 - debug: mqtt.0 Server publishes "/ble/advertise/e1:50:37:85:61:ef": {"rssi":-74,"name":"Puck.js 61ef"} 2017-07-22 08:34:51.173 - debug: mqtt.0 Client received "/ble/advertise/e1:50:37:85:61:ef" (object): [object Object]
Funktioniert:
2017-07-22 08:34:51.174 - debug: mqtt.0 Server publishes "/ble/advertise/e1:50:37:85:61:ef/rssi": -74 2017-07-22 08:34:51.175 - debug: mqtt.0 Client received "/ble/advertise/e1:50:37:85:61:ef/rssi" (number): -74
Funktioniert NICHT:
2017-07-22 08:34:51.177 - debug: mqtt.0 Server publishes "/ble/advertise/e1:50:37:85:61:ef/1815": {"type":"Buffer","data":[1]} 2017-07-22 08:34:51.195 - debug: mqtt.0 Create object for topic: /ble/advertise/e1:50:37:85:61:ef/1815[ID: mqtt.0.ble.advertise.e1:50:37:85:61:ef.1815] 2017-07-22 08:34:51.196 - debug: mqtt.0 Client received "/ble/advertise/e1:50:37:85:61:ef/1815" (object): [object Object]
-
Interessant …
Ich hatte einen MQTT Server mit domoticz als Client der hat einen ein und Ausgang angelegt das ging ohne Probleme die objectect werden auch als JSON geparst.
Objecte manuell anlegen und füllen lassen geht ?
Bei mir ging das ohne Probleme:
Domoticz ==> MQTT Client ==> ioBroker (als Server)
Tabellen kommen immer in Json
Send from mobile device
-
Hab das jetzt nicht weiter verfolgt. Lese die advertisements jetzt über ein kleines Skript aus, was das "noble" Paket verwendet. Sind ca 15-20 Zeilen, keine extra Prozesse nötig und ich bekomme nur die Geräte, die mich interessieren.
Falls es wen interessiert:
Ich habe einen https://www.puck-js.com/ "missbraucht" als drahtlosen Türkontakt für die Lichtsteuerung in meiner Besenkammer.
Kleiner und schicker als die meisten, meine Mini-Firmware teilt wie ein Bluetooth Beacon mit, ob sich ein Magnet in unmittelbarer Nähe befindet.