diff --git a/fhem/FHEM/71_YAMAHA_AVR.pm b/fhem/FHEM/71_YAMAHA_AVR.pm index 88f3c07a5..5390c6fe9 100755 --- a/fhem/FHEM/71_YAMAHA_AVR.pm +++ b/fhem/FHEM/71_YAMAHA_AVR.pm @@ -1817,7 +1817,7 @@ YAMAHA_AVR_ParseResponse($$$) { readingsBulkUpdate($hash, "currentStation", YAMAHA_AVR_html2txt($1)); } - elsif($data =~ /.*?.*?(.+?)<\/Service_Label>.*?<\/DAB>.*?<\/Meta_Info>/) + elsif($data =~ /.*?.*?(.+?)<\/Service_Label>.*?<\/Meta_Info>.*?<\/DAB>/) { readingsBulkUpdate($hash, "currentStation", YAMAHA_AVR_html2txt($1)); } @@ -1889,12 +1889,12 @@ YAMAHA_AVR_ParseResponse($$$) readingsBulkUpdate($hash, "playStatus", "playing"); } - if($data =~ /.*?(?:)?(\d+?)<\/Val>(\d+?)<\/Exp>(.*?)<\/Unit>(?:<\/Current>)?.*<\/Tuning>/ or (YAMAHA_AVR_isModel_DSP($hash) and $data =~ /.*?(\d+?)<\/Val>(\d+?)<\/Exp>(.*?)<\/Unit><\/Freq>.*?<\/Tuning>/)) + if($data =~ /.*?(?:)?(\d+?)<\/Val>(\d+?)<\/Exp>(.*?)<\/Unit>(?:<\/Current>)?.*<\/Tuning>/ or $data =~ /.*?.*?(\d+?)<\/Val>(\d+?)<\/Exp>(.*?)<\/Unit><\/Freq>.*<\/Signal_Info>.*<\/DAB>/ or(YAMAHA_AVR_isModel_DSP($hash) and $data =~ /.*?(\d+?)<\/Val>(\d+?)<\/Exp>(.*?)<\/Unit><\/Freq>.*?<\/Tuning>/)) { readingsBulkUpdate($hash, "currentStationFrequency", sprintf("%.$2f", ($1 / (10 ** $2)))." $3"); readingsBulkUpdate($hash, "tunerFrequency", sprintf("%.$2f", ($1 / (10 ** $2)))); - if($data =~ /.*?(.+?)<\/Band>.*?<\/Tuning>/) + if($data =~ /<(?:Tuning|DAB)>.*?(.+?)<\/Band>.*?<\/(?:Tuning|DAB)>/) { readingsBulkUpdate($hash, "tunerFrequencyBand", uc($1)); }