Wie kann ich Sonos lauter und leiser machen über FGS 222

Hallo Zusammen,

habe volgendes Problem.

Ich möchte Sonos über einen Taster Lauter und über einen anderen Taster Leiser machen.

Aber leider läßt sich das Virtuelle Modul nur über Slider Steuern.

Dann bekomme ich es nur hin das Sonos auf Mute geht.

Bin um jede Hilfe erfreut.

Gruß

Nutzt Du das VD von Krikroff http://www.fibarouk.co.uk/support/virtual-device-database/?
Mit HCL oder HC2?
Oder ein eigenes?

Hi ich nutze das von Krikoff
und habe einen HC2.
Ich komme nicht da hinter wie ich den Slider + oder - bewegen soll.

Hallo zusammen,

wenn das FIBARO Sonos Plugin genutzt wird, geht dies einfach mit einer Lua-Szene:
fibaro:call(SonosID, “setVolume”, “15”) - um z.B. die Lautstärke auf den Wert 15 zu setzen (dabei ist die SonosID, die ID des virtuellen Sonos Gerätes)

Bei den anderen Plugins (z.b. dem Sonos TTS) geht dies ebenfalls direkt mit:
setVolume(15); - hierbei muss man natürlich einen virtuellen Volume-Button erstellen und diesen dann aus einer Szene heraus aufrufen.

Die Szenen müssen dann natürlich den Status vom FGS-222 abfragen und entsprechend den jeweiligen Sonos Plugin ansteuern.

Hoffentlich hilft der Post schon weiter, ansonsten stehen wir für Rückfragen zur Verfügung und helfen gerne das Problem zu beheben.

Mit freundlichen Grüßen
PetRad

Hallo,

mit LUA kenne ich mich leider noch überhaupt nicht aus.

Hat den einer einen Tip für mich.

Bin für jeden Tipp Dankbar.

Gruß

Hallo,

ich nutze das Fibaro-Plugin und würde gern über LUA ein MP3 abspielen. Ich kann zwar mit fibaro:call(168, “setVolume”, “20”) die Lautstärke auf 20 setzen, aber es gibt irgendwie kein Kommando, um etwas abzupielen. Somit ist das original Fibaro-Modul irgendwie nutzlos. Das Kommando “turnOn” macht irgendwie garnichts. Benötige ich auf jeden Fall das Modul von Krikoff, damit ich etwas Sinnvolles damit per LUA anfangen kann?

Viele Grüße
Rolf

Hast du mal hier geschaut:

https://doonic.wordpress.com/2015/08/14/sonos-und-fibaro-hc2/

Ja, danke, habe ich. Allerdings scheint der Download-Link nicht alles das zu haben, was ich dafür benötige. Hatte ich dort auch schon in den Kommentaren geschrieben.
Wäre ja toll, sowas wie Text to speech zu haben oder überhaupt mal etwas per LUA steuern zu können.

TTS ist (war ?) doch Bestandteil des Commanders. ?

In Doonics beitrag war ein ZIP-File, das aus drei Dateien bestand, also einem .lua, einer Info.txt und einem .json. Da fehlt doch noch das virtuelle Modul, oder?

Und die .json habe ich als VD hinzugefügt.
Warum auch immer die so endet…

Di IDs müsst ihr euch mal anpassen. Das Ding ist jetzt für den WALL-C bzw. den Devolo Funkwandschalter geschrieben

--[[
%% properties
62 sceneActivation
%% globals
--]]
local tasterID = 62
local test = (fibaro:getValue(tasterID, "sceneActivation"));
local debug = true; -- Debug true or false

function Debug( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end

--------------------------------------------------------------------
-------------------------SONOS Lauter -----------------------------
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 11) 
    then
  		local volume= ( tonumber(fibaro:getValue(5, "ui.volumebtn.value")));
		local volumeneu = ( tonumber(volume +5))
			  fibaro:call(5, "setSlider", "8", volumeneu);  -- Slider für Lautstärke setzen
  		if debug then  Debug( "yellow", "Anwesend - S1 kurz gedrückt");
  	 Debug( "green", " Lautstärke erhöht von: " .. volume .. " auf: " .. volumeneu); end
   end
------------------------------------------------------
------------------------------------------------------
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 13) 
    then
  		if debug then  Debug( "yellow", "S1 lange gedrückt"); end
   end

if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 15) 
    then
  		if debug then  Debug( "yellow", "S1 losgelassen nach lange gedrückt"); end
   end
--------------------------------------------------------------------
-------------------------SONOS Senderwechsel -----------------------------
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 21) 
    then
		local Sender = ( tonumber(fibaro:getValue(5, "ui.Senderbtn.value")));
 			if ( tonumber(Sender)) < 11
 			 	then Sender = 10
    		elseif  ( tonumber(Sender)) > 18
    			then Sender = 10
 			 end 
  Senderneu = (Sender+ 1)
  fibaro:call(5, "setSlider", "18", Senderneu); -- Sender in Slider speichern
  fibaro:call(5, "pressButton", Senderneu); -- Sendertaste drücken
  fibaro:sleep(1*1000);
  fibaro:call(5, "pressButton", "1"); -- Play drücken
    
	if debug then Debug( "green", " Radiosender gewechselt von: " .. Sender .. " auf: " .. Senderneu);
  	end
end
------------------------------------------------------
------------------------------------------------------
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 22) 
    then
  		if debug then  Debug( "yellow", "S2 doppel Klick (2x)"); end
    end

if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 23) 
    then
  		if debug then  Debug( "yellow", "S2 lange gedrückt"); end
    end

if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 25) 
    then
  		if debug then  Debug( "yellow", "S2 losgelassen nach lange gedrückt"); end
    end
--------------------------------------------------------------------
-------------------------SONOS Leiser -----------------------------  
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 31) 
    then
  		local volume= ( tonumber(fibaro:getValue(5, "ui.volumebtn.value")));
		local volumeneu = ( tonumber(volume -5))
			  fibaro:call(5, "setSlider", "8", volumeneu);  -- Slider für Lautstärke setzen
  		if debug then  Debug( "yellow", "Anwesend - S1 kurz gedrückt");
  	 Debug( "red", " Lautstärke gesenkt von: " .. volume .. " auf: " .. volumeneu); end
 	end
------------------------------------------------------
------------------------------------------------------  
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 33) 
    then
  		if debug then  Debug( "yellow", "S3 lange gedrückt"); end  
    end

if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 35) 
    then
  		if debug then  Debug( "yellow", "S3 losgelassen nach lange gedrückt"); end      
	  end
--------------------------------------------------------------------
-------------------------SONOS Stopp -----------------------------  
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 41) 
    then
    fibaro:call(5, "pressButton", "3"); -- Stop drücken
  	if debug then  Debug( "yellow", "Sonos Stopp"); end
	  end

if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 43) 
    then
  		if debug then  Debug( "yellow", "S4 lange gedrückt"); end
	  end    
    
if ( tonumber(fibaro:getValue(tasterID, "sceneActivation")) == 45) 
    then
  		if debug then  Debug( "yellow", "S4 losgelassen nach lange gedrückt"); end
	  end    

Na, dass man das JSON nehmen muss, puh. Vielen Dank! Es hat jetzt drei mal “Ist das nicht ein schöner Tag” gesagt, trotz gesetzter Variablen, aber immerhin.

Hallo,

ich habe auch den Sonos Commander installiert, aber das TTS und der Guten Morgen Button funktionieren nicht.
Radio Stream play/pause funktioniert, Lauter und Leiser auch.
ich bin der Anleitung nach vorgegangen und wenn ich den Button für TTS drücke, kommt im Sonos Controller die Fehlermeldung “translate… sender nicht gefunden”.
wenn ich auf “Good morning” drücke passiert gar nichts… hab meine IP und den User+PW im Script eingetragen aber nichts passiert.
danke für eure hilfe

Mit freundlichen Grüßen
bademeister

Hi,

in den letzten beiden Tagen ging bei mir der “Good morning”-Button auch nicht.
Es blieb während der Ansage still und danach startete das Radio.
Bei Sonos gab es doch ein neues Update…

VG Hoggle

Hi,
leider tut sich bei mir gar nichts. das radio startet auch nicht bei dem Good morning button.

hab mal ne grundlegende frage zu den sonos scripts… da sind teile in unterschiedlichen farben geschrieben.

das ich die IDs durch die meiner geräte ersetzen muss ist klar. die sind meistens ja in rot geschrieben. andere werte sind auch in rot geschrieben.
muss ich die auch alle ersetzen? speziell im Good morning script ist hier folgende sequenz:

-your hc2 ip 
 connection = Net.FHttp("IP",80);
 --your hc2 login data 
 connection:setBasicAuthentication("ADMIN", ""); 
 getstring = "/api/weather";

die 80 hinter der IP bedeutet was? muss ich da auch was anpassen?
an den anderen sonos scripts muss ja nichts angepasst werden, ledilgich die globalen variablen müssen angelegt sein, oder?

danke
bademeister

@petrad/all: gibt es irgendwo eine Übersicht oder Doku, welche Befehle man an das Fibaro Sonos Plugin senden kann?

Beim Sonos Commander geht weder Radio, noch Musik, noch TTS. Das andere Sonos VD tuts zwar, aber eine Alternative ist bestimmt sinnvoll :wink:

Gruß
Markus

Hi,

schau mal hier. Ist eine ganz gute Übersicht.

http://forum.fibaro.com/index.php?showtopic=12344

Sonos steuerst du über UPNP, bzw. stellt der Sonos ein UPNP-Server dar. Diesen kannst du dann mithilfe von gesendeten XML-Files steuern. Siehe Link. Dies funktioniert natürlich auch mit allen anderen UPNP-Servern. (Eventuell müssen die Pfade noch ein klein wenig angepasst werden)

Gruß

Mit dem Commander geht TTS bei mir auch nicht mehr - was aber an Google liegt.
Es hat mal super funktioniert.

Ansonsten läuft Radio aber gut.
Damit habe ich keine Probleme.
Gibt Dir die SONOS Konsole eine Fehlermeldung, warum es nicht will?

@boomx: Danke, schaue ich mir an!

@Hoggle: sagt immer, dass er den File nicht findet. Also weder eine URI zu nem Radiostream, noch mp3 im Internet, noch File auf meiner Synology (mit und ohne Login). Interessanter Weise machen die Tasten dann schnell auch nicht mehr das, was sie sollen. Also Music versucht immernoch den Radiostream zu laden, den es schon lange nicht mehr in der globalen Variable gibt usw. Vielleicht installiere ich das Ding einfach heute nochmal komplett neu und probiere es nochmal.