FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: gladist am 10 April 2014, 16:16:18

Titel: Sonos, Homematic, URL-Encoding
Beitrag von: gladist am 10 April 2014, 16:16:18
Hallo zusammen,

auch ich habe jetzt den Weg zu FHEM gefunden und möchte u.a. meine Sonos Anlage über die Sonos Module steuern. Konkret möchte ich über einen Homematic Taster HM-PB-6-WM55 verschiedene Radiosender per Tastendruck abspielen.

Grundsätzlich funktioniert das auch, sobald allerdings Leerzeichen im Sendernamen sind, klappt das "notify" nicht mehr.

===========================

Funktionierendes Notify:

define TestNotify1 notify Taster_Bad_3 set Sonos_Bad LoadRadio hr3

===========================

Nicht funktionierendes:

define TestNotify1 notify Taster_Bad_3 set Sonos_Bad LoadRadio NDR 2

führt zu folgender FM:
2014-04-10 15:59:02 SONOSPLAYER Sonos_Bad LoadRadio NDR 2
2014-04-10 15:59:02 SONOSPLAYER Sonos_Bad LoadRadio NDR 2
2014-04-10 15:59:02 CUL_HM Taster_Bad_3 Short (to broadcast)
2014-04-10 15:59:02 CUL_HM Taster_Bad_3 trigger: Short_43
2014-04-10 15:59:02 SONOSPLAYER Sonos_Bad LastActionResult: LoadRadio: Radio "NDR" not found. Choose one of: "89.0 RTL","Goa Trance Alternate","Hitradio Antenne Niedersachsen","Mountain Chill 95.5 FM","Mountain Chill 95.5FM KRKQ","NDR 2","Radio Schleswig Hostein","Radio ffn","hr3","radio harmony.fm"

===========================

Mir ist grundsätzlich schon klar, daß das was mit dem Maskieren der Leerzeichen zu tun hat, allerdings habe ich bisher keine Lösung gefunden. Gemäß URL-Encoding sollte das Leerzeichen zu "%20" werden. Ich habe die unterschiedlichsten Kombination für die Maskierung ausprobiert, leider ohne Erfolg...

Wenn ich das "notify" mit "%20" definiere:

===========================

define TestNotify1 notify Taster_Bad_3 set Sonos_Bad LoadRadio NDR%202

führt das zu folgender FM:

2014-04-10 16:01:30 CUL_HM Taster_Bad Taster_Bad_3 Short (to broadcast)
2014-04-10 16:01:30 SONOSPLAYER Sonos_Bad LoadRadio NDRShort (to broadcast)202
2014-04-10 16:01:30 SONOSPLAYER Sonos_Bad LoadRadio NDRtrigger: Short_44202
2014-04-10 16:01:30 CUL_HM Taster_Bad_3 Short (to broadcast)
2014-04-10 16:01:30 CUL_HM Taster_Bad_3 trigger: Short_44
2014-04-10 16:01:38 SONOSPLAYER Sonos_Bad LastActionResult: LoadRadio: Radio "NDRShort" not found. Choose one of: "89.0 RTL","Goa Trance Alternate","Hitradio Antenne Niedersachsen","Mountain Chill 95.5 FM","Mountain Chill 95.5FM KRKQ","NDR 2","Radio Schleswig Hostein","Radio ffn","hr3","radio harmony.fm"

===========================

Für mich sieht das jetzt so aus, als würde das "%" Zeichen als Triggersymbol vom HM Wandschalter erkannt (==> "NDRShort (to broadcast)202") und nicht an Perl übergeben.

Mache ich hier einen Denkfehler und viel wichiger:
Hat jemand einen Lösungsansatz dafür?

Danke von einem Frischling....

VG

Jens
Titel: Antw:Sonos, Homematic, URL-Encoding
Beitrag von: Reinerlein am 10 April 2014, 19:59:08
Hallo Jens,

da kommt dir die Ersetzung durch das Notify in die Quere, sodass du das Prozentzeichen nochmal maskieren musst (dazu steht auch was in einem Wiki-Beispiel von mir):

define TestNotify1 notify Taster_Bad_3 set Sonos_Bad LoadRadio NDR%%202


Grüße
Reiner
Titel: Antw:Sonos, Homematic, URL-Encoding
Beitrag von: gladist am 11 April 2014, 10:13:23
Hallo Reiner,

vielen Dank für Deine schnelle und kompetente Antwort - so hat es funktioniert!!

Dein Wiki hatte ich sogar gelesen, allerdings die doppelten Prozentzeichen nicht wahr genommen. Ich hab's immer mit dem Quoten über den Backslash versucht.  Also wie immer: RTFM  :)

Das Thema schließe ich hiermit, danke nochmal und viele Grüße

Jens