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

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

Vorheriges Thema - Nächstes Thema

marboj

Zitat von: CoolTux am 21 Januar 2022, 07:34:06
Nein. Das Modul liest direkt den Sensor aus und schreibt was dieser übertragt. Wenn die Daten nicht valide aus dem Sensor kommen kann ich da leider nichts machen.

und die Integration der alternativen Firmware?
meine FHEM-Konfiguration: Raspberry Pi4, BT-Dongle, CUL868, CeeBee II

CoolTux

Habe ich leider aktuell keine Zeit für.

Ich nehme aber natürlich sehr gerne Patches 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

kurt6908

Hallo,

Zitat von: marboj am 20 Januar 2022, 14:49:40
Hab es mal in das Gefrierfach gelegt. Sieht gut aus...

setstate KUE.Thermo 2022-01-20 14:48:14 state T: -4.48 H: 69
setstate KUE.Thermo 2022-01-20 14:48:14 temp -4.5 °C
setstate KUE.Thermo 2022-01-20 14:48:14 temperature -4.48


ich kann nun auch aus dem Reallife bestätigen, dass negative Werte angezeigt werden. Läuft also bestens.

Vielen Dank für die Änderung.

Kurt
3* Raspberry Pi (2 über LTE/VPN), 5* Cul, 3* FS20, 4* FHT, 6* HM, Somfy, Solarlog, WMBus/EnergyCam, AVM FritzBox, 3* AVM Powerline, Alexa, Tasmota/MQTT, Rademacher DuoFern, EPEver HiPower/ModBus, go-eCharger

ares

Ist geplant, eine Unterstützung für die Xiaomi Mi Scale umzusetzen?
https://github.com/lolouk44/xiaomi_mi_scale

Viele Grüße
Manfred

CoolTux

Zitat von: ares am 26 Februar 2022, 12:45:34
Ist geplant, eine Unterstützung für die Xiaomi Mi Scale umzusetzen?
https://github.com/lolouk44/xiaomi_mi_scale

Viele Grüße
Manfred

Nein. Aber es gibt eine Alternative für FHEM, fhempy mit dem lowenergy Bluetooth
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

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ares

Zitat von: CoolTux am 26 Februar 2022, 12:48:09
Nein. Aber es gibt eine Alternative für FHEM, fhempy mit dem lowenergy Bluetooth
Da die Daten bereits mit dem Modul und falscher Device bereits im Event monitor von fhem ankommen, hatte ich gehofft, die Messdaten (nur Gewicht) ohne weitere Verarbeitung oder eigenes Modul einfach integrieren zu können.
Vielen Dank aber für den Tipp mit fhempy... irgendwie wurde mir das Modul bei meinen bisherigen Suchanfragen nie angezeigt.

Zitat von: Beta-User am 26 Februar 2022, 13:16:52
OpenMQTTGateway (ESP32) kann die u.a. auch...
Meine Waage ist nicht mehr in Empfangsreichweite meines Raspberry im Keller mit der fhem-Installation. Ich hatte daher einen Raspberry Pi Zero 2 W geplant, der auch einen noch nicht vorhandenen FlowerSens überwachen sollte.
Mit dem ESP32 hatte ich mich bisher noch nicht befasst, da ich nicht löten kann und das auch nicht mehr lernen werde. Kann ich beim ESP32 auch einfach etwas inklusive Netzteil und ohne Löten zusammenbauen das nicht nach einer Bastellösung aussieht?

MadMax-FHEM

#1117
[OT] es gibt ESP fix und fertig inkl. USB-Anschluss für Spannung und flashen. Und sogar mit POE, wer lieber LAN als WLAN will...
Stichwort: NodeMCU...
Z.B.: https://www.ebay.de/itm/Espressif-ESP32-WLAN-Dev-Kit-Board-Development-Bluetooth-Wifi-v1-WROOM32-NodeMCU-/255283221996?mkcid=16&mkevt=1&_trksid=p2349624.m46890.l49286&mkrid=707-127634-2357-0
[/OT]

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Beta-User

Zitat von: ares am 27 Februar 2022, 09:18:39
Ich hatte daher einen Raspberry Pi Zero 2 W geplant, der auch einen noch nicht vorhandenen FlowerSens überwachen sollte.
Mit dem ESP32 hatte ich mich bisher noch nicht befasst, da ich nicht löten kann und das auch nicht mehr lernen werde. Kann ich beim ESP32 auch einfach etwas inklusive Netzteil und ohne Löten zusammenbauen das nicht nach einer Bastellösung aussieht?
Der Aufwand mit einem ESP32 dürfte geringer sein wie mit dem Zero W - die "dev-boards"  haben in der Regel einen Micro-USB-Anschluss, über den sie auch geflasht werden. Meine beiden sitzen je in einem alten FritzBox-Gehäuse - zusammen mit anderem "Bastelgruscht".
OMG kann jedenfalls u.a. auch die "Flower".

Man kann BT-LE übrigens auch mit Tasmota-ESP32 empfangen; vermutlich ginge das auch damit, ist nur noch nicht groß getestet, was die Auswertung der Daten in FHEM angeht (die JSON sind gefühlt etwas "komisch"). Will sagen: Dann geht ggf. auch ein irgendwo verbauter "normaler WLAN-Aktor" als IO-Gerät... (es gibt in der english-corner einen, der seine ewuiva-Thermostate so steuert!).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

huri-kane

Hallo in die Runde,

weiß nicht, ob der Thread hier der richtige Anlaufpunkt für Patches ist. Falls nicht, bitte nicht steinigen  ::)

TL;DR: Das Auslesen der Helligkeit am FlowerCare Sensor ("flowerSens") berücksichtigt zu nur zwei Bytes für einen Wertebereich von 0 - 140.000lux und führt daher bei starker Helligkeit zu einem falschen Ergebnis.

Ich betreibe bei mir den FlowerCare Sensor seit einigen Jahren zur Ermittlung der Außenhelligkeit und habe bisher nie hinterfragt, warum bei strahlendem Sonnenschein am Vormittag im Helligkeitsverlauf immer ein krasser Sprung nach unten zu verzeichnen war. Bin nun mehr oder weniger durch Zufall dazu gekommen, mir auch mal die dazugehörigen Android App zu installieren. Die dort aufgeführten Sensorwerte berichteten u.a. eine Helligkeit von um die 100.000lux (blauer Himmel, Sonne satt). Im FHEM wurde aber irgendwas um 36.000 gemeldet.
Daraufhin habe ich mal die Verbosity im FHEM-Device erhöht um einen schnellen Blick auf die Rohdaten des BLE-Datentransfers vom gattool haben zu können. Nach anschließendem kurzen Blick in den Perl-Code war zumindest schnell klar, welche Bytes im Datenstrom die Helligkeit repräsentieren (Bereich um Zeile 1084 in 74_XiaomiBTLESens.pm / Funktion FlowerSensHandle0x35()). Da fiel mir auf, dass lediglich zwei Bytes dafür aus dem Byte-Array genommen werden ($sensorData[4] und $sensorData[3]) - was nicht so recht zu einer Helligkeit von ~100.000lux passt die der Sensor laut Android App ja offenbar überträgt.
Da $sensorData[5] jedoch nirgendwo genutzt wird, es einen geringen Wert (0x01) hatte und die Daten offenbar als big endian übertragen werden, habe ich es einfach als zusätzliches Byte voran gefügt - und dann kam "plötzlich" auch ein entsprechender Helligkeitswert raus der auch zu dem Wert aus der App passte.
Einen entsprechenden Patch habe ich mal angefügt falls Interesse besteht, das mit aufzunehmen :) Auch wenn das jetzt nur Trial&Error war scheint es mir dennoch plausibel....

Beste Grüße
André

hummeruli

Hi André,

super Patch!

Hatte mich auch schon gewundert dass die Werte so niedrig waren. Dachte aber "typisch China". Auch vermutete ich, dass die Pflanze zu wenig Licht vorbei an den Sensor lässt.

(Bei 8 Stück)!  8)

Danke und schöne Pfingsten.

Gruß

Uli 
Beim Erstellen dieser Nachricht kamen weder Tiere zu Schaden, noch wurde Papier verschwendet. Alles von mir geschriebene ist biologisch abbaubar.


FHEM auf Debian Buster in einr Proxmox VM , LaCrosseGateway, AVR-NET-IO, Homematic, Alexa, S300TH, Signalduino..........

RudiRoechel

Hallo allerseits,

ich habe ein kleines Problem beim Logging von meinem Flower Sensor.  Weil der Sensor nicht in der direkten Nähe zum Raspi steht, bekomme ich spätestens wenn Abends die Rolladen runter gehen (ich benutze den Sensor draußen) keine Werte mehr, sondern immer die bekannten Fehler Meldungen im state (unreachable, error, usw.)
Die habe ich dann natürlich auf im Log und das wollte ich vermeiden.
Ein event on change reading funktioniert natürlich nicht, da ja bei jedem Verbindungsversuch wieder die Meldungen (read data from sensor usw.) kommen.
Also dacht ich ich bin ganz schlau, und baue mir ein Userreading, das OK anzeigt, wenn im state steht active und ein ERROR, wenn da was anderes steht. Da kann ich dann schlön mit event on change reading arbeiten.

Nun folgt mein Problem. Im Logfile werden aber immernoch alle sate Änderungen eingetragen. Kann man das irgendwie abstellen?
Ich dachte da muss do irgendwo ein "Schalter" sein nach dem Motto: "Logge alles außer state"
Aber mir fehlt da irgendwo die Idee.


Vielen Dank schon mal für eure Bemühungen.

mi.ke

Zitat von: RudiRoechel am 26 Juli 2022, 16:30:53
Ich dachte da muss do irgendwo ein "Schalter" sein nach dem Motto: "Logge alles außer state"

Falscher Ansatz!

Die Lösung ist "Logge nur das was geloggt werden soll"
z. B. moisture,temperature,fertility,lux

define FileLog_Pflanze_01 FileLog ./log/Pflanze_01-%Y-%U.log Pflanze_01:(moisture|temperature|fertility|lux).*

Beispiele findest Du in der commandref
Dann mit STRG + F
filelog

cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

RudiRoechel

Entschuldige, wenn ich erst jetzt antworte, aber ich war im Urlaub.
Vielen Dank mi.ke! Das hatte ich so schön befürchtet.
Wäre halt schön gewesen wenn bei einem neuen userereading dieses automatisch mit geloggt würde. Aber mann soll sich bei dem was man tut immer auch Gedanken um die "Wechselwirkungen" machen.

Wie gesagt kann ich eben nicht alles loggen da bei state immer auch Meldungen kommen, wenn die Bluetooth Verbindung auf- und abgebaut wird.

Trotzdem Danke für den Hinweis.

Gruß,

RR

MadMax-FHEM

Wenn du alles loggen willst (bist du sicher?) oder zumindest neue Readings aber state nicht, dann könnte folgendes gehen:

attr FileLog addStateEvent, dann steht auch 'state' im Event und dann nur dieses (oder weitere) mittels ignoreRegexp "rauswerfen"...

Aber normalerweise dämmt man Events auf das notwendige ein (event-on-change-reading etc.) und loggt nur was man braucht (wie bereits geschrieben).
Ja, dann muss man halt mal schnell die Log-RegEx anpassen, wenn dann doch mal ein neues Reading dazukommt aber wie oft kommt das vor?
Normalerweise wird das FileLog einmal eingerichtet und dann läuft es...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)