Aller au contenu

Emission Simplifiée Sur Squeezebox Tts Ou Mp3


JossAlf

Messages recommandés

[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:

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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"}

Lien vers le commentaire
Partager sur d’autres sites

Pour la synchronisation de tes squeeze ça se passe dans Logitech Media Server (LMS).

 

En bas à  droite tu verras cette icône (engrenage)   gallery_12_6_4570.png 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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites


--[[

%% 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)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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).

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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)
Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...