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.

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
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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