FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: matzemoerk am 22 Juli 2015, 10:22:51

Titel: Probleme beim Ersetzen von Zeichen eines Userreadings
Beitrag von: matzemoerk am 22 Juli 2015, 10:22:51
Hallo,

Um im Tablet Frontend lässt sich ein Auswahlfeld definieren, welches seine Inhalte aus einer durch Doppelpunkt getrennten Reading bekommt. Dort will ich meine Sonos Favouriten anzeigen lassen. Das Sonosmodul liefert die Favouriten folgendermaßen:

"90er_Guilty_Pleasures","Aktuelle_Club_Hits","Aktuelle_Top_Hits","AntenneBayern","Beruhigender_Downtempo","Chill_Out_Lounge","Clubbing_im_Partykeller","DASDING","Die_aktuellen_Sommerhits_2015","Die_neuesten_Party_Hits","Entspannter_Electro","Hip_Hop_Hymnen","Hip_Hop_Poesie","Modern_German_Electro","Radio7","SWR3","Top_Partyhits","Trip_Hop_Classics"


Wie bereit beschreiben erwartet das Tablet Frontend das Reading im folgenden Format:

90er_Guilty_Pleasures:Aktuelle_Club_Hits:Aktuelle_Top_Hits:AntenneBayern:Beruhigender_Downtempo:Chill_Out_Lounge:Clubbing_im_Partykeller:DASDING:Die_aktuellen_Sommerhits_2015:Die_neuesten_Party_Hits:Entspannter_Electro:Hip_Hop_Hymnen:Hip_Hop_Poesie:Modern_German_Electro:Radio7:SWR3:Top_Partyhits:Trip_Hop_Classics


Mein erster Ansatz war es nun ein UserReading zu generieren, welches die Hochkommas löscht und das Komma durch den Doppelpunkt ersetzt. In einem ersten Schritt habe ich zum testen folgendes Userreading geschrieben:

FavTabletUI:LastActionResult.*?GetFavourites.* {
if (ReadingsVal("Sonos_Wohnzimmer", "LastActionResult", "") =~ m/.*?: (.*)/) {
my $returnvalue = $1;
$returnvalue = ~ s/,/:/g;
return $returnvalue;
}
}


Leider wird die Ersetzung nicht durchgeführt. Im UserReading FavTabletUI steht 18446744073709551615.

Wo mache ich den Fehler? Ist dieser Ansatz überhaupt sinnvoll?

Grüße,
Matthias
Titel: Antw:Probleme beim Ersetzen von Zeichen eines Userreadings
Beitrag von: viegener am 22 Juli 2015, 11:25:11
Hallo Matthias,

ich glaube in Deinem Code ist in der Zeile
$returnvalue = ~ s/,/:/g;
ein Leerzeichen zu viel, vermutlich sollte es heissen:
$returnvalue =~ s/,/:/g;

Gruss,
Johannes
Titel: Antw:Probleme beim Ersetzen von Zeichen eines Userreadings
Beitrag von: matzemoerk am 22 Juli 2015, 12:03:32
Funktioniert. Danke viegener!