Bug: regex in valueFormag wird nicht vollständig ausgewertet

Begonnen von aski71, 16 Mai 2020, 22:15:34

Vorheriges Thema - Nächstes Thema

aski71

Ich habe für meine Sonos-Boxen eine readingsGroup gebaut, die die gekoppelten Slaveplayer mit anzeigt.
Über eine regex wollte ich alle eckigen Klammern und Hochkommas entfernen.
Gemäß regex-Prüfer ist die regex richtig und tut, was sie soll.

Zweiter Fall ist in einem andern Reading das Entfernen von ,,<br>" aus einem String.

Nun kommt das Problem:
Beim ersten Aufbau der readingsGroup im Browser oder einem Reload der Page werden nur Teile des regex ausgeführt:

Aus ['Arbeiten', 'Kochen'] wird dann: 'Arbeiten', 'Kochen'
Ein <br> wird zu <> .

Lässt man die Seite dann stehen und die Readings werden im Hintergrund aktualisiert, ist die Anzeige plötzlich richtig, also die Klammern sind eliminiert und aus obigem String wird erwartungsgemäß: Arbeiten, Kochen

valueFormat
{ groupPlayersValueFormat($DEVICE,$READING,$VALUE);; }


sub
groupPlayersValueFormat($$$)
{
  my ($DEVICE,$READING,$VALUE) = @_;
  my $newValue='none';

  if("$READING" eq "SlavePlayer") {
     $newValue=$VALUE=~ s/[\[\]\x27]|(Sonos_)/\0/rg;
     $newValue=$newValue=~ s/,/, /rg;
     return $newValue;
  } elsif ("$READING" eq "infoSummarize1") {
     $newValue=$VALUE=~ s/(br)|[\x3c\x3e\x27]/\0/rg;
     $newValue=$newValue=~ s/(SPDIF)/TV/rg;
     return $newValue;
  }

}


In Kurz: Bei jedem aktiven Aufruf der readingsGroup - im Floorplan oder anderswo: Fehlerhafte Darstellung.
Nach automatischen Aktualisierung eines Readings auf der Seite: Richtige Darstellung.

Wer kann helfen?

aski71