diff --git a/fhem/CHANGED b/fhem/CHANGED index 354e41871..ce94ece73 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. + - bugfix: 71_PHILIPS_AUDIO: Corrected gavorites behaviour if more than 16 - chnage: 17_EGPM2LAN.pm: Password handling changed; removed from config - change: 93_DbRep: version 4.12.2, PK evaluation changed - bugfix: 71_PHILIPS_AUDIO: Player readings fix. diff --git a/fhem/FHEM/71_PHILIPS_AUDIO.pm b/fhem/FHEM/71_PHILIPS_AUDIO.pm index 9ed475775..3982382c4 100755 --- a/fhem/FHEM/71_PHILIPS_AUDIO.pm +++ b/fhem/FHEM/71_PHILIPS_AUDIO.pm @@ -271,25 +271,25 @@ sub PHILIPS_AUDIO_Set my @favoriteNumber; foreach my $readings (keys % {$hash->{READINGS}}) { - push @favoriteList,$1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^.inetRadioFavorite_(.*)/); - push @favoriteNumber, $1 if($readings =~ m/^.inetRadioFavorite_(.*)/); + push @favoriteList,$1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^.inetRadioFavorite_(..)$/); + push @favoriteNumber, $1 if($readings =~ m/^.inetRadioFavorite_(..)/); } (s/\*/\[asterisk\]/g) for @favoriteList; # '*' not shown correctly - (s/#/\[hash\]/g) for @favoriteList; # '#' not shown correctly - (s/[ :;,']/_/g) for @favoriteList; # Replace not allowed characters + (s/#/\[hash\]/g) for @favoriteList; # '#' not shown correctly + (s/[ :;,'.\\]/_/g) for @favoriteList; # Replace not allowed characters my @presetList; my @presetNumber; foreach my $readings (keys % {$hash->{READINGS}}) { - push @presetList, $1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^.inetRadioPreset_(.*)/); - push @presetNumber, $1 if($readings =~ m/^.inetRadioPreset_(.*)/); + push @presetList, $1."_".substr($hash->{READINGS}{$readings}{VAL}, 0, 25) if($readings =~ m/^.inetRadioPreset_(..)/); + push @presetNumber, $1 if($readings =~ m/^.inetRadioPreset_(..)/); } (s/\*/\[asterisk\]/g) for @presetList; # '*' not shown correctly - (s/#/\[hash\]/g) for @presetList; # '#' not shown correctly - (s/[ :;,']/_/g) for @presetList; # Replace not allowed characters + (s/#/\[hash\]/g) for @presetList; # '#' not shown correctly + (s/[ :;,'.\\]/_/g) for @presetList; # Replace not allowed characters $usage .= "selectFavorite:" .join(",",("---",(sort @favoriteList))) . " "; $usage .= "selectPreset:" .join(",",("---",(sort @presetList))) . " "; @@ -312,8 +312,8 @@ sub PHILIPS_AUDIO_Set } @selectStream = sort map{s/\*/\[asterisk\]/g;$_;} grep/._..*$/,@selectStream; # Replace * - @selectStream = sort map{s/#/\[hash\]/g;$_;} grep/._..*$/,@selectStream; # Replace # - @selectStream = sort map{s/[ :;,']/_/g;$_;} grep/._..*$/,@selectStream; # Replace not allowed characters + @selectStream = sort map{s/#/\[hash\]/g;$_;} grep/._..*$/,@selectStream; # Replace # + @selectStream = sort map{s/[ :;,'.\\]/_/g;$_;} grep/._..*$/,@selectStream; # Replace not allowed characters $usage .= "selectStream:".join(",",("---",(sort @selectStream))) . " "; @@ -1887,10 +1887,7 @@ sub PHILIPS_AUDIO_ParseResponse #} $data =~ s/\R//g; # Remove new lines - - # Delete old readings - delete $hash->{READINGS}{$_} foreach (grep /.inetRadioFavorite_..$/, keys %{$hash->{READINGS}}); - + while($data =~ /{'title':'(.+?)',/g) { $favoriteName = $1;