Autor Thema: Sonos, Homematic, URL-Encoding  (Gelesen 2560 mal)

Offline gladist

  • Newbie
  • Beiträge: 2
Sonos, Homematic, URL-Encoding
« 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

Offline Reinerlein

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2030
Antw:Sonos, Homematic, URL-Encoding
« Antwort #1 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

Offline gladist

  • Newbie
  • Beiträge: 2
Antw:Sonos, Homematic, URL-Encoding
« Antwort #2 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

 

decade-submarginal