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

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

Vorheriges Thema - Nächstes Thema

CoolTux

Hast Du das Problem schon immer gehabt oder erst seit einiger Zeit?
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

Nils

Ich habe heute meine Pflanzen mal in TabletUI integriert und so den WAF gesteigert. Vielleicht kann jemand anderes mit dem Code ja auch was anfangen. Ist sicher noch ausbaufähig. Mich interessieren nur die Status "düngen notwendig" , "muss gegossen werden" ,  "düngen und gießen" bzw. "alles ok".

0. Attribute minMoisture und minFertility setzen, falls nicht schon geschehen.

1. userReading anlegen, das in TabletUI später ausgewertet wird. (danach einmal get ... statusRequest ausführen)

uistate {my $moist = ReadingsVal($name, "moisture",0);; my $minmoist = AttrVal($name,"minMoisture",10);; my $fert = ReadingsVal($name, "fertility",0);; my $minfert = AttrVal($name,"minFertility",50);; if ($moist < $minmoist && $fert < $minfert) {return "durstig+hungrig"} elsif ($moist < $minmoist) {return "durstig"} elsif ($fert < $minfert) {return "hungrig"} else {return "ok"}}


2. Code für TableUI hinzufügen. Beispiel:

<div class="cell">
     <div data-type="symbol"
data-device="Ficus"
data-get="uistate"
data-icon="fs-hue_room_garden"
data-states='["durstig+hungrig","durstig","hungrig","ok"]'
data-colors='["#FF8C00","#6495ED","#8B4513","#32CD32"]'
class="big"></div>
       <div data-type="label" class="top-narrow darker small">Ficus</div>
       </div>


Grüße
Nils




trinitywhm

Ich bin vielleicht zu doof, aber was muss ich machen um dieses Icon im FTUI verwenden zu können? In der FHEMWEB Oberfläche verwende ich auch hue_room_garden für die Pflanzen. Muss ich zusätzlich noch ein Icon-Font einbinden damit diese angezeigt werden, oder was muss ich machen? Mit dem vorherigen Codeschnipsel für FTUI wird bei mir dieses Icon leider nicht angezeigt. Andere Icons schon, aber dieses leider nicht. Was muss ich tun?

Nils

#888
Ist dein Tablet-UI aktuell? Hat bei mir auf Anhieb funktioniert. Die fhemSVG.css wurde vor 3 Tagen ergänzt.

trinitywhm

Mein Ftui war aktuell, aber die fhemSVG.css habe ich per Hand aktualisieren müssen. Wie du schon sagtest gab es da vor ein paar Tagen ein Update dass dann zum Erfolg führte und jetzt werden auch Icons angezeigt. Danke für den Hinweis.

Pyromane

Zitat von: CoolTux am 11 November 2017, 12:18:02
Hast Du das Problem schon immer gehabt oder erst seit einiger Zeit?

Ich kann dir leider kein Datum nennen, da ich meist das System und FHEM gleichzeitig update spricht ein Neustart fällig wird.
Gestern hat es ohne Update einen anderen Sensor(Blume4) getroffen, natürlich war dort verbose nicht auf 5 gestellt.

anochito

Ich habe gestern FHEM upgedatet. Seit dem werden die FlowerSensoren die per SSH-Host angebunden nicht mehr ausgelesen.
Hat sich in dem Modul diesbezüglich etwas geändert?

2017-11-25 11:14:09 XiaomiFlowerSens Olivenbaum fetch sensor data
2017-11-25 11:14:14 XiaomiFlowerSens Olivenbaum lastGattError: Invalid argument (22)
2017-11-25 11:14:14 XiaomiFlowerSens Olivenbaum error

2017.11.25 08:48:56 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 4750
2017.11.25 08:51:43 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5067
2017.11.25 08:52:21 1: ERROR evaluating {XiaomiFlowerSens_ExecGatttool_Done('Balkonblumen|C4:7C:8D:62:90:E1|ok|read|0x35|{"gtResult":"aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00 \n"}')}: Can't use string ("fetch sensor data") as a HASH ref while "strict refs" in use at ./FHEM/74_XiaomiFlowerSens.pm line 612.

2017.11.25 08:52:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5283
2017.11.25 08:53:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5496
2017.11.25 08:54:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5615
2017.11.25 08:55:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5731
2017.11.25 08:56:25 1: ERROR evaluating {XiaomiFlowerSens_ExecGatttool_Done('WZ.Orchidee|C4:7C:8D:65:BF:29|ok|read|0x35|{"gtResult":"aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00 \n"}')}: Can't use string ("fetch sensor data") as a HASH ref while "strict refs" in use at ./FHEM/74_XiaomiFlowerSens.pm line 612.

2017.11.25 08:56:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5860
2017.11.25 08:57:13 1: ERROR evaluating {XiaomiFlowerSens_ExecGatttool_Done('Olivenbaum|C4:7C:8D:62:8D:6B|ok|read|0x35|{"gtResult":"aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00 \n"}')}: Can't use string ("fetch sensor data") as a HASH ref while "strict refs" in use at ./FHEM/74_XiaomiFlowerSens.pm line 612.

2017.11.25 08:57:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 5977
2017.11.25 08:57:58 1: ERROR evaluating {XiaomiFlowerSens_ExecGatttool_Done('Balkonblumen|C4:7C:8D:62:90:E1|ok|read|0x35|{"gtResult":"aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00 \n"}')}: Can't use string ("fetch sensor data") as a HASH ref while "strict refs" in use at ./FHEM/74_XiaomiFlowerSens.pm line 612.

2017.11.25 08:58:44 1: Timeout for XiaomiFlowerSens_ExecGatttool_Run reached, terminated process 6197



CoolTux

Nichts was die Fehler erklären würde.
Wann war dein letztes Update?
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

anochito

ich denke vom Pi3 (Zentrale) vor ca 8 Wochen und vom Pi Zero W (SSH-Host) vor ca 4 Monaten.

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

anochito

danke für Deine Unterstützung.
Bei Raspberrys habe ich jetzt geupdated. FHEM Update wie gesagt gestern.
Es geht auch nach dem Update nicht.
Hier die Verbose5 Meldungen:

2017.11.25 16:29:05 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: call gatttool with command ssh 192.168.178.66 'gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-read -a 0x35 2>&1 /dev/null' and loop 0
2017.11.25 16:29:10 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Done: gatttool return string: Olivenbaum|C4:7C:8D:62:8D:6B|ok|read|0x35|{"gtResult":"aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00 \n"}
2017.11.25 16:29:10 5: XiaomiFlowerSens (Olivenbaum) - ProcessingNotification
2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - ProcessingNotification: handle 0x35
2017.11.25 16:29:10 5: XiaomiFlowerSens (Olivenbaum) - Handle0x35
2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - WriteReadings: Readings were written
2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - WriteSensData: call function ExecGatttool_Run
2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - WriteReadings: Readings were written
2017.11.25 16:29:10 4: XiaomiFlowerSens (Olivenbaum) - WriteSensData: call function ExecGatttool_Run
2017.11.25 16:29:13 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: call gatttool with command ssh 192.168.178.66 'gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-write-req -a 0x33 -n A01F 2>&1 /dev/null' and loop 0
2017.11.25 16:29:19 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2017.11.25 16:29:19 4: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2017.11.25 16:29:23 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: call gatttool with command ssh 192.168.178.66 'gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-read -a 0x35 2>&1 /dev/null' and loop 0
2017.11.25 16:29:27 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00

2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Done: gatttool return string: Olivenbaum|C4:7C:8D:62:8D:6B|ok|read|0x35|{"gtResult":"aa bb cc dd ee ff 99 88 77 66 00 00 00 00 00 00 \n"}
2017.11.25 16:29:27 5: XiaomiFlowerSens (Olivenbaum) - ProcessingNotification
2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - ProcessingNotification: handle 0x35
2017.11.25 16:29:27 5: XiaomiFlowerSens (Olivenbaum) - Handle0x35
2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - WriteReadings: Readings were written
2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - WriteSensData: call function ExecGatttool_Run
2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - WriteReadings: Readings were written
2017.11.25 16:29:27 4: XiaomiFlowerSens (Olivenbaum) - WriteSensData: call function ExecGatttool_Run
2017.11.25 16:29:30 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: call gatttool with command ssh 192.168.178.66 'gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-write-req -a 0x33 -n A01F 2>&1 /dev/null' and loop 0
2017.11.25 16:29:36 5: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2017.11.25 16:29:36 4: XiaomiFlowerSens (Olivenbaum) - ExecGatttool_Run: gatttool result Characteristic value was written successfully


anochito

nach einem Reboot werden übertragen

battery...............ok
batteryLevel........98
firmware.............3.1.8
lastGattError........charWrite faild       (wird ca alle 20 Sekunden mit gleichem Wert aktualisiert)
state...................fetch sensor data   (wird ca alle 20 Sekunden mit gleichem Wert aktualisiert)

CoolTux

Er erkennt nicht das ein write gemacht wurde und sendet daher falsche Daten beim read.

ssh 192.168.178.66 'gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-write-req -a 0x33 -n A01F

ssh 192.168.178.66 'gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-read -a 0x35

Kannst du bitte einmal die Befehle nacheinander absenden. Bitte als User der auch auf der anderen Seite sich einwählen darf. Also am besten als fhem
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

anochito

Ich stosse an meine Wissensgrenzen  :-\ Bin noch nicht lange in der Raspberry-Welt unterwegs.
Damals habe ich mit Hilfe von OttosBlog einen FHEM-User auf dem sshHost angelegt, der sich allerdings nicht als User anmelden kann. Um auf dem sshHost Terminalbefehle abzusetzen verbinde ich mich immer mit RemoteDesktop als User Pi.
Gebe ich den Befehl gatttool -i hci0 -b C4:7C:8D:62:8D:6B --char-write-req -a 0x33 -n A01F
jetzt auf dem mit RemoteDesktop verbundenen sshHost im Terminal als User Pi ein erhalte ich die Meldung "connect error: Too many levels of symbolic links (40)". Beim zweiten Befehl erhalte ich die gleiche Meldung.



trinitywhm

Habe auch Probleme mit meinem Sensoren. Seit einigen Tagen werden keine Daten mehr übermittelt. Mit einem manuell ausgelösten statusRequest werden die Werte zwar ermittelt, aber nicht wie vorher in definierten Abständen.

List eines von fünf Sensordevices:


Internals:
   BTMAC      C4:7C:8D:63:6D:E9
   DEF        C4:7C:8D:63:6D:E9
   INTERVAL   300
   NAME       WZ_Pflanze1
   NOTIFYDEV  global
   NR         178
   NTFY_ORDER 50-WZ_Pflanze1
   STATE      Feuchte: 7 / 65 / 50</br>Dünger: 300 / 1146 / 1000</br>Temperatur: 10 / 19.5 / 32</br>
   TYPE       XiaomiFlowerSens
   VERSION    1.2.3
   loglevel   4
   Helper:
     DBLOG:
       battery:
         DBLogging:
           TIME       1512037303.12254
           VALUE      ok
       batteryLevel:
         DBLogging:
           TIME       1512037303.12254
           VALUE      87
       fertility:
         DBLogging:
           TIME       1512037314.46255
           VALUE      1162
       lux:
         DBLogging:
           TIME       1512037676.74876
           VALUE      99
       moisture:
         DBLogging:
           TIME       1512037314.46255
           VALUE      65
       state:
         DBLogging:
           TIME       1512037713.81715
           VALUE      maxLux ok
       temperature:
         DBLogging:
           TIME       1512037314.46255
           VALUE      19.2
   READINGS:
     2017-11-30 11:21:43   battery         ok
     2017-11-30 11:21:43   batteryLevel    87
     2017-11-30 11:28:32   fertility       1146
     2017-11-30 11:21:43   firmware        2.7.0
     2017-11-30 11:20:01   lastGattError   The BlockingCall Process terminated unexpectedly. Timedout
     2017-11-30 11:28:32   lux             99
     2017-11-30 11:28:32   moisture        65
     2017-11-30 11:28:32   state           active
     2017-11-30 11:28:32   temperature     19.5
     2017-11-30 11:28:32   uistate         ok
   helper:
     CallBatteryFirmware 0
     CallSensDataCounter 0
     updateTimeCallBatteryFirmware 1512037303.11199
     updateTimestampCallBatteryFirmware 2017-11-30 11:21:43
Attributes:
   DbLogExclude .*
   DbLogInclude state,battery,batteryLevel,temperature,moisture,fertility,lux
   alias      Bogenhanf
   disable    0
   event-min-interval state:3600,battery:3600,batteryLevel:3600,temperature:600,moisture:600,fertility:600,lux:300
   event-on-change-reading state
   event-on-update-reading .*
   icon       hue_room_garden
   maxFertility 1000
   maxLux     5400
   maxMoisture 50
   maxTemp    32
   minFertility 300
   minLux     2000
   minMoisture 7
   minTemp    10
   room       20_Wohnzimmer
   stateFormat {"Feuchte: ".AttrVal($name,"minMoisture","")." / ".ReadingsVal($name,"moisture","")." / ".AttrVal($name,"maxMoisture","")."</br>".
"Dünger: ".AttrVal($name,"minFertility","")." / ".ReadingsVal($name,"fertility","")." / ".AttrVal($name,"maxFertility","")."</br>".
"Temperatur: ".AttrVal($name,"minTemp","")." / ".ReadingsVal($name,"temperature","")." / ".AttrVal($name,"maxTemp","")."</br>"}
   userReadings uistate {
my $moist = ReadingsVal($name, "moisture",0);;
my $minmoist = AttrVal($name,"minMoisture",10);;
my $fert = ReadingsVal($name, "fertility",0);;
my $minfert = AttrVal($name,"minFertility",50);;

if ($moist < $minmoist && $fert < $minfert) {
return "durstig+hungrig"}
elsif ($moist < $minmoist) {
return "durstig"}
elsif ($fert < $minfert) {
return "hungrig"}
else {
return "ok"}}
   verbose    5


Logausschnitt nach einem Reboot mit verbose 5 von obigem Sensor:
2017.11.30 11:28:30 4: XiaomiFlowerSens (WZ_Pflanze1) - WriteSensData: call function ExecGatttool_Run
2017.11.30 11:28:30 4: XiaomiFlowerSens (WZ_Pflanze1) - stateRequestTimer: Call Request Timer
2017.11.30 11:28:30 5: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b C4:7C:8D:63:6D:E9 --char-write-req -a 0x33 -n A01F 2>&1 /dev/null and loop 0
2017.11.30 11:28:32 5: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Run: gatttool loop result Characteristic value was written successfully

2017.11.30 11:28:32 4: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Run: gatttool result Characteristic value was written successfully

2017.11.30 11:28:32 4: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Done: gatttool return string: WZ_Pflanze1|C4:7C:8D:63:6D:E9|ok|write|0x33|{"gtResult":"no data response"}
2017.11.30 11:28:32 4: XiaomiFlowerSens (WZ_Pflanze1) - CallSensData: call function ExecGatttool_Run
2017.11.30 11:28:32 5: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Run: call gatttool with command gatttool -i hci0 -b C4:7C:8D:63:6D:E9 --char-read -a 0x35 2>&1 /dev/null and loop 0
2017.11.30 11:28:32 5: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Run: gatttool loop result Characteristic value/descriptor,c3 00 00 63 00 00 00 41 7a 04 02 3c 00 fb 34 9b

2017.11.30 11:28:32 4: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Run: gatttool result Characteristic value/descriptor,c3 00 00 63 00 00 00 41 7a 04 02 3c 00 fb 34 9b

2017.11.30 11:28:32 4: XiaomiFlowerSens (WZ_Pflanze1) - ExecGatttool_Done: gatttool return string: WZ_Pflanze1|C4:7C:8D:63:6D:E9|ok|read|0x35|{"gtResult":"c3 00 00 63 00 00 00 41 7a 04 02 3c 00 fb 34 9b \n"}
2017.11.30 11:28:32 5: XiaomiFlowerSens (WZ_Pflanze1) - ProcessingNotification
2017.11.30 11:28:32 4: XiaomiFlowerSens (WZ_Pflanze1) - ProcessingNotification: handle 0x35
2017.11.30 11:28:32 5: XiaomiFlowerSens (WZ_Pflanze1) - Handle0x35
2017.11.30 11:28:33 4: XiaomiFlowerSens (WZ_Pflanze1) - WriteReadings: Readings were written


FHEM-Update ist aktuell von heute vormittag.
@CoolTux: brauchst du noch mehr Infos um zu diesem Problem was sagen zu können?