mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-04 11:26:55 +00:00
TRX_WEATHER: using readingsUpdate.
git-svn-id: https://svn.fhem.de/fhem/trunk@1988 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
1f7e87db12
commit
cb7a1ad8d3
@ -90,7 +90,7 @@ TRX_WEATHER_Initialize($)
|
|||||||
$hash->{DefFn} = "TRX_WEATHER_Define";
|
$hash->{DefFn} = "TRX_WEATHER_Define";
|
||||||
$hash->{UndefFn} = "TRX_WEATHER_Undef";
|
$hash->{UndefFn} = "TRX_WEATHER_Undef";
|
||||||
$hash->{ParseFn} = "TRX_WEATHER_Parse";
|
$hash->{ParseFn} = "TRX_WEATHER_Parse";
|
||||||
$hash->{AttrList} = "IODev ignore:1,0 do_not_notify:1,0 loglevel:0,1,2,3,4,5,6";
|
$hash->{AttrList} = "IODev ignore:1,0 event-on-update-reading event-on-change-reading do_not_notify:1,0 loglevel:0,1,2,3,4,5,6";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -785,6 +785,8 @@ TRX_WEATHER_Parse($$)
|
|||||||
my $i;
|
my $i;
|
||||||
my $val = "";
|
my $val = "";
|
||||||
my $sensor = "";
|
my $sensor = "";
|
||||||
|
|
||||||
|
readingsBeginUpdate($def);
|
||||||
foreach $i (@res){
|
foreach $i (@res){
|
||||||
#print "!> i=".$i."\n";
|
#print "!> i=".$i."\n";
|
||||||
#printf "%s\t",$i->{device};
|
#printf "%s\t",$i->{device};
|
||||||
@ -793,27 +795,21 @@ TRX_WEATHER_Parse($$)
|
|||||||
$val .= "T: ".$i->{current}." ";
|
$val .= "T: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "temperature";
|
$sensor = "temperature";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "chilltemp") {
|
elsif ($i->{type} eq "chilltemp") {
|
||||||
#printf "Temperatur %2.1f %s ; ",$i->{current},$i->{units};
|
#printf "Temperatur %2.1f %s ; ",$i->{current},$i->{units};
|
||||||
$val .= "CT: ".$i->{current}." ";
|
$val .= "CT: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "windchill";
|
$sensor = "windchill";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "humidity") {
|
elsif ($i->{type} eq "humidity") {
|
||||||
#printf "Luftfeuchtigkeit %d%s, %s ;",$i->{current},$i->{units},$i->{string};
|
#printf "Luftfeuchtigkeit %d%s, %s ;",$i->{current},$i->{units},$i->{string};
|
||||||
$val .= "H: ".$i->{current}." ";
|
$val .= "H: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "humidity";
|
$sensor = "humidity";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "battery") {
|
elsif ($i->{type} eq "battery") {
|
||||||
#printf "Batterie %d%s; ",$i->{current},$i->{units};
|
#printf "Batterie %d%s; ",$i->{current},$i->{units};
|
||||||
@ -822,9 +818,7 @@ TRX_WEATHER_Parse($$)
|
|||||||
$val .= "BAT: ".$words[0]." "; #use only first word
|
$val .= "BAT: ".$words[0]." "; #use only first word
|
||||||
|
|
||||||
$sensor = "battery";
|
$sensor = "battery";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "pressure") {
|
elsif ($i->{type} eq "pressure") {
|
||||||
#printf "Luftdruck %d %s, Vorhersage=%s ; ",$i->{current},$i->{units},$i->{forecast};
|
#printf "Luftdruck %d %s, Vorhersage=%s ; ",$i->{current},$i->{units},$i->{forecast};
|
||||||
@ -832,89 +826,65 @@ TRX_WEATHER_Parse($$)
|
|||||||
$val .= "P: ".$i->{current}." ";
|
$val .= "P: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "pressure";
|
$sensor = "pressure";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
|
|
||||||
$sensor = "forecast";
|
$sensor = "forecast";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{forecast});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{forecast};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{forecast};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "speed") {
|
elsif ($i->{type} eq "speed") {
|
||||||
$val .= "W: ".$i->{current}." ";
|
$val .= "W: ".$i->{current}." ";
|
||||||
$val .= "WA: ".$i->{average}." ";
|
$val .= "WA: ".$i->{average}." ";
|
||||||
|
|
||||||
$sensor = "wind_speed";
|
$sensor = "wind_speed";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
|
|
||||||
$sensor = "wind_avspeed";
|
$sensor = "wind_avspeed";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{average});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{average};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{average};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "direction") {
|
elsif ($i->{type} eq "direction") {
|
||||||
$val .= "WD: ".$i->{current}." ";
|
$val .= "WD: ".$i->{current}." ";
|
||||||
$val .= "WDN: ".$i->{string}." ";
|
$val .= "WDN: ".$i->{string}." ";
|
||||||
|
|
||||||
$sensor = "wind_dir";
|
$sensor = "wind_dir";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current} . " " . $i->{string});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current} . " " . $i->{string};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current} . " " . $i->{string};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "rain") {
|
elsif ($i->{type} eq "rain") {
|
||||||
$val .= "RR: ".$i->{current}." ";
|
$val .= "RR: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "rain_rate";
|
$sensor = "rain_rate";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "train") {
|
elsif ($i->{type} eq "train") {
|
||||||
$val .= "TR: ".$i->{current}." ";
|
$val .= "TR: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "rain_total";
|
$sensor = "rain_total";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "flip") {
|
elsif ($i->{type} eq "flip") {
|
||||||
$val .= "F: ".$i->{current}." ";
|
$val .= "F: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "rain_flip";
|
$sensor = "rain_flip";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "uv") {
|
elsif ($i->{type} eq "uv") {
|
||||||
$val .= "UV: ".$i->{current}." ";
|
$val .= "UV: ".$i->{current}." ";
|
||||||
$val .= "UVR: ".$i->{risk}." ";
|
$val .= "UVR: ".$i->{risk}." ";
|
||||||
|
|
||||||
$sensor = "uv_val";
|
$sensor = "uv_val";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
|
|
||||||
$sensor = "uv_risk";
|
$sensor = "uv_risk";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{risk});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{risk};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{risk};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "weight") {
|
elsif ($i->{type} eq "weight") {
|
||||||
$val .= "W: ".$i->{current}." ";
|
$val .= "W: ".$i->{current}." ";
|
||||||
|
|
||||||
$sensor = "weight";
|
$sensor = "weight";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
elsif ($i->{type} eq "hexline") {
|
elsif ($i->{type} eq "hexline") {
|
||||||
$sensor = "hexline";
|
$sensor = "hexline";
|
||||||
$def->{READINGS}{$sensor}{TIME} = $tm;
|
readingsUpdate($def, $sensor, $i->{current});
|
||||||
$def->{READINGS}{$sensor}{VAL} = $i->{current};
|
|
||||||
$def->{CHANGED}[$n++] = $sensor . ": " . $i->{current};;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
print "\nTRX_WEATHER: Unknown: ";
|
print "\nTRX_WEATHER: Unknown: ";
|
||||||
@ -928,13 +898,14 @@ TRX_WEATHER_Parse($$)
|
|||||||
$val =~ s/^\s+|\s+$//g;
|
$val =~ s/^\s+|\s+$//g;
|
||||||
|
|
||||||
$def->{STATE} = $val;
|
$def->{STATE} = $val;
|
||||||
$def->{TIME} = $tm;
|
readingsUpdate($def, "state", $val);
|
||||||
$def->{CHANGED}[$n++] = $val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DoTrigger($name, undef);
|
$def->{"${name}_TIME"} = TimeNow();
|
||||||
|
|
||||||
return $val;
|
readingsEndUpdate($def, 1);
|
||||||
|
|
||||||
|
return $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user