KS300 CUL Minus Temperaturen

Begonnen von BerndOst, 25 Januar 2014, 19:46:04

Vorheriges Thema - Nächstes Thema

BerndOst

Hallo,
nachdem es auch im Norden Deutschlands etwas kühler geworden ist, habe ich festgestellt, dass im Plot für den KS300 nur positive Temperaturen dargestellt werden. Nun wäre eine gefühlte Temperatur von plus 9 Grad Celsius bei minus 9 nicht schlecht, aber im Sinne der tatsächlichen Temperatur sollten auch minus 9 Grad angezeigt werden.
Eine kleine Änderung im Modul 13_KS300.pm macht es möglich:
Zeile 230 sollte dann so lauten:

$v[4] = -$v[4] if(hex($v[8]) & 0x8);


BerndOst

Bitte diesen Beitrag in SlowRF verschieben, da nicht in letzter Code Änderung berücksichtigt.

rudolfkoenig

So einfach kommt mir so'n Patch nicht in die Tuete: Ich messe mit meinem KS300 seit 8 Jahren Minus-Temperaturen. Ich habe Werte zwischen -17.4 und 45.8

BerndOst

Es liegt wohl am Perl-Interpreter. Der 64 Bit Interpreter von ActivePerl 5.16.1.1601 ist da wohl etwas pingelig bei der Interpretation von Hex Werten, deshalb wohl am besten casten.
Ich hatte folgende Fehlermeldung ohne casten:
Argument "b" isn't numeric in bitwise and (&) at ./FHEM/13_KS300.pm line 230.
Nach der Änderung hatte ich keine Probleme mehr.

rudolfkoenig

Habs eingebaut und eingecheckt.

Komisch: die Vorzeichenberechnung ist doppelt vorhanden, einmal wird a17 mit 7 verglichen, einmal Bit 3 geprueft. Das ist seit 2007-03-27 so, und bisher hat sich keiner beschwert, offensichtlich war einer der beiden Pruefungen inaktiv. Hoffentlich habe ich mit der Aenderung nicht den falschen aktiviert.