Autor Thema: [74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer  (Gelesen 56687 mal)

Offline t1me2die

  • Full Member
  • ***
  • Beiträge: 467
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #885 am: 17 Oktober 2019, 14:58:15 »
So ganz glücklich stimmt mich das leider noch nicht.
Zwar bekomme ich nun die Werte komfortable aus dem Scan, jedoch ist es viel mehr eine Glückssache, ob der scan das jeweilige Device gerade empfängt bzw. das Device aktuell sendet.

Viel zu oft endet die Routine mit einem Timeout, weil das Device im Scan einfach nicht gefunden wurde.

Aber hey, ich habe ganz viel über die einzelnen Module gelernt.
Wie man mit readingsSingleUpdate ein Reading schreibt (bisher kannte ich nur setreading  ;D), BlockingCall, BlockingKill, ...
Wie meine neue "Set" oder "Get" hinzufügt und bearbeitet, wie man ein Device wieder löscht usw.

Aktuell habe ich mir "bluepy" angeschaut, dieses wird in anderen Projekten verwendet, jedoch konnte ich bisher aus deren "Liste" meine Werte (18,8Grad und 73% Luftfeuchtigkeit) nicht finden.
root@raspberrypi:/usr/local/lib/python3.5/dist-packages/bluepy# python btle.py E7:2E:00:E2:74:D6
Connecting to: E7:2E:00:E2:74:D6, address type: public
Service <uuid=Generic Access handleStart=1 handleEnd=5> :
    Characteristic <Device Name>, hnd=0x2, supports READ
    -> 'LYWSD02'
    Characteristic <Appearance>, hnd=0x4, supports READ
    -> '\x00\x00'
Service <uuid=fef5 handleStart=25 handleEnd=44> :
    Characteristic <8082caa8-41a6-4021-91c6-56f9b954cc34>, hnd=0x1a, supports READ WRITE
    -> ''
    Characteristic <724249f0-5ec3-4b5f-8804-42345af08651>, hnd=0x1c, supports READ WRITE
    -> ''
    Characteristic <6c53db25-47a1-45fe-a022-7c92fb334fd4>, hnd=0x1e, supports READ
    -> ''
    Characteristic <9d84b9a3-000c-49d8-9183-855b673fda31>, hnd=0x20, supports READ WRITE
    -> ''
    Characteristic <457871e8-d516-4ca1-9116-57d0b17b9cb2>, hnd=0x22, supports READ WRITE NO RESPONSE WRITE
    -> ''
    Characteristic <5f78df94-798c-46f5-990a-b3eb6a065c88>, hnd=0x24, supports NOTIFY READ
    -> '\x00'
    Characteristic <64b4e8b5-0de5-401b-a21d-acc8db3b913a>, hnd=0x27, supports READ
    -> '\r'
    Characteristic <42c3dfdd-77be-4d9c-8454-8f875267fb3b>, hnd=0x29, supports READ
    -> '\xf4\x00'
    Characteristic <b7de1eea-823d-43bb-a3af-c4903dfce23c>, hnd=0x2b, supports READ
    -> '\x17\x00'
Service <uuid=fe95 handleStart=97 handleEnd=114> :
    Characteristic <0001>, hnd=0x62, supports NOTIFY WRITE
    Characteristic <0002>, hnd=0x65, supports READ
    -> '[\x04'
    Characteristic <0004>, hnd=0x67, supports READ
    -> '\xf7.\\R\xa6OFl\x1b/'
    Characteristic <0005>, hnd=0x69, supports NOTIFY WRITE
    Characteristic <0010>, hnd=0x6c, supports WRITE
    Characteristic <0013>, hnd=0x6e, supports READ WRITE
    -> '\xc6b\x01\x08\xba#Xm\x1ep\x1c\xe2)\xf8\xae\xc1\x90F\xe5\xc1'
    Characteristic <0014>, hnd=0x70, supports READ
    -> '\xeb\x1e\xe0\xbd\xe9\x96\x1eUW\xa6\x12\xc6'
Service <uuid=Generic Attribute handleStart=6 handleEnd=9> :
    Characteristic <Service Changed>, hnd=0x7, supports READ INDICATE
    -> '\x01\x00\xff\xff'
Service <uuid=ebe0ccb0-7a0a-4b0c-8a1a-6ff2997da3a6 handleStart=60 handleEnd=90> :
    Characteristic <ebe0ccb7-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x3d, supports READ WRITE NO RESPONSE WRITE
    -> '\xe1d\xa8]\x02'
    Characteristic <ebe0ccb9-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x3f, supports READ
    -> '\xf7\x01\x00\x00\xf8\x01\x00\x00'
    Characteristic <ebe0ccba-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x41, supports READ WRITE NO RESPONSE WRITE
    -> '\xb5\x01\x00\x00'
    Characteristic <ebe0ccbb-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x43, supports READ
    -> '\x00\x00\x00\x00\xa0\xdbS]\xf1\n;\xe6\n;\x00\x00'
    Characteristic <ebe0ccbc-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x45, supports NOTIFY READ
    -> ''
    Characteristic <ebe0ccbe-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x48, supports READ WRITE NO RESPONSE WRITE
    -> '\xff'
    Characteristic <ebe0ccc1-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x4a, supports NOTIFY READ
    -> ''
    Characteristic <ebe0ccc2-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x4d, supports READ WRITE NO RESPONSE WRITE
    -> '\x9b'
    Characteristic <ebe0ccc3-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x4f, supports READ WRITE NO RESPONSE WRITE
    -> '\x00\xff\x00\xff\x00\xff'
    Characteristic <ebe0ccc4-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x51, supports READ
    -> '%'
    Characteristic <ebe0ccc8-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x53, supports WRITE NO RESPONSE WRITE
    Characteristic <ebe0ccd2-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x55, supports READ WRITE NO RESPONSE WRITE
    -> '\n7198238426'
    Characteristic <ebe0ccd3-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x57, supports READ WRITE NO RESPONSE WRITE
    -> '\x00'
    Characteristic <ebe0ccd4-7a0a-4b0c-8a1a-6ff2997da3a6>, hnd=0x59, supports WRITE NO RESPONSE WRITE
Service <uuid=2b43ccc0-2506-415c-a16c-e4cc5f52ef78 handleStart=45 handleEnd=59> :
    Characteristic <2b43ccc1-2506-415c-a16c-e4cc5f52ef78>, hnd=0x2e, supports READ
    -> '\xfe\xfe\xfe\xfe\xfe\xfe'
    Characteristic <2b43ccc2-2506-415c-a16c-e4cc5f52ef78>, hnd=0x30, supports NOTIFY WRITE NO RESPONSE WRITE
    Characteristic <2b43ccc3-2506-415c-a16c-e4cc5f52ef78>, hnd=0x33, supports WRITE NO RESPONSE WRITE
    Characteristic <2b43ccc4-2506-415c-a16c-e4cc5f52ef78>, hnd=0x35, supports WRITE NO RESPONSE WRITE
    Characteristic <2b43ccc5-2506-415c-a16c-e4cc5f52ef78>, hnd=0x37, supports NOTIFY
    Characteristic <2b43ccc6-2506-415c-a16c-e4cc5f52ef78>, hnd=0x3a, supports WRITE NO RESPONSE WRITE
Service <uuid=Device Information handleStart=10 handleEnd=24> :
    Characteristic <Manufacturer Name String>, hnd=0xb, supports READ
    -> 'miaomiaoce.com'
    Characteristic <Model Number String>, hnd=0xd, supports READ
    -> 'LYWSD02'
    Characteristic <Serial Number String>, hnd=0xf, supports READ
    -> 'F200FFFF036430515D'
    Characteristic <Hardware Revision String>, hnd=0x11, supports READ
    -> 'F2_WF'
    Characteristic <Firmware Revision String>, hnd=0x13, supports READ
    -> '1.1.2_0042'
    Characteristic <Software Revision String>, hnd=0x15, supports READ
    -> '0042'
    Characteristic <System ID>, hnd=0x17, supports READ
    -> '\xd6t\xe2\x00.\xe7'
Service <uuid=fafafa00-fafa-fafa-fafa-fafafafafafa handleStart=94 handleEnd=96> :
    Characteristic <fafafa01-fafa-fafa-fafa-fafafafafafa>, hnd=0x5f, supports READ WRITE NO RESPONSE WRITE
    -> ''
Service <uuid=aaaaaaa0-aaaa-aaaa-aaaa-aaaaaaaaaaaa handleStart=91 handleEnd=93> :
    Characteristic <aaaaaaa1-aaaa-aaaa-aaaa-aaaaaaaaaaaa>, hnd=0x5c, supports READ WRITE NO RESPONSE WRITE
    -> ''


Falls du sie findest, lass es mich wissen, denn der Abruf via bluepy ist deutlich komfortable und auch viel performanter.

Gruß
« Letzte Änderung: 17 Oktober 2019, 15:01:46 von t1me2die »

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 22631
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #886 am: 17 Oktober 2019, 17:35:31 »
Hallo,

setreading ist ein FHEM Befehl und ruft auch nur die Perl Routine readingsSingleUpdate auf :-)
Du kannst Dir ja die fhem.pl an schauen. Da sind die Routinen alle drin.

bluepy ruft meines Wissens auch nur gatttool auf.


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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline t1me2die

  • Full Member
  • ***
  • Beiträge: 467
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #887 am: 18 Oktober 2019, 09:56:06 »
Moin,

wieder was dazu gelernt  :)
Also das "Modul" funktioniert soweit, mehr oder weniger  ;D
Wobei mir das auslesen der Werte über bluetoothctl wirklich gar nicht zusagt.
Die Uhrzeit kann ich "komfortable" per gatttool und einem handle auslesen.
Solange ich aber nicht weiß, ob ich noch auf einen anderen Weg an meine Werte komme, muss das so erstmal laufen.
Anfangs stand ich auch vor dem Problem, dass der User fhem keine Berechtigung hatte um "bluetoothctl" auszuführen...
Nun muss ich aber erstmal das Modul aufräumen. Viele Log-Meldungen habe ich mir gebastelt und an einigen Stellen weiß ich schon selber, dass das alles nicht ganz rund ist.
Ich bin aber immer etwas ungeduldig und möchte schnell irgendein Resultat sehen, dass verleitet leider zu "dummen" Quellcode... Muss man üben  :)
Ansonsten muss ich mal wirklich das DevelopmentModuleIntro loben, ziemlich tolle Funktionen, die man Standardmäßig nutzen kann!

Internals:
   BTMAC      E7:2E:00:E2:74:D6
   CFGFN     
   DEF        E7:2E:00:E2:74:D6
   FUUID      5da96bdb-f33f-5bc8-2f02-2c9317f0abd6372b
   INTERVAL   300
   NAME       wz_Xiaomi_eInk
   NOTIFYDEV  global,wz_Xiaomi_eInk
   NR         2055
   NTFY_ORDER 50-wz_Xiaomi_eInk
   STATE      T: 18.8 H: 74
   TYPE       XiaomiEInk
   VERSION    v0.0.2
   loglevel   4
   READINGS:
     2019-10-18 09:43:08   clock           18.10.2019-09.43.10
     2019-10-18 09:44:59   humidity        74
     2019-10-18 09:44:59   job             done
     2019-10-18 09:38:52   model           LYWSD02
     2019-10-18 09:44:59   state           T: 18.8 H: 74
     2019-10-18 09:40:05   temperature     18.8
   helper:
Attributes:
   room       XiaomiEInk

PS.: Falls jemand einen Xiaomi LYWSD02 (eInk Display mit Humidity + Temp + Clock) haben sollte und das Modul testen möchte, kann er sich gerne bei mir melden  :)

Gruß
Mathze
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline t1me2die

  • Full Member
  • ***
  • Beiträge: 467
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #888 am: 04 November 2019, 13:19:35 »
Mal eine kurze Rückmeldung meinerseits.
Etwas Zeit ist vergangen, der Xiaomi ClearGrass Sensor läuft gewohnt gut.
Temperatur und Luftfeuchtigkeit passen.
Für BatteryPercent lege ich meine Hand nicht ins Feuer (bei mir könnte es passen).

Ich denke du kannst es ins SVN einchecken, falls noch nicht geschehen (ich hab es ja nicht so mit regelmäßigen Updates  ;D )

Gruß
Mathze

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 22631
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #889 am: 04 November 2019, 13:48:37 »
Mal eine kurze Rückmeldung meinerseits.
Etwas Zeit ist vergangen, der Xiaomi ClearGrass Sensor läuft gewohnt gut.
Temperatur und Luftfeuchtigkeit passen.
Für BatteryPercent lege ich meine Hand nicht ins Feuer (bei mir könnte es passen).

Ich denke du kannst es ins SVN einchecken, falls noch nicht geschehen (ich hab es ja nicht so mit regelmäßigen Updates  ;D )

Gruß
Mathze

Du machst mir ja Spaß  ;D
Erstmal ist es ein komplett neues/anderes Modul, dazu kommt das es DEIN Modul ist.
Vorgehensweise wäre also. Neuen Thread und da Dein Modul vorstellen, 2-3 Leute sollten es testen und entsprechendes Feedback geben und Du musst zu mindest eine englische Commandref erstellen.
Zum Abschluß schaut ein erfahrender Developer noch einmal über den Code.
Dann kannst Du einchecken.

Ich würde Dir empfehlen das Du erstmal Dein Modul in einem separaten Thread vor stellst. Kannst ja das Modul als Anhang anhängen oder ein Verweis auf eine entsprechende Seite (Github oder so) machen.
Gerne schaue ich dann schon mal über den Code.

Das alles sollte Dich aber bitte jetzt nicht von weiteren Schritten ab halten. Ich finde es bemerkenswert und sehr toll was Du hier in kurzer Zeit geschaffen hast.
Kannst ja in diesem Thread dann ein Link auf DEINEN eigenen neuen Thread setzen.


Grüße
Leon
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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline t1me2die

  • Full Member
  • ***
  • Beiträge: 467
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #890 am: 04 November 2019, 14:51:54 »
Moin Leon,

es geht gar nicht um das Xiaomi LYWSD02, sondern um den Xiaomi ClearGrass, den du ja in deinem Modul integriert hast.
Ich wollte Dir nur noch einmal ein Feedback geben, dass der ClearGrass mit deiner letzten Version aus dem Github (https://github.com/fhem/XiaomiBTLESens/blob/devel/74_XiaomiBTLESens.pm) gut läuft und die Daten (Temp + Hum) korrekt in FHEM dargestellt werden.

Gruß
Mathze

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 22631
Antw:[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer
« Antwort #891 am: 04 November 2019, 15:01:55 »
Moin Leon,

es geht gar nicht um das Xiaomi LYWSD02, sondern um den Xiaomi ClearGrass, den du ja in deinem Modul integriert hast.
Ich wollte Dir nur noch einmal ein Feedback geben, dass der ClearGrass mit deiner letzten Version aus dem Github (https://github.com/fhem/XiaomiBTLESens/blob/devel/74_XiaomiBTLESens.pm) gut läuft und die Daten (Temp + Hum) korrekt in FHEM dargestellt werden.

Gruß
Mathze

Ups, Sorry mein Fehler. Alles klar. Ich danke Dir.


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://paypal.me/pools/c/8gULisr9BT
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline Holzlenkrad

  • New Member
  • *
  • Beiträge: 27
Ich habe weiterhin das Problem, dass nach einiger Nutzungsdauer (mal mehrere Wochen, jetzt nach nur 2 Tagen), die Kommunikation zwischen Thermometer und Modul nicht mehr funktioniert.

Fehlermeldung ist dann: no data response
Im Logfile steht sonst nichts. Das Thermometer und mein Raspberry Pi 3 sind im selben Raum.

Das Problem kann ich jedes Mal mit einem Neustart von Linux beheben.


Nun interessiert mich ja nun generell mal, wie ich das Problem beheben kann? Und falls es da keine einfach Lösung gibt, gibt es eine Möglichkeit die Bluetooth Schnittstelle (automatisiert, regelmäßig) neuzustarten, damit ich nicht jedes Mal den Raspberry Pi auf dem ja nun eine ganze Menge läuft rebooten muss?
Danke :) 

Offline Holzlenkrad

  • New Member
  • *
  • Beiträge: 27
Also ein sudo invoke-rc.d bluetooth restart fixt es vorübergehend schon mal.
Werde das mal als täglichen Chronjob einrichten?

 

decade-submarginal