!!!ABGELÖST!!! [74_XiaomiFlowerSens.pm] Xiaomi Flower Monitor

Begonnen von CoolTux, 17 November 2016, 13:25:06

Vorheriges Thema - Nächstes Thema

slawekking


andi11

ist ja gemein. Seit dem letzten FHEM Update sagt meine Australische Kiefer (Firmware 2.8.6) nur noch lastGattError "   
Unknown Error, look at verbose 5 output"
und das ergibt:
2017.02.12 21:55:50 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 31320
2017.02.12 21:55:50 3: (Pflanze4) Sub XiaomiFlowerSens_BlockingAborted - The BlockingCall Process terminated unexpectedly. Timedout
2017.02.12 21:58:07 4: Sub XiaomiFlowerSens_Run (Pflanze2) - start blocking call
2017.02.12 21:58:07 4: Sub XiaomiFlowerSens_BlockingRun (Pflanze2) - Running nonBlocking
2017.02.12 21:58:07 5: Sub XiaomiFlowerSens_stateRequestTimer (Pflanze2) - Request Timer wird aufgerufen
2017.02.12 21:58:11 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charWrite loop 1
2017.02.12 21:58:11 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - charWrite wresp: connect error: Function not implemented (38)

2017.02.12 21:58:11 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - run gatttool
2017.02.12 21:58:14 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 1
2017.02.12 21:58:18 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 2
2017.02.12 21:58:20 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 3
2017.02.12 21:58:22 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 4
2017.02.12 21:58:24 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 5
2017.02.12 21:58:29 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 6
2017.02.12 21:58:31 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 7
2017.02.12 21:58:35 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 8
2017.02.12 21:58:37 4: Sub XiaomiFlowerSens_callGatttool (Pflanze2) - call gatttool charRead loop 9
2017.02.12 21:58:37 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 31423
2017.02.12 21:58:37 3: (Pflanze2) Sub XiaomiFlowerSens_BlockingAborted - The BlockingCall Process terminated unexpectedly. Timedout

Ein hcitool lescan findet die Kiefer auch weiterhin. Die anderen 3 schlagne sich wacker

mumpitzstuff

Wie bereits schon gepostet, dürfte ein Teil der Probleme auf einen Bug in Schleife zum Schreiben eines Wertes in den Sensor liegen. Basierend auf den letzten Git Stand im Master Tree ist das hier der entsprechende Patch, der diesen Bug beseitigt:


74_XiaomiFlowerSens.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/74_XiaomiFlowerSens.pm b/74_XiaomiFlowerSens.pm
index edaff7c..b8ce000 100644
--- a/74_XiaomiFlowerSens.pm
+++ b/74_XiaomiFlowerSens.pm
@@ -368,7 +368,7 @@ sub XiaomiFlowerSens_callGatttool($@) {
             Log3 $name, 4, "Sub XiaomiFlowerSens_callGatttool ($name) - call gatttool charWrite loop $loop";
             Log3 $name, 4, "Sub XiaomiFlowerSens_callGatttool ($name) - charWrite wresp: $wresp" if(defined($wresp));
             
-        } while( ($loop < 10) and (not defined($wresp)) );
+        } while( ($loop < 10) and (not $wresp =~ /^Characteristic value was written successfully$/) );
     }
     
     Log3 $name, 4, "Sub XiaomiFlowerSens_callGatttool ($name) - run gatttool";


CoolTux

Vielen Dank. Das ist definitiv besser wie meine aktuelle Lösung. Baue ich gleich ein und gebe es hier zum testen frei.
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

#334
Version 0.6.8 hängt an zum testen. Bitte mal alle Leute mit Firmware höher 2.6.2 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

andi11

Test läuft bei Firmware 2.8.6
Mal schauen ob damit meine Australische Kiefer wieder erreichbar ist. Obwohl ich eigentlich nichts bewegt habe erreicht die das Modul nicht mehr. Alle anderen laufen

Jiggi

Hallo zusammen.

Ich habe leider die Version 2.8.6 auf 3 von 4 Sensoren installiert und dort erhalte ich immer ein "charWrite failed" im state und kann keine Werte abrufen.
Ich habe auch nun auch die 0.6.8 installiert und das Auslesen ebenfalls versucht, leider erhalte ich immer noch ein "charWrite failed".
Ein verbose 5 ergibt folgendes:

2017.02.13 17:34:11 4: Sub XiaomiFlowerSens_Run (Reserve1) - start blocking call
2017.02.13 17:34:11 4: Sub XiaomiFlowerSens_BlockingRun (Reserve1) - Running nonBlocking
2017.02.13 17:34:11 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - run gatttool
2017.02.13 17:34:12 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - call gatttool charRead loop 1
2017.02.13 17:34:12 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.02.13 17:34:12 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - processing gatttool response. sensData: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.02.13 17:34:13 4: Sub XiaomiFlowerSens (Reserve1) - call gatttool readBatFw loop 1
2017.02.13 17:34:13 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - processing gatttool response. batFwData: 61 1d 32 2e 38 2e 36

2017.02.13 17:34:13 4: Sub XiaomiFlowerSens_BlockingRun (Reserve1) - Processing response data: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00


Der Sensor der noch mit der 2.6.2 läuft macht keine Probleme.
raspbian fhem RPi3 Stretch: MAX!, Conbee, RFXCOM, Harmony Hub, Alexa, TelegramBot, nuki, Maverick ET732, Intertechno, Fritz!DECT, Xiaomi Aqara, Sonoff, Roborock S50,

CoolTux

Zitat von: mumpitzstuff am 12 Februar 2017, 22:42:10
Wie bereits schon gepostet, dürfte ein Teil der Probleme auf einen Bug in Schleife zum Schreiben eines Wertes in den Sensor liegen. Basierend auf den letzten Git Stand im Master Tree ist das hier der entsprechende Patch, der diesen Bug beseitigt:


74_XiaomiFlowerSens.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/74_XiaomiFlowerSens.pm b/74_XiaomiFlowerSens.pm
index edaff7c..b8ce000 100644
--- a/74_XiaomiFlowerSens.pm
+++ b/74_XiaomiFlowerSens.pm
@@ -368,7 +368,7 @@ sub XiaomiFlowerSens_callGatttool($@) {
             Log3 $name, 4, "Sub XiaomiFlowerSens_callGatttool ($name) - call gatttool charWrite loop $loop";
             Log3 $name, 4, "Sub XiaomiFlowerSens_callGatttool ($name) - charWrite wresp: $wresp" if(defined($wresp));
             
-        } while( ($loop < 10) and (not defined($wresp)) );
+        } while( ($loop < 10) and (not $wresp =~ /^Characteristic value was written successfully$/) );
     }
     
     Log3 $name, 4, "Sub XiaomiFlowerSens_callGatttool ($name) - run gatttool";



Dann scheint das hier nicht zu funktionieren weil gatttool bei erfolgreichen schreiben doch kein response gibt.
Kann bitte jemand mit Firmware > 2.6.2 in der Konsole mal gatttool starten


gatttool -b $mac --char-write-req -a 0x33 -n A01F  und mir die Ausgabe Posten?
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

Jiggi

Bei mir ergibt das folgendes:
Zitatgatttool -b X:X:X:X:X:X --char-write-req -a 0x33 -n A01F
Characteristic value was written successfully
raspbian fhem RPi3 Stretch: MAX!, Conbee, RFXCOM, Harmony Hub, Alexa, TelegramBot, nuki, Maverick ET732, Intertechno, Fritz!DECT, Xiaomi Aqara, Sonoff, Roborock S50,

CoolTux

Zitat von: Jiggi am 13 Februar 2017, 18:04:47
Bei mir ergibt das folgendes:

gatttool -b X:X:X:X:X:X --char-write-req -a 0x33 -n A01F 2>&1 /dev/null

Und wenn du das machst?
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

Jiggi

gatttool -b X:X:X:X:X:X --char-write-req -a 0x33 -n A01F 2>&1 /dev/null
Characteristic value was written successfully
raspbian fhem RPi3 Stretch: MAX!, Conbee, RFXCOM, Harmony Hub, Alexa, TelegramBot, nuki, Maverick ET732, Intertechno, Fritz!DECT, Xiaomi Aqara, Sonoff, Roborock S50,

CoolTux

Ok danke. Ich schaue mal. Denke das ich da was habe.
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

Kann bitte jemand mit Firmware > 2.6.2 Version 0.6.8pre3 installieren und mit verbose 5 laufen lassen?


Danke
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

Jiggi

2017.02.13 18:38:25 4: Sub XiaomiFlowerSens_Run (Reserve1) - start blocking call
2017.02.13 18:38:25 4: Sub XiaomiFlowerSens_BlockingRun (Reserve1) - Running nonBlocking
2017.02.13 18:38:26 5: Sub XiaomiFlowerSens_callGatttool (Reserve1) - WFR: 0
2017.02.13 18:38:26 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - run gatttool
2017.02.13 18:38:27 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - call gatttool charRead loop 1
2017.02.13 18:38:27 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.02.13 18:38:27 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - processing gatttool response. sensData: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.02.13 18:38:27 4: Sub XiaomiFlowerSens (Reserve1) - call gatttool readBatFw loop 1
2017.02.13 18:38:27 4: Sub XiaomiFlowerSens_callGatttool (Reserve1) - processing gatttool response. batFwData: 61 1d 32 2e 38 2e 36

2017.02.13 18:38:27 4: Sub XiaomiFlowerSens_BlockingRun (Reserve1) - Processing response data: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00
raspbian fhem RPi3 Stretch: MAX!, Conbee, RFXCOM, Harmony Hub, Alexa, TelegramBot, nuki, Maverick ET732, Intertechno, Fritz!DECT, Xiaomi Aqara, Sonoff, Roborock S50,

CoolTux

Hast Du ein Reading namens Firmware? Kannst mal bitte ein list von dem Sensordevice machen?

list DEVICENAME
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