Günstiger und unauffälliger Pflanzensensor: Xiaomi Flower Monitor

Begonnen von stoxx, 17 September 2016, 14:28:54

Vorheriges Thema - Nächstes Thema

baukater

Zitat von: CoolTux am 12 November 2016, 13:22:28
Gib mal Log Ausgaben und ein list bitte

Internals:
   BTMAC      C4:7C:8D:61:93:60
   DEF        C4:7C:8D:61:93:60
   INTERVAL   3600
   NAME       FM_Olivenbaum
   NR         106
   STATE      unreachable
   TYPE       XiaomiFlowerSens
   VERSION    0.1.45
   Readings:
     2016-11-12 12:46:31   battery         0
     2016-11-12 12:46:31   fertility       0
     2016-11-12 12:46:31   firmware        -30.-30.-30
     2016-11-12 12:46:31   lux             0
     2016-11-12 12:46:31   moisture        0
     2016-11-12 15:24:13   state           unreachable
     2016-11-12 12:46:31   temperature     0
   Helper:
Attributes:
   room       Garten,FlowerSens
   verbose    5



2016.11.12 15:23:57 5: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Request Timer wird aufgerufen
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Starte Blocking Call
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens_Run (FM_Zitronenbaum) - Running nonBlocking
2016.11.12 15:23:58 5: Sub XiaomiFlowerSens (FM_Olivenbaum) - Request Timer wird aufgerufen
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens (FM_Olivenbaum) - Starte Blocking Call
2016.11.12 15:23:58 4: Sub XiaomiFlowerSens_Run (FM_Olivenbaum) - Running nonBlocking
...
2016.11.12 15:24:13 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 12164
2016.11.12 15:24:13 3: (FM_Zitronenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.12 15:24:13 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 12169
2016.11.12 15:24:13 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
..
Host is down (112)
...
Host is down (112)



Und gleich mal über die Console geschaut, was die ausgibt.


pi@raspberrypi /dev $ sudo gatttool -b C4:7C:8D:61:93:60 --char-read -a 0x38 -n A01F
Characteristic value/descriptor: 64 10 32 2e 36 2e 32



FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

Invers

Zitatdone als state gab es nur beim Script.
Sieht aus, als wäre eine alter chron-Job noch aktiv.

Das war doch nur als Beispiel, nicht die Realität.
mein Job läuft vom Modul völlig getrennt und Separat in einen eigenen Dummy, der dann eine readingsgroup befüllt.

Eine zweite RG wird vom Modul zu ganz anderen Zeiten gefüllt.

Guck doch mal:
Bei mir ändert sich halt nichts.
2016-11-12 14:42:35   state unreachable obwohl ja alle anderen Werte aufgefüllt wurden.
Wenn also die Werte korrekt abgerufen wurden, dann müsste halt nach meiner Auffassung auch "unreachable" durch "active" ersetzt werden.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

mi.ke

Zitat von: Invers am 12 November 2016, 16:04:50
Das war doch nur als Beispiel, nicht die Realität.
mein Job läuft vom Modul völlig getrennt und Separat in einen eigenen Dummy, der dann eine readingsgroup befüllt.

Eine zweite RG wird vom Modul zu ganz anderen Zeiten gefüllt.


Okay, ich gebe zu, ich verstehe kein Wort davon!?!?
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

CoolTux

Zitat von: baukater am 12 November 2016, 15:56:30
pi@raspberrypi /dev $ sudo gatttool -b C4:7C:8D:61:93:60 --char-read -a 0x38 -n A01F
Characteristic value/descriptor: 64 10 32 2e 36 2e 32

-n gibt es bei einem char-read nicht. Das ist also falsch wie Du es geschrieben hast.
sudo gatttool -b C4:7C:8D:61:93:60 --char-read -a 0x38

0x38 liest die Firmware und die Batterie aus. Du hast also Firmware 2.6.2 und Deine Batterie liegt bei 100%

Mach mal bitte ein 0x35


Was passiert wenn Du ein status Request 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

CoolTux

Thema state. Den state legt erstmal der Entwickler fest, da kann auch drin stehen im Himmel ist Jahrmarkt.
Ich habe es so gemacht wie es mir plausibel erschien. Dazu gehört das nach einem define ein initial kommt. Wenn dann die Timerroutine gestartet wird weiß ich das das Modul activ ist also der Timer läuft. Als nächstes wird der eigentliche read aufgerufen um Daten zu holen. Daher call data.
Und nun kommt es drauf an. Wenn Blocking.pm ins Timeout läuft (15s) dann wird im state ein unreachable geschrieben und es muss INTERVAL Zeit gewartet werden bis wieder die Routine aufgerufen wird und active erscheint.

Wir können das gerne auch demokratisch ändern wenn ihr wollt. Mir ist das schnuppe.
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 eine neue Version. Es gibt nun ein Fehlerhandling. Wenn einmal Readings sauber geschieben wurden sollten diese bei einem Fehler nicht mit 0 oder so überschieben werden.
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

Invers

Hab ich jetzt verstanden. Eine demokratische Änderung ist meinetwegen nicht nötig. Ich hielt es halt irrtümlich für einen Fehler, aber nun ist alles klar. Danke.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Laffer72

#217
Hallo,

erstmal danke für das Modul.

Anbei meine List-Ausgabe:

Internals:
   BTMAC      C4:7C:8D:60:D9:B1
   CFGFN
   DEF        C4:7C:8D:60:D9:B1
   INTERVAL   3600
   NAME       Blume1
   NR         356
   STATE      active
   TYPE       XiaomiFlowerSens
   VERSION    0.1.48
   Readings:
     2016-11-12 20:54:30   battery         100
     2016-11-12 20:54:30   fertility       0
     2016-11-12 20:54:30   firmware        2.6.6
     2016-11-12 20:54:30   lux             0
     2016-11-12 20:54:30   moisture        0
     2016-11-12 20:54:30   state           active
     2016-11-12 20:54:30   temperature     0
   Helper:
Attributes:
   room       FlowerSens



> char-read-hnd 0x35
Characteristic value/descriptor: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00



> char-read-hnd 0x38
Characteristic value/descriptor: 64 13 32 2e 36 2e 36



2016.11.12 21:01:29 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.12 21:01:29 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
2016.11.12 21:01:32 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.12 21:01:32 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!


Leider zeigt er keine Daten an. Ich hatte aber stark mit der Bluetoothverbindung zu kämpfen und kämpfe manchmal immer noch damit :-). Kann mich aber erinnern, daß er bei einer der älteren Modulversionen mal die Temperatur angezeigt hat.
Allerdings hatte der Sensor da auch noch die Firmware 2.6.2 drauf.

Wenn ich noch was testen soll gerne.

Viele Grüße

Reinhard
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

CoolTux

Das Problem ist das die Firmware 2.6.6 noch nicht unterstützt wird. Daher auch die Nullen. Es gibt zwar im Netz Hinweise wie man es machen könnte aber bei uns hat es noch nicht geklappt.
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

baukater

Zitat von: CoolTux am 12 November 2016, 20:08:34

Mach mal bitte ein 0x35


Characteristic value/descriptor: d9 00 00 25 00 00 00 00 00 00 00 00 00 00 00 00

Zitat
Was passiert wenn Du ein status Request machst?


2016.11.13 07:09:51 5: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Request Timer wird aufgerufen
2016.11.13 07:09:51 4: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Starte Blocking Call
2016.11.13 07:09:52 4: Sub XiaomiFlowerSens_Run (FM_Zitronenbaum) - Running nonBlocking
2016.11.13 07:09:52 5: Sub XiaomiFlowerSens (FM_Olivenbaum) - Request Timer wird aufgerufen
2016.11.13 07:09:52 4: Sub XiaomiFlowerSens (FM_Olivenbaum) - Starte Blocking Call
2016.11.13 07:09:52 4: Sub XiaomiFlowerSens_Run (FM_Olivenbaum) - Running nonBlocking
Host is down (112)
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:09:57 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:10:06 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 19904
2016.11.13 07:10:07 3: (FM_Zitronenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
2016.11.13 07:10:07 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 19914
2016.11.13 07:10:07 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Host is down (112)
Device or resource busy (16)
2016.11.13 07:14:35 4: Sub XiaomiFlowerSens (FM_Olivenbaum) - Starte Blocking Call
2016.11.13 07:14:35 4: Sub XiaomiFlowerSens_Run (FM_Olivenbaum) - Running nonBlocking
Host is down (112)
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/74_XiaomiFlowerSens.pm line 272.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[1] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 274.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 275.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 276.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value $data[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:14:42 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 277.
2016.11.13 07:14:50 1: Timeout for XiaomiFlowerSens_Run reached, terminated process 20164
2016.11.13 07:14:50 3: (FM_Olivenbaum) - The BlockingCall Process terminated unexpectedly. Timedout
Host is down (112)
FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

CoolTux

Das gatttool meldet das der Host Down ist. Das soll wohl bedeuten das der Sensor nicht im erkennbaren Modus ist.

@All
Wäre schön wenn ein zwei Leute die Zeit finden und im Netz mal schauen welche anderen Möglichkeiten es noch gibt um 2.6.6 aus zu lesen und das dann testet.
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

Laffer72

Hallo CoollTux,

habe mit der 2.6.6 Erfolg gehabt.
Nach dem Connect mit gatttool muß zuerst


char-write-req 0x33 A01F


danach gleich


char-read-hnd 0x35


abgesetzt werden.

Hier das Ergebnis :

connect
Attempting to connect to C4:7C:8D:60:D9:B1
Connection successful
Notification handle = 0x0021 value: 00
[C4:7C:8D:60:D9:B1][LE]> char-write-req 0x33 A01F
Characteristic value was written successfully
Notification handle = 0x0021 value: 00
[C4:7C:8D:60:D9:B1][LE]> char-read-hnd 0x35
Characteristic value/descriptor: 61 01 00 1a 00 00 00 00 00 00 02 3c 00 fb 34 9b
Notification handle = 0x0021 value: 00
[C4:7C:8D:60:D9:B1][LE]>
(gatttool:20758): GLib-WARNING **: Invalid file descriptor.


Hoffe das hilft Dir weiter.

Viele Grüße

Reinhard
Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315

CoolTux

Hallo Reinhard,

Dann wirst Du Der Testkandidat werden. Hihi. Eigentlich ist es genau das was wir gemacht haben, aber schauen wir mal. Ich baue da heute Nachmittag was mit genau Deinen gatttool Befehlen und Du bist so nett und testest.


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

Hagenuck1

Klappt bei mir auch ;) keine Ahnung, was da am Freitag genau los war...
(http://uploads.tapatalk-cdn.com/20161113/6bb7fc414826c72ff7a92d80a37a3a72.png)


Gesendet von iPhone mit Tapatalk

CoolTux

#224
So dann hier mal eine aktuelle Version.
Sofern Eure Firmware noch nicht erkannt wurde werden die korrekten Werte erst beim zweiten Durchlauf erscheinen. Ausschlaggebend ist also das die Firmware korrekt im Reading steht.
Ihr könnt ja set statusRequest machen.



Grüße



Wegen Fehler entfernt!!!
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