[gelöst] Frage zum 70_WS3600 Modul, Wind-Dir PLAUSIBILITÄTSPRÜFUNG

Begonnen von franky08, 17 März 2015, 11:36:38

Vorheriges Thema - Nächstes Thema

franky08

Hallo, ich nutze seit einem Jahr das WS3600 Modul um über fowsr die Wetterdaten von einer WH1080 auszulesen. So weit, so gut, funktioniert ohne Probleme (läuft auf einem extra Raspi, da fowsr den Host ziemlich ausbremst).
Das einzige Problem ist, dass Wind-Dir manchmal völlig sinnlose Daten liefert: Bsp.:

2015-03-13_02:36:38 myWS1080 Wind-Dir: 2880.0

Dürfte sich ja eigendlich nur von 0 bis 360 bewegen. Ist es möglich im Modul einen Filter zu setzen um nicht plausible Daten auszufiltern?

Das müsste doch hier irgendwo einzubauen sein:
foreach my $inputline ( @lines ) {
    $inputline =~ s/\s+$//;
    my ($rawreading, $val, $val2) = split(/ /, $inputline);
    if(defined($rawreading)) {
      my $logmsg = "WS3600(Dbg): $name read $inputline|$rawreading|$val";
         $logmsg .= "|$val2" if(defined($val2));
      Log3 $name, 4, $logmsg;
#      Log3 $name, 4, "WS3600(Dbg): $name read $inputline|$rawreading|$val|$val2";
    if(defined($TranslatedCodes{$rawreading})) {
      $reading = $TranslatedCodes{$rawreading};
              readingsBulkUpdate($hash,$reading, $val);
      $AnythingRead = 1;


VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

betateilchen

Die Plausibilitätsprüfung wäre im externen Programm, das die Daten an das fhem Modul liefert, vermutlich besser aufgehoben.

Ansonsten müsstest Du innerhalb der Verarbeitung JEDEN zurückgelieferten Wert zuerst gegen seinen Namen und dann gegen seinen plausiblen Wert prüfen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

franky08

#2
Danke betateilche, da müsste man sich den Code von fowsr mal ansehen. Oder gibt es eine Alternative zu fowsr? Wenn ich mich richtig errinnere war das ein Shellscript, mus ich nachher mal nachsehen.

Das scheint eine Binärdatei zu sein, weiter komme ich da leider nicht.
VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

franky08

Habe das Ganze jetzt so gelöst indem ich die Readings von Wind-Dir in einer sub filtere und Werte über 360° rausnehme und nur Werte von 0° bis 360° "durchlasse und mittels setreading in ein neues device Reading schreibe.

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...