FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: TWART016 am 15 Juni 2018, 13:18:48

Titel: list in userReading
Beitrag von: TWART016 am 15 Juni 2018, 13:18:48
Hi,

ich benötige die Namen der Geräte in einem Userreading. Dabei sollen die Namen kommagetrennt werden, um diese in Tablet UI anzuzeigen.
So sieht das devspec aus:
list a:FTUI_at=1

Wie bekomme ich die Devicenamen in das userReading device_list?


Gruß
TWART016
Titel: Antw:list in userReading
Beitrag von: TWART016 am 07 August 2018, 14:45:21
Über dieses userReading bekomme ich jetzt die Werte mit Zeilenumbruch
device_list {fhem ("list a:FTUI_at=1");}

So sieht dann das Device aus:
  2018-08-07 14:16:39   device_list     LED_Schlafzimmer
LED_Wohnzimmer


Wie kann ich nun den Zeilenumbruch (Leerzeichen??) durch ein Komma ersetzen?
Titel: Antw:list in userReading
Beitrag von: Otto123 am 07 August 2018, 15:42:16
Hi,

mit sowas in der Art:
device_list {my $val=fhem ("list a:FTUI_at=1");$val =~ s/ /,/; $val;}

Aber es wird wohl kein Leerzeichen sein. \n vielleicht?

Gruß Otto
Titel: Antw:list in userReading
Beitrag von: TWART016 am 07 August 2018, 15:57:47
Zwischen den ersten beiden Geräten, wird das Komma mit \n gesetzt.
device_list {my $val=fhem ("list a:FTUI_at=1");$val =~ s/\n/,/; $val;},

Bei den weiteren wohl wieder ein Zeilenumbruch dargestellt
     2018-08-07 15:54:30   device_list     LED_Schlafzimmer,LED_Wohnzimmer
SB_Player_Bad
SB_Player_Kueche
Titel: Antw:list in userReading
Beitrag von: Otto123 am 07 August 2018, 16:07:18
Zitatg
Apply the replacement to all matches to the regexp, not just the first.
Also s/\n/,/g

Findet Google :)

Gruß Otto
Titel: Antw:list in userReading
Beitrag von: TWART016 am 07 August 2018, 17:07:01
Jetzt wird nur noch am Ende der Zeile ein Komma angezeigt.
Damit wollte ich es entfernen.
;$val =~ s/,$//;

In einem anderen Code geht das auch, hier aber nicht.
device_list {my $val=fhem ("list a:FTUI_at=1");$val =~ s/,$//;$val =~ s/\n/,/g; $val;},
Titel: Antw:list in userReading
Beitrag von: Otto123 am 07 August 2018, 18:07:37
falsche Reihenfolge?