Gelöst - Sonos- PlayURlTemp , verschiedene MP3 mittels Variablen - geht das ?

Begonnen von Spook112, 26 September 2020, 18:35:20

Vorheriges Thema - Nächstes Thema

Spook112

Hi,
inzwischen habe ich mir auch einen IKEA Sonos Clone zugelegt und er läuft auch in FHEM.
Das Abspielen von Streams klappt - auch eigene - und auch das Abspielen von einzelnen MP3 Dateien über eine Samba Freigabe.
(Hat einige Zeit gedauert, bis ich kapiert hatte, dass dazu ein Samba Client auf dem FHEM Server installiert sein muss und bis ich die Einstellungen auf dem Samba Server richtig hatte, dass FHEM darauf auch zugreifen kann)

Das Abspielen mittels:
set Sonos_Wohnzimmer PlayURl \\servername\share\directory\mp3-file.mp3 30
klappt.

Nun möchte ich je nach Situation eine laufende Streamwiedergabe mittels "PlayURlTemp" unterbrechen und die entsprechende Meldung ausgaben.
Klappt im Grundsatz auch.

Jetzt zur eigentlichen Frage:
Ist es möglich statt der URL auch einen userattr Wert zu verwenden.
Idee dahinter.
Ich möchte verschiedenen MP3 Dateien mit Nachrichten in verschiedenen userattr speichern und dann in dem "PlayURlTemp-Befehl" statt der URL den Namen das userattr verwenden - quasi als eine Variable.

Versucht habe ich z.B.: set Sonos_Wohnzimmer PlayURlTemp $userattr1
In userattr1 ist eine URL die für sich auch funktioniert abgespeichert.
Leider klappt das aber nicht.

Gibt es da einen Weg?  Ich habe es bisher nicht hin bekommen.

Für jeden Tipp wäre ich dankbar.

Gruß
Michael
Raspberry PI / RaZberry ZWAVE Modul / RFXTRX433E / 13 Fibaro FGS-222-EN-A-v1.00 / 17 VISION ZD2102-5 / 10 Somfy RTS / 4 Greenwave GWRENS310-F / Gardena Sileno City / 3 Gardena Gartensteckdosen / 2 devolo Home Control Funkschalter / 8 FIBARO System FGSD002 Smoke Sensoren

MadMax-FHEM

statt $userattr1 AttrVal("DeviceName","AttributName","Ersatzwert")...

Und da AttrVal ein Perl-Befehl ist -> nach Perl wechseln...

https://wiki.fhem.de/wiki/Klammerebenen

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

Hallo,

es gibt die Funktion AttrVal() in FHEM, damit könntest du die userattr in Variablen schreiben und im set-Befehl aufrufen.

Beispiel (für die Kommandozeile):


{my $v= AttrVal("du","bla","ersatzwert");; fhem ("set Sonos_Wohnzimmer PlayURITemp $v")}

Gruß

Thomas

Otto123

Hi,

ich finde userattr ist der falsche Weg diese Information zu speichern! Ist doch zu kompliziert?
Ich wurde einfach ein Reading setzen (setreading Gerät Reading MP3DateinAufruf), dann geht einfach (set magic):
set Sonos_Wohnzimmer PlayURlTemp [Gerät:Reading]

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Zitat von: Otto123 am 26 September 2020, 19:05:45
Hi,

ich finde userattr ist der falsche Weg diese Information zu speichern! Ist doch zu kompliziert?
Ich wurde einfach ein Reading setzen (setreading Gerät Reading MP3DateinAufruf), dann geht einfach (set magic):
set Sonos_Wohnzimmer PlayURlTemp [Gerät:Reading]

Gruß Otto

Die Antwort hatte ich auch schon überlegt, bzw. würde ich das wohl auch so machen...

War aber ja nicht die Frage... ;) ;) ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

Ich hatte überlegt darauf einzugehen und ein komplexeres Beispiel zu zeigen:

ZitatIch möchte verschiedenen MP3 Dateien mit Nachrichten in verschiedenen userattr speichern

Doch auf die Perl-Ebene wechseln, die Urls in ein Array stupsen (mit oder ohne Reading) und in_den_set_Befehlen auf die einzelnen Elemente zugreifen.
Bin aber am kochen  :P, später vlt. wenn keiner zuvorkommt.

Spook112

Danke für die Tipps.

Nur irgendwie klappt es auch damit noch nicht.

Entsprechend des Tipps von MadMax (so ich ihn denn richtig verstanden habe) habe ich es so versucht:
set Sonos_Wohnzimmer PlayURlTemp {AttrVal("Sonos_Wohnzimmer","userattr1","1")}

In "userattr1" steht die URL der MP3 Datei.
Weder mit noch ohne Hochkommas klappt das.

Habe ich da einen Denkfehler oder etwas falsch verstanden ?
Raspberry PI / RaZberry ZWAVE Modul / RFXTRX433E / 13 Fibaro FGS-222-EN-A-v1.00 / 17 VISION ZD2102-5 / 10 Somfy RTS / 4 Greenwave GWRENS310-F / Gardena Sileno City / 3 Gardena Gartensteckdosen / 2 devolo Home Control Funkschalter / 8 FIBARO System FGSD002 Smoke Sensoren

Otto123

Ja :)

Perl bei set magic erfordert {(PerlAusdruck)}

Es fehlen mMn die beiden Klammern () das sollte so auch im FHEM Log stehen.

Oder Du schreibst es so:
set Sonos_Wohnzimmer PlayURlTemp [Sonos_Wohnzimmer:userattr1]
Siehe auch https://fhem.de/commandref_DE.html#set

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Spook112

Funktioniert - danke Otto.

set Sonos_Wohnzimmer PlayURlTemp [Sonos_Wohnzimmer:userattr1]

Das war das was ich gesucht habe.
Raspberry PI / RaZberry ZWAVE Modul / RFXTRX433E / 13 Fibaro FGS-222-EN-A-v1.00 / 17 VISION ZD2102-5 / 10 Somfy RTS / 4 Greenwave GWRENS310-F / Gardena Sileno City / 3 Gardena Gartensteckdosen / 2 devolo Home Control Funkschalter / 8 FIBARO System FGSD002 Smoke Sensoren