FHEM Forum

Allgemeine Informationen => Wiki => Thema gestartet von: RichardCZ am 15 April 2020, 11:31:41

Titel: "Doppelpunkte in Gerätenamen" (Proteus_EcoMeter)
Beitrag von: RichardCZ am 15 April 2020, 11:31:41
https://wiki.fhem.de/wiki/Proteus_EcoMeter

ZitatDie Namen enthalten jedoch Doppelpunkte und FHEM verkraftet keine Gerätenamen mit Doppelpunkten. Wer weiß warum bitte hier Lösung eintragen.

Ich habe eine Vermutung  ;) ... aber keinen Wiki Account.  Könnte eventuell mit devspec2array zusammenhängen.

           ($n, $op, $re) = ($1, 'eval', '') if ($dName =~ m/^{(.*)}$/);

            my $fType = '';
            if ($n =~ m/^(.:)(.*$)/) {    # <---- hier ?
                $fType = $1;
                $n     = $2;
            }

Um ganz ehrlich zu sein, verstehe ich die Regex nicht 100% - insbesondere warum man in $2 unbedingt '$' capturen muss...

Jedenfalls kann fType i, r oder a sein und da man - wie in FHEM üblich ist - den regulären Ausdruck zu locker gefasst hat, wird natürlich auch ein

/dev/serial/by-path/pci-0000:00:14.0-usb-0:4.3:1.0-port0

gefangen. Ich würde den Ausdruck so schreiben:

           if ($n =~ m/^([air]:)(.*)$/) {    # still ... death to dot-star!
                $fType = $1;
                $n     = $2;
            }


Kann aber sein, dass ich komplett daneben liege, die Regex sollte man trotzdem fester zurren.
Titel: Antw:"Doppelpunkte in Gerätenamen" (Proteus_EcoMeter)
Beitrag von: JoWiemann am 15 April 2020, 11:42:00
Zitat von: RichardCZ am 15 April 2020, 11:31:41
... aber keinen Wiki Account.  Könnte eventuell mit devspec2array zusammenhängen.

Hier wird Dir geholfen: https://wiki.fhem.de/wiki/FHEMWiki:Administratoren

Grüße Jörg
Titel: Antw:"Doppelpunkte in Gerätenamen" (Proteus_EcoMeter)
Beitrag von: ph1959de am 15 April 2020, 12:10:26
Ich vermute, dieser Thread hat nur begrenzt mit der Wiki Seite zu tun, sondern eher generell mit dem "Doppelpunkt in Device Namen"?

@RichrdCZ: stammt das Code Fragment in Deinem Beitrag aus 44_TEK603.pm oder betrifft das generell devspec2array? In beiden Fällen müsste die Diskussion vermutlich in anderen Forenbereichen stattfinden - das Ergebnis, soweit es das ... bitte hier Lösung eintragen... betrifft werde ich dann gern in die Wiki Seite einarbeiten.

Peter