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

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

Vorheriges Thema - Nächstes Thema

CoolTux

Mal klappt es mal nicht und dann immer mit unterschiedlichen Fehlermeldungen vom gatttool. mal die 112 mal die 111
Hier hat es mal super geklappt. Keine Fehlermeldung und ist durch bis zum Schluss.


2016.11.26 08:15:25 5: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Request Timer wird aufgerufen
2016.11.26 08:15:25 4: Sub XiaomiFlowerSens (FM_Zitronenbaum) - Starte Blocking Call
2016.11.26 08:15:25 4: Sub XiaomiFlowerSens_Run (FM_Zitronenbaum) - Running nonBlocking
2016.11.26 08:15:26 3: CUL_HM set Jal_WohnzTV_Down statusRequest
2016.11.26 08:15:27 3: CUL_HM set Jal_Kueche_Up statusRequest
2016.11.26 08:15:28 3: CUL_HM set Jal_Kueche_Down statusRequest
2016.11.26 08:15:29 3: CUL_HM set Lueftung_Niedrig statusRequest
2016.11.26 08:15:30 4: Sub XiaomiFlowerSens_Run (FM_Zitronenbaum) - Rückgabe an Auswertungsprogramm beginnt
2016.11.26 08:15:30 4: Sub XiaomiFlowerSens_Done (FM_Zitronenbaum) - Abschluss!
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

Pyromane

Zitat von: CoolTux am 26 November 2016, 08:21:41
@Pyromane
Würdest Du Dich als Testkandidat bereit stellen? Mein Problem ist das ich mir nicht erklären kann was da passiert ist. Daher würde ich Dich bitten die angehängte Version ein zu spielen. Im Grunde ist es genau die selbe Version die nicht geklappt hat bei Dir nur mit unendlich vielen Debugausgaben.

Selbstverständlich.
Die leeren Zeilen befinden sich wirklich im Log:


Define Routine timer

2016.11.26 14:41:54 3: XiaomiFlowerSens (Blume1) - defined with BTMAC C4:7C:8D:61:5F:89


Define Routine ENDE



stateRequestTimer gleich nach Einsprung



stateRequestTimer vor removeInternalTimer



stateRequestTimer vor readingsSingleUpdate



stateRequestTimer vor Aufruf von XiaomiFlowerSens



stateRequestTimer vor Aufruf des neuen Timers


baukater

Kannst Du Dir da ein Reim drauf machen? Hab gerade folgendes in der Console eingegeben, seitdem sind die Sensoren in Fhem aktiv.

Zitat
pi@raspberrypi ~ $ sudo hcitool lescan
LE Scan ...
C4:7C:8D:61:9C:C8 (unknown)
C4:7C:8D:61:9C:C8 Flower mate
C4:7C:8D:61:93:60 (unknown)
C4:7C:8D:61:93:60 Flower mate
C4:7C:8D:61:9C:C8 (unknown)
C4:7C:8D:61:9C:C8 Flower mate
C4:7C:8D:61:9C:C8 (unknown)
C4:7C:8D:61:9C:C8 Flower mate
C4:7C:8D:61:93:60 (unknown)
^Cpi@raspberrypi ~ $ btmgmt le on
Set Low Energy for hci0 failed with status 0x14 (Permission Denied)
pi@raspberrypi ~ $ sudo btmgmt le on
hci0 Set Low Energy complete, settings: powered ssp br/edr le
pi@raspberrypi ~ $ sudo gatttool -b c4:7c:8d:61:9c:c8
Usage:
  gatttool [OPTION...]

Help Options:
  -h, --help                                Show help options
  --help-all                                Show all help options
  --help-gatt                               Show all GATT commands
  --help-params                             Show all Primary Services/Characteristics arguments
  --help-char-read-write                    Show all Characteristics Value/Descriptor Read/Write arguments

Application Options:
  -i, --adapter=hciX                        Specify local adapter interface
  -b, --device=MAC                          Specify remote Bluetooth address
  -t, --addr-type=[public | random]         Set LE address type. Default: public
  -m, --mtu=MTU                             Specify the MTU size
  -p, --psm=PSM                             Specify the PSM for GATT/ATT over BR/EDR
  -l, --sec-level=[low | medium | high]     Set security level. Default: low
  -I, --interactive                         Use interactive mode


pi@raspberrypi ~ $ sudo gatttool -b c4:7c:8d:61:9c:c8 -I
[c4:7c:8d:61:9c:c8][LE]> connect
Attempting to connect to c4:7c:8d:61:9c:c8
Connection successful
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
[c4:7c:8d:61:9c:c8][LE]> help
help                                           Show this help
exit                                           Exit interactive mode
quit                                           Exit interactive mode
connect         [address [address type]]       Connect to a remote device
disconnect                                     Disconnect from a remote device
primary         [UUID]                         Primary Service Discovery
included        [start hnd [end hnd]]          Find Included Services
characteristics [start hnd [end hnd [UUID]]]   Characteristics Discovery
char-desc       [start hnd] [end hnd]          Characteristics Descriptor Discovery
char-read-hnd   <handle>                       Characteristics Value/Descriptor Read by handle
char-read-uuid  <UUID> [start hnd] [end hnd]   Characteristics Value/Descriptor Read by UUID
char-write-req  <handle> <new value>           Characteristic Value Write (Write Request)
char-write-cmd  <handle> <new value>           Characteristic Value Write (No response)
sec-level       [low | medium | high]          Set security level. Default: low
mtu             <value>                        Exchange MTU for GATT/ATT
[c4:7c:8d:61:9c:c8][LE]> char-ead_hnd 0x038
Error: char-ead_hnd: command not found
[c4:7c:8d:61:9c:c8][LE]> char-read_hnd 0x038
Error: char-read_hnd: command not found
[c4:7c:8d:61:9c:c8][LE]> char-read-hnd 0x038
Command Failed: Disconnected
[c4:7c:8d:61:9c:c8][LE]> connect
Attempting to connect to c4:7c:8d:61:9c:c8
Connection successful
[c4:7c:8d:61:9c:c8][LE]> char-read-hnd 0x038
Characteristic value/descriptor: 64 10 32 2e 36 2e 32
Notification handle = 0x0021 value: 00
Notification handle = 0x0021 value: 00
[c4:7c:8d:61:9c:c8][LE]> char-read-hnd 0x035
Characteristic value/descriptor: c7 00 00 32 00 00 00 00 05 00 00 00 00 00 00 00
Notification handle = 0x0021 value: 00
[c4:7c:8d:61:9c:c8][LE]>
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

Nicht wirklich. Es hatte ja auch so schonmal geklappt

Zitat
sudo btmgmt le on
hci0 Set Low Energy complete, settings: powered ssp br/edr le
Wenn überhaupt dann kann das was geholfen haben, aber wie gesagt. Es ging ja schon mal.
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

Zitat von: Pyromane am 26 November 2016, 15:05:44
Selbstverständlich.
Die leeren Zeilen befinden sich wirklich im Log:


Define Routine timer

2016.11.26 14:41:54 3: XiaomiFlowerSens (Blume1) - defined with BTMAC C4:7C:8D:61:5F:89


Define Routine ENDE



stateRequestTimer gleich nach Einsprung



stateRequestTimer vor removeInternalTimer



stateRequestTimer vor readingsSingleUpdate



stateRequestTimer vor Aufruf von XiaomiFlowerSens



stateRequestTimer vor Aufruf des neuen Timers



Danke Dir. Kannst Du bitte mal schauen ob Du noch das hier drin stehen hast "stateRequestTimer nach Aufruf des Timers"
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

Pyromane

Zitat von: CoolTux am 26 November 2016, 18:50:07
Danke Dir. Kannst Du bitte mal schauen ob Du noch das hier drin stehen hast "stateRequestTimer nach Aufruf des Timers"
Ich finde keinen entsprechenden Eintrag im Log, wobei ich FHEM ca 20 Min in dem Zustand lassen habe.

baukater

Zitat von: CoolTux am 26 November 2016, 17:58:06
Nicht wirklich. Es hatte ja auch so schonmal geklappt
Wenn überhaupt dann kann das was geholfen haben, aber wie gesagt. Es ging ja schon mal.
zumindest kurz  :-[

Hab jetzt das ganze bluez mal komplett runtergeworfen und neu installiert (Version 5.43).


pi@raspberrypi ~/bluez-5.43 $ hciconfig
hci0:   Type: Primary  Bus: USB
        BD Address: 00:1A:7D:DA:71:14  ACL MTU: 310:10  SCO MTU: 64:8
        DOWN
        RX bytes:1452 acl:3 sco:0 events:82 errors:0
        TX bytes:1151 acl:3 sco:0 commands:68 errors:1

pi@raspberrypi ~/bluez-5.43 $ sudo hciconfig hci0 up
pi@raspberrypi ~/bluez-5.43 $ sudo hcitool lescan
LE Scan ...
C4:7C:8D:61:93:60 (unknown)
C4:7C:8D:61:93:60 Flower mate
C4:7C:8D:61:93:60 (unknown)
C4:7C:8D:61:93:60 Flower mate
C4:7C:8D:61:9C:C8 (unknown)
C4:7C:8D:61:9C:C8 Flower mate
C4:7C:8D:61:93:60 (unknown)
C4:7C:8D:61:93:60 Flower mate
C4:7C:8D:61:93:60 (unknown)
C4:7C:8D:61:93:60 Flower mate
^Cpi@raspberrypi ~/bluez-5.43 $ sudo hcitool lecc c4:7c:8d:61:93:60
Connection handle 72
pi@raspberrypi ~/bluez-5.43 $ sudo hcitool lecc c4:7c:8d:61:9c:c8
Connection handle 72



Jetzt sind die Dinger erst mal wieder "Online". Mal sehen wie lange das hält oder ob es das jetzt war.
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

Zitat von: Pyromane am 26 November 2016, 19:56:25
Ich finde keinen entsprechenden Eintrag im Log, wobei ich FHEM ca 20 Min in dem Zustand lassen habe.

Ok ich danke Dir. Ich baue nachher noch bisschen was zum testen.


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

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

Pyromane

#54
Wie gewünscht:


Define Routine timer

2016.11.26 22:47:28 3: XiaomiFlowerSens (Blume1) - defined with BTMAC C4:7C:8D:61:5F:89


Define Routine ENDE



stateRequestTimer gleich nach Einsprung



stateRequestTimer vor removeInternalTimer



stateRequestTimer vor readingsSingleUpdate



stateRequestTimer vor Aufruf von XiaomiFlowerSens



XiaomiFlowersSens Sub Einsprung



XiaomiFlowersSens Sub Kurz nach holen der XiaomiFlowerSens_forRun_encodeJSON



stateRequestTimer vor Aufruf des neuen Timers


PS: Darf ich die Leerzeilen entfernen?

Tante EDIT sagt:
Vielleicht hilft es, perl_version v5.20.2

CoolTux

Mal eine Frage. Habt Ihr ein eigenes Interval gesetzt?
Hängt das FHEM immer noch?
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

Pyromane

Zitat von: CoolTux am 26 November 2016, 23:31:13
Mal eine Frage. Habt Ihr ein eigenes Interval gesetzt?
Hängt das FHEM immer noch?
Japp, hatte 1800 eingetragen und es hängte.

Interval entfernt und siehe da:
Internals:
   BTMAC      C4:7C:8D:61:5F:89
   DEF        C4:7C:8D:61:5F:89
   INTERVAL   3600
   NAME       Blume1
   NR         48
   STATE      active
   TYPE       XiaomiFlowerSens
   VERSION    0.2.3hotfix2
   Helper:
     Dblog:
       Battery:
         Mydblog:
           TIME       1480199762.26589
           VALUE      100
       Fertility:
         Mydblog:
           TIME       1480199762.26589
           VALUE      532
       Firmware:
         Mydblog:
           TIME       1480199762.26589
           VALUE      2.6.2
       Lux:
         Mydblog:
           TIME       1480199762.26589
           VALUE      9
       Moisture:
         Mydblog:
           TIME       1480199762.26589
           VALUE      19
       State:
         Mydblog:
           TIME       1480199762.26589
           VALUE      active
       Temperature:
         Mydblog:
           TIME       1480199762.26589
           VALUE      20.6
   Readings:
     2016-11-26 23:36:02   battery         100
     2016-11-26 23:36:02   fertility       532
     2016-11-26 23:36:02   firmware        2.6.2
     2016-11-26 23:36:02   lux             9
     2016-11-26 23:36:02   moisture        19
     2016-11-26 23:36:02   state           active
     2016-11-26 23:36:02   temperature     20.6
   Helper:
Attributes:
   room       FlowerSens
   verbose    5

Define Routine timer
2016.11.26 23:35:17 3: XiaomiFlowerSens (Blume1) - defined with BTMAC C4:7C:8D:61:5F:89
Define Routine ENDE
stateRequestTimer gleich nach Einsprung
stateRequestTimer vor removeInternalTimer
stateRequestTimer vor readingsSingleUpdate
2016.11.26 23:35:59 5: Sub XiaomiFlowerSens (Blume1) - Request Timer wird aufgerufen
stateRequestTimer vor Aufruf von XiaomiFlowerSens
XiaomiFlowersSens Sub Einsprung
XiaomiFlowersSens Sub Kurz nach holen der XiaomiFlowerSens_forRun_encodeJSON
2016.11.26 23:35:59 3: telnetForBlockingFn_1480199759: port 56685 opened
2016.11.26 23:35:59 4: Sub XiaomiFlowerSens (Blume1) - Starte Blocking Call
2016.11.26 23:35:59 4: Sub XiaomiFlowerSens_Run (Blume1) - Running nonBlocking
stateRequestTimer vor Aufruf des neuen Timers
stateRequestTimer nach Aufruf des Timers
2016.11.26 23:36:02 4: Sub XiaomiFlowerSens_Run (Blume1) - Rückgabe an Auswertungsprogramm beginnt
2016.11.26 23:36:02 4: Sub XiaomiFlowerSens_Done (Blume1) - Abschluss!

es funktioniert  :)

CoolTux

Habe ich auch gerade rausgefunden. hihi. Jetzt muß ich nur noch schauen wieso. Aber das klappt auch noch
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

Jamo

Ich bekomme mit der Version 0.2.0 folgende Fehlermeldungen:

Too many arguments for main::XiaomiFlowerSens_gattCharRead at ./FHEM/74_XiaomiFlowerSens.pm line 251, near "$wfr)"
Too many arguments for main::XiaomiFlowerSens_readBatFW at ./FHEM/74_XiaomiFlowerSens.pm line 254, near "$mac)"

Da stimmt die Anzahl der Argumente nicht.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

CoolTux

So fix ist nun fertig. Version 0.2.3 sollte es nun wie erwartet tun auch wenn man einen eigenen Interval angegeben hat.
Auch ist das Problem mit

Too many arguments for main::XiaomiFlowerSens_gattCharRead at ./FHEM/74_XiaomiFlowerSens.pm line 251, near "$wfr)"
Too many arguments for main::XiaomiFlowerSens_readBatFW at ./FHEM/74_XiaomiFlowerSens.pm line 254, near "$mac)"

gefixt worden.



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