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

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

Vorheriges Thema - Nächstes Thema

CoolTux

Dieses Modul löst das 74_XiaomiFlowerSens Modul ab. Das 74_XiaomiFlowerSens wird bestehen bleiben aber nicht weiter entwickelt.


Da das Modul nun mittlerweile so fortgeschritten ist, wollte ich dafür gerne einen eignen Threead auf machen.
Hier ein Auszug aus dem alten Thread, worum es eigentlich geht.

Ein großer Dank geht an fh168 und ZnarfMe für die Spende eines Xiaomi Flower Monitors zum testen!

Zitat
wollte hier nur mal kurz einen weiteren Bluetooth 4.1 BLE Pflanzensensor (ca. 12 Euro) vorstellen, den ich ans fhem (Raspberry) angebunden habe. Bisher läuft alles einwandfrei. Mir gefällt besonders, dass man sich nirgends anmelden oder registrieren muss, um die Werte auslesen zu können.

http://xiaomi-mi.com/mi-smart-home/xiaomi-huahuacacao-flower-care-smart-monitor/


Der Sensor liefert folgende Werte:
- Temperatur
- Feuchtigkeit
- Licht
- Dünger

Voraussetzung zum betrieb des Modules ist JSON sowie gatttool aus dem bluez Packet.



Das Modul unterstützt seit neustem nun auch den Xiamomi Themometer/Hygrometer mit Display

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://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Eine aktuelle Entwicklerversion findet Ihr hier
Wobei diese Version für die FlowerSens Sensoren ja schon produktiv reif ist.
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

distel

Hallo,

ich hab die Funktion für das Setzen/Lesen des Devicename getestet:

Vorneweg: Es funktioniert.

Auslesen haut einwandfrei hin.
Schreiben eigentlich auch (zumindest landet im Device der richtige String).
Allerdings wird nach dem schreiben ein kryptischer Wert im Device angezeigt. Das wird auch so im Eventlog dargestellt. Vermutung: String wird von dir konvertiert (ASCII=>HEX) und dann der konvertierte String ausgegeben bzw. in das Device geschrieben.

2018-01-15 18:41:34 XiaomiBTLESens xbtle.temp.eg.fenster write devicename data
2018-01-15 18:41:41 XiaomiBTLESens xbtle.temp.eg.fenster devicename: x�ھɇ�
2018-01-15 18:41:41 XiaomiBTLESens xbtle.temp.eg.fenster active
...
2018-01-15 18:41:56 XiaomiBTLESens xbtle.temp.eg.fenster fetch devicename data
2018-01-15 18:42:02 XiaomiBTLESens xbtle.temp.eg.fenster devicename: MI_HT_V2
2018-01-15 18:42:02 XiaomiBTLESens xbtle.temp.eg.fenster active
2018-01-15 18:42:15 XiaomiBTLESens xbtle.temp.eg.fenster write devicename data
...
2018-01-15 18:42:20 XiaomiBTLESens xbtle.temp.eg.fenster devicename: x�ھɇ�
2018-01-15 18:42:20 XiaomiBTLESens xbtle.temp.eg.fenster active
2018-01-15 18:42:22 XiaomiBTLESens xbtle.temp.eg.fenster fetch devicename data
2018-01-15 18:42:22 XiaomiBTLESens xbtle.temp.eg.fenster devicename: MI_TEST1
2018-01-15 18:42:22 XiaomiBTLESens xbtle.temp.eg.fenster active


Log
2018.01.15 18:40:38 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - CallDeviceName: call function ExecGatttool_Run
2018.01.15 18:40:38 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.15 18:40:44 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 4a 5f 48 54 5f 56 31

2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 4a 5f 48 54 5f 56 31

2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 4a 5f 48 54 5f 56 31 "}
2018.01.15 18:40:44 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:40:44 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:41:00 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteDeviceName: call function ExecGatttool_Run
2018.01.15 18:41:00 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 48545f54455354 2>&1 /dev/null and loop 0
2018.01.15 18:41:11 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|4C:65:A8:D0:42:63|ok|write|0x3|{"gtResult":"no data response"}
2018.01.15 18:41:11 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:41:11 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:41:34 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteDeviceName: call function ExecGatttool_Run
2018.01.15 18:41:34 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 4d495f48545f5632 2>&1 /dev/null and loop 0
2018.01.15 18:41:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|4C:65:A8:D0:42:63|ok|write|0x3|{"gtResult":"no data response"}
2018.01.15 18:41:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:41:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:41:56 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - CallDeviceName: call function ExecGatttool_Run
2018.01.15 18:41:56 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.15 18:42:02 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 49 5f 48 54 5f 56 32

2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 49 5f 48 54 5f 56 32

2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 49 5f 48 54 5f 56 32 "}
2018.01.15 18:42:02 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:42:02 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:42:15 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteDeviceName: call function ExecGatttool_Run
2018.01.15 18:42:15 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 4d495f5445535431 2>&1 /dev/null and loop 0
2018.01.15 18:42:20 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|write|0x3|{"gtResult":"no data response"}
2018.01.15 18:42:20 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:42:20 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - CallDeviceName: call function ExecGatttool_Run
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 49 5f 54 45 53 54 31

2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 49 5f 54 45 53 54 31

2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 49 5f 54 45 53 54 31 "}
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

gent

Zitat von: CoolTux am 11 Januar 2018, 15:42:45
Das Modul unterstützt seit neustem nun auch den Xiamomi Themometer/Hygrometer mit Display

Hi Leon,

kannst Du mir bitte mitteilen, welchen genau? Da gibt's runde und eckige. Ist da was zu beachten?

Viele Grüße vom Gent
fhem auf rPi3 mit USB boot und M2, cul866 (hm), homebridge, FlowerSens, Shelly, Harmony, WemosD1, Sonoff/Tasmota, grafana, mqtt/mosquitto

distel

Das Runde. Zu beachten gibt es eigentlich nichts... ist halt noch relativ wenig getestet.
Das eckige ist m.W. nach auch OHNE Bluetooth, daher nicht einbindbar ;) [und auch noch nicht lieferbar?]
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

CoolTux

Zitat von: distel am 15 Januar 2018, 18:51:12
Hallo,

ich hab die Funktion für das Setzen/Lesen des Devicename getestet:

Vorneweg: Es funktioniert.

Auslesen haut einwandfrei hin.
Schreiben eigentlich auch (zumindest landet im Device der richtige String).
Allerdings wird nach dem schreiben ein kryptischer Wert im Device angezeigt. Das wird auch so im Eventlog dargestellt. Vermutung: String wird von dir konvertiert (ASCII=>HEX) und dann der konvertierte String ausgegeben bzw. in das Device geschrieben.

2018-01-15 18:41:34 XiaomiBTLESens xbtle.temp.eg.fenster write devicename data
2018-01-15 18:41:41 XiaomiBTLESens xbtle.temp.eg.fenster devicename: x�ھɇ�
2018-01-15 18:41:41 XiaomiBTLESens xbtle.temp.eg.fenster active
...
2018-01-15 18:41:56 XiaomiBTLESens xbtle.temp.eg.fenster fetch devicename data
2018-01-15 18:42:02 XiaomiBTLESens xbtle.temp.eg.fenster devicename: MI_HT_V2
2018-01-15 18:42:02 XiaomiBTLESens xbtle.temp.eg.fenster active
2018-01-15 18:42:15 XiaomiBTLESens xbtle.temp.eg.fenster write devicename data
...
2018-01-15 18:42:20 XiaomiBTLESens xbtle.temp.eg.fenster devicename: x�ھɇ�
2018-01-15 18:42:20 XiaomiBTLESens xbtle.temp.eg.fenster active
2018-01-15 18:42:22 XiaomiBTLESens xbtle.temp.eg.fenster fetch devicename data
2018-01-15 18:42:22 XiaomiBTLESens xbtle.temp.eg.fenster devicename: MI_TEST1
2018-01-15 18:42:22 XiaomiBTLESens xbtle.temp.eg.fenster active


Log
2018.01.15 18:40:38 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - CallDeviceName: call function ExecGatttool_Run
2018.01.15 18:40:38 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.15 18:40:44 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 4a 5f 48 54 5f 56 31

2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 4a 5f 48 54 5f 56 31

2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 4a 5f 48 54 5f 56 31 "}
2018.01.15 18:40:44 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:40:44 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:40:44 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:41:00 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteDeviceName: call function ExecGatttool_Run
2018.01.15 18:41:00 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 48545f54455354 2>&1 /dev/null and loop 0
2018.01.15 18:41:11 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|4C:65:A8:D0:42:63|ok|write|0x3|{"gtResult":"no data response"}
2018.01.15 18:41:11 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:41:11 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:41:11 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:41:34 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteDeviceName: call function ExecGatttool_Run
2018.01.15 18:41:34 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 4d495f48545f5632 2>&1 /dev/null and loop 0
2018.01.15 18:41:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|4C:65:A8:D0:42:63|ok|write|0x3|{"gtResult":"no data response"}
2018.01.15 18:41:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:41:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:41:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:41:56 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - CallDeviceName: call function ExecGatttool_Run
2018.01.15 18:41:56 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.15 18:42:02 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 49 5f 48 54 5f 56 32

2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 49 5f 48 54 5f 56 32

2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 49 5f 48 54 5f 56 32 "}
2018.01.15 18:42:02 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:42:02 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:42:02 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:42:15 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteDeviceName: call function ExecGatttool_Run
2018.01.15 18:42:15 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 4d495f5445535431 2>&1 /dev/null and loop 0
2018.01.15 18:42:20 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|write|0x3|{"gtResult":"no data response"}
2018.01.15 18:42:20 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:42:20 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:42:20 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - CallDeviceName: call function ExecGatttool_Run
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 49 5f 54 45 53 54 31

2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 49 5f 54 45 53 54 31

2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 49 5f 54 45 53 54 31 "}
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.15 18:42:22 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.15 18:42:22 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written


Das passt so schon. Ist nicht schlimm, ich muss da noch irgendwie ein Abbruch machen, da er write und read gleich behandelt. Er schreibt also bei write das Ergebnis als Reading und das ist nicht der Name sondern irgendwas. Ich schaue es mir an.



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

CoolTux

So es gibt nun eine neue Version. Ich habe ein großes Codecleanup gemacht und das Problem mit dem Devicenamen beim set Befehl sollte auch behoben sein. Ausserdem habe ich einen devicenamen Check gemacht so das Leerzeichen oder Sonderzeichen ersetzt werden.

Bitte einmal testen.
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

distel

Hallo,

klappt alles bis auf set devicename...
(und ja, immer noch kalt auf der Fensterbank!)

get devicename  :)
2018.01.16 13:33:35 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Run CreateParamGatttool with mod: read
2018.01.16 13:33:35 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Read XiaomiBTLESens_ExecGatttool_Run xbtle.temp.eg.fenster|<MAC>|read|0x3
2018.01.16 13:33:35 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.16 13:33:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,4d 4a 5f 48 54 5f 56 31

2018.01.16 13:33:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,4d 4a 5f 48 54 5f 56 31

2018.01.16 13:33:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"4d 4a 5f 48 54 5f 56 31 "}
2018.01.16 13:33:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.16 13:33:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.16 13:33:41 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x3
2018.01.16 13:33:41 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written


set devicename  :(
2018.01.16 13:35:51 1: PERL WARNING: Use of uninitialized value $mod in concatenation (.) or string at ./FHEM/74_XiaomiBTLESens.pm line 410.
2018.01.16 13:35:51 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Run CreateParamGatttool with mod:
2018.01.16 13:35:51 1: PERL WARNING: Use of uninitialized value $mod in string eq at ./FHEM/74_XiaomiBTLESens.pm line 412.
2018.01.16 13:35:51 1: PERL WARNING: Use of uninitialized value $mod in string eq at ./FHEM/74_XiaomiBTLESens.pm line 419.


get firmware :)
2018.01.16 13:38:06 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Run CreateParamGatttool with mod: read
2018.01.16 13:38:06 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Read XiaomiBTLESens_ExecGatttool_Run xbtle.temp.eg.fenster|<MAC>|read|0x24
2018.01.16 13:38:06 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x24 2>&1 /dev/null and loop 0
2018.01.16 13:38:10 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,30 30 2e 30 30 2e 36 36

2018.01.16 13:38:10 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,30 30 2e 30 30 2e 36 36

2018.01.16 13:38:10 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x24|{"gtResult":"30 30 2e 30 30 2e 36 36 "}
2018.01.16 13:38:10 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.16 13:38:10 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x24
2018.01.16 13:38:10 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x24
2018.01.16 13:38:10 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written


get sensordata :)
2018.01.16 13:39:32 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Run CreateParamGatttool with mod: write
2018.01.16 13:39:32 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Write XiaomiBTLESens_ExecGatttool_Run xbtle.temp.eg.fenster|<MAC>|write|0x10|0100
2018.01.16 13:39:32 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command timeout 15 gatttool -i hci0 -b <MAC> --char-write-req -a 0x10 -n 0100 --listen 2>&1 /dev/null and loop 0
2018.01.16 13:39:47 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 37 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 36 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 35 00
Notification handle = 0x000e value,54 3d 31 35 2e 32 20 48 3d 35 38 2e 36 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 37 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 38 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 36 00

2018.01.16 13:39:47 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 37 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 36 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 35 00
Notification handle = 0x000e value,54 3d 31 35 2e 32 20 48 3d 35 38 2e 36 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 37 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 38 00
Notification handle = 0x000e value,54 3d 31 35 2e 33 20 48 3d 35 38 2e 36 00

2018.01.16 13:39:47 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|write|0x10|{"gtResult":"54 3d 31 35 2e 33 20 48 3d 35 38 2e 37 00 \nNotification handle = 0x000e value"}
2018.01.16 13:39:47 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.16 13:39:47 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x10
2018.01.16 13:39:47 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x10
2018.01.16 13:39:47 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

CoolTux

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

distel

set devicename  :)
2018.01.16 14:10:10 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Run CreateParamGatttool with mod: write
2018.01.16 14:10:10 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Write XiaomiBTLESens_ExecGatttool_Run xbtle.temp.eg.fenster|<MAC>|write|0x3|5445535454455354
2018.01.16 14:10:10 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-write-req -a 0x3 -n 5445535454455354 2>&1 /dev/null and loop 0
2018.01.16 14:10:13 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2018.01.16 14:10:13 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2018.01.16 14:10:13 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|write|0x3|{"gtResult":"no data response"}
2018.01.16 14:10:13 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.16 14:10:13 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3


get devicename  :)
2018.01.16 14:11:08 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Run CreateParamGatttool with mod: read
2018.01.16 14:11:08 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - Read XiaomiBTLESens_ExecGatttool_Run xbtle.temp.eg.fenster|<MAC>|read|0x3
2018.01.16 14:11:08 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b <MAC> --char-read -a 0x3 2>&1 /dev/null and loop 0
2018.01.16 14:11:12 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,54 45 53 54 54 45 53 54

2018.01.16 14:11:12 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,54 45 53 54 54 45 53 54

2018.01.16 14:11:12 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ExecGatttool_Done: gatttool return string: xbtle.temp.eg.fenster|<MAC>|ok|read|0x3|{"gtResult":"54 45 53 54 54 45 53 54 "}
2018.01.16 14:11:12 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification
2018.01.16 14:11:12 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - ProcessingNotification: handle 0x3
2018.01.16 14:11:12 5: XiaomiBTLESens (xbtle.temp.eg.fenster) - Thermo/Hygro Sens Handle0x3
2018.01.16 14:11:12 4: XiaomiBTLESens (xbtle.temp.eg.fenster) - WriteReadings: Readings were written
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

CoolTux

Gut dann fehlt noch ein automatischer devicename read nach dem write. werde ich mal einbauen und ich denke mal dann sind wir durch.
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

So das sollte es dann gewesen sein. Bitte noch einmal zum Abschluss testen. Darauf achten das der neue Name nach dem setzten auch gleich ausgelesen wird.
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

MadMax-FHEM

ok, dann "pinne" ich mich hier mal mit dran...
...werde aber wohl erst im Frühjahr (wieder) testen, wenn der Balkon wieder bepflanzt wird...

Gruß und danke, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

yrwyddfa

Der Vollständigkeit halber: das Modul lässt sich via

define <Device> XiaomiBTLESens <MAC>

einbinden.

Ich grab meine Flowersenses mal wieder aus und teste die mal. Mehr dazu später.
If every day has its number, Monday would be a zero division.

oli82

Kann es sein, dass ssh nicht mehr klappt?
Habe direkt meine Sensoren (FlowerSense) auf das neue Modul umgestellt und siehe da:

2018.01.17 16:01:04 4: XiaomiBTLESens (Pflanze1) - Run CreateParamGatttool with mod: read
2018.01.17 16:01:04 4: XiaomiBTLESens (Pflanze1) - Read XiaomiBTLESens_ExecGatttool_Run Pflanze1|C4:7C:8D:61:93:39|read|0x38
2018.01.17 16:01:04 4: XiaomiBTLESens (Pflanze1) - ExecGatttool_Done: gatttool return string: Pflanze1|C4:7C:8D:61:93:39|error|read|0x38|{"gtResult":"no gatttool binary found. Please check if bluez-package is properly installed"}
2018.01.17 16:01:04 5: XiaomiBTLESens (Pflanze1) - ProcessingErrors
2018.01.17 16:01:04 4: XiaomiBTLESens (Pflanze1) - WriteReadings: Readings were written