Did Posté(e) le 13 février 2016 Signaler Posté(e) le 13 février 2016 Ce ne sont pas mes codes, ils sont déjàdans les pages précédentes, Message 547 page 28 Message 592 page 30 Message 655 page 33 Et aussi en page 1 1
Kristiano Posté(e) le 9 mars 2016 Signaler Posté(e) le 9 mars 2016 Is there a new version avalible? I feel that upon using big playlists its eating up all my memory of the HC2.
Yohan Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 Ce ne sont pas mes codes, ils sont déjà dans les pages précédentes, Message 547 page 28 Message 592 page 30 Message 655 page 33 Et aussi en page 1 Did ça te dérangerait de nous refaire une synthèse avec ton code que tu utilises ? Je modifierais le post 1 en complétant avec ton code pour exemple. Merci
chrispec Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 @Did, je plussois la demande de Yohan
Did Posté(e) le 11 mars 2016 Signaler Posté(e) le 11 mars 2016 Non, pas de problème, voici les trois codes à adapter à vos Id. Code de PITP2 pour annoncer la température dans la scène. Il faut juste changer l'id en fonction de votre module remontant la température. --[[ %% properties %% globals --]] -- 408 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 811, 28 -- Create TTS params object local ValeurTemp = fibaro:getValue(61, "value") local degre = string.gsub(ValeurTemp, '[,]' , ' degret ') local degre = string.gsub(degre, '[.]' , ' degret ') local degre = string.gsub(degre, '[-]' , ' moins ') local notification = "Il fait " .. degre .. " dans le salon " 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) Code de @i-magin pour annoncer la valeur d'une variable. --[[ %% 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) Code de @13013, (optimisé par @jojo) pour annoncer la date du jour, la température extérieure (j'ai changé l'Id correspondant à ma sonde) et la météo (je n'ai pas changé le 3, qui apparemment correspond à la météo). -- 239 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = 239, 28 local cond = fibaro:getValue(3, "WeatherConditionConverted"); local tempext = fibaro:getValue(33, "value"); -- température extérieure fibaro:debug ("Température extérieure : "..tempext) local degre = string.gsub(tempext, '[,]' , ' degré ') local degre = string.gsub(degre, '[.]' , ' degré ') local degre = string.gsub(degre, '[-]' , ' moins ') local currentDate = os.date("*t") local jourL = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"} local jour = jourL[currentDate.wday] fibaro:debug ("Jour : "..jour) local moisL = {"janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre"} local mois = moisL[currentDate.month] fibaro:debug ("Mois : "..mois) 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 fibaro:debug ("Conditions météorologiques : "..condfr) fibaro:debug ("Création du TTS") -- Create TTS params object local params = { -- TTS Message message = "Bonjour a vous. Nous sommes le "..jour .." "..currentDate.day .." "..mois .. ". Il est ".. currentDate.hour .." heure et ".. currentDate.min .." minutes. ".. "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) 2
chrispec Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Une petite question pour la partie TTS... J'ai installé le VD: ok. Mais où renseigne t-on la variable voiceRssApiKey ? Installation : A partir de la version 1.0.0 beta: 3. Pour utiliser la fonction TTS VoiceRSS il faut une API Key, pour l'enregistrement (gratuit) c'est ici http://www.voicerss.org/registration.aspx4. Renseigner la variable voiceRssApiKey avec la clé, choisir un niveau de qualité sonore pour la generation avec voiceRssSoundQuality: low, medium, high UserParams = { -- Voice RSS API Key (Free Registration: http://www.voicerss.org/registration.aspx) voiceRssApiKey = "000000000000000000000000000", -- Sound quality: low, medium, high voiceRssSoundQuality = "medium" } Merci de vos retours
jojo Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 dans le bouton Process du VD principal
chrispec Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Et ce bouton Process ... il est où ?
Peter Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Bonjour Il ce trouve en bas du module virtuel Apres tu vas sur l'onglet avancer et tu descend tout en bas au bouton process et tu met ton api key Mais avant il faut t'enregistré sur le site de voicerss Voilà
i-magin Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 @chrispec Dans le premier post, @Krikroff donne le code lua à utiliser pour le TTS Et si tu regardes le post de @Did la page précédente, tu as des exemples d'utilisation du TTS
chrispec Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Je comprends j'avais un autre VD sans ce bouton ... merci àtous
BOB18 Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Bonjour Did, A quoi correspond tes ID? local sid, bid = 811, 16 dans ta scène de température intérieur, car quand je lance le debug, j'ai bien la température qui apparait mais le TTS n'est pas joué par ma Sonos
Peter Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Hello relis bien le tuto de la page 1 Local sid = 811 ce chiffre est le n° du virtuel device sonos que tu trouve dans la barre d'adresse du navigateur Et le bid= 16 c'est le bouton du virtuel device
BOB18 Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 merci Petermoto, C ok pour le local SID mais quel bouton de quel virtuel Device???
BOB18 Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 oui c'est bien ce que j'avais mis mais rien ne sort de ma Play1... Je vais manger un morceau et continuer àchercher! Merci àtous
Did Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Où tu as vu un Id16, le bouton Process du VD, c'est 28 (à moins que tu ais supprimé des boutons), il n'y a que l'Id du module virtuel à renseigner.
BOB18 Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 ça fonctionne !!!! mon ID SONOS avait changé merci àtous!!!!
BOB18 Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 si je l'ai remis mais je ne comprend pas pourquoi 28 car il est identifié en 16..!?
jojo Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 l'id d'un bouton n'est pas le n° affiché, mais tu dois compter tous les boutons. Vois une explication dans la section "Pour les Nuls"
Did Posté(e) le 12 mars 2016 Signaler Posté(e) le 12 mars 2016 Exactement, et si tu comptes bien, tu dois arriver à 28 (il faut compter aussi les labels). Il faut chercher dans home center pour nous, les nuls. http://www.domotique-fibaro.fr/index.php/topic/4504-module-virtuel-num%C3%A9rotation-des-boutons/
Yohan Posté(e) le 13 mars 2016 Signaler Posté(e) le 13 mars 2016 Post 1 mis à jour (sans bug ) merci pour vos contributions
chrispec Posté(e) le 14 mars 2016 Signaler Posté(e) le 14 mars 2016 pour plusieurs notifications dans une même scène, comment vous y prendriez vous ? Testé sans succès ... --[[ %% properties 138 value 143 value %% events %% globals --]] local sid, bid = 417, 28 local LightMarie = 143; local LightMael = 138; local EtatLightMarie = fibaro:getValue(LightMarie, "value"); local EtatLightMael = fibaro:getValue(LightMael, "value"); -- Create TTS params object local notification if (EtatLightMarie == "1") then notification = "Lumière Marie allumée"; elseif (EtatLightMarie == "0") then notification = "Lumière Marie éteinte"; elseif (EtatLightMael == "1") then notification = "Lumière Maà«l allumée"; elseif (EtatLightMael == "0") then notification = "Lumière Maà«l éteinte"; end fibaro:debug(notification) local params = { -- TTS Message message = notification, duration = 'auto', -- Duration: "auto", xx seconds language = "fr-FR", -- Language: fr-FR volume = 15 -- 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) Merci de vos avis et conseils
Messages recommandés