Sonos Lautstärke mit Dimmer

Moin Moin
ich möchte die Lautstärke meines Sonos (VD) mit den Tasten am Dimmer erhöhen, bzw verringern.
S2 einmal drücken = Sonos einschalten
S1 einmal drücken = Sonos ausschalten
S2 halten = Lautstärke erhöhen bis S2 losgelassen
S1 halten = Lautstärke erhöhen bis S1 losgelassen

Hat jemand eine Idee, wie ich das am besten umsetzen kann
Mein Ansatz sieht so aus:

--[[
%% properties
550 sceneActivation
%% globals
--]]

local id= 550;
local name = fibaro:getName(id)
fibaro:debug(name);

local name = tonumber(fibaro:getValue(id, "sceneActivation"));
--------------------Sonos ausschalten------------------
if (tonumber(fibaro:getValue(id, "sceneActivation"))==16)
  then
  	fibaro:call(173, "pressButton", "7");
  fibaro:debug("1 click s1 "..name);
----------------------Sonos einschalten---------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==26)
  then
  fibaro:call(173, "pressButton", "9");
  fibaro:debug("1 click s2 "..name);
------------------------------------------------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==12)
  then
  fibaro:debug("hold click s1 "..name);
    ------------------------------------------------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==13)
  then
  fibaro:debug("release click s1 "..name);
------------------------------------------------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==22)
  then
  fibaro:debug("hold click s2 "..name);
------------------------------------------------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==23)
  then
  fibaro:debug("release click s2 "..name);
end

Hallo Hamburger,
meine Lösung setzt vorraus das du parallel zum Sonos VD auch das „original“ Sonos Plugin einrichtest. Ich habe auch beide parallel laufen da die Grundbefehle (play, stop, volume) mit dem Plugin schnell und einfach zu verarbeiten sind. Check das mal, anbei der Code. Bin gespannt ob es hinhaut. Ich weiß noch als ich das mal versucht hab dass da immer die Befehle „hold“ und „release“ gleichzeitig eingelaufen sind… das hat mir das ganze Projekt verhagelt. Ich weiß aber nicht mehr welches Modul ich genutzt habe. Eventuell macht dein Modul ja keine Zicken in der SzenenActivation. Bis denn dann

Mike

--[[
%% properties
550 sceneActivation
%% globals
--]]

local id = 550
local name = tonumber(fibaro:getValue(id, "sceneActivation"))
local sonos = 	--id des Sonos Plugin; dies habe ich parallel zum VD laufen
				--hierüber lassen sich perfekt die Grundsteuerungen wie:
				--Play, Stop und Volume (Laut-Leise) steuern

-- Lösche doppelte Szene(n) Anfang --
if (fibaro:countScenes()>1) then
fibaro:debug("2. Szene gekillt");
fibaro:abort(); 
end
-- Lösche doppelte Szene(n) Ende --

--------------------Sonos ausschalten------------------
if (tonumber(fibaro:getValue(id, "sceneActivation"))==16)
then
fibaro:call(sonos, "stop");
fibaro:debug("Sonos aus");
fibaro:debug("1 click s1 "..name);
--------------------Sonos ausschalten------------------
  
----------------------Sonos einschalten----------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==26)
then
fibaro:call(sonos, "setVolume", "15"); --eventuell eine feste Startlautstärke einstellen oder Zeile löschen..?!?!
fibaro:call(sonos, "play");
fibaro:debug("Sonos an");
fibaro:debug("1 click s2 "..name);
----------------------Sonos einschalten----------------
  
-------------------Lauter machen---------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==12)
then
repeat
  	local volume = ( tonumber(fibaro:getValue(sonos, "volume")));
	local volumeneu = ( tonumber(volume +5)) -- oder kleinere/größere Schritte...!!
	fibaro:call(sonos, "setVolume", volumeneu);	
	fibaro:debug("Lautstärke angehoben von: " .. volume .. " auf: " .. volumeneu);
 	fibaro:debug("hold click s1 "..name);
    fibaro:sleep(1000) -- Wartezeit zwischen den einzelnen Lautstärkesteps
	until (tonumber(fibaro:getValue(id, "sceneActivation"))==13)
-------------------Lauter machen---------------------  

------------------------------------------------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==13)
then
fibaro:debug("release click s1 "..name);
------------------------------------------------------------

-------------------Leiser machen---------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==22)
then
repeat
  	local volume = ( tonumber(fibaro:getValue(sonos, "volume")));
	local volumeneu = ( tonumber(volume -5)) -- oder kleinere/größere Schritte...!!
	fibaro:call(sonos, "setVolume", volumeneu);	
	fibaro:debug(" Hold S2 Lautstärke gesenkt von: " .. volume .. " auf: " .. volumeneu);
 	fibaro:debug("hold click s2 "..name);
    fibaro:sleep(1000) -- Wartezeit zwischen den einzelnen Lautstärkesteps
	until (tonumber(fibaro:getValue(id, "sceneActivation"))==23)
-------------------Leiser machen---------------------

------------------------------------------------------------
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==23)
then
fibaro:debug("release click s2 "..name);
------------------------------------------------------------
  
end


-- gez. BMC
-- Bremen den 08.04.2021
-- viel Spass damit :-)

Vielen Dank
genauso wollte ich es haben. :smiley: