sebcbien Posté(e) le 27 septembre 2016 Signaler Posté(e) le 27 septembre 2016 Voici un VD qui permet d'appeler facilement les fonctions TTS des 3 actuellement disponibles: KAROTZ SONOS (via le VD de @krikroff ) S.A.R.A.H. Avantages: - sans passer par une Variable Globale - Et avec historisation des 10 derniers messages Voir exemple d'utilisation plus bas pour GEA. Exemples pour S.A.R.A.H. et SONOS: Exemple Gea: local TTS_Sarah = {"VirtualDevice", id2["S_A_R_A_H__SAY_IT"], 1} local TTS_Sonos = {"VirtualDevice", id2["SONOS_SAY_IT"], 1} ensuite: {"Label", id2["SONOS_SAY_IT"], "Message", "Bonjour, enclenchement du chauffage du ré de chaussée"},TTS_Sonos, ou {"Label", id2["S_A_R_A_H_SAY_IT"], "Message", "Bonjour, enclenchement du chauffage du ré de chaussée"},TTS_Sarah, Voici la partie config du bouton et le VD générique est attaché ci-dessous. -- Say It Copyright Sébastien Jauquet 2016 -- V 1.0.0 28/09/2016 ------------------------------------------- -- HOW TO USE THIS VD: -- Rename the name of the label (Say It XXXXXX !), NOT the ID !!! -- Rename the name of the VD (XXXXX Say It !) -- Fill Ip Address and port in the VD settings -- Port: usualy 8080 for SARAH and 80 for KAROTZ -- Un-comment one of the three line below depending of the device you want to control local TTS_Device = "sarah" --local TTS_Device = "karotz" --local TTS_Device = "sonos" local id2 = { SONOS_REMOTE = 2124 } -- enter Krikroff sonos VD id ------- NO USER MOD BELOW ------------------------------- local selfId = fibaro:getSelfId() local SARAH_KAROTZ_Ip = fibaro:get(selfId, "IPAddress") local port = fibaro:get(selfId, "TCPPort") function urlencode(s) if (s) then .... blablabla icônes: XXXXXX_Say_It_!.vfib 5
Joacbe Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Hello, Oui complètement !
Plap3014 Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Oui! Envoyé de mon SM-G900W8 en utilisant Tapatalk
sebcbien Posté(e) le 28 septembre 2016 Auteur Signaler Posté(e) le 28 septembre 2016 Et vous voulez un pour Karotz aussi j'imagine?!? Sent from my Note4
Massalia Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Oh oui, un pour le karotz !! .... 2
Rocketlud Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Excellent merci À si juste une petite correction pour la prochaine version, Ré de chaussée ça n'existe pas , par contre Rez de chaussée oui
pepite Posté(e) le 28 septembre 2016 Signaler Posté(e) le 28 septembre 2016 Yeah, le come back de @Sebcbien ;-) Tu peux partager le code du bouton stp ? Comme d'hab pour ma culture, pour ma progression LUA ;-) En fait tu lis le LABEL ;-) la speciale sans VG :-) MERCI MERCI 1
sebcbien Posté(e) le 28 septembre 2016 Auteur Signaler Posté(e) le 28 septembre 2016 Voilà , je vous ai créé un VD générique à personnaliser pour les 3 TTS configurés. Voir le mode d'emploi dans le bouton. À personaliser donc: 2 rename 1 upload d'icône 1 ip et un port à configurer (uniquement pour Karotz ou SARAH) Fait à l'arrache, pas trop testé mais ça a l'air de fonctionner. Enjoy
sebcbien Posté(e) le 28 septembre 2016 Auteur Signaler Posté(e) le 28 septembre 2016 Excellent merci À si juste une petite correction pour la prochaine version, Ré de chaussée ça n'existe pas , par contre Rez de chaussée oui Je te rassure, mon orthographe n'est pas si mauvaise Si j'écris rez il me le prononce mal, donc je triche un peu Sent from my Note4 1
jompa68 Posté(e) le 29 septembre 2016 Signaler Posté(e) le 29 septembre 2016 EN like this? local TTS_Sonos = {"VirtualDevice", VD["SONOS_SAY_IT"], 1} GEA.add(true, 60, "",{{"Time", "06:47", "06:48"},{"Label", VD["SONOS_SAY_IT"], "Message", "Godmorgon Jonny"},TTS_Sonos}})
sebcbien Posté(e) le 29 septembre 2016 Auteur Signaler Posté(e) le 29 septembre 2016 yes, should work. Here is one of mine: GEA.add({"Sensor+", id2["TV___AMPLI"], 150}, 180*60, "TV Allumée depuis #duration# (#value# Watt)",{ {"Portable", id["PHONE_SEB"]}, {"Label", id2["SONOS_SAY_IT"], "Message", "Télévision allumée depuis 3 heures. La consomation est de #value# Watt"},TTS_Sonos }) 2
pepite Posté(e) le 29 septembre 2016 Signaler Posté(e) le 29 septembre 2016 Salut, Dans ta ligne GEA pour le Label, il ne récuperer pas "#duration#" ? je vais jeter un oeil au bouton hihii
sebcbien Posté(e) le 29 septembre 2016 Auteur Signaler Posté(e) le 29 septembre 2016 Si mais je l'ai enlevé, c mieux les messages courts et la personne dans la pièce sais normalement que la TV est allumée depuis longtemps et aussi la duration n'est pas prononçable. Sent from my Note4 1
cybersquat Posté(e) le 30 septembre 2016 Signaler Posté(e) le 30 septembre 2016 super merci je vais testé ca trop cool
Gazous Posté(e) le 2 octobre 2016 Signaler Posté(e) le 2 octobre 2016 Merci, je vais tester ça aussi !
jompa68 Posté(e) le 15 janvier 2017 Signaler Posté(e) le 15 janvier 2017 EN Hi @sebcbien i have added my Musaic player VD to your great Say It VD. Here are the code i use -- Say It Copyright Sébastien Jauquet 2016 -- V 1.0.0 28/09/2016 ------------------------------------------- -- HOW TO USE THIS VD: -- Rename the name of the label (Say It XXXXXX !), NOT the ID !!! -- Rename the name of the VD (XXXXXX Say It !) -- Add an ICON to this button -- Fill Ip Address and port in the VD settings -- Port: usualy 8080 for SARAH and 80 for KAROTZ -- Un-comment one of the three line below depending of the device you want to control local TTS_Device = "musaic" --local TTS_Device = "karotz" --local TTS_Device = "sonos" --local TTS_Device = "musaic" local id2 = { SONOS_REMOTE = 298 } -- enter Krikroff sonos VD id ------- NO USER MOD BELOW ------------------------------- local selfId = fibaro:getSelfId() local SARAH_KAROTZ_Ip = fibaro:get(selfId, 'IPAddress') local port = fibaro:get(fibaro:getSelfId(), "TCPPort") function urlencode(s) if (s) then s = string.gsub (s, "\n", "\r\n") s = string.gsub (s, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end) s = string.gsub (s, " ", "+") end return s end local msg = fibaro:getValue(selfId, "ui.Message.value") local msg2 = fibaro:getValue(selfId, "ui.Message2.value") local msg3 = fibaro:getValue(selfId, "ui.Message3.value") local msg4 = fibaro:getValue(selfId, "ui.Message4.value") local msg5 = fibaro:getValue(selfId, "ui.Message5.value") local msg6 = fibaro:getValue(selfId, "ui.Message6.value") local msg7 = fibaro:getValue(selfId, "ui.Message7.value") local msg8 = fibaro:getValue(selfId, "ui.Message8.value") local msg9 = fibaro:getValue(selfId, "ui.Message9.value") fibaro:debug(os.date("%d/%m ")..msg) if (TTS_Device == "sonos") and (msg ~= "") then -- 2124 is the Virtual Device ID -- 28 is the Process button ID local sid, bid = id2["SONOS_REMOTE"], 28 -- Create TTS params object local params = { -- TTS Message message = msg, duration = 'auto', -- Duration: "auto", xx seconds language = "sv-SE", -- Language: fr-FR volume = 45 -- 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 if (TTS_Device == "karotz") and (msg ~= "") then local voice = "alice" Karotz = Net.FHttp(SARAH_KAROTZ_Ip, port) response = Karotz:GET("/cgi-bin/tts?engine=3&text="..msg:gsub(" ", "+").."&nocache=0") if (string.find(response, "played\":\"0")) then fibaro:log("OK") else fibaro:debug("ERROR") end end if (TTS_Device == "sarah") and (msg ~= "") then msg = urlencode(msg) Sarah = Net.FHttp(SARAH_KAROTZ_Ip, port) payloademon = "http://"..SARAH_KAROTZ_Ip.."/sarah/sonos?sonos_tts="..msg response, status, errorCode = Sarah:GET(payloademon) end if (TTS_Device == "musaic") and (msg ~= "") then -- Virtual device ID and button ID local vdID, btnID = 393, 21 -- Create TTS params object local message = msg -- Send TTS parameters to variable fibaro:setGlobal("musaicTTS", message) fibaro:call(vdID, "pressButton", btnID) end fibaro:call(selfId, "setProperty", "ui.Message10.value", msg9) fibaro:call(selfId, "setProperty", "ui.Message9.value", msg8) fibaro:call(selfId, "setProperty", "ui.Message8.value", msg7) fibaro:call(selfId, "setProperty", "ui.Message7.value", msg6) fibaro:call(selfId, "setProperty", "ui.Message6.value", msg5) fibaro:call(selfId, "setProperty", "ui.Message5.value", msg4) fibaro:call(selfId, "setProperty", "ui.Message4.value", msg3) fibaro:call(selfId, "setProperty", "ui.Message3.value", msg2) fibaro:call(selfId, "setProperty", "ui.Message2.value", os.date("%d/%m %H:%M:%S")..": "..msg) 1
MAM78 Posté(e) le 23 février 2017 Signaler Posté(e) le 23 février 2017 Y aurait pas le même pour Audio Station sur NAS Synology ?
jojo Posté(e) le 23 février 2017 Signaler Posté(e) le 23 février 2017 Recherche sur le forum, je crois me souvenir avoir vu passer un sujet pour lier la HC2 à Air-play
sebcbien Posté(e) le 2 septembre 2017 Auteur Signaler Posté(e) le 2 septembre 2017 Je viens de faire fonctionner deux TTS SARAH différents sur deux SONOS différents :-) Pratique pour les annonces vocales localisées !
sebcbien Posté(e) le 2 septembre 2017 Auteur Signaler Posté(e) le 2 septembre 2017 Mes notes: 1 dupliquer le dossier SARAH / SARAH2 2 adapter les scripts de démarage, la deuxième session n'a besoin que du serveur pour fonctionner apparement je mets 10 secondes entre les deux lancements (au reboot) 3 modifier le custom.prop de C:\SARAH2\server\app\data\ - modifier le port (j'ai mis 8081, le premier SARAH étant sur 8080) - modifier le port remote (8889 au lieu de 8888) exemple: { "debug": false, "bot": { "name": "S.A.R.A.H. 2 SDB", "tagline": "Self Actuated Residential Automated Habitat", "answers": "Oui|Je m'en occupe|Voilà|C'est fait", "version": "4.0" }, "http": { "root": "", "port": 8081, "ip": "XXX.XXX.XXX.XXX ", "remote": "http://XXX.XXX.XXX.XXX :8889", "upload": "E:\\Dropbox\\Public\\[FIXME]\\", "timeout": 4000, "proxy": "", "phantom": "" }, 4 dans C:\SARAH2\client\ modifier custom.ini: exemple: [bot] ; Client identifier id=SARAH2 5 lancer le serveur avec le script de lancement standard 6 aller dans la configuration: http://XXX.XXX.XXX.XXX:8081/portal/config et vérifier que les valeurs sont bonnes 7 modifier le plugin sonos (entrepôt/roulette de config/documentation/configuration) et choisir le sonos voulu pour cette deuxième instance 8 dans Type d'export, utiliser la valeur "une seule enceinte" 9 valider et redémarrer SARAH 10 dupliquer mon VD et le faire pointer vers la même IP mais avec le port 8081 Maintenant en fonction de la présence, de l'heure, des mouvements, je peux faire mes annonce ou il faut j'ai également rajouté la radio dans la SDB au réveil en fonction des heures et présences, ainsi que l'auto off (mais avec mon Jeedom) https://www.domotique-fibaro.fr/topic/8330-mon-test-jeedom/?do=findComment&comment=168821 1
pepite Posté(e) le 2 septembre 2017 Signaler Posté(e) le 2 septembre 2017 Soiree de sebcbien et de quelques scenes et astuces:-)Envoyé de mon Nexus 5X en utilisant Tapatalk 1
Messages recommandés