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?
Weiß niemand, wie man das behebt?