Hallo liebe gemeinde,
ich will hiermit mal einen beitrag dazu leisten und meine Lösung für euch bereitstellen.
Worum geht es?
Wer kennt es nicht, man hat eine Sonos Connect an seiner Stereo Anlage hängen und muss die Stereo Anlage immer seperat einschalten um seine Musik zu geniesen.
Ist eigentlich in der heutigen Zeit etwas mühsam oder etwa nicht?
Mit meiner Lösung habe ich es geschafft das sich die Stereo Anlage automatisch mit einschaltet und auch auf den Richtigen Eingan umschaltet.
Diese Lösung will euch zeigen, für verbesserungs Vorschläge und Erweiterungen bin ich Offen und würde mich Freuen. Hoffe es gefällt euch.
Was wird benötigt, eine Fibaro HC2, das VD Sonos_Player, einen Harmony HUB und logisch die Sonos Connect
Da ich neu und mich nicht wirklich mit LUA auskenne besteht sicher verbesserungs bedarf.
Ich habe zwei LUA Szenen erstellt, in einer LUA Szene wird die Variable “sonos_status” geändert, in der Anderen wird die Variable “sonos_status” abgefragt und startet dann die Activity vom Harmony HUB.
Die Harmony Aktion muss natürlich vorher in MyHarmony erstellt werden.
--[[
%% autostart
%% properties
%% events
%% globals
215 value
--]]
local status = fibaro:getValue(215, "ui.lblState.value") ---// Hier bitte die ID von dem Sonos_Player VD eintragen.
local harmonystatus = fibaro:getValue(205, "ui.startStopActivitySwitch.value") ---//Hier bitte die ID von der Harmony Activity eingeben
fibaro:debug("Status = "..status.."")
fibaro:debug("Harmony Status Aktion = "..harmonystatus.."")
local sourceTrigger = fibaro:getSourceTrigger()
function refresh()
fibaro:startScene(68) ---// Die ID der Szene bitte hier eintragen
setTimeout(refresh, 3*1000)
fibaro:debug('Refresh des Status durchgeführt...')
end
if (sourceTrigger["type"] == "autostart") then
refresh();
end
if
status == "Radio Playing"
then
fibaro:setGlobal("sonos_status", "1")
else
fibaro:setGlobal("sonos_status", "0")
end
In dem oberen LUA Code wird der Status vom Connect abgefragt, wenn dieser auf “Radio Playing” steht wird die variable “sonos_status” geändert.
--[[
%% properties
%% weather
%% events
%% globals
sonos_status
--]]
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getGlobalValue("sonos_status")) == tonumber("1") )
or
startSource["type"] == "other"
)
then
fibaro:call(205, "changeActivityState") ---// Hier bitte die ID von der Harmony Activity eingeben
end
if (
( tonumber(fibaro:getGlobalValue("sonos_status")) == tonumber("0") )
or
startSource["type"] == "other"
)
then
fibaro:call(205, "changeActivityState") ---// Hier bitte die ID von der Harmony Activity eingeben
end
In diesem LUA Code wird die variable abgefragt, wenn “sonos_status” auf “1” steht wird die Aktion die ihr in MyHarmony erstellt habt gestartet.
Wichtig ist auch das ihr dem Sonos Connect eine fixe IP Adresse vergebt, diese könnt ihr nur im Router mit der MAC Adresse eurer Connect fixieren.
Der Port für die Sonos Connect lautet “1400”. Wird beim VD Sonos Player benötigt.
Ich hoffe ich habe nicht etwas vergessen
Und ich hoffe euch gefällt es.
Wenn jemand meinen Lösungsvorschlag verbessern kann und will, soll/kann er das bitte tun
bin gespannt auf eure Meinung.
edit: Das Sonos VD habe ich noch mit eingefügt.