-
Compteur de contenus
1 078 -
Inscription
-
Dernière visite
-
Jours gagnés
14
Tout ce qui a été posté par JossAlf
-
Au passage, je te conseille de te servir du code du sujet suivant qui est une amélioration de celui proposé ici et qui est plus souple au niveau des appels depuis d'autre modules virtuels : http://www.domotique-fibaro.fr/index.php/topic/1185-emission-tts-simplifiée-sur-squeezebox/
-
Tu n'aurais pas placer le code dans une scène ? Heu je cherche... Tu as bien adapté ton code dans les ligne du début ? -- Adresse IP du Logitech Media Server local ipadd = "192.168.0.46" -- le port du serveur local portno = 9090 -- L'adresse MAC de la squeeze local player = "00:xx:xx:xx:xx:00 " local playername = "SqueezeBox "
-
Oui j'ai vu ton message dans " Squeezebox: Récupérer Son État Dans Un Main Loop".Je sais plus où c'est exactement mais tu trouveras tout dans l'API de la squeeze. De mémoire il y a une doc accessible depuis le serveur LMS.
-
J'ai résolu le problème du main look comme ça en mettant tout dans le module virtuel. J'ai créé un bouton mà j que je n'utiliserai jamais manuellement mais qui est appelé toutes les 30 secondes par la main look du module virtuel lui-même : Main loop du module virtuel 114 (la squeeze de mon salon) : fibaro:call(114, "pressButton", "13"); fibaro:sleep(60*1000) et ton code légèrement modifié que j'ai collé dans le bouton mà j (ID 13) : -- the LMS serverlocal ipadd = fibaro:get(fibaro:getSelfId(), "IPAddress") local ipadd = "192.168.0.46" -- the cli plugin port local portno = 9090 -- the MAC of the player local player = "00:04:xx:xx:xx " local playername = "Squeezebox Radio " local SliderVolumeID = 3 local poweronIcon = 1037 local poweroffIcon = 1032 -- Main object if (not Check) then Check = {} -- System variables Check.debug = false -- Main code Check.get = function(cmnd) -- construct the sting to send local stringtosend = player .. cmnd .. string.char(10) --open the socket local tcpSocket = Net.FTcpSocket(ipadd, portno) --set the read timeout tcpSocket:setReadTimeout(2*1000) --send the command local bytes, errorCode = tcpSocket:write(stringtosend) -- Transforme "result" en chaine de caractere return tcpSocket:read() or string.char() end Check.main = function(self) local data = Check.get("mixer volume ? ") -- Recupere le volume... local cmd = data:match("mixer volume %d+") local cmd_value = cmd:match("%d+") or "NaN" if (Check.debug) then fibaro:debug("Volume: " .. cmd_value) end -- On ajuste le slider au volume if (cmd_value ~= "NaN") then if (fibaro:getValue(fibaro:getSelfId(), "ui.SliderVolume.value") ~= cmd_value) then fibaro:call(fibaro:getSelfId(), "setSlider", SliderVolumeID, cmd_value) end end local data = Check.get("power ? ") -- On ou Off local cmd = data:match("power %d") local cmd_value = cmd:match("%d") or "NaN" if (Check.debug) then fibaro:debug("Power: " .. cmd_value) end if (cmd_value ~= "NaN") then local currentIcon = fibaro:getValue(fibaro:getSelfId(), "currentIcon") if (cmd_value == "1") then -- Power On if tonumber(currentIcon) ~= poweronIcon then if (Check.debug) then fibaro:debug(playername .. "is power on") end fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", poweronIcon) end else -- Power Off if tonumber(currentIcon) ~= poweroffIcon then if (Check.debug) then fibaro:debug(playername .. "is power off") end fibaro:call(fibaro:getSelfId(), "setProperty", "currentIcon", poweroffIcon) end end end end end -- Start Check.debug = false Check:main(); Et plus de problème de main loop qui plante !
-
Oui je sais je me le réservais pour les vacances... Je te vois venir En fait qu'est ce que tu veux faire ? Finalement tu as tout ce qu'il te faut pour lancer une playlist ? Envoyé de mon iPhone àl'aide de Tapatalk
-
Bon si je m'abonne je te promets de regarder ça. Mais au final ta solution est relativement propre. Elle me conviendrait largement. Ce serait problématique si tu créais des playlists tous les jours. Envoyé de mon iPhone àl'aide de Tapatalk
-
@razowski : tu peux m'en dire plus sur le plugin que tu utilise ? C'est l'officel de logitech ou un autre (comme celui-làhttp://forums.slimdevices.com/showthread.php?79706-Announce-Spotify-Premium-Plugin-(Beta) ) ?
-
Je n'utilise pas spotify sur la squeeze ( la version gratuite sur Mac/iPhone/iPad me suffit). Si la liste spotify est accessible par une commande http c'est possible. Il faut seulement trouver l'adresse. Ps : vais regarder de plus prêt la version payante de spotify
-
Oups merci c'est corrigé. C'est bien le bouton "Eté" qu'il faut considérer... Pas mal le coup du "inspecter le lien".
-
Ha ! Ben là je les comptes visuellement ... J'ai pas trouvé d'autre solution... Attention : les labels compte comme un bouton ! Dans la copie d'écran qui suit, le bouton "Vacances" "Eté" est le numéro 8 alors que c'est le 6 ème vrai bouton ?! Il faut considérer sa place label compris. Attention aussi dans l'avenir, car si tu effaces, ajoutes ou déplaces un bouton ou un label, ça changera son ID (puisque c'est sa place son ID) ! [
-
Tu te mets sur le module virtuel et tu regardes dans l'adresse (c'est le dernier chiffre).
-
Et si tu veux jouer un MP3 enregistré sur ton NAS ou un disque réseau (c'est à la ligne 53 de cette copie du code que ça change) : -- JossAlf ; 21/06/14 (V2.0) 17/06/14 (V1.3) ; 22/05/14 (V1.1) ; 23/05/14 (V1.2) -- 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 : NivSonore ; SqueezeNom ; Messager -- l'appel de cette scene dans un module virtuel ou une autre scène se fera de façon simple -- en affectant les valeurs aux variables Globales -- puis en lancant cette scène. local ListeSqueeze = fibaro:getGlobal("SqueezeNom"); local TableauSqueezeNom = json.decode(ListeSqueeze); local player = nil -- Adresse IP du Logitech Media Server local ipadd = "192.168.0.46" -- le port du serveur local portno = 9090 local Squeezers = { ['Cuisine'] = "00:04:XX:XX:XX ", ['Salon'] = "00:04:XX::xx:xx ", ['ChambreB'] = "00:04:xx:xx:xx ", ['ChambreH'] = "00:04:xx:xx:xx ", ['Garage'] = "00:04:xx:xx:xx ", ['Toutes'] = "00:04:xx:xx:xx ", --permet d'utiliser la squeeze de la cuisine en maitre } --On allume toutes les squeezes for i = 1, #TableauSqueezeNom do local player = Squeezers[TableauSqueezeNom[i]] 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 VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) end -- on laisse une seconde pour laisser le temps à toutes les squeeze de s'allumer fibaro:sleep(1000) -- On envoie le message local player = Squeezers[TableauSqueezeNom[1]] fibaro:debug(player) local notification = fibaro:getGlobalValue('Messager') fibaro:debug(notification) local cmnd = "playlist play /volume1/music/Itunes/%20Sons/" .. notification; fibaro:debug(cmnd) 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 toutes les squeezes for i = 1, #TableauSqueezeNom do fibaro:debug("debut de la boucle") local player = Squeezers[TableauSqueezeNom[i]] fibaro:debug(player) 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) end Avec le petit code d'appel : -- Faire un copier/coller de ce code dans le bouton ou la scène -- depuis lequel on souhaite diffuser un message -- NivSonore -> de 1 à 100 -- SqueezeNom -> Cuisine ; Salon ; ChambreB ; ChambreH ; Garage -- Attention à ne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> nom des fichiers MP3 ou m4a sur la NAS dans /volume1/music/Itunes/%20Sons/ -- Atable.m4a , Atable5Min , annonceiphone1.pm3 --Annonce sur la Squeezebox ... fibaro:setGlobal('NivSonore' , 70) -- Taper le message "Atable.m4a" ou "Atable5Min.m4a" ou "annonceiphone1.pm3" local ListeSqueeze = {"Cuisine"} fibaro:setGlobal("SqueezeNom" , json.encode(ListeSqueeze)) -- Taper le message "Atable.m4a" ou "Atable5Min" ou "annonceiphone1.pm3" fibaro:setGlobal('Messager' , "leo.m4a") fibaro:call(123, "pressButton", "3"); -- fin annonce Squeezebox
-
Au cas où -> On est d'accord c'est json et pas "jason"
-
Tu as créé un module virtuel ? Car avec une scène il y a un bug sur la HC2 et le Json apparemment. Tu places donc ce qui suit dans un module virtuel (pas dans une scène) : -- Faire un copier/coller de ce code dans le bouton d'un module virtuel (attention bug si utilisé depuis une scène) -- depuis lequel on souhaite diffuser un message -- NivSonore -> de 1 à 100 -- SqueezeNom -> Cuisine ; Salon ; ChambreB ; ChambreH ; Garage -- Attention à ne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> Texte pour la TTS (inutile de mettre des %20) --Annonce sur la Squeezebox ... fibaro:setGlobal('NivSonore' , 60) --Liste des squeezes sous la forme {"Cuisine","Garage","Salon"} local ListeSqueeze = {"Cuisine","Garage","Salon","ChambreH","ChambreB"} fibaro:setGlobal("SqueezeNom" , json.encode(ListeSqueeze)) -- Taper le message fibaro:setGlobal('Messager' , "Ouverture du portail") fibaro:call(123, "pressButton", "1"); -- fin annonce Squeezebox
-
Alors attention le fichier n'était pas bon. Fais un copier/coller du code présent à l'écran en message 1. Pour la variables globales (Tu les laisse à 0 quand tu le crées) c'est par exemple celle à la ligne 9 (les autres est trop basses pour les prendre dans la copie d'écran) : [/url]
-
Cool
- 329 réponses
-
Vas faire un tour dans la panneau variables et regarde les valeurs des variables utilisées par le plugin. Il se peut qu'elles aient été modifiées. Ça arrive quand On change la valeur d'une variable globale depuis le panneau variable et que l'on clique sur la disquette. Envoyé de mon iPhone àl'aide de Tapatalk
- 329 réponses
-
Tiens c'est bizarre le Json renvoie une erreur quand j'utilise le petit bout de code qui fabrique le Json depuis une scène. J'ai contourné le problème en passant par un MV appelé depuis cette scène. Mais c'est étonnant comme réaction. Peut être un bug ? Envoyé de mon iPhone àl'aide de Tapatalk
-
Mise à jour du code. Voir message 1.
-
Ca y est 128 lignes de gagnées une une souplesse accrue ! Merci Shad pour ta boucle for ! Merci Steven pour l'astuce pour transformer une variable en tableau par le json ! Voilà ce que ça donne : -- JossAlf ; 21/06/14 (V2.0) 17/06/14 (V1.3) ; 22/05/14 (V1.1) ; 23/05/14 (V1.2) -- 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 : NivSonore ; SqueezeNom ; Messager -- l'appel de cette scene dans un module virtuel ou une autre scène se fera de façon simple -- en affectant les valeurs aux variables Globales -- puis en lancant cette scène. local ListeSqueeze = fibaro:getGlobal("SqueezeNom"); local TableauSqueezeNom = json.decode(ListeSqueeze); local player = nil -- Adresse IP du Logitech Media Server local ipadd = "192.168.0.46" -- le port du serveur local portno = 9090 local Squeezers = { ['Cuisine'] = "00:04:20:2b:81:00 ", ['Salon'] = "00:04:20:29:bb:3e ", ['ChambreB'] = "00:04:20:2c:0b:fe ", ['ChambreH'] = "00:04:20:2e:57:ba ", ['Garage'] = "00:04:20:2c:35:bc ", ['Toutes'] = "00:04:20:2b:81:00 ", --permet d'utiliser la squeeze de la cuisine en maitre } --On allume toutes les squeezes for i = 1, #TableauSqueezeNom do local player = Squeezers[TableauSqueezeNom[i]] 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 VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) end -- on laisse une seconde pour laisser le temps à toutes les squeeze de s'allumer fibaro:sleep(1000) -- On envoie le message en utilisant la première radio local player = Squeezers[TableauSqueezeNom[1]] local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. 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 toutes les squeezes for i = 1, #TableauSqueezeNom do fibaro:debug("debut de la boucle") local player = Squeezers[TableauSqueezeNom[i]] fibaro:debug(player) 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) end Et le petit code à glisser partout où on souhaite utiliser l'émission sur les squeeze : -- Faire un copier/coller de ce code dans le bouton ou la scène -- depuis lequel on souhaite diffuser un message -- NivSonore -> de 1 à 100 -- SqueezeNom -> Cuisine ; Salon ; ChambreB ; ChambreH ; Garage -- Attention à ne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> Texte pour la TTS (inutile de mettre des %20) --Annonce sur la Squeezebox ... fibaro:setGlobal('NivSonore' , 50) --Liste des squeezes sous la forme {"Salon","ChambreH", "Cuisine"} local ListeSqueeze = {"Salon","ChambreH", "Cuisine"} fibaro:setGlobal("SqueezeNom" , json.encode(ListeSqueeze)) fibaro:setGlobal('Messager' , "Ceci est un message") fibaro:call(134, "pressButton", "1"); -- fin annonce Squeezebox
-
J'ai une erreur [ERROR] 20:51:49: line 34: attempt to concatenate local 'player' (a nil value) correspond à la ligne local player = Squeezers[SqueezeNom[i]] J'aurai été tenté par ça mais ça ne fonctionne pas non plus. for i = 1, #Squeezers do local player = Squeezers[i] Cela dit j'ai l'impression que ce n'est pas ce que je cherche à faire. Là tu me propose de simplifier l'allumage de toutes les radios. Mais je ne peux pas choisir d'allumer seulement 3 ou 2 radio avec mon petit code d'appel? Si ?
-
Shad tu peux m'en dire plus parce que là je ne comprends pas comment m'en sortir...
-
Mais comment je fais pour passer mes arguments ? Si je veux allumer 3 radios je fais comment ?
-
Bonjour, J'aurais besoin des lumières des pontes en programmation Lua. (Steven ou Krikroff si vous vous ennuyez en ce moment) Pour résumer, j'ai 5 squeezebox. Avec le code actuel je peux choisir de diffuser sur une des squeezes (en la nommant) ou sur toutes. Mais pas sur 2 ou 3 ou 4. Pour cela il faudrait améliorer le code pour gérer des arguments mais je ne sais pas encore faire ça. Faut-il utiliser une fonction, une boucle ? Je souhaiterais conserver le principe actuel qui consiste à utiliser un petit code que je "glisse" dans mes scènes ou modules virtuels et qui simule l'appui sur le bouton 1 dont vous trouverez le code à al fin de ce post. Voici le petit code que je "glisse" : -- Faire un copier/coller de ce code dans le bouton ou la scène -- depuis lequel on souhaite diffuser un message -- NivSonore -> de 1 à 100 -- SqueezeNom -> Toutes ; Cuisine ; Salon ; ChambreB ; ChambreH ; Garage -- Attention à ne pas se tromper sur l'orthographe des Squeezes !!! -- Messager -> Texte pour la TTS (inutile de mettre des %20) --Annonce sur la Squeezebox ... fibaro:setGlobal('NivSonore' , 50) fibaro:setGlobal('SqueezeNom' , "Garage") fibaro:setGlobal('Messager' , "Ceci est un message") fibaro:call(123, "pressButton", "1"); -- -- fin annonce Squeezebox Dans l'idéal je souhaiterais pouvoir utiliser des paramètres multiples du style : fibaro:setGlobal('SqueezeNom' , "Garage, cuisine, ChambreH") Voici le code du bouton 1 du module virtuel qu'il faudrait améliorer : -- JossAlf 17/06/14 (V1.3) ; JossAlf 23/05/14 (V1.2) ; JossAlf 22/05/14 (V1.1) -- V1.3 : Ajout du garage et modif de ChambreH. -- Scène permettant simplifier la diffusion de messages sur 1 ou plusieurs squeezeboxes. -- Nécessite de créer les Variables Globales : NivSonore ; SqueezeNom ; Messager -- l'appel de cette scene dans un module virtuel ou une autre scène se fera de façon simple -- en affectant les valeurs aux variables Globales -- puis en lancant cette scène. local SqueezeNom = fibaro:getGlobalValue("SqueezeNom") local player = nil -- Adresse IP du Logitech Media Server local ipadd = "192.168.0.46" -- le port du serveur local portno = 9090 local Squeezers = { ['Cuisine'] = "00:04:20:2b:81:00 ", ['Salon'] = "00:04:20:29:bb:3e ", ['ChambreB'] = "00:04:20:2c:0b:fe ", ['ChambreH'] = "00:04:20:2e:57:ba ", ['Garage'] = "00:04:20:2c:35:bc ", ['Toutes'] = "00:04:20:2b:81:00 ", --permet d'utiliser la squeeze de la cuisine en maitre } local player = Squeezers[SqueezeNom] fibaro:debug(player .. SqueezeNom) --choix des squeezes qui vont être utilisées pour l'émission -- 1er cas toutes if SqueezeNom == 'Toutes' then fibaro:debug("On allume toutes les squeezes") -- on allume toutes les squeezes les unes après les autres (qui sont synchronisées) -- Garage local player = Squeezers["Garage"] 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) -- réglage du niveau sonore local VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- Salon local player = Squeezers["Salon"] 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) -- réglage du niveau sonore local VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- ChambreB local player = Squeezers["ChambreB"] 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) -- réglage du niveau sonore local VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- ChambreH local player = Squeezers["ChambreH"] 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) -- réglage du niveau sonore local VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- cuisine local player = Squeezers["Cuisine"] 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) -- réglage du niveau sonore local VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- on laisse une seconde pour laisser le temps à toutes les squeeze de s'allumer fibaro:sleep(1000) fibaro:debug("Toutes allumées et volume réglé à " .. VolumeSon) else -- 2ème cas 1 seule squeeze sera utilisée -- On n'allume qu'1 seule squeeze local SqueezeNom = fibaro:getGlobalValue("SqueezeNom") local player = Squeezers[SqueezeNom] -- Allumage de la squeezebox 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) -- réglage du niveau sonore local VolumeSon = fibaro:getGlobalValue('NivSonore') local cmnd = "mixer volume " .. VolumeSon .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) fibaro:sleep(1*1000) fibaro:debug(SqueezeNom .. " allumée et volume réglé à " .. VolumeSon) end -- On envoie le message local player = Squeezers[SqueezeNom] local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) fibaro:debug(SqueezeNom .. cmnd) -- OFF des squeezeBoxs après 10 secondes fibaro:sleep(10*1000) -- on éteint toutes les squeezes les unes après les autres if SqueezeNom == 'Toutes' then -- Garage local player = Squeezers["Garage"] 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) -- Salon local player = Squeezers["Salon"] 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) -- ChambreB local player = Squeezers["ChambreB"] 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) -- ChambreH local player = Squeezers["ChambreH"] 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) -- cuisine (placée ici pour quelle reste maître -dernier MAC donné- pour la diffusion) local player = Squeezers["Cuisine"] 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) fibaro:debug("Toutes éteintes") else local player = Squeezers[SqueezeNom] 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) fibaro:debug(SqueezeNom .. " éteinte") end A votre bon code M'sieur Dames ...
-
Peux-tu placer un debug avant et après ta ligne pour afficher les contenus du "notification" (et les copier coller ici) ?