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

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

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Tobias,

Ich habe keinerlei Probleme was das an geht. Weder die China noch die Europe Teile. Verbinde mich mit App und danach wieder mit FHEM.


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

TeeVau

Hi,

keine Ahnung was da passiert ist. Hab jetzt die älteren Sensoren wieder im Griff (Batterie raus und wieder rein). Allerdings bleibt das Problem mit einem neuen Sensor: per BT gibt der Sensor nur Nullen aus.

Hat jemand eine Idee, was das sein könnte? die restlichen 4 Sensoren laufen ohne Probleme.

List des problematischen Sensors

Internals:
   BTMAC      C4:7C:8D:62:44:E1
   CFGFN
   DEF        C4:7C:8D:62:44:E1
   INTERVAL   300
   NAME       Flower1
   NR         24019
   STATE      Moisture:moisture Fertility:fertility Lux:lux Batt:batteryLevel
   TYPE       XiaomiFlowerSens
   VERSION    1.0.1
   Readings:
     2017-07-30 17:52:23   firmware
     2017-07-30 20:03:11   state           corrupted data
   Helper:
Attributes:
   event-min-interval .*:900
   event-on-change-reading .*
   interval   300
   minMoisture 60
   room       FlowerSens
   sshHost    192.168.178.44
   stateFormat Moisture:moisture Fertility:fertility Lux:lux Batt:batteryLevel
   verbose    5


Die Logausgabe:

2017.07.30 19:34:52.987 4: Sub XiaomiFlowerSens_Run (Flower1) - start blocking call
2017.07.30 19:34:53.001 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Running nonBlocking
2017.07.30 19:34:52.999 5: Sub XiaomiFlowerSens_stateRequestTimer (Flower1) - Request Timer wird aufgerufen
2017.07.30 19:35:00.980 5: Sub XiaomiFlowerSens_callGatttool (Flower1) - WFR: 1
2017.07.30 19:35:02.023 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - write data to host 192.168.178.44
2017.07.30 19:35:02.023 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charWrite loop 1
2017.07.30 19:35:02.023 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - charWrite wresp: Characteristic value was written successfully

2017.07.30 19:35:02.023 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - run gatttool
2017.07.30 19:35:07.370 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call data from host 192.168.178.44
2017.07.30 19:35:07.370 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charRead loop 1
2017.07.30 19:35:08.813 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call data from host 192.168.178.44
2017.07.30 19:35:08.813 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charRead loop 2
2017.07.30 19:35:08.814 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.07.30 19:35:08.814 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2017.07.30 19:35:09.260 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call firm/batt data from host 192.168.178.44
2017.07.30 19:35:09.261 4: Sub XiaomiFlowerSens (Flower1) - call gatttool readBatFw loop 1
2017.07.30 19:35:09.261 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. batFwData: 64 10 32 2e 36 2e 32

2017.07.30 19:35:09.261 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Processing response data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00



2017.07.30 19:41:01.004 4: Sub XiaomiFlowerSens_Run (Flower1) - start blocking call
2017.07.30 19:41:01.009 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Running nonBlocking
2017.07.30 19:41:01.013 5: Sub XiaomiFlowerSens_stateRequestTimer (Flower1) - Request Timer wird aufgerufen
2017.07.30 19:41:03.636 5: Sub XiaomiFlowerSens_callGatttool (Flower1) - WFR: 1
2017.07.30 19:41:05.464 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - write data to host 192.168.178.44
2017.07.30 19:41:05.464 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charWrite loop 1
2017.07.30 19:41:05.464 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - charWrite wresp: Characteristic value was written successfully

2017.07.30 19:41:05.464 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - run gatttool
2017.07.30 19:41:06.262 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call data from host 192.168.178.44
2017.07.30 19:41:06.262 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charRead loop 1
2017.07.30 19:41:06.262 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.07.30 19:41:06.263 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2017.07.30 19:41:06.973 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call firm/batt data from host 192.168.178.44
2017.07.30 19:41:06.973 4: Sub XiaomiFlowerSens (Flower1) - call gatttool readBatFw loop 1
2017.07.30 19:41:06.973 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. batFwData: 64 10 32 2e 36 2e 32

2017.07.30 19:41:06.973 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Processing response data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00



2017.07.30 19:49:36.024 4: Sub XiaomiFlowerSens_Run (Flower1) - start blocking call
2017.07.30 19:49:36.030 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Running nonBlocking
2017.07.30 19:49:36.032 5: Sub XiaomiFlowerSens_stateRequestTimer (Flower1) - Request Timer wird aufgerufen
2017.07.30 19:49:37.546 5: Sub XiaomiFlowerSens_callGatttool (Flower1) - WFR: 1
2017.07.30 19:49:42.057 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - write data to host 192.168.178.44
2017.07.30 19:49:42.057 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charWrite loop 1
2017.07.30 19:49:42.057 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - charWrite wresp: Characteristic value was written successfully

2017.07.30 19:49:42.057 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - run gatttool
2017.07.30 19:49:42.624 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call data from host 192.168.178.44
2017.07.30 19:49:42.624 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charRead loop 1
2017.07.30 19:49:42.624 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.07.30 19:49:42.624 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2017.07.30 19:49:43.074 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call firm/batt data from host 192.168.178.44
2017.07.30 19:49:43.075 4: Sub XiaomiFlowerSens (Flower1) - call gatttool readBatFw loop 1
2017.07.30 19:49:43.075 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. batFwData: 64 10 32 2e 36 2e 32

2017.07.30 19:49:43.075 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Processing response data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00



2017.07.30 19:56:56.048 4: Sub XiaomiFlowerSens_Run (Flower1) - start blocking call
2017.07.30 19:56:56.065 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Running nonBlocking
2017.07.30 19:56:56.072 5: Sub XiaomiFlowerSens_stateRequestTimer (Flower1) - Request Timer wird aufgerufen
2017.07.30 19:57:00.654 5: Sub XiaomiFlowerSens_callGatttool (Flower1) - WFR: 1
2017.07.30 19:57:02.500 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - write data to host 192.168.178.44
2017.07.30 19:57:02.501 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charWrite loop 1
2017.07.30 19:57:02.501 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - charWrite wresp: Characteristic value was written successfully

2017.07.30 19:57:02.501 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - run gatttool
2017.07.30 19:57:03.293 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call data from host 192.168.178.44
2017.07.30 19:57:03.293 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call gatttool charRead loop 1
2017.07.30 19:57:03.293 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.07.30 19:57:03.293 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. sensData: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2017.07.30 19:57:04.091 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - call firm/batt data from host 192.168.178.44
2017.07.30 19:57:04.091 4: Sub XiaomiFlowerSens (Flower1) - call gatttool readBatFw loop 1
2017.07.30 19:57:04.091 4: Sub XiaomiFlowerSens_callGatttool (Flower1) - processing gatttool response. batFwData: 64 10 32 2e 36 2e 32

2017.07.30 19:57:04.091 4: Sub XiaomiFlowerSens_BlockingRun (Flower1) - Processing response data: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

CoolTux

Interessant. Das gute Teil scheint rein gar nichts zu melden. Also keine verwertbare Daten. Es muß auf jedenfall Batterie und Firmware gemeldet werden. Auch sind die Nullen nicht korrekt. Sicher das das ein korrektes Xiaomi Flower Monitor  Device 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

stoxx

ZitatAllerdings bleibt das Problem mit einem neuen Sensor: per BT gibt der Sensor nur Nullen aus.
Meiner Meinung nach darf in der App kein Device mehr verbunden sein, damit das mit FHEM funzt. Bist Du Dir sicher, dass in der App kein einziger Sensor mehr gelistet ist?

vg stoxx
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

TeeVau

Zitat von: CoolTux am 30 Juli 2017, 20:14:45
Interessant. Das gute Teil scheint rein gar nichts zu melden. Also keine verwertbare Daten. Es muß auf jedenfall Batterie und Firmware gemeldet werden. Auch sind die Nullen nicht korrekt. Sicher das das ein korrektes Xiaomi Flower Monitor  Device ist?

Eigentlich schon. Habe alle Sensoren im selben Shop geholt. Immer 2 Stück pro Lieferung. Funktionieren alle, bis auf dieser. Der 2. Sensor in dieser Lieferung macht auch keine Probleme.
Vielleicht wirklich kaputt. Ich schreib dem Shop einfach mal.
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

Tom71

Ich habe übriges meine Sensoren in der Flower Care App und in fhem. Geht also auch beides.
Homematic | RaspberryMatic

fhainz

#726
Zitat von: Tom71 am 31 Juli 2017, 15:50:16
Ich habe übriges meine Sensoren in der Flower Care App und in fhem. Geht also auch beides.
Bei mir das selbe. Funktioniert mit meinen 4 Sensoren (alle Internationale Version) problemlos.

TeeVau

Heute sind noch mal 2 Sensoren angekommen, die funktionieren auch. Ich glaube der eine ist einfach im Sack. Der Shop meldet sich auch nicht....hab ich wahrscheinlich 11€ verloren.
Aber hey, ist das erste mal, dass eine China Bestellung Probleme macht ;-)
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

FrankieSOC

#728
Hallo Zusammen,

wer noch einen Sensor braucht, aktuell für 8,59 € inkl. Versand.
https://www.tomtop.com/xiaomi-accessories-48/p-pa3850.html

Ist die China Version, aber funktioniert mit Trick ja trotzdem.

Wenn es nicht erwünscht ist, bitte sagen, dann lösche ich den Post.

Viele Grüße
Frank

u.becker

Hallo,
das Updaten via Android mit Super VPN hat bei mir nicht funktioniert, da SuperVPN keinen China Server angeboten hat.
Stand heute hat bei mir funktioniert:
OpenVPN die Version von Arne Schwabe https://play.google.com/store/apps/details?id=de.blinkt.openvpn
OVPNSpider https://play.google.com/store/apps/details?id=com.ovpnspider
FakeGPS
In der Spider App mit viel Geduld zu einem China Server verbinden, davor FakeGPS auf China stellen, dann die Flower Care App öffnen.

Damit konnte ich die letzte Woche von TomTOP gekommenen China Sticks von der Version 2.7 auf 3.1.8 updaten.

Vielleicht hilft's dem ein oder anderen

Uwe

TeeVau

Für den China-VPN Zugang benutze ich die iOS App "VPN Genius".
Ist eigentlich ein Bezahldiest, aber man kann einmal am Tag die Benutzung für 30 Minuten "kaufen", indem man ein 30 Sekunden Video abspielen lässt.

Hat bei mir Problemlos funktioniert, alle 12 Sensoren sind nun up-to-date. Auf die letzten 5 warte ich noch :-)
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

Pyromane

Ich habe Sensoren die an der Grenze der Reichweite positioniert sind und daher nicht bei jeder Abfrage erreichbar sind.
Um den Logfile vor Überfüllung zu schützen habe ich bei den XiaomiFlowerSens Devives verbose auf 0 gesetzt, dennoch erhalte ich jedoch verbose 1 Einträge im Logfile:

2017.09.08 12:04:46 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 3710

Habe ich da etwas missverstanden oder sollte der Logeintrag eigentlich nicht existieren?

CoolTux

Zitat von: Pyromane am 08 September 2017, 13:58:48
Ich habe Sensoren die an der Grenze der Reichweite positioniert sind und daher nicht bei jeder Abfrage erreichbar sind.
Um den Logfile vor Überfüllung zu schützen habe ich bei den XiaomiFlowerSens Devives verbose auf 0 gesetzt, dennoch erhalte ich jedoch verbose 1 Einträge im Logfile:

2017.09.08 12:04:46 1: Timeout for XiaomiFlowerSens_BlockingRun reached, terminated process 3710

Habe ich da etwas missverstanden oder sollte der Logeintrag eigentlich nicht existieren?

Diese Meldung stammt aus dem Code von Blocking.pm. Kommt also nicht vom Flower Modul. Das kann ich nicht beeinflussen.
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

stoxx

Hi,
habe vielleicht einen Tipp für den ein oder anderen, der ein ähnliches Problem mit dem Flower Monitor hat:
Bei mir kam es häufig vor, dass Pflanzen ab und zu Ausreißer beim Wert Moisture hatten. Gerade bei Pflanzen, die wenig Wasser brauchen, war das schlecht, weil ich diese in der Regel viel zu viel gegossen habe, nur weil bei einem einzigen Auslesen der Moisture Wert (warum auch immer) einen sehr niedrigen Wert geschickt hat und dadurch mein Gieß- Alarm anging.
Das Attribut event-aggregator hat bei mir das Problem gelöst, z.B.
event-aggregator moisture:2400:none:max
heißt, dass nicht der aktuelle Wert sondern das Maximum der Moisture Werte der letzten 40 Minuten als Event ausgegeben wird.
Bei mir klappt das bisher ganz hervorragend..
Oder hat jemand eine bessere Lösung? Oder weiß das eh jeder  :-[
vg stoxx
Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave, Zigbee ..

TeeVau

Hallo,

bei mir wurde es langsam unübersichtlich, die schon vorhandenen BT-MAC Adressen, von den neuen Adressen, zu unterscheiden. Habe mir eine Funktion gebastelt, die den String für einen Shell aufruf generiert. Dabei werden dann alle schon bekannten Sensoren ignoriert und man bekommt nur die neuen Sensoren angezeigt.
Vielleicht hilft es ja dem Ein oder Anderen...

in die 99_myUtils.pm

sub printBTmac() {
  my @sensors = devspec2array('TYPE=XiaomiFlowerSens');
  my $txt = "";
  my $cmd = "sudo hcitool lescan";
 
  if (@sensors > 0 and defined($defs{$sensors[0]})) {
    foreach my $sensor (@sensors) {
      $txt .= $sensor . "\t\t";
  $txt .= InternalVal($sensor, "BTMAC", "NOT FOUND");
  $txt .= "\n";
  $cmd .= " | grep -v \"" . InternalVal($sensor, "BTMAC", "NOT FOUND") . "\"";
    }
$cmd .= " | grep Flower";
  }
 
  $txt .= "\n\n\n$cmd";
  return $txt;
}


nach einem reload gibt die Funktion dann zurück:

bk_Kasten1 C4:7C:8D:63:7F:91
bk_Kasten2 C4:7C:8D:62:DA:BC
bk_Kasten3 C4:7C:8D:63:40:9F
bk_Kasten4 C4:7C:8D:62:E8:FF
bk_Kasten5 C4:7C:8D:62:71:FE
bk_Kasten6 C4:7C:8D:62:74:5F
bk_Paprika C4:7C:8D:62:2A:0A
bk_Paprika2 C4:7C:8D:62:6D:05
bk_Tomate1 C4:7C:8D:62:75:C3
bk_Tomate2 C4:7C:8D:63:6F:D5
nn_Flower1 C4:7C:8D:62:74:30
nn_Flower2 C4:7C:8D:62:B1:E4
nn_Flower3 C4:7C:8D:63:24:8C
nn_Flower4 C4:7C:8D:62:74:1A
wz_Benjamin C4:7C:8D:62:42:B0
wz_YuccaPalme C4:7C:8D:62:D3:CB



sudo hcitool lescan | grep -v "C4:7C:8D:63:7F:91" | grep -v "C4:7C:8D:62:DA:BC" | grep -v "C4:7C:8D:63:40:9F" | grep -v "C4:7C:8D:62:E8:FF" | grep -v "C4:7C:8D:62:71:FE" | grep -v "C4:7C:8D:62:74:5F" | grep -v "C4:7C:8D:62:2A:0A" | grep -v "C4:7C:8D:62:6D:05" | grep -v "C4:7C:8D:62:75:C3" | grep -v "C4:7C:8D:63:6F:D5" | grep -v "C4:7C:8D:62:74:30" | grep -v "C4:7C:8D:62:B1:E4" | grep -v "C4:7C:8D:63:24:8C" | grep -v "C4:7C:8D:62:74:1A" | grep -v "C4:7C:8D:62:42:B0" | grep -v "C4:7C:8D:62:D3:CB" | grep Flower


Das hack ich dann per copy&paste in die console und kann bequem die neue MAC auslesen :-)
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen