NEWS
BLE Adapter / Ruuvi-Tag
-
Hi @AlCalzone
Wird noch nach Ruuvi-Tag Testern gesucht? Auf Github steht "Untested, please give feedback!".
Ich habe ein knappes Dutzend Ruuvi-Tags im Einsatz, bisher mit Ruuvi-Collector, InfluxDB, Grafana auf einem Raspberry Pi Zero W.
Testhalber habe ich gestern ioBroker auf einem Intel/NUC ähnlichen System aufgesetzt (soll schlussendlich auf einen Rasbperry Pi 3+ wenn alles getestet ist) und mal alles konfiguriert.
ioBroker.ble ist installiert und grün, meine zwei Test Ruuvi-Tags scheinen auf (aber ohne Info wie Temp oder Feuchtigkeit). Wie es jetzt weitergeht mit den Ruuvi-Tags kann ich nicht sagen. Mit dem Ruuvi Collector (verwendet hcidump glaub ich) kann ich die Daten ganz normal auslesen auf dem Rechner.
Habe ich etwas wichtiges vergessen? Gibt es etwas, das ich für dich testen kann? Die Ruuvi-Tags sind so wie sie von Ruuvi verschickt wurden, also normale Firmware etc.
ble.0 2019-09-02 16:49:44.940 info starting scan for services [] ble.0 2019-09-02 16:49:44.884 info monitoring all services ble.0 2019-09-02 16:49:44.884 info enabled plugins: _default ble.0 2019-09-02 16:49:44.884 info loaded plugins: Xiaomi, mi-flora, ruuvi-tag, _default ble.0 2019-09-02 16:49:44.866 info starting. Version 0.7.2 in /opt/iobroker/node_modules/iobroker.ble, node: v10.16.3
Platform linux
Architecture x64
Node.js v10.16.3
NPM 6.9.0
Adapters count 252
Active instances 9 -
@alexhk Für mich sieht das aus als werden keine Daten empfangen. Eventuell gibts auch nen Bug beim Dekodieren.
Stelle deinen Adapter bitte mal auf Loglevel
debug
(geht in der Instanzenliste im Expertenmodus) und poste den Log über ca. 1 Minute hier. Danach wieder aufinfo
zurück. -
Vielen Dank @AlCalzone
Hier mal eine Minute mit debug Loglevel ("ruuvi-tag" als einziges Plugin in Settings/Active Plugins).
Meine zwei Test Ruuvi-Tags sind:
CD:BC:35:A4:33:E0
D7:97:6A:47:60:F8Was mir gleich mal auffaellt:
2019-09-02 20:43:37.962 - debug: ble.0 ruuvi-tag >> unsupported data format 76 2019-09-02 20:43:35.239 - debug: ble.0 ruuvi-tag >> unsupported data format 153 etc
Complete log (ca. 1 min, war zu gross fuers Forum):
-
PS: sollte da nicht stehen plugin ruuvi-tag is handling cd:bc:35:a4:33:e0, statt plugin _default is handling cd:bc:35:a4:33:e0?
2019-09-02 20:43:56.337 - debug: ble.0 plugin _default is handling cd:bc:35:a4:33:e0
-
@alexhk Das liegt wohl daran, dass das Plugin nicht erkennt dass es für das Datenpaket zuständig ist.
-
@AlCalzone Vielen Dank.
Kann ich da auf meiner Seite was fixen?
Den betroffenen Code habe ich gefunden, aber bis auf ein paar Debug Ausgaben einzubauen kann ich im Moment nicht viel machen (programmieren ist bei mir lange her).
-
@alexhk Nene, ich muss da ein bisschen mit rumspielen.
-
@alexhk Es scheint dass deine Tags Data Format 5 nutzen, welches im Adapter fehlerhaft implementiert ist. Dank deines Tips mit RuuviCollector bin ich auf folgenden Code gestoßen:
https://github.com/Scrin/ruuvitag-common-java/blob/master/src/main/java/fi/tkgwf/ruuvi/common/parser/impl/DataFormat5Parser.javaDas muss ich jetzt nur noch übernehmen...
-
@alexhk Kannst du bitte mal Version 0.8.4 probieren?
-
Hab ich gemacht und voila wir haben Daten, siehe Bild : ) Many thanks!
Was mir noch auffällt:
- Ich muss Settings/"Allow creation of devices without service data" selektieren, sonst kommt nichts an.
- Sollten die RuuviTags mit Namen auftauchen in Objects? Ich hatte vor ein paar Tagen ein Tutorial gesehen, da war z.B. der Xiaomi Flower Sensor mit dem namen "Flower Care" gelistet. Im Source hatte ich auch gesehen, dass du den Name und Description setzt (Zeile 17).
- Ich hatte heute Morgen nach ein paar Stunden Abwesenheit 300+ Mac Adressen in Objects, gäbe es eine Möglichkeit irgendwo einen Filter zu Erstellen (oder eine Whitelist) damit alles was nicht von Interesse ist ignoriert wird? Oder ist dafür Settings/"Monitored services, * for all services" gedacht?
Hier noch ein oder zwei Minuten mit Debug Log:
https://pastebin.com/fGysUQBQNochmals Danke!
-
@alexhk sagte in BLE Adapter / Ruuvi-Tag:
Ich muss Settings/"Allow creation of devices without service data" selektieren, sonst kommt nichts an.
Ok das ist scheiße weil dann dein Problem 3 auftritt. Nehm den Haken mal raus, ich muss da noch ne Kleinigkeit ändern...
-
@alexhk In Version 0.9.0 sollte es jetzt auch ohne den Haken funktionieren. Und die Tags werden standardmäßig "Ruuvi Tag" genannt. Der FlowerCare sendet selbst einen Namen, daher ist das dort nicht nötig.
-
@AlCalzone Ist installiert und funktioniert. Das geht ja richtig flott bei dir!
Den Haken bei "Allow creation of devices without service data" habe ich raus, aber es tauchen doch noch andere Devices auf (ich kenne mich bei BLE nicht wirklich aus, also habe keine Ahnung was so gehoert und was nicht):
Ich werde die Tage mal meine Logik zum Laufen bringen (z.B. Kühlung an bei Temp > x) und dann bei Gelegenheit im Ruuvi Forum posten, dass sich die Leute ioBroker mal ansehen sollen.
-
@alexhk sagte in BLE Adapter / Ruuvi-Tag:
aber es tauchen doch noch andere Devices auf
Kannst du die bitte mal aufklappen? Evtl muss ich noch eine Möglichkeit einbauen, dass ohne "echtes" Plugin kein Fallback auf den Standard-Parser erfolgt.
-
@AlCalzone Hier mal eben neu gestartet. manufacturerData scheint es wohl bei den meisten zu geben (zumindest bei den zwei die gleich aufgetaucht sind - ich lass mal laufen).
-
@AlCalzone Danke für dein Ruuvi Plugin (bin gerade auf der 0.11). Leider kann ich es nicht so konfigurieren, dass nur die Ruuvis verarbeitetn werden. Wenn ich bei Dienste * eingebe, funktioniert die Datenübertragung, aber dann laufen ca. 600 Ereignisse durch.
Die UUID habe ich von: ble.0.c0:fe:1c:62:36:53.services.manufacturerDataHier noch das Log:
-
@kru Kannst du nicht einfach Dienste leer lassen?
-
@AlCalzone Wenn ich die Dienste leer lasse, bekomme ich keine Daten.
-
@kru Ok muss ich checken. Das liegt wohl daran, dass die empfangenen Werte in manufacturerData stehen. Kannst du mir mal ein Log auf level "debug" erstellen? Bitte mit leerer Dienste-Liste.
-
@AlCalzone Dankeschön
Ich bin auf der Firmware 2.5.9 der Ruuvi-Tags (https://github.com/ruuvi/ruuvitag_fw/releases) -> RAWv2Edit: Habe gerade einen mit der Firmware 1.0.1 getestet. Der wurde gleich erkannt (evtl. liegt es am nicht mehr vorhandenen URL-mode)
Hier der Log unter 2.5.9:ble.0 2020-03-31 18:12:50.574 debug (2288) system.adapter.admin.0: logging true
ble.0 2020-03-31 18:10:59.093 debug (2288) system.adapter.admin.0: logging false
ble.0 2020-03-31 18:08:49.402 info (2288) starting scan for services ["feaa"]
ble.0 2020-03-31 18:08:49.246 info (2288) monitored services: feaa
ble.0 2020-03-31 18:08:49.245 info (2288) enabled plugins: ruuvi-tag, _default
ble.0 2020-03-31 18:08:49.244 info (2288) loaded plugins: Xiaomi, mi-flora, ruuvi-tag, _default
ble.0 2020-03-31 18:08:49.168 info (2288) starting. Version 0.10.1 in /opt/iobroker/node_modules/iobroker.ble, node: v10.19.0
ble.0 2020-03-31 18:08:48.720 debug (2288) statesDB connected
ble.0 2020-03-31 18:08:48.719 debug (2288) States connected to redis: 127.0.0.1:9000
ble.0 2020-03-31 18:08:48.713 debug (2288) States create System PubSub Client
ble.0 2020-03-31 18:08:48.710 debug (2288) States create User PubSub Client
ble.0 2020-03-31 18:08:48.705 debug (2288) Redis States: Use Redis connection: 127.0.0.1:9000
ble.0 2020-03-31 18:08:48.702 debug (2288) objectDB connected
ble.0 2020-03-31 18:08:48.695 debug (2288) Objects connected to redis: 127.0.0.1:9001
ble.0 2020-03-31 18:08:48.684 debug (2288) Objects client initialize lua scripts
ble.0 2020-03-31 18:08:48.683 debug (2288) Objects create User PubSub Client
ble.0 2020-03-31 18:08:48.682 debug (2288) Objects create System PubSub Client
ble.0 2020-03-31 18:08:48.677 debug (2288) Objects client ready ... initialize now
ble.0 2020-03-31 18:08:48.640 debug (2288) Redis Objects: Use Redis connection: 127.0.0.1:9001
host.smarthome 2020-03-31 18:08:47.671 info instance system.adapter.ble.0 started with pid 2288Eventuell hilft das weiter: https://github.com/ruuvi/ruuvi-sensor-protocols