FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: Bracew am 15 Mai 2021, 12:49:24

Titel: Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Bracew am 15 Mai 2021, 12:49:24
Hallo,

im "Deutsches Raspberry Pi Forum" (https://forum-raspberrypi.de/forum/ (https://forum-raspberrypi.de/forum/)) wurde ein Beitrag
"Wie sollte man einen BME280 Sensor vor den Unbilden des deutschen Wetters schuetzen?"
https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?pageNo=1 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?pageNo=1)
diskutiert.

Im Beitrag #25 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491225#post491225 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491225#post491225))
gibt es einen Lösungsansatz: "...Meine Empfehlung geht auch in die Richtung, nachts und nach einem Regenschauer im Abstand von 1 Sekunde zu messen...."

und im Beitrag #28 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491290#post491290 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491290#post491290))
"...reicht es aus, nur zu kritischen Zeitpunkten (z. B. aktuelle Temperatur - Taupunkt < 5 °C) dafür zu sorgen, dass der Sensor oder das Sensor-Modul nicht den Kältepol in der näheren Umgebung darstellt."

Mein RasPi misst per FHEM im Moment alle 20 Minuten.
define SensorAussen I2C_BME280 0x76
attr   SensorAussen poll_interval 20

Scheinbar reicht das nicht aus um meinen BME280-Sensor vor Kondenswasser zu schützen, denn ich habe schon zwei  Sensoren verschlissen und vor kurzen den dritten neuen Sensor einbauen müssen.

Zunächst dachte ich die Messintervalle auf 1 Sekunde zu verkürzen, doch ist in der FHEM Referenz 1 Minute als kürzestes Intervall angegeben. Weiterhin führen verkürzte Messintervalle zu mehr Log-Einträge. Die Daten im Log-File würden dadurch unnötig anschwellen.

Ich habe bereits im Raspberry Pi Forum gefragt:
- Kann mir jemand einen FHEM-Tip geben, wie ich zwar jede Sekunde messen lassen kann, aber nur alle 20 Minuten ein Log-Eintrag generiere? bzw.
- Wie ich diese Strategie (zu kritischen Zeitpunkten öfters messen) in FHEM umsetzen kann?
Jedoch hat dort niemand helfen können.

Deshalb möchte ich hier im FHEM Forum mal dazu nachfragen?
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: TomLee am 15 Mai 2021, 13:11:29
ZitatKann mir jemand einen FHEM-Tip geben, wie ich zwar jede Sekunde messen lassen kann, aber nur alle 20 Minuten ein Log-Eintrag generiere?

Ich meine event-min-interval kann für dafür sorgen nur alle 20 Minuten einen Logeintrag zu generieren, selbst aber noch nie eingesetzt.

Zitatevent-min-interval
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings:minInterval" Paare. readings kann ein regexp sein. Ein Event wird nur dann generiert, falls seit dem letzten Auftreten des gleichen Events mindestens minInterval Sekunden vergangen sind. Falls event-on-change-reading auch spezifiziert ist, dann werden sie mit ODER kombiniert, d.h. wenn einer der beiden Bedingungen wahr ist.

Gruß

Thomas
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Papa Romeo am 15 Mai 2021, 14:24:16
Zitat von: Bracew am 15 Mai 2021, 12:49:24
Mein RasPi misst per FHEM im Moment alle 20 Minuten.
define SensorAussen I2C_BME280 0x76
attr   SensorAussen poll_interval 20

Scheinbar reicht das nicht aus um meinen BME280-Sensor vor Kondenswasser zu schützen, denn ich habe schon zwei  Sensoren verschlissen und vor kurzen den dritten neuen Sensor einbauen müssen.

... das kann ich jetzt irgendwie nicht nachvollziehen, das man den BME durch ein Erhöhen des Abfrageintervalles vor Kondenswasser schützen kann ...  :o ??? :-\

LG
Papa Romeo
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: yoda_gh am 15 Mai 2021, 20:01:16
Sicher, dass es dort um einen BME280 und nicht einen BME680 geht?

Der BME680 hat ja den CO2-Sensor, der tatsächlich eine kleine Heizung beinhaltet. Und im Datenblatt vom BME680 wird auch gewarnt, dass die Temperatur-Messung kurz nach der CO2-Messung erhöhte Werte ergeben kann. Ob die Heizleistung allerdings reicht, um vor Kondenswasser zu schützen, erscheint mir auch fragwürdig.

Ich würde hier generell erstmal empfehlen, im Datenblatt nachzulesen, in welcher Umgebung der Sensor eingesetzt werden darf und mich daran einfach halten.

Die HDC10xx-Reihe von TI hat eine Heizung eingebaut, die angeblich Kondensfeuchtigkeit entfernen soll, um falsche Messungen zu verhindern - allerdings konnte ich in meinen Versuchen damit (in einer feuchten Ecke im Keller) auch keinen wirklichen Effekt feststellen.

Noch kurz zu Deinen direkten Fragen:

Um die Logging-Last zu reduzieren, empfehlen sich event-on-change-reading (siehe https://wiki.fhem.de/wiki/Event-on-change-reading (https://wiki.fhem.de/wiki/Event-on-change-reading)) oder der event-aggregator (siehe https://wiki.fhem.de/wiki/Event-aggregator (https://wiki.fhem.de/wiki/Event-aggregator)). Auch die commandref hat für beide Erklärungen und Beispiele.

Um Daten häufiger zu lesen, könnte man das set <name> readValues vom BME280-Modul nutzen und über einen FHEM-Mechanismus häufiger triggern, dazu habe ich aber auch keine wirkliche Erfahrung - und wie gesagt, erstmal würde ich klären, ob es a) überhaupt ein Problem mit den Umgebungsbedingungen gibt und wenn ja, b) nochmal hinterfragen, ob diese Maßnahme Voodoo oder wirkliche Wirkung hat.
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Bracew am 15 Mai 2021, 21:41:55
Hallo,

danke für Eure Bemühungen.

Zitat von: TomLee am 15 Mai 2021, 13:11:29
Ich meine event-min-interval kann für dafür sorgen nur alle 20 Minuten einen Logeintrag zu generieren, selbst aber noch nie eingesetzt.
Gibt es ein praktisches Programmierbeispiel bzw. FHEM-Code?
Ich habe auch noch nicht rausgefunden, wie man in kürzeren Intervallen als jede Minute messen kann?

Zitat von: Papa Romeo am 15 Mai 2021, 14:24:16
... das kann ich jetzt irgendwie nicht nachvollziehen, das man den BME durch ein Erhöhen des Abfrageintervalles vor Kondenswasser schützen kann ...  :o ??? :-\
Nicht gesicherte Erkenntnis aus der Diskussion in:
"Wie sollte man einen BME280 Sensor vor den Unbilden des deutschen Wetters schuetzen?"
https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?pageNo=1 , z.B. Beitrag #25.
Aber ein Versuch wert, oder?

Zitat von: yoda_gh am 15 Mai 2021, 20:01:16
Sicher, dass es dort um einen BME280 und nicht einen BME680 geht?
Ja, siehe: https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491177#post491177 dort ist ein Foto meiner Platine mit Aufdruck BME280 zu sehen.

Das Datenblatt gibt die Umgebungsbedingungen her (Operating range -40...+85 °C, 0...100 % rel. humidity, 300...1100 hPa). Und dennoch sind bereits 2 meiner BME280-Sensoren in drei Jahren zur Luftfeuchtigkeit Schrott. Sie messen selbst bei schönstem Wetter nur noch 100% Luftfeuchtigkeit.

Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: yoda_gh am 16 Mai 2021, 09:27:22
Zitat von: Bracew am 15 Mai 2021, 21:41:55
Gibt es ein praktisches Programmierbeispiel bzw. FHEM-Code?

event-min-interval ist der falsche Parameter, das sorgt dafür, dass *mehr* Werte durchkommen, wenn man sie mit den anderen Optionen reduziert hat. Schau Dir bitte die Dokumentation zu event-on-change-reading und  event-aggregator an, die ich unten genannt habe. Sowohl im Wiki, als auch in der commandref sind Beispiele. Solltest Du dazu konkrete Fragen haben, können wir gern darüber reden. :)

Zitat von: Bracew am 15 Mai 2021, 21:41:55
Ich habe auch noch nicht rausgefunden, wie man in kürzeren Intervallen als jede Minute messen kann?

Das gibt der Modulcode zu BME280 erstmal nicht her, würde ich sagen - zumindest nach der Dokumentation, habe jetzt noch nicht in den Quellcode geschaut, ob z.B. Kommawerte für das Intervall helfen könnte. Vermutich musst Du Dir manuell was basteln, vermutlich sollte ein FHEM-"at" auf das von mir genannte "set"-Kommando das leisten können. Wenn Dir "at" und "set" nichts sagen, sag Bescheid, dann versuche ich mal ein Beispiel zu basteln. :)

Zitat von: Bracew am 15 Mai 2021, 21:41:55
Nicht gesicherte Erkenntnis aus der Diskussion in:
[...]
Aber ein Versuch wert, oder?
[...]
Das Datenblatt gibt die Umgebungsbedingungen her (Operating range -40...+85 °C, 0...100 % rel. humidity, 300...1100 hPa). Und dennoch sind bereits 2 meiner BME280-Sensoren in drei Jahren zur Luftfeuchtigkeit Schrott. Sie messen selbst bei schönstem Wetter nur noch 100% Luftfeuchtigkeit.

Ok, mir war nicht klar, dass Du schon ein konkretes Problem mit kaputten Sensoren hast. Die HDC10xx von TI halten bei mir auch regelmäßig nicht lange, dann tritt dasselbe Problem auf, irgendwann messen sie nur noch 90..100% oder 0..20% Feuchtigkeit. Die billigen DHT22 dagegen funktionieren seit Jahren in meiner Lüftungsanlage direkt im Außenluftstrom ohne Problem, allerdings erwischt man da immer wieder total ungenaue Exemplare, die muss man vorher aussortieren.

Wenn Du ein konkretes Problem hast, ist es natürlich einen Versuch Wert! Sagt das Datenblatt etwas über den minimalen Abstand zwischen Leseversuchen?

Ich werde mir heute Abend mal den Thread im RPI-Forum in Ruhe durchlesen...

Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Bracew am 19 Mai 2021, 08:04:34
Hallo,

im Moment teste ich einen getrennten Ansatz.

FHEM bleibt unangetastet. Mit dem BME280-Sensor messen und protokollieren wie bisher alle 20 Minuten.

Im Hintergrund habe ich zusätzlich ein Python-Programm in Dauerschleife aufgesetzt. Mit dem BME280-Sensor messen ohne Protokoll und Ausgabe. Nach jeder Messung wird die Differenz zwischen Temperatur und Taupunkt berechnet. Ist die Differenz < 5 °C wird eine Sekunde bis zur nächsten Messung gewartet und ansonsten mehrere Minuten.
Die Messung ungefähr jede Sekunde soll dafür sorgen, dass der Sensor nicht den Kältepol in der näheren Umgebung darstellt.
Zitat von: Bracew am 15 Mai 2021, 12:49:24
...und im Beitrag #28 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491290#post491290 (https://forum-raspberrypi.de/forum/thread/52637-wie-sollte-man-einen-bme280-sensor-vor-den-unbilden-des-deutschen-wetters-schuet/?postID=491290#post491290))
"...reicht es aus, nur zu kritischen Zeitpunkten (z. B. aktuelle Temperatur - Taupunkt < 5 °C) dafür zu sorgen, dass der Sensor oder das Sensor-Modul nicht den Kältepol in der näheren Umgebung darstellt."
und sich daher kein Kondensat im oder am Sensor bildet. Vereinfacht gesagt, der Sensor verbraucht durch häufigeres Messen mehr Strom und wird dadurch geringfügig wärmer als die Umgebung.

Nur Versuch macht Kluch. Mal sehen, ob es klappt.
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Bracew am 02 Juli 2021, 11:25:18
Hallo,

ich weiß nicht ob hier der richtige Ort ist, oder ob ich ein neues Thema aufmachen sollte.

Mit meinem vorhergehenden Post hatte ich ja erklärt, dass nun FHEM alle 20 Minuten eine Messung macht und ein weitere unabhängiges Python-Programm in Dauerschleife jede Sekunde eine Messung macht. Frei nach den Brüdern Grimm "Die guten in Töpfchen, die schlechten ins Kröpfchen".

Was ich bereits erwartet hatte ist nun aufgrund des schlechten Wetters vermehrt aufgetreten. Die Messunganforderungen beider Programme am BME280 kommen sich in die Quere und produzieren Unsinn.

Hier ein Zusammenschnitt der Unsinns-Messungen von FHEM:
2021-06-21_04:21:31 SensorAussen temperature: -130.7
2021-06-21_04:21:31 SensorAussen pressure: 575.6
2021-06-21_04:21:31 SensorAussen pressure-nn: 602.7
2021-06-21_04:21:31 SensorAussen humidity: 0.0
2021-06-21_04:21:31 SensorAussen T: -130.7 H: 0.0 P: 575.6 P-NN: 602.7

2021-06-21_05:01:31 SensorAussen temperature: 189.3
2021-06-21_05:01:31 SensorAussen pressure: 2001.6
2021-06-21_05:01:31 SensorAussen pressure-nn: 2028.7
2021-06-21_05:01:31 SensorAussen humidity: 100.0
2021-06-21_05:01:31 SensorAussen absFeuchte: 6410.3
2021-06-21_05:01:31 SensorAussen dewpoint: 189.3
2021-06-21_05:01:31 SensorAussen T: 189.3 H: 100.0 P: 2001.6 P-NN: 2028.7

2021-06-22_07:01:32 SensorAussen temperature: -145.2
2021-06-22_07:01:32 SensorAussen pressure: 1027.3
2021-06-22_07:01:32 SensorAussen pressure-nn: 1054.4
2021-06-22_07:01:32 SensorAussen humidity: 100.0
2021-06-22_07:01:32 SensorAussen absFeuchte: 0.0
2021-06-22_07:01:32 SensorAussen dewpoint: -145.2
2021-06-22_07:01:32 SensorAussen T: -145.2 H: 100.0 P: 1027.3 P-NN: 1054.4

2021-06-25_09:21:37 SensorAussen temperature: -130.7
2021-06-25_09:21:37 SensorAussen pressure: 575.6
2021-06-25_09:21:37 SensorAussen pressure-nn: 602.7
2021-06-25_09:21:37 SensorAussen humidity: 0.0
2021-06-25_09:21:37 SensorAussen T: -130.7 H: 0.0 P: 575.6 P-NN: 602.7

2021-06-29_01:52:57 SensorAussen temperature: -106.4
2021-06-29_01:52:57 SensorAussen pressure: 1187.0
2021-06-29_01:52:57 SensorAussen pressure-nn: 1214.1
2021-06-29_01:52:57 SensorAussen humidity: 100.0
2021-06-29_01:52:57 SensorAussen absFeuchte: 0.0
2021-06-29_01:52:57 SensorAussen dewpoint: -106.4
2021-06-29_01:52:57 SensorAussen T: -106.4 H: 100.0 P: 1187.0 P-NN: 1214.1

2021-06-30_08:19:36 SensorAussen temperature: -2.0
2021-06-30_08:19:36 SensorAussen pressure: 729.3
2021-06-30_08:19:36 SensorAussen pressure-nn: 756.4
2021-06-30_08:19:37 SensorAussen humidity: 0.0
2021-06-30_08:19:37 SensorAussen T: -2.0 H: 0.0 P: 729.3 P-NN: 756.4

2021-06-30_09:23:49 SensorAussen temperature: -145.6
2021-06-30_09:23:49 SensorAussen pressure: 1192.2
2021-06-30_09:23:49 SensorAussen pressure-nn: 1219.3
2021-06-30_09:23:49 SensorAussen humidity: 0.0
2021-06-30_09:23:49 SensorAussen T: -145.6 H: 0.0 P: 1192.2 P-NN: 1219.3

2021-07-01_12:19:02 SensorAussen temperature: 43.3
2021-07-01_12:19:03 SensorAussen pressure: 1278.0
2021-07-01_12:19:03 SensorAussen pressure-nn: 1305.1
2021-07-01_12:19:03 SensorAussen humidity: 100.0
2021-07-01_12:19:03 SensorAussen absFeuchte: 60.1
2021-07-01_12:19:03 SensorAussen dewpoint: 43.3
2021-07-01_12:19:03 SensorAussen T: 43.3 H: 100.0 P: 1278.0 P-NN: 1305.1

2021-07-01_16:39:04 SensorAussen temperature: -145.6
2021-07-01_16:39:04 SensorAussen pressure: 416.9
2021-07-01_16:39:04 SensorAussen pressure-nn: 444.0
2021-07-01_16:39:04 SensorAussen humidity: 0.0
2021-07-01_16:39:04 SensorAussen T: -145.6 H: 0.0 P: 416.9 P-NN: 444.0

2021-07-01_19:19:04 SensorAussen temperature: 43.3
2021-07-01_19:19:04 SensorAussen pressure: 1278.0
2021-07-01_19:19:04 SensorAussen pressure-nn: 1305.1
2021-07-01_19:19:04 SensorAussen humidity: 100.0
2021-07-01_19:19:04 SensorAussen absFeuchte: 60.1
2021-07-01_19:19:04 SensorAussen dewpoint: 43.3
2021-07-01_19:19:04 SensorAussen T: 43.3 H: 100.0 P: 1278.0 P-NN: 1305.1

2021-07-01_21:59:04 SensorAussen temperature: -141.5
2021-07-01_21:59:04 SensorAussen pressure: 1201.9
2021-07-01_21:59:04 SensorAussen pressure-nn: 1229.0
2021-07-01_21:59:04 SensorAussen humidity: 11.3
2021-07-01_21:59:04 SensorAussen absFeuchte: 0.0
2021-07-01_21:59:04 SensorAussen dewpoint: -147.3
2021-07-01_21:59:04 SensorAussen T: -141.5 H: 11.3 P: 1201.9 P-NN: 1229.0

2021-07-02_07:42:38 SensorAussen temperature: -36.7
2021-07-02_07:42:38 SensorAussen pressure: 514.1
2021-07-02_07:42:38 SensorAussen pressure-nn: 541.2
2021-07-02_07:42:38 SensorAussen humidity: 80.4
2021-07-02_07:42:38 SensorAussen absFeuchte: 0.1
2021-07-02_07:42:38 SensorAussen dewpoint: -38.7
2021-07-02_07:42:38 SensorAussen T: -36.7 H: 80.4 P: 514.1 P-NN: 541.2


Es gibt Messungen mit zum Beispiel (Minus!) -141,5 Grad Celsius oder 2001.6 mBar Luftdruck, also Unsinn!

Die Messungen des Python-Programm in Dauerschleife sind ja eh für die Tonne, die gemessenen Werte sind nicht relevant.

Ich suche also eine Möglichkeit, dass FHEM solche unsinnigen Messungen wiederholt oder verwirft (und gar nicht erst verwendet und schon gar nicht ins Protokoll schreibt).
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Wernieman am 02 Juli 2021, 16:40:19
Wenn Du schon ein "Sensor-Auslese-Programm" geschrieben hast, warum pushed Du die Daten nicht zu FHEM? Anstatt das FHEM sie liest?
Pushen per http/s und/oder telnet-Schnitstelle ...
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Bracew am 02 Juli 2021, 16:52:23
Zitat von: Wernieman am 02 Juli 2021, 16:40:19
Wenn Du schon ein "Sensor-Auslese-Programm" geschrieben hast, warum pushed Du die Daten nicht zu FHEM? Anstatt das FHEM sie liest?
Weil es eigentlich kein "Sensor-Auslese-Programm" ist, sondern ein "Den-Sensor-warmhalten-Programm-per-Beschäftigung" ist.

Aber, möglicherweise ist Dein Denkansatz gar nicht so falsch. Du meinst also, das Auslesen per FHEM löschen und das "Sensor-Warmhalte-Programm" in ein "Sensor-Auslese-und-Logfile-schreiben-Programm" verwandeln, oder?

Aber einfacher wäre es möglicherweise, wenn FHEM alle Werte, welche um mehr als X-Prozent vom letzten gespeicherten Wert abweichen, als Nonsens verwerfen könnte.
Titel: Antw:Wetterschutz für BME280 Sensor durch FHEM
Beitrag von: Wernieman am 02 Juli 2021, 17:12:47
Da ich nicht weiß, wie schnell sich die Daten innerhalb von 20Min ändern können, kann ich Dir zu Deinem letzten Punkt nichts sagen.

Aber ich würde, wenn Du Dir die Arbeit schon gemacht hast, die Daten pushen und nicht durch FHEM pollen

Hinweis:
Ob das Dein Grundsätzliches Problem mit dem Sensor löst, kann ich nicht sagen ...