diff --git a/fhem/CHANGED b/fhem/CHANGED index 20004b037..5c555327f 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - update: 70_WS3600.pm extension for UV and illuminance - bugfix: 38_CO20.pm: fixed Device::USB init errors - update: 93_DBLog: new Version 2.13.5, supports primary key now, set commands clearReadings and eraseReadings, diff --git a/fhem/FHEM/70_WS3600.pm b/fhem/FHEM/70_WS3600.pm index 8b84f5574..87e6db996 100644 --- a/fhem/FHEM/70_WS3600.pm +++ b/fhem/FHEM/70_WS3600.pm @@ -39,6 +39,7 @@ package main; # 27.08.2013 Josch Change to Log3, loglevel removed # 02.10.2013 Josch check if rawreading defined (empty lines) # 22.10.2013 Josch update readings with readingsBulkUpdate() +# 22.01.2017 Josch Enhancement for WS-3080 use strict; use warnings; #use Device::SerialPort; @@ -109,11 +110,14 @@ my %TranslatedCodes = ( "DRPmin" => "rel-Pressure-min-DTime", "DRPmax" => "rel-Pressure-max-DTime", "Tendency"=> "Tendency", - "Forecast"=> "Forecast", #added for WS-0101 / WS-1080 "WG" => "Wind-Gust", "DIR" => "Wind-Dir", "state" => "State", +#added for WS-3080 + "IL" => "Illuminance", + "UV" => "UV-Index", + "ZCode" => "Zambretti-Code", ); # Date/Time-Records @@ -140,6 +144,7 @@ my %TranslatedDateTimeCodes = ( "DTRtot" => "Rain-total-DTime", "DTRPmin" => "rel-Pressure-min-DTime", "DTRPmax" => "rel-Pressure-max-DTime", + "Forecast" => "Forecast", # allows multiple words for forecast ); # Time-Records (will be appended to Date-Record) @@ -176,7 +181,7 @@ WS3600_Initialize($) # Consumer $hash->{DefFn} = "WS3600_Define"; - $hash->{AttrList}= "model:WS3600,WS2300,WS1080"; + $hash->{AttrList}= "model:WS3600,WS2300,WS1080,WS3080"; # $hash->{ReadFn} = "WS3600_Read"; $hash->{UndefFn} = "WS3600_Undef"; } @@ -188,7 +193,7 @@ WS3600_Define($$) my ($hash, $def) = @_; my @a = split("\"", $def); my $dev; - my $Timer = 60; # call every 64 seconds; normal wireless update interval + my $Timer = 60; # call every 64 seconds; normal wireless update interval # is 128 sec, on wind >10 m/s 32 sec. 64 sec should ensure # quite current data. @@ -267,12 +272,10 @@ WS3600_Read($) foreach my $inputline ( @lines ) { $inputline =~ s/\s+$//; - my ($rawreading, $val, $val2) = split(/ /, $inputline); + my ($rawreading, $val, $val2) = split(/ /, $inputline, 3); if(defined($rawreading)) { - my $logmsg = "WS3600(Dbg): $name read $inputline|$rawreading|$val"; - $logmsg .= "|$val2" if(defined($val2)); - Log3 $name, 4, $logmsg; -# Log3 $name, 4, "WS3600(Dbg): $name read $inputline|$rawreading|$val|$val2"; + if(!defined($val2)) { $val2 = ""; } + Log3 $name, 4, "WS3600(Dbg): $name read $inputline|$rawreading|$val|$val2"; if(defined($TranslatedCodes{$rawreading})) { $reading = $TranslatedCodes{$rawreading}; readingsBulkUpdate($hash,$reading, $val); @@ -319,6 +322,8 @@ WS3600_Read($) 1; =pod +=item device +=item summary weatherstation queried by external program =begin html @@ -352,7 +357,7 @@ WS3600_Read($)
IL 0.0 +UV 8 +Forecast Rain at times, worse later +ZCode U+
IL 0.0 +UV 8 +Forecast Zeitweise Regen, später zunehmend +ZCode U
Ti
@@ -679,7 +699,7 @@ Forecast Cloudy
Attributes