Siehe #20
Ankündigung
Einklappen
Keine Ankündigung bisher.
KNX/Sonos-Integration kommt
Einklappen
X
-
Hab' gerade mal geschaut - wenn es wirklich nur um die Laufstärke geht, kannst Du das jetzt schon mit Firmware v5 machen. Ein kleines LUA-Script, das mir Gemini gerade gebastelt hat, führt zum Ziel.Zitat von viggo Beitrag anzeigen... per KNX-Taster zu steuern ... bei den Sonos natürlich die Lautstärke ...
Müsste man natürlich entsprechend noch anpassen, was die Bedienung über KNX-Tasten angeht, aber Gemini führt einen da sicher zum Ziel.Code:local config = { ip = "192.168.x.x", port = 1400, target_vol = 25 } local service = "urn:schemas-upnp-org:service:RenderingControl:1" local action = "SetVolume" local soap_body = '<?xml version="1.0"?>' .. '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' .. '<s:Body><u:' .. action .. ' xmlns:u="' .. service .. '">' .. '<InstanceID>0</InstanceID>' .. '<Channel>Master</Channel>' .. '<DesiredVolume>' .. config.target_vol .. '</DesiredVolume>' .. '</u:' .. action .. '></s:Body></s:Envelope>' local url = "http://" .. config.ip .. ":" .. config.port .. "/MediaRenderer/RenderingControl/Control" local headers = { ["Content-Type"] = "text/xml; charset=utf-8", ["SOAPAction"] = '"' .. service .. "#" .. action .. '"', ["Content-Length"] = tostring(string.len(soap_body)) } local opts = { headers = headers, timeout = 5000 } log.info("SONOS VOL: " .. config.target_vol) local resp, stat = http.post(url, soap_body, opts) if tonumber(stat) == 200 then log.info("OK") else log.info("ERROR: " .. tostring(stat)) end
Kommentar


Kommentar