Hallo,
ich würde gerne in einer readingsGroup die MAC-Adressen mit einem ":" als Trennzeichen anzeigen lassen.
In den Readings stehen die Adressen so "8CAAB5058CB0".
Also dachte ich mir, ich nehme das Attribut "valueFormat" und frage dort einfach die Spalte "mac" ab:
if ($READING eq "mac") { my $mac=~ s/([[:xdigit:]]{2})\B/$VALUE:/g; return $mac;}
Den Code für das regex habe ich von da: https://www.perlmonks.org/?node_id=947917 (https://www.perlmonks.org/?node_id=947917)
Das scheint richtig zu sein, da es auf https://regex101.com/ funktioniert.
Leider klappt das aber bei mir nicht, in der readingsGroup wird dann ein Leerstring angezeigt.
Weiß jemand, wie man das richtig machen kann bzw. warum die obige regex nicht funktioniert?
Danke im Voraus
lg, Gerhard
Hallo gerhard,
Mal in der Kommandozeile getestet:
{my $mac="8CAAB5058CB0";; $mac=~ s/([[:xdigit:]]{2})\B/$1:/g;; return $mac}
noch nicht ganz Dein Code - aber ein Ansatz?
Gruß Otto
Hallo Otto,
Wenn ich das in der Befehlszeile eingebe, dann kommt das richtige Ergebnis.
Scheint also zu stimmen.
Nur in der readingsGroup mag es noch nicht klappen.
lg, Gerhard
Hallo,
mit dem obigen Ansatz habe ich es einfach nicht geschafft.
Auch nicht, als ich das in eine Sub in 99_myUtils.pm ausgelagert habe.
Aber damit klappt es, falls es mal jemand brauchen kann:
return join(":", unpack "(A2)*", $VALUE) if ($READING eq "mac");
Das ist auch aus dem genannten Thread.
lg, Gerhard