Anpassung 14_SD_WS.pm bei sehr hoher Luftfeuchte

Begonnen von DerD, 09 November 2026, 09:32:58

Vorheriges Thema - Nächstes Thema

DerD

Hallo zusammen,

physikalisch korrekt wird derzeit bei >100% LF ein Fehler zurückgegeben. Nun haben die Sensoren ja aber eine Toleranz, und in unserer Nebelecke sagt mein Sensor heute 101% LF. Also eigentlich alles korrekt und auch korrekt mir eine Fehlermeldung zuzuwerfen.

Ich kann das natürlich bei mir anpassen - bis zum nächsten Update. Wäre es denn möglich das auf 105% aufzuweiten?

Also den Code im Modul statt

    if ($hum > 100) {
      Log3 $name, 3, "$ioname: SD_WS_Parse $deviceCode - ERROR humidity $hum";
      return ""; 
    }


ein

    if ($hum > 105) {
      Log3 $name, 3, "$ioname: SD_WS_Parse $deviceCode - ERROR humidity $hum";
      return ""; 
    } elsif ($hum > 100) {
      $hum = 100;
    }

Gruß,
Dieter

JoWiemann

Hallo,

ich würde hier keine Fallunterscheidung machen. Im Log den Fehler dokumentieren und 100 zurückgeben. Ansonsten fallen weiteren Berechnungen, wie z.B. der Taupunkt auf die Nase.

Grüße Jörg
Jörg Wiemann

RPi 4 B mit 4 GByte bookworm, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM; zigbee2mqtt

ioBroker als Datenlieferant für z.B. Anker, Samsung

DerD

Hallo Jörg,

ich verstehe dann nicht so ganz wie du es meinst.
Aktuell wird ja nur ein Fehler geloggt aber eben kein Wert, auch nicht die 100, zurückgegeben.
Gruß,
Dieter

JoWiemann

Zitat von: DerD am 11 November 2026, 16:45:24Hallo Jörg,

ich verstehe dann nicht so ganz wie du es meinst.
Aktuell wird ja nur ein Fehler geloggt aber eben kein Wert, auch nicht die 100, zurückgegeben.

Hallo Dieter,

ich habe jetzt ins Modul geschaut und würde den Code wie folgt ändern:
  if (defined $hum) {
    if ($hum < 1 || $hum > 100) {
      Log3 $name, 3, "$ioname: SD_WS_Parse $deviceCode - ERROR humidity $hum";
      return -1; 
    }
  }
Du kannst dann für Deinen speziellen Fall ein userReading definieren, dass den Wert auf -1 auf 100 korrigiert. Grundsätzlich deuten Werte außerhalb des Intervalls [1..100] auf einen fehlerhaften Sensor hin. Von daher würde ich hier keine Toleranz einbauen wollen. Ist aber nur meine Meinung.

Grüße Jörg
Jörg Wiemann

RPi 4 B mit 4 GByte bookworm, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM; zigbee2mqtt

ioBroker als Datenlieferant für z.B. Anker, Samsung