Autor Thema: KS300 CUL Minus Temperaturen  (Gelesen 2534 mal)

BerndOst

  • Gast
KS300 CUL Minus Temperaturen
« am: 25 Januar 2014, 19:46:04 »
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

  • Gast
Antw:KS300 CUL Minus Temperaturen
« Antwort #1 am: 22 Februar 2014, 14:07:04 »
Bitte diesen Beitrag in SlowRF verschieben, da nicht in letzter Code Änderung berücksichtigt.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25398
Antw:KS300 CUL Minus Temperaturen
« Antwort #2 am: 22 Februar 2014, 17:54:01 »
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

  • Gast
Antw:KS300 CUL Minus Temperaturen
« Antwort #3 am: 22 Februar 2014, 23:16:34 »
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.

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 25398
Antw:KS300 CUL Minus Temperaturen
« Antwort #4 am: 23 Februar 2014, 11:24:12 »
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.