Aller au contenu

Fibaro Hc2 Vd Sonos Remote: Télécommande Pour Diffuseur Sonos


Krikroff

Messages recommandés

Il est intéressant d'observer le comportement du sonos avec le VD en surveillant avec le soft sonos pour PC par exemple, et effectivement je constate aléatoirement cela, le VD passe bien l'information au sonos mais celui-ci semble parfois mettre un temps étrangement long àagir, pourquoi ? Je n'ai pas encore la réponse malheureusement :(

Envoyé de mon smartphone

Lien vers le commentaire
Partager sur d’autres sites

Pour faire jouer les mps de mon syno, sa semble ne pas fonctionné?

-- stream: the file / uri
 stream = "//192.168.0.110/Music/fibaro/inondationatelier.mp3",
-- source: "local" or "http", "local" is setted by default
source = "local",

Vous savez pourquoi?

 

Merci,

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Installé et approuvé, merci pour ce ssuper boulot.

 

J'ai constaté un truc avec les groupes.

Dans mon install, j'ai 4 sonos groupées.

SI je lance un TTS sur une des sonos du groupe, c'est parfait, elle sort du groupe, annonce le message et retourne sagement dans le groupe et reprend la lecture.

Par contre, si je clic sur une des 5 mémoires, la sélection est bien jouée, mais pas pour le groupe, uniquement pour le lecteur sur lequel j'ai cliqué.

Est-il possible de faire que lors d'un clic sur une preselection pour un lecteur dans un groupe, cela s'applique au groupe ?

 

++

Lien vers le commentaire
Partager sur d’autres sites

 Merci @Krikroff,

Ca refonctionne, c'est top mais j'ai dans une pièce deux Play5 couplés pour faire une paire stéréo, il me faut deux VD car adresse IP différente malgré la pièce commune.

@PITP2,

Merci pour la lecture de la température d'une sonde, mais pour lire la valeur d'une variable?

Dans mon cas, la couleur tempo du lendemain: Bleu, blanc ou rouge.

Que dois-je ajouter?

Lien vers le commentaire
Partager sur d’autres sites

@did, tu peux essayer cela (pas testé)

 

 

 

--[[
%% properties
%% globals
--]]

local sid, bid = 813, 28
-- Create TTS params object
local notification = fibaro:getGlobalValue("le nom de ta variable")
fibaro:debug(notification)
local params = {
  -- TTS Message
  
  message = notification,  
  duration = 'auto', -- Duration: "auto", xx seconds
  language = "fr-FR", -- Language: fr-FR
  volume = 23 -- Volume
}
local _f = fibaro
local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
-- Make a request to the remote to process params object instantly
_x:set(tostring(sid), { tts = params })
_f:call(sid, "pressButton", bid)
Lien vers le commentaire
Partager sur d’autres sites

@Did,

 

j'ai deux Diff. Play1 couplés pour faire une paire stéréo et j'utilise l'adresse IP du SONOS Maître (celui qui est le coordinateur) dans un seul VD. Le coordinateur contrôle tous les périphériques de son groupe.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir Krikroff,

 

tout d'abord un TRES grand merci pour cette mise à  jour.

 

juste une petire question. Comment tu fais pour connaitre le coordinateur.

J'ai 2 sonos appairés, et quand je vais dans l'appli PC, et que je fais Aide/A propos de, j'ai bien toutes les adresses IP dans la fenêtre, mais rien qui me dit qui est maître (ou alors je suis passé à  côté, ce qui est fort possible :lol: )

Lien vers le commentaire
Partager sur d’autres sites

Dans mon cas, la couleur tempo du lendemain: Bleu, blanc ou rouge.

Que dois-je ajouter?

Un drapeau ?  ;)

La réponse de @PITP2 est la bonne

 

Une info : après avoir changé la liste de ses radios préférées sous SONOS, il faut effectuer un enregistrement du VD Sonos Remote... j'ai mis quelques minutes à  comprendre pourquoi j'avais mes anciennes présélections, après les avoir changées  :P .... on ne se moque pas !

 

Pour @Krikroff : Au sujet du STOP lors de l'utilisation des présélections radio, j'ai remarqué que le problème arrivait sur certaines radios et pas d'autres

Je vais dire une bêtise, mais ne serait-ce pas lorsque le flux est plus long à  obtenir ?

Lien vers le commentaire
Partager sur d’autres sites

@I-magin,

 

C'est cela ;) le flux est plus long a obtenir.

Exemple dans mes radios j'ai RFM et une radio américaine "The Rock", cette dernière démarre rapidement tout le temps alors que RFM c'est aléatoire. 

 

Pour le changement de radio, il faut soit effectuer un enregistrement du DV Sonos Remote ou bien attendre 30 minutes la mise à  jour des modifications ;)

Lien vers le commentaire
Partager sur d’autres sites

@Fred le ouf,

 

Il y a le moyen suivant, en utilisant l'url suivante: http://192.168.xx.xx:1400/status/topology qui retourne ceci

 

sonos-coord.PNG

Mais aussi la liste des SONOS dans le MainLoop lorsque le debug est activé...

post-3-0-53610000-1449940670_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

@Did, pour me faire pardonner

--[[
%% properties
%% globals
--]]


local sid, bid = 813, 28
-- Create TTS params object
local couleur = fibaro:getGlobalValue("le nom de ta variable")
local notification = ("La couleur de demain sera "..couleur.." Bonne journée")
fibaro:debug(notification)
local params = {
  -- TTS Message
  
  message = notification,  
  duration = 'auto', -- Duration: "auto", xx seconds
  language = "fr-FR", -- Language: fr-FR
  volume = 23 -- Volume
}
local _f = fibaro
local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
-- Make a request to the remote to process params object instantly
_x:set(tostring(sid), { tts = params })
_f:call(sid, "pressButton", bid)

On pourrait concaténer les deux variables locales "couleur" et "notification", mais c'est plus lisible

Lien vers le commentaire
Partager sur d’autres sites

Quel cadeau de noel !!! avec le player et le TTS. Tu as fait renaître aussi ma Welcome (très WAF si on complimente bien dans les phrases.  :)

Comme Cardane, sur une play list en cours, elle reprend la chanson en cours mais ne continue pas. Si sur le player Sonos je click sur le morceau suivant c'est bon!

Chapeau bas...

J'aime ma HC2.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

bonsoir,j'en profite pour tester les nouvelles fonctionnalités et je voulais rajouter un son  de chant du coq en stream.Séparément dans deux scenes différentes pas de souci mais des que je l'intègre dans ma scene, sonos n'a pas le temps de lire le son, qu'il bascule deja sur le TTS.peu être avez vous une idée. Mais c'est juste pour le fun. Est-il possible de créer un groupe via les VD avant la diffusion du stream ou TTS. Dans tout les cas ce VD me satisfait largement.

--[[
%% properties
%% globals
matnuit
--]]

local startSource = fibaro:getSourceTrigger();
local currentDate = os.date("*t");
local cond = fibaro:getValue(3, "WeatherConditionConverted");
local tempext = fibaro:getValue(90, "value"); -- température exterieur Netatmo
local degre = string.gsub(tempext, '[,]' , ' degré ')
local degre = string.gsub(degre, '[.]' , ' degré ')
local degre = string.gsub(degre, '[-]' , ' moins ')
local jour ="";
local calendrier = fibaro:getGlobal('calendrier');
local matnuit = fibaro:getGlobal('matnuit');
if( os.date("*t").wday == 2 ) then jour = "Lundi"; end
if( os.date("*t").wday == 3 ) then jour = "Mardi"; end
if( os.date("*t").wday == 4 ) then jour = "Mercredi"; end
if( os.date("*t").wday == 5 ) then jour = "Jeudi"; end
if( os.date("*t").wday == 6 ) then jour = "Vendredi"; end
if( os.date("*t").wday == 7 ) then jour = "Samedi"; end
if( os.date("*t").wday == 1 ) then jour = "Dimanche"; end
local mois ="";
if( os.date("*t").month == 1 ) then mois = "janvier"; end
if( os.date("*t").month == 2 ) then mois = "fevrier"; end
if( os.date("*t").month == 3 ) then mois = "mars"; end
if( os.date("*t").month == 4 ) then mois = "avril"; end
if( os.date("*t").month == 5 ) then mois = "mai"; end
if( os.date("*t").month == 6 ) then mois = "juin"; end
if( os.date("*t").month == 7 ) then mois = "juillet"; end
if( os.date("*t").month == 8 ) then mois = "aout"; end
if( os.date("*t").month == 9 ) then mois = "septembre"; end
if( os.date("*t").month == 10) then mois = "octobre"; end
if( os.date("*t").month == 11) then mois = "novembre"; end
if( os.date("*t").month == 12) then mois = "décembre"; end

local condfr ="";
if( cond == "clear" ) then condfr = "clair"; end
if( cond == "cloudy" ) then condfr = "nuageux"; end
if( cond == "rain" ) then condfr = "pluvieux"; end
if( cond == "snow" ) then condfr = "neigeux"; end
if( cond == "storm" ) then condfr = "tempete"; end
if( cond == "fog" ) then condfr = "brouillard"; end
if (
 ( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "07:03")  and  calendrier == "travail" and matnuit == "matin" )
    or
startSource["type"] == "other"
  )
then
	--fibaro:debug(jour)
	--fibaro:debug(condfr)
	--fibaro:debug(mois)
  	--fibaro:debug(tempest)
--insertion Stream scene chant du coq avant TTS
--figaro:startScene(123)
-- 171 is the Virtual Device ID
-- 28 is the Process button ID
local sid, bid = 171, 28
-- Create TTS params object
local params = {
  -- TTS Message
  message = "bonjour les bob. Nous sommes le "..jour .." "..currentDate.day .." "..mois ..". Le thermomètre extérieur est a "..degre .." et le temps est  "..condfr ..". ",  
  duration = 'auto',	-- Duration: "auto", xx seconds
  language = "fr-FR",	-- Language: fr-FR
  volume = 40			-- Volume
}
local _f = fibaro
local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
-- Make a request to the remote to process params object instantly
_x:set(tostring(sid), { tts = params })
_f:call(sid, "pressButton", bid)
end
Lien vers le commentaire
Partager sur d’autres sites

Bon krikroff tu as réussi à  me faire passer chez Sonos ! J'ai rendu la Bose Soundtouch 10 pour la remplacer par une Play 1 et je ne suis pas déçu avec ce nouveau Vd !

 

Bravo encore une fois tu assures un max ! Merci encore pour tout le boulot que tu partages sur le fofo ! ;)

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...