FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gestein am 08 Januar 2021, 10:05:42

Titel: [gelöst] readingsgroup: Anzeige der MAC-Adresse mit ":"
Beitrag von: gestein am 08 Januar 2021, 10:05:42
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
Titel: Antw:readingsgroup: Anzeige der MAC-Adresse mit ":"
Beitrag von: Otto123 am 08 Januar 2021, 10:19:14
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
Titel: Antw:readingsgroup: Anzeige der MAC-Adresse mit ":"
Beitrag von: gestein am 08 Januar 2021, 11:31:29
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
Titel: Antw:readingsgroup: Anzeige der MAC-Adresse mit ":"
Beitrag von: gestein am 08 Januar 2021, 12:19:04
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