[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer

Begonnen von CoolTux, 11 Januar 2018, 15:42:45

Vorheriges Thema - Nächstes Thema

t1me2die

Moin Leon,

ich brauch mal deinen Rat.
Als ich eben nach Hause kam, wollte ich direkt die Werte vergleichen.
Der handle 0x1e spuckte nun aber einen ganz anderen Wert aus, ich war total verwirrt.


gatttool -b 58:2D:34:10:4C:FA --char-read --handle=0x1e
Characteristic value/desriptor: 05


Nachdem ich die Mijia App auf meinem iPhone geöffnet habe, lieferte derselbe handle folgendes Ergebnis:

gatttool -b 58:2D:34:10:4C:FA --char-read --handle=0x1e
Characteristic value/desriptor: 05 08 b4 00 5e 02


Daraus konnte ich tatsächlich die korrekte Temperatur ermitteln.
Nun aber meine Frage, warum liefert mir der handle unterschiedliche Ergebnisse?
Bzw. erst nach einem Connect mit der App waren die Werte korrekt.
Hast du evtl. einen Tipp für mich?

Die Luftfeuchtigkeit ist leider verkehrt, diese muss ich weiter suchen  :)

Gruß
Mathze

CoolTux

Wenn ich raten müsste würde ich sagen das man erst ein write eines bestimmten Wertes machen muss um dann beim read korrekte Daten zu bekommen. So ist es bei den Flowersense ja auch und ich habe auch einige Hinweise dazu im Netz gefunden gehabt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

t1me2die

Moin Leon, so etwas habe ich schon fast vermutet  :-\
Das muss ich dann weiter beobachten und testen.

Temperatur und Luftfeuchtigkeit habe ich nun aber augenscheinlich raus.
Bin schon etwas stolz auf mich  8)

Morgen mache ich weiter!

Gruß
Mathze

CoolTux

Kannst Du auch sein. Ich schaue auch hin und wieder ob ich noch was finde. Aber Du bekommst die Werte nur wenn Du Dich vorher mit der App verbunden hast?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

t1me2die

Nein, als ich heute Vormittag / Mittag getestet habe bzw. deinen Code angepasst habe, habe / musste ich mich nicht mit der App verbinden. Erst als ich heute Abend Heim kam, war das Ergebnis vom handle ein anderer als heute Vormittag / Mittag.
Nachdem ich die App geöffnet hatte, war der handle, wie ich ihn heute Vormittag / Mittag kannte.
Ich warte nun ab, bis der handle wieder unbrauchbar wird und dann schaue ich wie ich ihn wieder ,,leserlich" bekomme, ohne die App zu öffnen.

t1me2die

Moin Leon,
bisher läuft die clearGrassSens Routine gut.
Die Ermittlung von Temperatur und Luftfeuchtigkeit passt.

Bisher passt der handle auch. Ich habe mich seit gestern Abend nicht mit der App / Sensor verbunden, die Werte / handle ist weiterhin wie gewünscht vorhanden ohne das ich ein write o.ä. machen musste.
Ich werde das nun weiter beobachten, evtl. kann man dann etwas ableiten.

Bzgl. des battery-Readings habe ich leider noch keine Idee.
Im Display werden 4 von 5 Balken angezeigt, aber was heißt das?
Irgendwas zwischen 60-80%? In der App habe ich leider keine Information gefunden, wieviel % die Batterie noch hat.
Hier heißt es abwarten, bis sich der Wert mal verändert bzw. ein weiterer Balken weggeht.
Der battery-Wert ist in meinen Augen auch nicht so wichtig, wobei es schön wäre, wenn dieser auch korrekt wäre.

Ich habe hier noch ein weiteres Xiaomi e-Ink Display liegen.
Modell: LYWSD02
Technologie: BTLE

Ich werde mal schauen, ob ich dort auch Informationen herausgekitzelt bekomme.
Sozusagen Zeit vertreiben, bis sich der Batteriestand verändert.
Alternativ könnte ich mal eine frische / nagelneue Batterie einsetzen, dann sollte ich irgendwo in den handles einen Hex Wert von 64 finden, was decimal dann 100, sprich 100% bedeuten würde  :)

Das war es erst einmal von meiner Seite, danke für's Zuhören!  :)

Gruß
Mathze

PS.: Vielleicht gibt es ja hier den Ein oder Anderen, der auch einen clearGrassSensor hat, welchen er gerne mal "auslesen" würde?!

CoolTux

Das klingt doch alles super. Ich werde hoffentlich das ganze die Tage in Code gießen können und dann werden wir ja sehen wie sauber es läuft.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe mal eben etwas genauer hin geschaut. Das mit dem Write ist Blödsinn. Wir machen ja schon ein write wie bei den thermoHygroSens und bekomme dann als Antwort darauf ein Ergebnis String
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ah jetzt verstehe ich. Du machst doch nur ein read hast es aber im Hash als wdata unter gebracht.  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

t1me2die

Ja, ich mache nur ein read!
Ich hatte es so verstanden, dass bei den anderen Sensoren erst ein write gemacht werden muss, um gewisse Informationen zu erhalten.
Dieser write müsste ja aber nur einmal gemacht werden und nicht jedes Mal, daher dachte ich, dass dieser write notwendig ist um das Gerät "aufzuwecken".
So war meine Annahme!

Wie gesagt, Perl-Anfänger, falls ich also irgendwo bösen Mist verzapft habe und gegen jegliche Logik programmiert habe, müsstest du mir das sagen, weil ich es Stand-Heute einfach nicht besser kann / weiß  ::)

AHHH!
wdata = write.data
rdata = read.data...
OKAY!... In so einem Fall hätte ich mir einen Kommentar gewünscht  ;D

Gut, mit diesem Wissenstand habe ich nun das Modul noch einmal angepasst.

CoolTux

Beim FlowerSens muss erst ein write gemacht werden damit Daten beim read kommen. Beim anderen wird gleich ein write gemacht weil das write als Antwort die entsprechenden Daten uns gibt.

Ich habe mal versucht ClearGrass ein zu binden. Hier mein erster Entwurf, magst Du bitte einmal testen.
https://github.com/fhem/XiaomiBTLESens


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

t1me2die

Zitat von: CoolTux am 11 Oktober 2019, 11:40:05
Beim FlowerSens muss erst ein write gemacht werden damit Daten beim read kommen. Beim anderen wird gleich ein write gemacht weil das write als Antwort die entsprechenden Daten uns gibt.

Ich habe mal versucht ClearGrass ein zu binden. Hier mein erster Entwurf, magst Du bitte einmal testen.
https://github.com/fhem/XiaomiBTLESens


Grüße

Bitte Statement 1115 durch folgendes ersetzen:

$readings{'humidity'}  = hex(substr($notification,11,1) .substr($notification,8,2))/10;


Gruß

CoolTux

Habe ich, kannst Du noch mal testen bitte.

Und zeig dann mal bitte ein list vom Device.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

t1me2die

Zitat von: CoolTux am 11 Oktober 2019, 12:04:40
Habe ich, kannst Du noch mal testen bitte.

Und zeig dann mal bitte ein list vom Device.

Ich bekomme beim Reload einen Fehler?!

"GP_Export" is not exported by the GPUtils module
Can't continue after import errors at ./FHEM/74_XiaomiBTLESens.pm line 42.
BEGIN failed--compilation aborted at ./FHEM/74_XiaomiBTLESens.pm line 42.


Der handle für den Batteriestand ist auch zu 100% nicht richtig, aber wie gesagt, da analysiere ich weiter!

CoolTux

Kann es sein das Dein FHEM nicht ganz aktuell ist. Also so locker 6 Monate alt?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net