[74_XiaomiBTLESens.pm] Xiaomi Bluetooth Sensoren FlowerSens/Thermometer

Begonnen von CoolTux, 11 Januar 2018, 15:42:45

Vorheriges Thema - Nächstes Thema

CoolTux

Sieht gut aus. Kannst Du bitte noch ein list vom Device geben.

FHEMWEB Kommandozeile
list xiaomi1
eingeben
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

smurphy

Zitat von: CoolTux am 03 Oktober 2018, 22:08:54
Sieht gut aus. Kannst Du bitte noch ein list vom Device geben.

FHEMWEB Kommandozeile
list xiaomi1
eingeben

Internals:
   BTMAC      4c:65:a8:d8:ae:ef
   DEF        4c:65:a8:d8:ae:ef
   INTERVAL   120
   NAME       xiaomi1
   NOTIFYDEV  global,xiaomi1
   NR         232
   NTFY_ORDER 50-xiaomi1
   STATE      T: 14.7 H: =6.1
   TYPE       XiaomiBTLESens
   VERSION    2.2.2
   loglevel   4
   READINGS:
     2018-10-03 22:13:59   Luftfeuchtigkeit 6.1
     2018-10-03 20:22:50   batteryPercent  76
     2018-10-03 20:22:50   batteryState    ok
     2018-10-03 22:13:59   dewpoint        -22.4
     2018-10-03 16:22:06   firmware        00.00.66
     2018-10-03 22:13:59   humidity        =6.1
     2018-10-03 22:13:59   state           T: 14.7 H: =6.1
     2018-10-03 22:13:59   temperature     14.7
   helper:
     CallBattery 0
     CallSensDataCounter 0
     updateTimeCallBattery 1538590970.06001
     updateTimestampCallBattery 2018-10-03 20:22:50
Attributes:
   event-on-change-reading batteryPercent,temperature,Luftfeuchtigkeit
   event-on-update-reading batteryPercent,temperature,Luftfeuchtigkeit
   interval   120
   model      thermoHygroSens
   room       XiaomiBTLESens
   userReadings Luftfeuchtigkeit { my $luft = ReadingsVal("xiaomi1","humidity",0);$luft=~s/=//;$luft;}

randor48

Guten Abend zusammen,
hat schon jemand hier probiert das Xiaomi Thermometer in homebridge einzubinden? Ich bekomme nur die Temperatur in Homekit angezeigt. Die Luftfeuchte fehlt.
Leider auch, wenn ich homebridgeMapping benutze. In dem Log von homebridge taucht interessanterweise die Luftfeuchte auf, aber wird leider nicht übertragen.

Das "native" homebridge plugin ist dagegen für mich keine Alternative, da das die Steuerung von FHEM teilweise stört (Bluetooth).

MfG

CoolTux

Zitat von: smurphy am 03 Oktober 2018, 22:16:33
Internals:
   BTMAC      4c:65:a8:d8:ae:ef
   DEF        4c:65:a8:d8:ae:ef
   INTERVAL   120
   NAME       xiaomi1
   NOTIFYDEV  global,xiaomi1
   NR         232
   NTFY_ORDER 50-xiaomi1
   STATE      T: 14.7 H: =6.1
   TYPE       XiaomiBTLESens
   VERSION    2.2.2
   loglevel   4
   READINGS:
     2018-10-03 22:13:59   Luftfeuchtigkeit 6.1
     2018-10-03 20:22:50   batteryPercent  76
     2018-10-03 20:22:50   batteryState    ok
     2018-10-03 22:13:59   dewpoint        -22.4
     2018-10-03 16:22:06   firmware        00.00.66
     2018-10-03 22:13:59   humidity        =6.1
     2018-10-03 22:13:59   state           T: 14.7 H: =6.1
     2018-10-03 22:13:59   temperature     14.7
   helper:
     CallBattery 0
     CallSensDataCounter 0
     updateTimeCallBattery 1538590970.06001
     updateTimestampCallBattery 2018-10-03 20:22:50
Attributes:
   event-on-change-reading batteryPercent,temperature,Luftfeuchtigkeit
   event-on-update-reading batteryPercent,temperature,Luftfeuchtigkeit
   interval   120
   model      thermoHygroSens
   room       XiaomiBTLESens
   userReadings Luftfeuchtigkeit { my $luft = ReadingsVal("xiaomi1","humidity",0);$luft=~s/=//;$luft;}


Vielen Dank nochmal für den Kaffee. Ich habe mich die Tage mit Deinem "Problem" beschäftigt und muss gestehen das ich keine Ahnung habe wo das = herkommen soll. Ich sehe da beim besten Willen kein Problem beim auslesen.
Kannst Du mal schauen ob Du bei höheren Werten auch die Probleme hast?
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

smurphy

Sorry das ich jetzt erst wieder in das Forum schaue. Ich werde das am Wochenende mal,testen und sage dann Bescheid.

Es ist ja auch aktuell kein Problem mehr, dank des userreadings.
Aber klar, wir haben nur das Symptom beseitigt.

Gruß
Smurphy

smurphy

So ganz schlau bin ich noch nicht.

Ich habe im FHEM eine Fehlermeldung im Log gehabt und es wurden keine neuen Werte gelesen.
   
,,The BlockingCall Process terminated unexpectedly. Timedout"

Ich habe jetzt den Sensor aus der Trockenbox genommen und den Raspi neungestartet.

Die Werte werden aktuell ohne das Gleichheitszeichen gesendet.

   
T: 20.0 H: 55.2 D: 10.7

Morgen nach der Arbeit schaue ich, ob die Werte noch ok sind und lege dann den Sender zurück in die Trockenbox.

Mal sehen was passiert.


CoolTux

Aber ist ja schon mal interessant. Im einstelligen Bereich ist ja das Format anders, da muss ich dann erstmal schauen.
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 eh vor das gesamte Modul ein wenig um zu bauen. Hauptsächlich damit ich mit package arbeiten kann und vielleicht etwas OOP
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

smurphy

Guten Abend Cooltux,

Jetzt ist es bestätigt. Einstellige Werte werden mit dem Gleichheitszeichen ausgegeben.

Zumindest ist jetzt die Ursache gefunden!

Gruß
Smurphy

ToM_ToM

ZitatWas mir aber auf fällt das der letzte Timestamp aller Readings kurz vor dem setzen und abrufen des Batteriestatus endet. Muss nichts heißen aber ich schaue da mal.

Guten Morgen Leon,

da ich aktuell wieder den Fall habe dass die Sensoren nicht automatisch reenablen nachdem ich innderhal des disabled intervalls neu gestartet habe, die Frage: Hast du hier schon was zu herausfinden können? :)

Zusätzlich ist mir heute noch etwas aufgefallen. Einer meiner Pflanzensensoren hängt im Status "set attribute model first". Das Attribut ist jedoch gesetzt und das manuelle Abrufen funktioniert auch.


Internals:
   BTMAC      C4:7C:8D:66:04:70
   DEF        C4:7C:8D:66:04:70
   INTERVAL   3600
   NAME       Pflanze_07
   NOTIFYDEV  global,Pflanze_07
   NR         1002
   NTFY_ORDER 50-Pflanze_07
   STATE      set attribute model first
   TYPE       XiaomiBTLESens
   VERSION    2.2.2
   loglevel   4
   READINGS:
     2018-06-14 20:36:07   battery         ok
     2018-06-14 20:36:07   batteryLevel    100
     2018-10-16 11:23:43   batteryPercent  100
     2018-10-16 11:23:43   batteryState    ok
     2018-10-16 20:46:15   fertility       479
     2018-10-16 11:23:43   firmware        3.1.8
     2018-10-14 13:49:41   lastGattError   charWrite faild
     2018-10-16 20:46:15   lux             121
     2018-10-16 20:46:15   moisture        27
     2018-10-16 20:46:15   moistureFeeling good
     2018-10-16 21:00:48   state           set attribute model first
     2018-10-16 20:46:15   temperature     21.8
   helper:
     CallBattery 0
     CallSensDataCounter 0
Attributes:
   DbLogExclude .*
   alias      Gasteria
   disabledForIntervals 21:00-24:00 00:00-06:00
   interval   3600
   maxFertility 1000
   maxLux     30000
   maxMoisture 50
   maxTemp    35
   minFertility 300
   minLux     3500
   minMoisture 7
   minTemp    5
   model      flowerSens
   room       FlowerSens
   userReadings moistureFeeling:moisture.* {
if (ReadingsVal($name, "moisture", -1) < AttrVal($name, "minMoisture", 0)) {
return "too dry";
}
elsif (ReadingsVal($name, "moisture", -1) < AttrVal($name, "minMoisture", 100) + 3) {
return "getting dry";
}
elsif (ReadingsVal($name, "moisture", -1) > AttrVal($name, "maxMoisture", 100)) {
return "too wet";
}
else {
return "good";
}
}


VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Hallo Thomas,

Herausfinden konnte ich leider noch nichts. Hatte aber auch schon einmal das Problem. Es hat etwas damit zu tun wenn man innerhalb der disabled Zeit FHEM neustartet.

Zu Deinem einen Sensor. Bitte einmal das Attribut model löschen. Dann auf DEF klicken und einfach wieder auf modify. Danach das model Attribut vergeben.


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

JWRu

Ich habe Probleme mit XiaomiBTLESens und FHEM2FHEM.
Ich habe ein Xiaomi-Device auf einem RasPi Zero W eingerichtet, den ich für BLE-Tags (PRESENCE) nutze. Hier läuft meine dritte FHEM-Installation (FHEM3).
Lokal funktioniert alles prima.
Jetzt habe ich versucht, das Device per FHEM2FHEM auf ein gleichnamiges dummy-Device im meinem Haupt-FHEM (FHEM1) zu übertragen, wie ich das schon mehrfach mit Geräten in meiner zweiten FHEM-Installation (FHEM2) erfolgreich gemacht habe.
Dabei tritt folgendes Problem auf: Die Readings des dummies auf FHEM1 werden zwar einmalig definiert, dann aber mit Ausnahme von "state" nicht mehr aktualisiert. Ursache ist wohl, dass das Update der Readings im Original-Device (FHEM3) keine events auslöst. Im Event monitor taucht jedenfalls außer "state" nichts auf. Erst wenn ich einzelne Readings explizit im Attribut "event-on-update-reading" aufliste, werden events ausgelöst und die Readings im dummy-Device aktualisiert. Sobald ich aber "state" in die Liste aufnehme, löst nur noch "state" ein event aus.
Hier das list des Original-Device (FHEM3):
Internals:
   BTMAC      C4:7C:8D:64:47:67
   CFGFN     
   DEF        C4:7C:8D:64:47:67
   INTERVAL   300
   NAME       Ficus
   NOTIFYDEV  global,Ficus
   NR         56
   NTFY_ORDER 50-Ficus
   STATE      active
   TYPE       XiaomiBTLESens
   VERSION    2.2.2
   loglevel   4
   READINGS:
     2018-10-17 22:59:11   batteryPercent  99
     2018-10-17 22:59:11   batteryState    ok
     2018-10-18 10:44:30   fertility       777
     2018-10-17 22:59:11   firmware        3.1.9
     2018-10-18 10:20:48   lastGattError   charWrite faild
     2018-10-18 10:44:30   lux             2581
     2018-10-18 10:44:30   moisture        47
     2018-10-18 10:44:30   state           active
     2018-10-18 10:44:30   temperature     21.4
   helper:
     CallBattery 0
     CallSensDataCounter 0
     updateTimeCallBattery 1539809951.40486
     updateTimestampCallBattery 2018-10-17 22:59:11
Attributes:
   event-on-update-reading moisture,temperature,lux,fertility
   model      flowerSens
   room       XiaomiBTLESens


und des dummies (FHEM1):
Internals:
   CFGFN     
   NAME       Ficus
   NR         3961
   STATE      write sensor data
   TYPE       dummy
   Helper:
     DBLOG:
       fertility:
         myDbLog:
           TIME       1539852270.6456
           VALUE      777
       lux:
         myDbLog:
           TIME       1539852270.69482
           VALUE      2581
       moisture:
         myDbLog:
           TIME       1539852270.62049
           VALUE      47
       state:
         myDbLog:
           TIME       1539808234.50414
           VALUE      write sensor data
       temperature:
         myDbLog:
           TIME       1539852270.67003
           VALUE      21.4
   READINGS:
     2018-10-18 10:44:30   fertility       777
     2018-10-18 10:44:30   lux             2581
     2018-10-18 10:44:30   moisture        47
     2018-10-17 22:30:34   state           write sensor data
     2018-10-18 10:44:30   temperature     21.4
Attributes:
   room       Flur
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

CoolTux

Deine Beobachtung ergibt keinen Sinn. Wenn ich Dich richtig verstanden habe, dann kommen Events vom Moduldevice erst seit Du event-on-update-reading aktiviert hast.
Sollte es ein Problem vom Modul her sein, so würde ein event-on-xxx Eintrag dieses nicht lösen.
Lass es mich heute Abend einmal testen, Ich glaube ich habe bei mir event-on-change-reading aktiviert. Werde das mal raus nehmen.

Aber ich habe Dich richtig verstanden? Ohne event-on-xxx kommen keine Events?
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

JWRu

ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

JWRu

Ich muss es genauer beschreiben:
Ohne event-on-update-reading tauchen außer für "state" keine Events im FHEM1 auf.
Event monitor FHEM3:
2018-10-18 11:16:16 XiaomiBTLESens Ficus write sensor data
2018-10-18 11:16:19 XiaomiBTLESens Ficus read sensor data
2018-10-18 11:16:19 XiaomiBTLESens Ficus lux: 2553
2018-10-18 11:16:19 XiaomiBTLESens Ficus moisture: 47
2018-10-18 11:16:19 XiaomiBTLESens Ficus fertility: 753
2018-10-18 11:16:19 XiaomiBTLESens Ficus temperature: 22.5
2018-10-18 11:16:19 XiaomiBTLESens Ficus active


Event monitor FHEM1:
2018-10-18 11:16:16 dummy Ficus write sensor data


Mit "event-on-update-reading moisture,temperature,lux,fertility" sieht es so aus:
Event monitor FHEM3:
2018-10-18 11:24:44 XiaomiBTLESens Ficus lux: 2734
2018-10-18 11:24:44 XiaomiBTLESens Ficus temperature: 22.9
2018-10-18 11:24:44 XiaomiBTLESens Ficus moisture: 47
2018-10-18 11:24:44 XiaomiBTLESens Ficus fertility: 753


Event monitor FHEM1:
2018-10-18 11:24:44 dummy Ficus lux: 2734
2018-10-18 11:24:44 dummy Ficus temperature: 22.9
2018-10-18 11:24:44 dummy Ficus moisture: 47
2018-10-18 11:24:44 dummy Ficus fertility: 753



Hier ein list meines FHEM2FHEM:
Internals:
   CFGFN     
   DEF        192.168.178.86:7027 LOG:Ficus.*

   FD         29
   Host       192.168.178.86:7027
   NAME       FHEM3
   NR         3507
   PARTIAL   
   STATE      connected
   TYPE       FHEM2FHEM
   informType LOG
   regexp     Ficus.*
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1539854181.41746
           VALUE      CONNECTED
Attributes:
   room       System

ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter