Autor Thema: Bug: regex in valueFormag wird nicht vollständig ausgewertet  (Gelesen 571 mal)

Offline aski71

  • Full Member
  • ***
  • Beiträge: 315
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?

Offline aski71

  • Full Member
  • ***
  • Beiträge: 315
Antw:Bug: regex in valueFormag wird nicht vollständig ausgewertet
« Antwort #1 am: 25 Mai 2020, 15:42:55 »
Weiß niemand, wie man das behebt?