Originally posted by: <email address deleted>
Hallo Peter,
ich glaub ich hab einen Bug in 21_OWCOUNT.pm gefunden. (Version 2.15)
Da ich immer komische Sprünge in meinen Counter Werten hatte, habe ich mir
im Modul angeschaut, wie die Werte ermittelt werden.
Im Code steht folgendes (in sub OWXCOUNT_GetPage()):
my $value = ord($data[3])*4096 + ord($data[2])*256 +ord($data[1])*16 +
ord($data[0]);
Nachdem die Counter aber aus 8 Bit Werten zusammengebaut werden, sollte es
doch folgendermaßen heißen:
my $value = (ord($data[3])<<32) + (ord($data[2])<<16)
+(ord($data[1])<<8) + ord($data[0]);
Liege ich falsch oder richtig?
VG
Andreas
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Originally posted by: <email address deleted>
Kleiner Nachtrag: Finde die OWX* Module super und möchte mich auf diesem
Wege für die Arbeit bedanken die komplette Palette der 1-wire Komponenten
zu unterstützen.
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Originally posted by: <email address deleted>
Ich habe ja hart überlegt, aber es kommt einfach nicht heraus, dass 2^8 =
16 ist...
Sieht also so aus, als ob das tatsächlich ein Bug ist. Der mir natürlich
nicht aufgefallen ist, weil ich das Ding immer mit einer Handtaste getestet
habe - und wer drückt schon mehr als 256 mal auf einen Knopf ???
Sorry, wird gefixt - und danke für den Hinweis.
LG
pah
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Originally posted by: <email address deleted>
Hallo Peter,
habe nochmal darüber nachgedacht:
my $value = (ord($data[3])<<32) + (ord($data[2])<<16) +(ord($data[1])<<8)
+ ord($data[0]);
ist nicht schlecht, aber
my $value = (ord($data[3])<<24) + (ord($data[2])<<16) +(ord($data[1])<<8)
+ ord($data[0]);
ist richtig.
sorry für die Verwirrung
Andy
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Originally posted by: <email address deleted>
noch eine Kleinigkeit:
in 21_OWCOUNT.pm, version 2.18
in Zeile 363 ff steht:
$midnight =~ /([\d\.]+)/;
$midnight = 0.0 if(!(defined($midnight)));
sollte es nicht so (oder ähnlich heissen):
$midnight =~ /([\d\.]+)/;
$x = defined ($1) ? $1 : 0.0;
ich habe sonst folgende Meldungen:
Argument "107.500000?^A^BM-?M-^? M-^B}M-^?^BM-^DM-^?M-^?\0\0M-nM-^?..."
isn't numeric in subtraction (-) at
/var/InternerSpeicher/fhem//FHEM/21_OWCOUNT.pm line 371.
Argument "21648.149334 M-?M-^?\0^BM-oM-^?^B^DM-|M-^?^\(oM-~^H\0M-^?..."
isn't numeric in subtraction (-) at
/var/InternerSpeicher/fhem//FHEM/21_OWCOUNT.pm line 371.
Oder liegt das Problem tiefer, da mein midnight Wert nicht sauber ankommt?
Viele Grüße
Andy
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Originally posted by: <email address deleted>
Erster Punkt: Tja, 16+8 ist tatsächlich 24 ... ich Trottel habe einfach
Deine Codezeile übernommen, statt selbst zu denken ...
Zweiter Punkt: Nö, diese Zeile ist komplett richtig.
Offenbar kommt der $midnight-Wert nicht richtig an - mal sehen, woran das
liegen könnte.
LG
pah
--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com