Via Vu+ SONOS anhalten

Hallo Gemeinde, vielleicht kann mich hier jemand mit seinen LUA Kenntnissen unterstützen. Würde gerne folgendes implementieren. Wenn Wallplug über xx Watt, dann prüfen ob SONOS spielt. Wenn ja, Anzeige an VU+ - Achtung: SONOS läuft - 1 Anhalten (default) 2 laufen lassen - keine Antwort nach 30 sec - ebenfalls anhalten. Im Grunde gibt es die Sachen teilweise hier im Forum, nur gelingt es mir nicht die Teile funktionell zusammenzufügen. Größter Knackpunkt (hierzu habe ich den notwendigen Code leider noch nicht gefunden) - die SONOS Abfrage für das Krikroff VD um den Status abzufragen. Danke schon mal für die Unterstützung

Hi,

Du kannst über das Sonos Plugin den State (Play, Stop…) abfragen.

Viele Grüße Hoggle

Könnte wie folgt aussehen:

 if (fibaro:getValue(5, "state") == "STOPPED") then
	fibaro:debug("The state is: " .. fibaro:getValue(5, "state"));
        fibaro:setGlobal("SONOS_RADIO", "radiohamburg.hoerradar.de/radiohamburg-live-mp3-192?");
	fibaro:call(206, "pressButton", "1");
   elseif (fibaro:getValue(5, "state") == "PLAYING") then
 	fibaro:debug("The state is: " .. fibaro:getValue(5, "state"));
        fibaro:call(206, "pressButton", "4");  --Stop 
end

@Hoggle - Vielen Dank. Hab das Puzzle nun zusammengesetzt und es funktioniert. Sicher ist innerhalb des Codes optimierungspotential, dennoch poste ich es mal:

--[[
%% properties
79 power
%% events
%% globals
--]]

local wallplug = 79 -- wallplug
local tvon = 50 -- Verbrauch, ab Fernsehbetrieb

if (((tonumber(fibaro:getValue(wallplug, "power")) > tvon)) and
  	(fibaro:getValue(112, "ui.lblState.value") == "Stopped")) then
	fibaro:debug("The state is Stopped: " .. fibaro:getValue(112, "ui.lblState.value"));
      	--fibaro:call(206, "pressButton", "1");

   elseif (fibaro:getValue(112, "ui.lblState.value") == "Playing") then
 	fibaro:debug("The state is Playing: " .. fibaro:getValue(112, "ui.lblState.value"));
    fibaro:call(10, "pressButton", "46");  --Vu+ WZ SONOS Pause ;
  
   elseif (fibaro:getValue(112, "ui.lblState.value") == "Radio Playing") then
 	fibaro:debug("The state is Radio Playing: " .. fibaro:getValue(112, "ui.lblState.value"));
	fibaro:call(10, "pressButton", "46");  --Vu+ WZ SONOS Pause ;

end