fix FHEMWEB Error message if ' in City Name
This commit is contained in:
parent
47c6e941f4
commit
26f9671642
55
46_Aqicn.pm
55
46_Aqicn.pm
@ -67,7 +67,7 @@ eval "use Encode qw(encode encode_utf8 decode_utf8);1" or $missingModul .= "Enco
|
|||||||
eval "use JSON;1" or $missingModul .= "JSON ";
|
eval "use JSON;1" or $missingModul .= "JSON ";
|
||||||
|
|
||||||
|
|
||||||
my $version = "0.0.33";
|
my $version = "0.0.36";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ sub Aqicn_ReadingsProcessing_AqiResponse($);
|
|||||||
sub Aqicn_ErrorHandling($$$);
|
sub Aqicn_ErrorHandling($$$);
|
||||||
sub Aqicn_WriteReadings($$);
|
sub Aqicn_WriteReadings($$);
|
||||||
sub Aqicn_Timer_GetData($);
|
sub Aqicn_Timer_GetData($);
|
||||||
sub Aqicn_AirPollutionLevel($);
|
sub Aqicn_AirPollutionLevel($$);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -114,6 +114,7 @@ sub Aqicn_Initialize($) {
|
|||||||
$hash->{AttrFn} = "Aqicn_Attr";
|
$hash->{AttrFn} = "Aqicn_Attr";
|
||||||
$hash->{AttrList} = "interval ".
|
$hash->{AttrList} = "interval ".
|
||||||
"disable:1 ".
|
"disable:1 ".
|
||||||
|
"language:de,en".
|
||||||
$readingFnAttributes;
|
$readingFnAttributes;
|
||||||
|
|
||||||
foreach my $d(sort keys %{$modules{Aqicn}{defptr}}) {
|
foreach my $d(sort keys %{$modules{Aqicn}{defptr}}) {
|
||||||
@ -362,11 +363,10 @@ sub Aqicn_ErrorHandling($$$) {
|
|||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
|
|
||||||
#Log3 $name, 3, "Aqicn ($name) - Recieve JSON data: $data";
|
Log3 $name, 4, "Aqicn ($name) - Recieve JSON data: $data";
|
||||||
#Log3 $name, 3, "Aqicn ($name) - Recieve HTTP Code: $param->{code}";
|
#Log3 $name, 3, "Aqicn ($name) - Recieve HTTP Code: $param->{code}";
|
||||||
#Log3 $name, 3, "Aqicn ($name) - Recieve Error: $err";
|
#Log3 $name, 3, "Aqicn ($name) - Recieve Error: $err";
|
||||||
|
|
||||||
|
|
||||||
### Begin Error Handling
|
### Begin Error Handling
|
||||||
|
|
||||||
if( defined( $err ) ) {
|
if( defined( $err ) ) {
|
||||||
@ -473,7 +473,7 @@ sub Aqicn_WriteReadings($$) {
|
|||||||
readingsBulkUpdate($hash,$r,$v);
|
readingsBulkUpdate($hash,$r,$v);
|
||||||
}
|
}
|
||||||
|
|
||||||
readingsBulkUpdateIfChanged($hash,'state',Aqicn_AirPollutionLevel($readings->{'PM2.5-AQI'}));
|
readingsBulkUpdateIfChanged($hash,'state',Aqicn_AirPollutionLevel($hash,$readings->{'PM2.5-AQI'}));
|
||||||
readingsEndUpdate($hash,1);
|
readingsEndUpdate($hash,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -509,6 +509,7 @@ sub Aqicn_ReadingsProcessing_SearchStationResponse($$) {
|
|||||||
$ret .= '<tr class="odd">';
|
$ret .= '<tr class="odd">';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$dataset->{station}{name} =~ s/'//g;
|
||||||
$ret .= "<td>".encode_utf8($dataset->{station}{name})."</td>";
|
$ret .= "<td>".encode_utf8($dataset->{station}{name})."</td>";
|
||||||
$ret .= "<td>$dataset->{'time'}{stime}</td>";
|
$ret .= "<td>$dataset->{'time'}{stime}</td>";
|
||||||
$ret .= "<td>$dataset->{station}{geo}[0]</td>";
|
$ret .= "<td>$dataset->{station}{geo}[0]</td>";
|
||||||
@ -536,7 +537,6 @@ sub Aqicn_ReadingsProcessing_SearchStationResponse($$) {
|
|||||||
$ret .= '</table></td></tr>';
|
$ret .= '</table></td></tr>';
|
||||||
$ret .= '</table></html>';
|
$ret .= '</table></html>';
|
||||||
|
|
||||||
#printf "\n\n$ret\n\n";
|
|
||||||
asyncOutput( $param->{cl}, $ret ) if( $param->{cl} && $param->{cl}{canAsyncOutput} );
|
asyncOutput( $param->{cl}, $ret ) if( $param->{cl} && $param->{cl}{canAsyncOutput} );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -562,22 +562,43 @@ sub Aqicn_ReadingsProcessing_AqiResponse($) {
|
|||||||
return \%readings;
|
return \%readings;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub Aqicn_AirPollutionLevel($) {
|
sub Aqicn_AirPollutionLevel($$) {
|
||||||
|
|
||||||
my $aqi = shift;
|
|
||||||
|
|
||||||
|
my ($hash,$aqi) = @_;
|
||||||
|
my $name = $hash->{NAME};
|
||||||
my $apl;
|
my $apl;
|
||||||
|
|
||||||
|
|
||||||
if($aqi < 50) { $apl = "Good"}
|
if($aqi < 51) { $apl = "Good"}
|
||||||
elsif($aqi < 100) { $apl = "Moderate"}
|
elsif($aqi < 101) { $apl = "Moderate"}
|
||||||
elsif($aqi < 150) { $apl = "Unhealthy for Sensitive Groups"}
|
elsif($aqi < 151) { $apl = "Unhealthy for Sensitive Groups"}
|
||||||
elsif($aqi < 200) { $apl = "Unhealthy"}
|
elsif($aqi < 201) { $apl = "Unhealthy"}
|
||||||
elsif($aqi < 300) { $apl = "Very Unhealthy"}
|
elsif($aqi < 301) { $apl = "Very Unhealthy"}
|
||||||
elsif($aqi < 400) { $apl = "Hazardous"}
|
else { $apl = "Hazardous"}
|
||||||
elsif($aqi < 500) { $apl = "Hazardous"}
|
|
||||||
|
|
||||||
return $apl
|
|
||||||
|
if( (AttrVal('global','language','none') eq 'DE' or AttrVal($name,'language','none') eq 'de') and AttrVal($name,'language','none') ne 'en' ) {
|
||||||
|
return Aqicn_i18n_de($apl);
|
||||||
|
} else {
|
||||||
|
return $apl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub Aqicn_i18n_de($) {
|
||||||
|
|
||||||
|
my $value = shift;
|
||||||
|
|
||||||
|
|
||||||
|
my %i18nde = (
|
||||||
|
'Good' => 'Gut',
|
||||||
|
'Moderate' => 'Moderat',
|
||||||
|
'Unhealthy for Sensitive Groups' => 'Ungesund für empfindliche Personengruppen',
|
||||||
|
'Unhealthy' => 'Ungesund',
|
||||||
|
'Very Unhealthy' => 'Sehr ungesund',
|
||||||
|
'Hazardous' => 'Gefährlich'
|
||||||
|
);
|
||||||
|
|
||||||
|
return $i18nde{$value};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user