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

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

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Ja und? Deine Variable $loop gilt für die gesamte Funktion. Du zählst die Variable in mehreren while Schleifen hoch, ohne sie vor der nächsten do while Schleife auf 0 zurück zu setzen. Das ist definitiv nicht richtig! Dein Hinweis würde zutreffen, wenn du loop innerhalb jeder do while Schleife anlegen würdest, dann wäre die Gültigkeit auf diesen Block beschränkt.

Schreib dir doch mal den Wert von loop in ein Logfile, dann wirst du das sehr schnell sehen. Selbst wenn du keine Fehler hast, ist der Wert von loop bereits 1 wenn du bei der zweiten do while Schleife bist. Läufst du oben schon bis 10, dann laufen die folgenden Schleifen nur noch 1 mal durch.

Ich Rede nicht davon, dass loop seinen Wert behält wenn die Funktion verlassen wird. Ich denke da hast du mich missverstanden. Ich rede von den 3 do while Schleifen in der Funktion, bei denen du jeweils loop mind. 1 mal inkrementierst.

CoolTux

Zitat von: mumpitzstuff am 05 Februar 2017, 23:30:28
Ich Rede nicht davon, dass loop seinen Wert behält wenn die Funktion verlassen wird. Ich denke da hast du mich missverstanden. Ich rede von den 3 do while Schleifen in der Funktion, bei denen du jeweils loop mind. 1 mal inkrementierst.

Jetzt verstehe ich was Du meinst. Schaue ich mir bei Gelegenheit an.
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

StefanW

Hallo,
da meine 2 Sensoren nun auch angekommen sind, will ich sie natürlich auch einbinden.

Allerdings nutze ich auf meinem RPi3 das interne BT-Modul schon für Presence.
Wenn ich das richtig verstanden habe, funktioniert leider nicht beides gleichzeitig.

Würde es funktionieren, wenn ich mit einem zusätzlichen BT-Dongle arbeiten würde?
Kommt der RPi3 überhaupt mit 2 BT-Modulen klar?
Und wenn ja, wie kann ich dann definieren, welches Modul wofür benutzt wird?

Gruß
Stefan

CoolTux

Zitat von: StefanW am 06 Februar 2017, 18:24:05
Hallo,
da meine 2 Sensoren nun auch angekommen sind, will ich sie natürlich auch einbinden.

Allerdings nutze ich auf meinem RPi3 das interne BT-Modul schon für Presence.
Wenn ich das richtig verstanden habe, funktioniert leider nicht beides gleichzeitig.

Würde es funktionieren, wenn ich mit einem zusätzlichen BT-Dongle arbeiten würde?
Kommt der RPi3 überhaupt mit 2 BT-Modulen klar?
Und wenn ja, wie kann ich dann definieren, welches Modul wofür benutzt wird?

Gruß
Stefan

Habe keinen RPI3, also kann ich Dir dazu nichts sagen. Es gibt das Attribut hciDevice, da kannst Du dann den korrekten Dongle auswählen.

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

ZitatKommt der RPi3 überhaupt mit 2 BT-Modulen klar?

Verwende für die Pflanzen-Sensoren und für LE Presence einen RPi3 mit zwei Bluetooth Dongles (da der interne bzgl. Reichweite zu schlecht war).
Für lepresenced nehme ich hci0 und beim Pflanzen Sensor-Modul nehme ich über das Attribut hciDevice hci1. Klappt hervorragend.

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

StefanW

Danke für die Infos!
Dann werde ich mal rumprobieren.  :D

StefanW

So, das mit dem zusätzlichen BT-Dongle scheint zumindest bei einem Sensor zu funktionieren.
Bei dem anderen bekomme ich nur "charWrite faild".

Verbose 5 Ausgabe im log sieht so aus:
2017.02.07 19:00:41 4: Sub XiaomiFlowerSens_Run (Einblatt) - start blocking call
2017.02.07 19:00:41 4: Sub XiaomiFlowerSens_BlockingRun (Einblatt) - Running nonBlocking
2017.02.07 19:00:41 5: Sub XiaomiFlowerSens_stateRequestTimer (Einblatt) - Request Timer wird aufgerufen
2017.02.07 19:00:41 4: Sub XiaomiFlowerSens_callGatttool (Einblatt) - run gatttool
2017.02.07 19:00:43 4: Sub XiaomiFlowerSens_callGatttool (Einblatt) - call gatttool charRead loop 1
2017.02.07 19:00:43 4: Sub XiaomiFlowerSens_callGatttool (Einblatt) - processing gatttool response. sensData[0]: Characteristic value/descriptor
2017.02.07 19:00:43 4: Sub XiaomiFlowerSens_callGatttool (Einblatt) - processing gatttool response. sensData: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.02.07 19:00:43 4: Sub XiaomiFlowerSens (Einblatt) - call gatttool readBatFw loop 1
2017.02.07 19:00:43 4: Sub XiaomiFlowerSens_callGatttool (Einblatt) - processing gatttool response. batFwData: 64 1d 32 2e 38 2e 36

2017.02.07 19:00:43 4: Sub XiaomiFlowerSens_BlockingRun (Einblatt) - Processing response data: aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00


Wo könnte da mein Fehler liegen?

CoolTux

Hat er schon die Firmware auslesen können? Welche Version hat er gefunden?
Welche Version vom Modul hast Du?
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

StefanW

Modulversion ist die 0.6.3

Der funktionierende Sensor hat 2.8.6,
der Problemsensor hat noch die 2.6.2

Werde mal ein FW-Update versuchen.
Per App sind nämlich beide erreichbar.

CoolTux

Kann es sein das er die Firmware noch nicht als Reading hat?
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

Ach und mach mal bitte ein fhem update. Aktuell ist 0.6.4
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

StefanW

Check, mache gleich mal ein Update.

Ist aber irgendwie komisch...
FW war als reading 2.6.2 da.
Laut App hat er aber 2.8.6

Habe ihn noch mal komplett aus FHEM gelöscht und neu angelegt.
Jetzt ist er sofort active und liefert korrekte readings incl. aktueller FW.

Werde es mal weiter beobachten.

andi11

ich habe vorhin upgedatet auf Version    0.6.4  und jetzt steht das im Log:
017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataSensor[3] in string ne at ./FHEM/74_XiaomiFlowerSens.pm line 301.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataSensor[4] in string ne at ./FHEM/74_XiaomiFlowerSens.pm line 301.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataSensor[5] in string ne at ./FHEM/74_XiaomiFlowerSens.pm line 301.
2017.02.08 16:00:43 1: PERL WARNING: Illegal hexadecimal digit 'p' ignored at ./FHEM/74_XiaomiFlowerSens.pm line 308.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataSensor[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 310.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 310.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataSensor[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 311.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataSensor[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 312.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 312.
2017.02.08 16:00:43 1: PERL WARNING: Illegal hexadecimal digit 'I' ignored at ./FHEM/74_XiaomiFlowerSens.pm line 321.
2017.02.08 16:00:43 1: PERL WARNING: Argument "error" isn't numeric in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataBatFw[4] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 16:00:43 1: PERL WARNING: Use of uninitialized value $dataBatFw[6] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 16:13:02 1: PERL WARNING: Illegal hexadecimal digit 'I' ignored at ./FHEM/74_XiaomiFlowerSens.pm line 321.
2017.02.08 16:13:02 1: PERL WARNING: Argument "error" isn't numeric in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 16:13:02 1: PERL WARNING: Use of uninitialized value $dataBatFw[4] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 16:13:02 1: PERL WARNING: Use of uninitialized value $dataBatFw[6] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 17:04:55 1: PERL WARNING: Illegal hexadecimal digit 'I' ignored at ./FHEM/74_XiaomiFlowerSens.pm line 321.
2017.02.08 17:04:55 1: PERL WARNING: Argument "error" isn't numeric in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 17:04:55 1: PERL WARNING: Use of uninitialized value $dataBatFw[4] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 17:04:55 1: PERL WARNING: Use of uninitialized value $dataBatFw[6] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataSensor[3] in string ne at ./FHEM/74_XiaomiFlowerSens.pm line 301.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataSensor[4] in string ne at ./FHEM/74_XiaomiFlowerSens.pm line 301.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataSensor[5] in string ne at ./FHEM/74_XiaomiFlowerSens.pm line 301.
2017.02.08 17:31:01 1: PERL WARNING: Illegal hexadecimal digit 'p' ignored at ./FHEM/74_XiaomiFlowerSens.pm line 308.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataSensor[4] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 310.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 310.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataSensor[7] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 311.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataSensor[9] in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 312.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/74_XiaomiFlowerSens.pm line 312.
2017.02.08 17:31:01 1: PERL WARNING: Illegal hexadecimal digit 'I' ignored at ./FHEM/74_XiaomiFlowerSens.pm line 321.
2017.02.08 17:31:01 1: PERL WARNING: Argument "error" isn't numeric in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataBatFw[4] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.
2017.02.08 17:31:01 1: PERL WARNING: Use of uninitialized value $dataBatFw[6] in subtraction (-) at ./FHEM/74_XiaomiFlowerSens.pm line 322.


Soweit nicht so schlimm, das einzige was unpraktisch ist, es gab Readings mit Wert 0 und damit einen hässlichen Sprung in den Charts.

CoolTux

Schaue ich mir an. Hast du denn jetzt Werte in den Readings?
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

Ja es scheint ein sporadisches Problem zu sein. Bisher bei dem einem Sensor z.b.  3x in ca. 2h.