Sonos, Homematic, URL-Encoding

Begonnen von gladist, 10 April 2014, 16:16:18

Vorheriges Thema - Nächstes Thema

gladist

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

Reinerlein

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

gladist

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