2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-16 10:46:03 +00:00

RGR918: added flip. WTGR800, WGR918: added winddir name, RGR328N: dayname correction

git-svn-id: https://svn.fhem.de/fhem/trunk@798 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
wherzig 2011-01-11 17:23:10 +00:00
parent 2d8bc09829
commit 4444c41cb4

View File

@ -241,6 +241,8 @@ my %types =
# Important: change it to _, because FHEM uses regexp
my $DOT = q{_};
my @OREGON_winddir_name=("N","NNO","NO","ONO","O","OSO","SO","SSO","S","SSW","SW","WSW","W","WNW","NW","NNW");
# --------------------------------------------
# The following functions are changed:
# - some parameter like "parent" and others are removed
@ -398,6 +400,7 @@ sub wgr918_anemometer {
my @res = ();
my $dir = sprintf("%02x",$bytes->[5])*10 + hi_nibble($bytes->[4]);
my $dirname = $OREGON_winddir_name[$dir/22.5];
my $speed = lo_nibble($bytes->[7]) * 10 + sprintf("%02x",$bytes->[6])/10;
my $avspeed = sprintf("%02x",$bytes->[8]) + hi_nibble($bytes->[7]) / 10;
@ -411,6 +414,7 @@ sub wgr918_anemometer {
device => $dev_str,
type => 'direction',
current => $dir,
string => $dirname,
units => 'degrees',
}
;
@ -430,7 +434,9 @@ sub wtgr800_anemometer {
my @res = ();
my $dir = hi_nibble($bytes->[4]) * 22.5;
my $dir = hi_nibble($bytes->[4]) % 16;
my $dirname = $OREGON_winddir_name[$dir];
$dir = $dir * 22.5;
my $speed = lo_nibble($bytes->[7]) * 10 + sprintf("%02x",$bytes->[6])/10;
my $avspeed = sprintf("%02x",$bytes->[8]) + hi_nibble($bytes->[7]) / 10;
@ -444,6 +450,8 @@ sub wtgr800_anemometer {
device => $dev_str,
type => 'direction',
current => $dir,
string => $dirname,
units => 'degrees',
}
;
percentage_battery($bytes, $dev_str, \@res);
@ -514,8 +522,8 @@ sub rtgr328n_datetime {
lo_nibble($bytes->[5]).hi_nibble($bytes->[4])
);
my $day =
[ 'Mon', 'Tues', 'Wednes',
'Thur', 'Fri', 'Satur', 'Sun' ]->[($bytes->[9]&0x7)-1];
[ 'Mon', 'Tue', 'Wed',
'Thu', 'Fri', 'Sat', 'Sun' ]->[($bytes->[9]&0x7)-1];
my $date =
2000+(lo_nibble($bytes->[10]).hi_nibble($bytes->[9])).
sprintf("%02d",hi_nibble($bytes->[8])).
@ -857,11 +865,12 @@ OREGON_Parse($$)
}
case "direction" {
$val .= "WD: ".$i->{current}." ";
$val .= "WDN: ".$i->{string}." ";
$sensor = "wind_dir";
$def->{READINGS}{$sensor}{TIME} = $tm;
$def->{READINGS}{$sensor}{VAL} = $i->{current};
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
$def->{READINGS}{$sensor}{VAL} = $i->{current} . " " . $i->{string};
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current} . " " . $i->{string};;
}
case "rain" {
$val .= "RR: ".$i->{current}." ";
@ -879,6 +888,14 @@ OREGON_Parse($$)
$def->{READINGS}{$sensor}{VAL} = $i->{current};
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
}
case "flip" {
#$val .= "F: ".$i->{current}." ";
$sensor = "rain_flip";
$def->{READINGS}{$sensor}{TIME} = $tm;
$def->{READINGS}{$sensor}{VAL} = $i->{current};
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
}
case "uv" {
$val .= "UV: ".$i->{current}." ";
$val .= "UVR: ".$i->{risk}." ";