mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-19 00:26: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:
parent
2d8bc09829
commit
4444c41cb4
@ -241,6 +241,8 @@ my %types =
|
|||||||
# Important: change it to _, because FHEM uses regexp
|
# Important: change it to _, because FHEM uses regexp
|
||||||
my $DOT = q{_};
|
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:
|
# The following functions are changed:
|
||||||
# - some parameter like "parent" and others are removed
|
# - some parameter like "parent" and others are removed
|
||||||
@ -398,6 +400,7 @@ sub wgr918_anemometer {
|
|||||||
my @res = ();
|
my @res = ();
|
||||||
|
|
||||||
my $dir = sprintf("%02x",$bytes->[5])*10 + hi_nibble($bytes->[4]);
|
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 $speed = lo_nibble($bytes->[7]) * 10 + sprintf("%02x",$bytes->[6])/10;
|
||||||
my $avspeed = sprintf("%02x",$bytes->[8]) + hi_nibble($bytes->[7]) / 10;
|
my $avspeed = sprintf("%02x",$bytes->[8]) + hi_nibble($bytes->[7]) / 10;
|
||||||
|
|
||||||
@ -411,6 +414,7 @@ sub wgr918_anemometer {
|
|||||||
device => $dev_str,
|
device => $dev_str,
|
||||||
type => 'direction',
|
type => 'direction',
|
||||||
current => $dir,
|
current => $dir,
|
||||||
|
string => $dirname,
|
||||||
units => 'degrees',
|
units => 'degrees',
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -430,7 +434,9 @@ sub wtgr800_anemometer {
|
|||||||
|
|
||||||
my @res = ();
|
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 $speed = lo_nibble($bytes->[7]) * 10 + sprintf("%02x",$bytes->[6])/10;
|
||||||
my $avspeed = sprintf("%02x",$bytes->[8]) + hi_nibble($bytes->[7]) / 10;
|
my $avspeed = sprintf("%02x",$bytes->[8]) + hi_nibble($bytes->[7]) / 10;
|
||||||
|
|
||||||
@ -444,6 +450,8 @@ sub wtgr800_anemometer {
|
|||||||
device => $dev_str,
|
device => $dev_str,
|
||||||
type => 'direction',
|
type => 'direction',
|
||||||
current => $dir,
|
current => $dir,
|
||||||
|
string => $dirname,
|
||||||
|
units => 'degrees',
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
percentage_battery($bytes, $dev_str, \@res);
|
percentage_battery($bytes, $dev_str, \@res);
|
||||||
@ -514,8 +522,8 @@ sub rtgr328n_datetime {
|
|||||||
lo_nibble($bytes->[5]).hi_nibble($bytes->[4])
|
lo_nibble($bytes->[5]).hi_nibble($bytes->[4])
|
||||||
);
|
);
|
||||||
my $day =
|
my $day =
|
||||||
[ 'Mon', 'Tues', 'Wednes',
|
[ 'Mon', 'Tue', 'Wed',
|
||||||
'Thur', 'Fri', 'Satur', 'Sun' ]->[($bytes->[9]&0x7)-1];
|
'Thu', 'Fri', 'Sat', 'Sun' ]->[($bytes->[9]&0x7)-1];
|
||||||
my $date =
|
my $date =
|
||||||
2000+(lo_nibble($bytes->[10]).hi_nibble($bytes->[9])).
|
2000+(lo_nibble($bytes->[10]).hi_nibble($bytes->[9])).
|
||||||
sprintf("%02d",hi_nibble($bytes->[8])).
|
sprintf("%02d",hi_nibble($bytes->[8])).
|
||||||
@ -857,11 +865,12 @@ OREGON_Parse($$)
|
|||||||
}
|
}
|
||||||
case "direction" {
|
case "direction" {
|
||||||
$val .= "WD: ".$i->{current}." ";
|
$val .= "WD: ".$i->{current}." ";
|
||||||
|
$val .= "WDN: ".$i->{string}." ";
|
||||||
|
|
||||||
$sensor = "wind_dir";
|
$sensor = "wind_dir";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
$def->{READINGS}{$sensor}{TIME} = $tm;
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
$def->{READINGS}{$sensor}{VAL} = $i->{current} . " " . $i->{string};
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current} . " " . $i->{string};;
|
||||||
}
|
}
|
||||||
case "rain" {
|
case "rain" {
|
||||||
$val .= "RR: ".$i->{current}." ";
|
$val .= "RR: ".$i->{current}." ";
|
||||||
@ -879,6 +888,14 @@ OREGON_Parse($$)
|
|||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $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" {
|
case "uv" {
|
||||||
$val .= "UV: ".$i->{current}." ";
|
$val .= "UV: ".$i->{current}." ";
|
||||||
$val .= "UVR: ".$i->{risk}." ";
|
$val .= "UVR: ".$i->{risk}." ";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user