Aller au contenu

Fibaro Hc2 Vd Sonos Remote: Télécommande Pour Diffuseur Sonos


Krikroff

Messages recommandés

Super boulot @Krikroff  :60:

 

Il y a en effet un petit peu de latence aléatoire, due à  l'exécution des commandes dans le main loop, mais ce n'est pas bien important.

Du coup, je trouve le TTS un peu lent à  la détente (main loop + Google), comparé à  une synthèse effectuée en local (j'utilise le serveur Paw sous Android)

 

Mais encore une fois, bravo..... et MERCI  !

Lien vers le commentaire
Partager sur d’autres sites

Alors moi krikroff j'ai un truc à  te demander. Où tu trouves toutes les polices que tu utilises dans tes VD ? J'ai cherché une table de caractères ou un truc du genre mais pas trouvé !

Pour le fainéant que je suis  ;)

- je lance Word par exemple

- je vais chercher "insérer les caractères spéciaux" en police Arial

- je trouves les symboles utilisés par JC et d'autres

- et un petit "copier coller" dans le label du bouton virtuel... utilisé dans mon module virtuel Yamaha  :lol:

Lien vers le commentaire
Partager sur d’autres sites

@Benjy, tu peux effectivement trouver dans Word les caractères spéciaux et faire des copier/coller comme la judicieusement proposé i-magin ;) , tu trouveras aussi sur la toile la table des codes ASCII et leur correspondance et aussi les symboles etc...

 

http://www.table-ascii.com/

http://www.toutimages.com/codes_caracteres.htm

...

 

@I-magin, oui il y a une latence vraiment énervante due je pense à  la gestion du cache en mode radio par le SONOS, la solution est d'utiliser un serveur pour mettre en cache le retour de l'API google et ensuite faire jouer le fichier par le SONOS.

Ce qui ajoute aussi de la latence est le fait que je récupère l'état complet du SONOS avant le TTS : état, volume, titre joué, position du transport etc afin de relancer dans l'état exacte avant la demande TTS lorsque celui-ci est terminé.

 

J'utilise encore mon framework ici à  cause de certaines limites de la surcouche logiciel proposée par Fibaro à  ce jour.

 

Et voila... Après avoir passé quelques heures sur ce développement forcement je veux mettre du SONOS partout dans la maison :rolleyes:

Lien vers le commentaire
Partager sur d’autres sites

Excellent travail JC (comme d'ab) :D

Et merci encore !

Je vais le tester, ma version est basic, play/pause/mute ^^

 

Par contre, concernant le TTS, je ne me suis jamais interrogé sur la question, meme pas testé Isabelle, ha non Lili pardon :D

 

Donc le TTS, c'est quelque chose a installer en plus ? Comment fonctionne t-il ? Enfin plutot quel est le bouton qui permet de... parler ?

Bon Benjy tu t'abstiens de commentaire hein :D Y en a qui bosse et qui ne suivent pas tout  :lol:

Lien vers le commentaire
Partager sur d’autres sites

TTS : Text To Speech permet de transformer un texte écrit en "un texte parlé."

C'est de la synthèse vocale, mais pas de la reconnaissance vocale comme le fait LILI ou S.A.R.A.H.

 

Tu peux donc intégrer dans tes scènes ou modules virtuels, des messages écrits qui seront restitués dans notre cas sur des périphériques Sonos

Dans le main loop du module de @Krikroff, la variable "SonosTTS" est vérifiée. Si celle-ci n'est pas vide, son contenu est alors traité

C'est pourquoi, @Krikroff précise : 

Pour utiliser le TTS depuis une scène ou un périphérique virtuel il faut juste exécuter la ligne suivante en LUA avec les bons paramètres.

Ex : fibaro:setGlobal("SonosTTS", "lng=fr|dr=auto|vol=10|txt=Ceci est un test de TTS, veuillez attendre la reprise de la musique. . .|");

 

Rien à  installer d'autre, puisque que c'est l'API de Google Text-To-Speech qui est utilisée

Lien vers le commentaire
Partager sur d’autres sites

Merci Krikroff :60: pour ce superbe travail. Je trouve super que l'on puisse choisir la radio de 1 à  5. Est-ce qu'il serait difficile d'avoir la possibilité de choisir entre 1 à  3 liste de lecture : genre : liste 1, liste 2, liste 3 ? Peut-être que cela n'est pas faisable, auquel cas je vais arrêter de me creuser la tête à  comprendre ce que tu as codé et juste en profiter.

Lien vers le commentaire
Partager sur d’autres sites

Désolé de n'être là  que pour demander de nouvelles choses ! Mais le travail est remarquable.... J'utilise mes sonos pour diffuser des messages via PLAYTTS et maintenant via ce nouveau module. Je vais chercher ce que j'ai enregistré dans mes notifications et je diffuse en fonction du problème : ex. Attention hygrométrie supérieur à  80%, etc.... Par contre je n'ai pas réussi à  utiliser mes variables dans la ligne suivante :

fibaro:setGlobal("SonosTTS", "lng=fr|dr=auto|vol=10|txt=Ceci est un test de TTS, veuillez attendre la reprise de la musique. . .|");

j'ai essayé : 

fibaro:setGlobal("SonosTTS", "lng=fr|dr=auto|vol=10|txt=" ..getNotification(NotificationId).. ". . .|");

en recopiant bien sur la partie de code du Playtts mais meme avec une variable et un peu de texte cela ne marche pas.

 

Aurais-tu une idée JC ?

Lien vers le commentaire
Partager sur d’autres sites

@Arnaud78, j'ai fait le test suivant

tempint = fibaro:getGlobalValue("netatmo_int") -- température intérieure Netatmo
message = ("Bonjour, il fait "..tempint.." degre, a demain !")
fibaro:setGlobal("SonosTTS", "lng=fr|dr=auto|vol=25|txt="..message..". . .|");

Je préfère formater mon message avant de l'inclure dans la commande TTS

J'attire ton attention sur le fait que je n'utilise pas de caractère accentué (pour l'instant)

Si tu l'as fait, vérifie par le debug de ton module virtuel Sonos que tu n'as pas un message d'erreur

Si c'est le cas, il risque d'être bloqué... sauvegarde le pour permettre sa relance

Lien vers le commentaire
Partager sur d’autres sites

Ah, au fait ! moi aussi, j'ai une proposition à  formuler,  JC 

 

Une paramètre supplémentaire pour le TTS : adresse IP du périphérique SONOS, pour avoir le choix de la diffusion

 

Et puis, comme tu n'as pas grand chose à  faire ...  :rolleyes:

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

@Lionel, exacte c'est dans "limitations et problème connus" ;).

 

@I-magin, c'est une très bonne idée l'adresse IP pour le TTS, merci.

 

Pour l'encodage du message j'utilise une méthode rudimentaire qui n'est visiblement pas adaptée, je corrige cela dans la prochaine maj.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Krikroff, si je veux utiliser le module virtuel pour chaque sonos, je suppose que je dois créer des variables genre :

 

Type:  Variable

Nom:  SonosLastCmdBureau

 

Type:  Variable
Nom:  SonosTTSBureau

 

Type:  Variable

Nom:  SonosLastCmdSalon

 

Type:  Variable
Nom:  SonosTTSSalon

 

et ce pour chaque Sonos. Je suppose également que je dois modifier les boutons dans le module virtuel pour adapter les bonnes variables. Mais y-a t-il un endroit en particulier ou je peux changer les variables dans le main loop ou sont-elles éparpiller au travers de tout le code ? et donc dans ce cas je recopie et réédite le code pour mettre les nouvelles variables ? 

 

La vrai question, c'est est-ce que cela devrait fonctionner ou y-at-il des incompatibilités à  utiliser plusieurs modules virtuels SONOS et est-ce que cela ne va pas faire écrouler les performances du HC2 ?

 

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour, désolé, je suis encore nouveau ici. Comment puis-je créer des variables globales? J'ai aucune idée de comment absolue. Merci! 

 

"IMPORTANT: Avant d'importer l'appareil, il est essentiel de créer le nécessaire pour le bon fonctionnement des variables globales virtuelles de l'appareil. 

 

Type: Nom de la variable: SonosLastCmd 

Type: Nom de la variable: SonosTTS "

Lien vers le commentaire
Partager sur d’autres sites

VD importé, il a l'air d'afficher l'état parcontre aucune commande possible.

Je possède un play3 et play1 + hub

j'ai tenté avec l'ip du play 3 sans succes.

 

c'est normal:

DémarrerArrêterNettoyer [DEBUG] 12:27:43: -------------------------------------------------------------------------
[DEBUG] 12:27:43: -- HC2 Toolkit Framework version 1.0.5
[DEBUG] 12:27:43: -- Current interpreter version is Lua 5.1
[DEBUG] 12:27:43: -- Total memory in use by Lua: 304.78 Kbytes
[DEBUG] 12:27:43: -------------------------------------------------------------------------
[DEBUG] 12:27:43: Toolkit.Debug loaded in memory...
[DEBUG] 12:27:43: Benchmark [Toolkit.Debug lib]: elapsed time: 0.000 cpu secs
[DEBUG] 12:27:43: Toolkit.Collections.Queue loaded in memory...
[DEBUG] 12:27:43: Benchmark [Toolkit.Collections.Queue lib]: elapsed time: 0.000 cpu secs
[DEBUG] 12:27:43: Toolkit.Net loaded in memory...
[DEBUG] 12:27:43: Benchmark [Toolkit.Net lib]: elapsed time: 0.000 cpu secs
[DEBUG] 12:27:43: Toolkit.Xml loaded in memory...
[DEBUG] 12:27:43: Benchmark [Toolkit.Xml lib]: elapsed time: 0.000 cpu secs
[DEBUG] 12:27:43: HC2 start script at Wed Mar 19 12:27:43 2014
[DEBUG] 12:27:43: Get mute state request
[DEBUG] 12:27:43: mute: false
[DEBUG] 12:27:43: Get volume request
[DEBUG] 12:27:43: volume: 17
[DEBUG] 12:27:43: Get loudness request
[DEBUG] 12:27:43: Loudness is ON
[DEBUG] 12:27:43: get transport state request
[DEBUG] 12:27:43: transport state: PLAYING
[DEBUG] 12:27:43: get current track request
[DEBUG] 12:27:43: Collect Garbage at Wed Mar 19 12:27:43 2014
[DEBUG] 12:27:43: Get loudness request
[ERROR] 12:27:43: line 891: attempt to index local 'value' (a function value)

Christophe

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...