Anbindung des Fonera Gramofon an FHEM (Spotify Connect Empfänger)

Seit einiger Zeit besitze ich mehrere Fonera Gramofon als Spotify Connect Empfänger. Was leider an den Playern etwas nervig ist, dass diese keine Lautsprecher besitzen und somit am Kopfhörerausgang aktive Verstärkung brauchen. Dazu schalte ich die Lautsprecher via Funksteckdose ein. Wenn man also nun via Spotify Connect dann Musik auf den Player schickt, muss man zusätzlich die Lautsprecher einschalten. Via FHEM wollte ich das nun automatisieren – was mir nun mittels des Moduls HTTPMOD gelungen ist.

Werbung


Hier ist die genutzte Definition nach meiner Device Namenskonvention. Folgendes ist zu beachten:

  • In der ersten Zeile ist die IP auszutauschen (wahlweise kann man dort den DNS-Namen eintragen)
  • Per default ist auf dem gramofon das Passwort „admin“ gesetzt, dies muss, sofern es geändert wurde, in der zweiten Zeile am Ende geändert werden.
  • In der untenstehenden Definition wird der Gramofon alle 30 Sekunden nach dem aktuellen Status gefragt – dies kann man ebenso in der ersten Zeile ändern
  • Weiterhin wird jede Stunde der Spotify-Name und der DNS-Name abgefragt
  • Ist der Abruf mehr als 5 Minuten nicht erfolgt, so wechseln die Readings für color (Farbe der LED), mode und status (abspielen oder WifiStatus bei gestoppter Musik) auf „offline“
  • Via set kann man den Gramofon rebooten
define KUE_HTM_GRAMOFON HTTPMOD http://192.168.1.2/api/$sid 30
attr KUE_HTM_GRAMOFON sid1Data {"jsonrpc":"2.0","id":63,"method":"call","params":["session","login",{"username":"admin","password":"admin" }]}
attr KUE_HTM_GRAMOFON stateFormat status (color)
attr KUE_HTM_GRAMOFON enableControlSet 1
attr KUE_HTM_GRAMOFON reAuthRegex -32002|.*Access Denied.*|.*Bad Request.*
attr KUE_HTM_GRAMOFON sidHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr KUE_HTM_GRAMOFON sidHeader2 Accept: */*
attr KUE_HTM_GRAMOFON sidHeader3 X-Requested-With: XMLHttpRequest
attr KUE_HTM_GRAMOFON sidHeader4 Referer: http://%%internal_host%%/
attr KUE_HTM_GRAMOFON sid1URL http://%%internal_host%%/api/00000000000000000000000000000000
attr KUE_HTM_GRAMOFON sid1Data {"jsonrpc":"2.0","id":63,"method":"call","params":["session","login",{"username":"admin","password":"admin" }]}
attr KUE_HTM_GRAMOFON sidIDRegex sid":[ \t]+"([\w\.]+)"
attr KUE_HTM_GRAMOFON getURL http://%%internal_host%%/api/$sid
attr KUE_HTM_GRAMOFON getHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr KUE_HTM_GRAMOFON getHeader2 Accept: */*
attr KUE_HTM_GRAMOFON getHeader3 X-Requested-With: XMLHttpRequest
attr KUE_HTM_GRAMOFON getHeader4 Referer: http://%%internal_host%%/
attr KUE_HTM_GRAMOFON requestHeader1 Content-Type: application/x-www-form-urlencoded;; charset=UTF-8
attr KUE_HTM_GRAMOFON requestHeader2 Accept: */*
attr KUE_HTM_GRAMOFON requestHeader3 X-Requested-With: XMLHttpRequest
attr KUE_HTM_GRAMOFON requestHeader4 Referer: http://%%internal_host%%/
attr KUE_HTM_GRAMOFON requestData {"jsonrpc":"2.0","id":81,"method":"call","params":["ledd","get",{"device_status":true}]}
attr KUE_HTM_GRAMOFON replacement01Mode internal
attr KUE_HTM_GRAMOFON replacement01Regex %%internal_host%%
attr KUE_HTM_GRAMOFON replacement01Value host
attr KUE_HTM_GRAMOFON reading01Name color
attr KUE_HTM_GRAMOFON reading01JSON result_02_color
attr KUE_HTM_GRAMOFON reading01MaxAge 300
attr KUE_HTM_GRAMOFON reading01MaxAgeReplacement offline
attr KUE_HTM_GRAMOFON reading01MaxAgeReplacementMode text
attr KUE_HTM_GRAMOFON reading02Name mode
attr KUE_HTM_GRAMOFON reading02JSON result_02_mode
attr KUE_HTM_GRAMOFON reading02MaxAge 300
attr KUE_HTM_GRAMOFON reading02MaxAgeReplacement offline
attr KUE_HTM_GRAMOFON reading02MaxAgeReplacementMode text
attr KUE_HTM_GRAMOFON reading03Name status
attr KUE_HTM_GRAMOFON reading03JSON result_02_name
attr KUE_HTM_GRAMOFON reading03MaxAge 300
attr KUE_HTM_GRAMOFON reading03MaxAgeReplacement offline
attr KUE_HTM_GRAMOFON reading03MaxAgeReplacementMode text
attr KUE_HTM_GRAMOFON get01Name spotifyname
attr KUE_HTM_GRAMOFON get01Data {"jsonrpc":"2.0","id":6,"method":"call","params":["anet","get_gramofonname",{}]}
attr KUE_HTM_GRAMOFON get01JSON result_02_spotifyname
attr KUE_HTM_GRAMOFON get01Poll 1
attr KUE_HTM_GRAMOFON get01PollDelay 3600
attr KUE_HTM_GRAMOFON get02Name mdnsname
attr KUE_HTM_GRAMOFON get02Data {"jsonrpc":"2.0","id":6,"method":"call","params":["anet","get_gramofonname",{}]}
attr KUE_HTM_GRAMOFON get02JSON result_02_mdnsname
attr KUE_HTM_GRAMOFON get02Poll 1
attr KUE_HTM_GRAMOFON get02PollDelay 3600
attr KUE_HTM_GRAMOFON set01Name reboot
attr KUE_HTM_GRAMOFON set01Data {"jsonrpc":"2.0","id":14,"method":"call","params":["mfgd","reboot",{}]}
attr KUE_HTM_GRAMOFON set01NoArg

Veröffentlicht von

Uli

IT-Nerd und Admin

6 Gedanken zu „Anbindung des Fonera Gramofon an FHEM (Spotify Connect Empfänger)“

  1. Hallo,
    danke für den hilfreichen Beitrag.
    Ich habe prinzipiell das gleiche Setup wie du, möchte aber noch einen Schritt weiter gehen und meine Lieblingsplaylist auf Knopfdruck (z.B. Flic oder Hue Fernbedienung) direkt auf dem Gramofon starten.

    Hast du eine Idee, wie sich das realisieren ließe?

    LG
    Jeff

    1. Hi Jeff,

      da habe ich ewig rumprobiert…aber es scheint so zu sein, dass der physikalische Knopf leider nicht anzusteuern ist. Und damit leider auch die Steuerung nicht möglich ist… 🙁

      Ich habe eine Weile versucht einen Spotify Connect Controller mit FHEM zu bauen, aber da bin ich auch nicht wirklich weiter gekommen 🙁 Hatte mich mit spotcontrol an diesem Problem probiert aber irgendwann das Interesse verloren.

      Falls du es löst: Lass es mich wissen – wäre interessant 🙂

      Cheers,
      Uli

      1. Hi Uli,

        danke für den Hinweis mit Spotcontrol. Das Tool funktioniert nur noch bedingt, da es auf die obsolete Spotify Library aufsetzt. Allerdings hat es mich nach einiger Recherche auf https://github.com/Spotifyd/spotifyd-http gebracht, was vielversprechend aussieht, da es auf einer aktuellen, aber inoffiziellen Library aufsetzt. Ich benötige noch einen oder zwei freie Abende zum Testen, aber ich hoffe, dass ich dann eine Lösung parat habe.

        Das oben genannte Tool scheint, wenn es funktioniert, auch ziemlich cool für FHEM zu sein, da es über simple HTTP Requests Musik auf einem Connect Gerät steuern kann.

        Ich melde mich, wenn ich mehr weiß.

        LG
        Jeff

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.