NEWS
Xiaomi Mi Pflanzensensor
-
Ich habe (bishr noch vergeblich) versucht heraus zu finden, wie die Plugins aufgebaut sind.
Ich habe nämlich eine Waage, die der BLE-Adapter auch findet. Wäre lustig, wenn ich die auch auslesen könnte. `
Das muss ich mal besser dokumentieren. Eine Erklärung findet sich zum Teil hier: https://github.com/AlCalzone/ioBroker.b … /plugin.ts
Die Plugin-Module exportieren ein Objekt vom Typ Plugin mit folgenden Eigenschaften:
-
name: Name des Plugins (wird im Konfig-Dialog eingegeben)
-
description: Beschreibung des Plugins (aktuell nicht verwendet, wird in Zukunft im Konfig-Dialog angezeigt)
-
advertisedServices: String-Array der Services, auf die gelauscht werden soll
-
isHandling: Funktion, die ein https://github.com/AlCalzone/ioBroker.ble/blob/master/src/lib/ble.d.ts übergeben bekommt und anhand dessen prüft, ob das Plugin überhaupt zuständig ist. Im einfachsten Fall geht das nach der Mac-Adresse (Xiaomi), andernfalls muss man z.B. prüfen, ob das Plugin mit den Daten was anfangen kann (ruuvi-tag).
-
createContext: Funktion, die ebenfalls ein BLE peripheral übergeben bekommt (nur wenn das Plugin zuständig ist). Der Rückgabewert wird 1:1 an die nächsten Funktionen übergeben, hier sollte also die Auswertung der empfangenen Daten stattfinden.
-
defineObjects: Funktion, die den eben erstellten Kontext erhält und zurückgibt, welche Objekte in der Struktur erstellt werden sollen. Siehe https://github.com/AlCalzone/ioBroker.b … gin.ts#L11
interface PeripheralObjectStructure { /** * How the device object should look like. * May be null if the plugin knows that the object exists. */ device: DeviceObjectDefinition; /** * Which channels to create. * May be null if the plugin knows that the objects exist or none should be created. */ channels: ChannelObjectDefinition[]; /** * Which states to create. * May be null if the plugin knows that the objects exist. */ states: StateObjectDefinition[]; }
Die xyzObjectDefinitions sind wiederum Objekte, die common und native der ioBroker-Objekte enthalten - für channel und state auch die ID. Z.B.: für einen State:
{ id: "temperature", common: { role: "value", name: "Temperature", type: "number", unit: "°C", read: true, write: false, }, native: null, }
Es müssen nicht immer alle State-Objekte enthalten sein, z.B. wenn das Gerät die Advertisements rotiert.
-
getValues: Funktion, die ebenfalls den Kontext erhält und eine Auflistung der Werte zurück gibt, die in ioBroker gesetzt werden sollen. Wobei der Key gleich der ID des State-Objekts entspricht. Z.B.:
{ temperature: 19.7, // für ble.0.aa:bb:cc:dd:ee:ff.<deviceid>.<channelid>.temperature humidity: 50.7 }</channelid></deviceid>
-
-
Kurze Rückmeldung meinerseits, die daten werden nun nach dem history update alle ordentlich geloggt, danke nochmal..
-
hilfe…
Ich bekomme seit gestern unmengen an Geräten in die Liste
(und das sind nur ein paar von ca. 80)Vom RSSI-Signal (-55) müssten die alle um mi9ch gerum sein.
Das kann doch aber gar nicht sein
Beispielhaft mal Raw-Daten von einem "Fang"
Hier die Einstellung des Adapters:
Hat jemand eine Idee, warum das sein kann?
Die MAC-Adressen kann ich gar nicht zuordnen. Auch nicht aus Quellen im Internet
-
Irgendwie spinnt die Funktion mit den Dateianhängen. Zuerst werden welche gelöscht, dann sinnd sie mehrfach drin.
Sorry. Ich hoffe aber, es ist verständlich
-
Ich vermute das * bei "überwachte Dienste" muss raus?
Ich habe das so verstanden, dass dann alles in der Nähe erfasst wird.
Bei meinem BLE Skript konnte ich beobachten, dass die Apple Geräte (MacBook, usw.) immer wieder die MAC der Bluetooth Schnittstelle geändert hatten und dann mehrmals auftauchten. Ich habe die Dienste im Skript dann auf eine Blacklist gesetzt.
Hast Du zufälligerweise ein MacBook oder iMac?
Würde ggf. erklären, warum der rssi Wert immer gleich oder ähnlich ist.
Nur ein Erklärungsversuch. Kann auch komplett daneben liegen :mrgreen:
-
Muss nicht einfach nur das Häkchen raus
-
Muss nicht einfach nur das Häkchen raus `
Jawohl. Kein Häkchen bei "Erfassen von Geräten ohne service data", sonst wird jeder Sch*** geloggt
Das hab ich eingebaut, weil irgendwer ne reine Anwesenheitsprüfung seiner Geräte wollte.
-
ok. Habe ich mir fast geacht.
Ich war nur verwundert, dass da überall auch "service" Einträge drin standen.
Und: Wie kann es sein, dass Geräte ständig andere MAC-Adressen senden?
-
denke eher das es andere Geräte
-
Ich war nur verwundert, dass da überall auch "service" Einträge drin standen. `
Bei Bluetooth Low Energy sind die Informationen, die ausgetauscht werden, nach Services und dann weiter nach Characteristics untergliedert. Zudem besteht die Möglichkeit, die Daten einzelner Services aktiv zu broadcasten über sogenannte Advertisements, die aus einer Service UUID und serviceData bestehen. Nur diese Advertisements kann der Adapter bisher auswerten. -
@lalalalala:Heute kamen drei weitere Sensoren an. Wollte die nun auch in ioBroker einbinden aber leider bekomme ich keine Werte.
Die Datenpunkte sind angelegt worden.
Der BLE Adapter hat die Version 0.5.2 und die Sensoren 2.7.0
Hatte von euch jemand schon mal das Problem?
Edit: Ich sehe gerade meine anderen zwei Sensoren haben die Version 3.1.8
Aber bei den neuen kommt überhaupt keine Meldung, dass es eine neuere Version gibt. `
Hat niemand das Problem?
-
Nein, da ich nur einen Sensor habe. Wie immer kann ein Debug-Log helfen bei der Fehlersuche.
-
Da kommen keine Fehlermeldungen. Die Sensoren finde ich ja. Also es wurden Datenpunkte angelegt und der RSSI Wert ändert sich ständig. Daher kann ich ja davon ausgehen, dass der Empfang besteht.
Ich vermute, dass es eher an der Version der Firmware liegt. Nur Frage ich mich, wieso ich diese nicht aktualisieren kann.
Was für eine Firmware hast du drauf?
-
@lalalalala:Da kommen keine Fehlermeldungen. Die Sensoren finde ich ja. Also es wurden Datenpunkte angelegt und der RSSI Wert ändert sich ständig. Daher kann ich ja davon ausgehen, dass der Empfang besteht.
Ich vermute, dass es eher an der Version der Firmware liegt. Nur Frage ich mich, wieso ich diese nicht aktualisieren kann.
Was für eine Firmware hast du drauf? `
ich denke, es geht nicht um die Fehlermeldungen, sondern um die DEBUG Logs.
Hast Du den Adapter unter Instanzen auf Debug gestellt (im Expertenmodus)?
-
` > ble.0 2018-04-10 07:10:32.014 debug xiaomi >> Use its app to complete the initialization.
ble.0 2018-04-10 07:10:32.013 debug xiaomi >> The device is not fully initialized.
ble.0 2018-04-10 07:10:32.012 debug xiaomi >> got data: 310298000f3312668d7cc40d `
Das kommt dann immer wieder. Aber mit der App bekomme ich ja die Daten
-
@lalalalala:` > ble.0 2018-04-10 07:10:32.014 debug xiaomi >> Use its app to complete the initialization.
ble.0 2018-04-10 07:10:32.013 debug xiaomi >> The device is not fully initialized.
ble.0 2018-04-10 07:10:32.012 debug xiaomi >> got data: 310298000f3312668d7cc40d `
Das kommt dann immer wieder. Aber mit der App bekomme ich ja die Daten ` Hast du sie auch über die flower Care app eingebunden? Erst danach haben sie bei mir funktioniert
Gesendet von meinem Handy
-
@lalalalala:` > ble.0 2018-04-10 07:10:32.014 debug xiaomi >> Use its app to complete the initialization.
ble.0 2018-04-10 07:10:32.013 debug xiaomi >> The device is not fully initialized.
ble.0 2018-04-10 07:10:32.012 debug xiaomi >> got data: 310298000f3312668d7cc40d `
Das kommt dann immer wieder. Aber mit der App bekomme ich ja die Daten ` Hast du sie auch über die flower Care app eingebunden? Erst danach haben sie bei mir funktioniert
Gesendet von meinem Handy `
Ja, habe ich. Und gerade nochmal gelöscht und neu suchen lassen aber hat sich nichts verändert.
Besitze noch zwei andere Sensoren (2 Monate älter), die einwandfrei funktionieren. Allerdings haben die ja eine neuere Firmware, wie die neuen Sensoren.
-
Ich hab soeben das Problem lösen können!
Mit der Flower Care App für Android hat er das notwendige Update erkannt. Und nun bekomme ich die Werte in ioBroker.
Danke an alle!
-
Hallo liebe leute
Ich habe mir auch einen pflanzensensor zugelegt habe diesen mit der App auf die neueste Software gebracht den BLE Adapter installiert auch auf neueste Version da auf latest steht.
Im Adapter selber die nötigen Einstellungen gemacht. Leider wird mir dann unter Objekte immer nur die Empfangsstärke von -77 angezeigt bei den anderen Zeilen werden keine Werte hinterlegt woran könnte das liegen?
-
Im Adapter selber die nötigen Einstellungen gemacht. Leider wird mir dann unter Objekte immer nur die Empfangsstärke von -77 angezeigt bei den anderen Zeilen werden keine Werte hinterlegt woran könnte das liegen? `
Habe leider immer noch keine Glaskugel…Bitte Screenshot von der Konfiguration hier einstellen, den Adapter auf Logstufe "debug" stellen und Logauszug ebenfalls posten.