CharlesO Posté(e) le 20 avril 2016 Signaler Posté(e) le 20 avril 2016 [DEBUG] 11:41:06: max2playSDBpar [DEBUG] 11:41:06: max2playSDBenf [DEBUG] 11:41:06: max2playSDBinv [DEBUG] 11:41:07: Shany%20maman%20tapel [DEBUG] 11:41:17: debut de la boucle [DEBUG] 11:41:17: debut de la boucle [DEBUG] 11:41:17: debut de la boucle [DEBUG] 11:42:06: max2playSDBpar [DEBUG] 11:42:06: max2playSDBenf [DEBUG] 11:42:06: max2playSDBinv [DEBUG] 11:42:07: Shany%20maman%20tappel [DEBUG] 11:42:11: max2playSDBpar [DEBUG] 11:42:11: max2playSDBenf [DEBUG] 11:42:11: max2playSDBinv [DEBUG] 11:42:12: Shany%20maman%20tappel [DEBUG] 11:42:17: debut de la boucle [DEBUG] 11:42:17: debut de la boucle [DEBUG] 11:42:17: debut de la boucle [DEBUG] 11:42:22: debut de la boucle [DEBUG] 11:42:22: debut de la boucle [DEBUG] 11:42:22: debut de la boucle quand je clic sur debug du VD avec le petit script (appel du code) le debug est vide mais quand je le fait du grand script (le 2eme VD(le code)) j'ai ca:
JossAlf Posté(e) le 20 avril 2016 Auteur Signaler Posté(e) le 20 avril 2016 Ben Ca a l'air correcte ?! Quand tu as déclaré tes variables tu as bien respecté les majuscules et minuscules ? Est-ce que tes Squeezebox sont toutes synchronisées ? As-tu fait un essai en ne mettant dans le petit VD qu'une une seule Squeezebox (la première par exemple) ? Envoyé de mon iPhone àl'aide de Tapatalk
CharlesO Posté(e) le 21 avril 2016 Signaler Posté(e) le 21 avril 2016 Salut - Majuscules et Minuscules = OK - synchronisees = ? elle marche j'ai un VD avec on, off, volume, et les radio et ca marche il ny a que que ce VD qui ne veux pas marcher . je ne comprend pas ce que tu veux dire par synchronisees. - test avec une seul = tu peux me donner les scrip corriger pour un seul stp merci merci encore pour ton devouement et ta patience
JossAlf Posté(e) le 21 avril 2016 Auteur Signaler Posté(e) le 21 avril 2016 Voici le code pour une seule squeeze : -- Faire un copier/coller de ce code dans le bouton -- depuis lequel on souhaite diffuser un message -- Le niveau sonore est attribué à chaque squeeze individuellement -- à la suite du nom avec comme valeur de 01 à 99 (pas 100 ! on doit rester sur 2 chiffres) -- SqueezeNom -> max2playSDBpar ; max2playSDBenf ; max2playSDBinv -- Attention à ne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> Texte pour la TTS (inutile de mettre des %20) --Liste des squeezes sous la forme NomsqueezeNiveausonore {"max2playSDBpar30","max2playSDBenf80","max2playSDBinv 60"} local ListeSqueeze = {"max2playSDBpar30"} fibaro:setGlobal("SqueezeNom" , json.encode(ListeSqueeze)) -- Taper le message fibaro:setGlobal('Messager' , "Ok cette fois on entend bien le message") fibaro:call(183, "pressButton", "1"); -- fin annonce Squeezebox J'ai simplement laissé une seule squeeze dans la ligne : local ListeSqueeze = {"max2playSDBpar30"}
JossAlf Posté(e) le 21 avril 2016 Auteur Signaler Posté(e) le 21 avril 2016 Pour la synchronisation de tes squeeze ça se passe dans Logitech Media Server (LMS). En bas à droite tu verras cette icône (engrenage) en suite tu trouveras dans le menu déroulant l'option "Synchroniser". C'est là que tu demanderas que toutes tes squeeze soient synchronisées. Ca signifie que le son joué sur l'une sera répliqué et synchronisé sur toutes les autres.
CharlesO Posté(e) le 21 avril 2016 Signaler Posté(e) le 21 avril 2016 merci je regade ce soir mais pour la synchro je veux pas forcement que ca le replique sur tout les autres c'est obliger ?
JossAlf Posté(e) le 21 avril 2016 Auteur Signaler Posté(e) le 21 avril 2016 Ca répliquera QUE sur celles présentent dans la liste ligne 11 ici une squeeze : local ListeSqueeze = {"max2playSDBpar30"} ici 2 squeezes : local ListeSqueeze = {"max2playSDBpar30","max2playSDBinv25"} ici 3 squeezes : local ListeSqueeze = {"max2playSDBpar30","max2playSDBenf40","max2playSDBinv25"} la première de la liste est la squeeze maitre. Toutes les autres de la liste diffuseront en se synchronisant sur la première.
CharlesO Posté(e) le 21 avril 2016 Signaler Posté(e) le 21 avril 2016 bon ca avance car ca a marcher 1 fois GG lol j ai modifier le code pour voir mais il ne marche pas regard stp dit moi ce que tu en penses :
CharlesO Posté(e) le 21 avril 2016 Signaler Posté(e) le 21 avril 2016 --[[ %% properties %% globals --]] -- JossAlf ; 02/07/14 (V2.1) 21/06/14 (V2.0) 17/06/14 (V1.3) ; 22/05/14 (V1.1) ; 23/05/14 (V1.2) -- V2.1 : Ajout du réglage individuel duniveau sonore pour chaque squeeze en ajoutant 2 chiffre après le nom -- V2.0 : Simplification du code et possibilité d'allumer 1,2,3,4 ou 5 squeeze. -- Scène permettant simplifier la diffusion de messages sur 1 ou plusieurs squeezeboxes. -- Nécessite de créer les Variables Globales : SqueezeNom ; Messager -- (Ne pas utiliser dans une scène le json bug) -- l'appel de module virtuel se fera dans un autre module virtuel de façon simple -- en affectant les valeurs aux variables Globales -- puis en simulant le clic sur un bouton : exemple -> fibaro:call(144, "pressButton", "1"); -- the LMS server local ipadd = "10.0.0.167" -- the cli plugin port local portno = 9090 -- the MAC of the player local player = "b8:27:eb:e2:02:77 " local playername = "max2playterrace " -- the cmnd string -- change to any cli player command to create buttons local cmnd = "power 1 " -- construct the sting to send local stringtosend = player .. cmnd .. string.char(10) --open the socket tcpSocket = Net.FTcpSocket(ipadd, portno) --set the read timeout tcpSocket:setReadTimeout(2*1000) --send the command bytes, errorCode = tcpSocket:write(stringtosend) -- On envoie le message en utilisant la première radio local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) -- Attention google ne fonctionne plus il vaut mieux utiliser VoiceRSS pour le TTS -- local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; -- Voicerss TTS local cmnd = "playlist play http://www.voicerss.org/controls/speech.ashx?hl=fr-fr&src=" .. notification; local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- OFF des squeezeBoxs après 10 secondes fibaro:sleep(10*1000) -- on éteint les squeezes local cmnd = "stop " -- construct the sting to send local stringtosend = player .. cmnd .. string.char(10) --open the socket tcpSocket = Net.FTcpSocket(ipadd, portno) --set the read timeout tcpSocket:setReadTimeout(2*1000) --send the command bytes, errorCode = tcpSocket:write(stringtosend)
CharlesO Posté(e) le 21 avril 2016 Signaler Posté(e) le 21 avril 2016 l'idee est qu'il soit le plus statique possible donc simple le volume toujours a 80 et le message toujours sur la meme squeezebox si possible donc 1 seul VD et donc a voir plus besoin de variable tu voie ce que je veux dire ? merci
JossAlf Posté(e) le 21 avril 2016 Auteur Signaler Posté(e) le 21 avril 2016 Heu ... c'est quoi cet en-tête de la ligne 2 à5 ? Ne me dis pas que tu a mis le code dans une scène ? Car ce ne marchera pas le json but dans une scène. Il faut absolument passer par un VD. Reprends ton module virtuel avec le grand code dans le premier bouton, créé dans ce même VD un second bouton et mets le petit code. Le second bouton appellera le premier.
JossAlf Posté(e) le 21 avril 2016 Auteur Signaler Posté(e) le 21 avril 2016 Si tu veux le faire avec un seul bouton c'est ce code (dans un module viruel hein ! pas dans un scène !) : local player = nil -- Adresse IP du Logitech Media Server local ipadd = "10.0.0.167" -- le port du serveur local portno = 9090 -- on règle le son local cmnd = "b8:27:eb:e2:02:77 mixer volume 80 " local stringtosend = cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) local notification = "Shany maman tappel" -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20") fibaro:debug(notification) -- Voicerss TTS local cmnd = "playlist play http://www.voicerss.org/controls/speech.ashx?hl=fr-fr&src=" .. notification local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- Off de la squeeze après 15 secondes : fibaro:sleep(15*1000) local player = "b8:27:eb:e2:02:77 " local cmnd = "power 0 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) Le volume se règle ligne 9. Le texte est à taper entre guillemets ligne 21 (en phonétique pour éviter les apostrophes ou autres particularités française).
CharlesO Posté(e) le 22 avril 2016 Signaler Posté(e) le 22 avril 2016 Salut je pence que sur un bouton c est top pour moi ca ne marche pas mais la j ai un message rouge dans le debug regard stp :
CharlesO Posté(e) le 22 avril 2016 Signaler Posté(e) le 22 avril 2016 [DEBUG] 08:10:33: Shany%20maman%20tappel [ERROR] 08:10:33: line 21: attempt to concatenate local 'player' (a nil value)
JossAlf Posté(e) le 22 avril 2016 Auteur Signaler Posté(e) le 22 avril 2016 Oups pardon, remplace la première ligne : local player = nil Par local player = "b8:27:eb:e2:02:77 " Et 7 lignes plus bas, remplace : local cmnd = "b8:27:eb:e2:02:77 mixer volume 80 " Par local cmnd = player .. "mixer volume 80 " Désolé je suis sur tablette et je n'ai pas le temps de tester... Mais ca devrait être bon.
CharlesO Posté(e) le 22 avril 2016 Signaler Posté(e) le 22 avril 2016 désoler mais ca ne marche pas c'est fou ! pas de problem dans le debug du mois je crois mais pas de son qui sort
JossAlf Posté(e) le 22 avril 2016 Auteur Signaler Posté(e) le 22 avril 2016 Attends je regarde sur ordi. Je reviens dans 1/4 d'heure. Envoyé de mon iPhone àl'aide de Tapatalk
JossAlf Posté(e) le 22 avril 2016 Auteur Signaler Posté(e) le 22 avril 2016 Je ne peux pas tester car je ne suis pas chez moi mais essaye ça : Ca devrait allumer la squeeze "max2playterrace" et diffuser le son "Shany maman t'appelle" à80% du volume. local player = "b8:27:eb:e2:02:77 " -- Adresse IP du Logitech Media Server local ipadd = "10.0.0.167" -- le port du serveur local portno = 9090 -- on allume la squeeze local cmnd = "power 1 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- on règle le son local cmnd = "mixer volume 80 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- Création du message : local notification = "Shany maman tappel" -- Remplacmeent des espaces par des %20 local notification = string.gsub((notification)," ", "%%20") -- Utilisation de Voicerss TTS local cmnd = "playlist play http://www.voicerss.org/controls/speech.ashx?hl=fr-fr&src=" .. notification local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- Off de la squeeze après 15 secondes : fibaro:sleep(15*1000) local cmnd = "power 0 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend)
JossAlf Posté(e) le 22 avril 2016 Auteur Signaler Posté(e) le 22 avril 2016 Ben mince alors !? Tu as bien fait un copier coller ? Il y a quelque choses dans le debug ? La squeeze s'allume et s'éteint, ou rien ne se passe ? Tu est certain du numéro "b8:27:eb:e2:02:77 " de ta squeeze ? Tu peux mettre ton ton module virtuel ? Pour ça tu cliques sur "Exporter un dispositif virtuel" sur le premier onglet de ton module. Ensuite tu le mets dans ta réponse.
CharlesO Posté(e) le 22 avril 2016 Signaler Posté(e) le 22 avril 2016 pour le debug il est vide ma squeezebox est un raspberry donc oui toutour allumer j'ai mis la radio quand je clic sur le VD ca coup la radio c'est tout
JossAlf Posté(e) le 22 avril 2016 Auteur Signaler Posté(e) le 22 avril 2016 Tiens, voici un module virtuel rien que pour toi (SqueezeCharleso.vfib) avec tous les réglages qui devraient fonctionner. Importe-le et change seulement le numéro d'id du VD dans le second bouton à la ligne 15, il faut changer le 123 (dans fibaro:call(123, "pressButton", "2") ) avec le numéro du VD qui vient d'être créé (certainement 84 chez toi). SqueezeCharlesO.vfib
JossAlf Posté(e) le 22 avril 2016 Auteur Signaler Posté(e) le 22 avril 2016 Ha attention : il faut mettre 1 et non 2 dans fibaro:call(123, "pressButton", "2") -> fibaro:call(123, "pressButton", "1")
Messages recommandés