Aller au contenu

Sarah, Home Assistant


MasterBT

Messages recommandés

logo4.jpg

Sarah est un Framework qui écoute en permanence et selon les plugin et fonctions installées peut réaliser des actions comme mettre de la musique, fermer les volets, faire une recherche sur internet développé par J.P. Encausse. 
 
 
Liens utiles:
 
Blog du développeur
http://blog.encausse.net/s-a-r-a-h/
 
Documentation
http://jpencausse.github.io/SARAH-Documentation/
 
Wiki (eng)
https://github.com/JpEncausse/SARAH-Documentation/wiki
 
Plugin Store:
http://marketplace.sarah.encausse.net/store
 
Communauté G+:
https://plus.google.com/u/0/communities/105964514508504667709
 
FAQ:
http://encausse.wordpress.com/s-a-r-a-h/s-a-r-a-h-foire-aux-questions/
 
Download:
 
Version Stable:
3.1.6
http://v3.sarah.encausse.net/
 
Version en cours de Dev
4.0.9
http://v4.sarah.encausse.net/
 
 
Informations:
 
Pré-requis:

  • Un ordinateur sous windows, car c'est le moteur de reconnaissance vocal de Windows qui est utilisé dans 99% des cas et le reste Google pour identifier des termes précis.
  • Un micro, les gens utilisent souvent un Kinect car c'est un micro de type Array à  un coup très abordable. 
  • De l'imagination pour personnaliser Sarah et du temps

Que peut apporter Sarah en plus de votre Box Domotique actuel?

  • Un retour vocal de vos actions via un simple TTS ou en installant le plugin "parle". (Cf. plus bas *Construction*)
  • Votre box domotique peut envoyer très facilement des requêtes à  Sarah. Ainsi elle peut servir de passerelle ou exécuter des actions impossible pour une HC. Exemple, lancer une radio Deezer, dire bonjour à  des invités, ou afficher une page sur un écran
  • Appuyer sur un bouton pour allumer la TV ou lancer une scène mode film c'est bien, mais le faire simplement en prononçant une phrase c'est la classe!

Les points qui faut connaitre avant de se lancer dans l'aventure:

  • Avoir un pc sous Windows est inévitable! On peut déporter le node.js mais pas la reco vocal
  • Le multiroom n'est pas encore à  la porté de tout le monde même si il existe des solutions pas forcément coà»teuse si on prend le temps (Cf. plus bas *Construction*)
  • Du temps et de la passion car si on veux autre chose qui lui faire dire l'heure, ou prononcer des phrases toutes faites il faut y mettre la main. Les nombreux plugins sont une bonne base et peuvent tout à  fait vous satisfaire. Mais si on veux vraiment un truc personnalisé et qui colle à  votre vision de la domotique, il faut prendre le temps. Mais bon les membres du fofo sont la par passion donc je ne penses pas que ca soit un problème
  • La communauté G+ est vraiment top est on trouve très souvent une solution à  nos problèmes et des nouvelles perspectives apparaissent tout les jours.
  • Si on met un Kinect dans le salon, il faut le positionner de façon intelligente pour éviter les faux positif avec la TV par exemple. Il faut prendre le temps de bien régler la confidence, c'est à  dire la ressemblance entre ce qu'elle entend et les phrases qu'elle doit identifier Si on le règle trop bas Sarah peut se déclencher à  tout va,si trop haut il faudra très bien articuler et parfois se répéter. 
  • Le Kinect à  parfois du mal avec les voix de femme et sa madame risque de ne pas toujours apprécier, je vous conseil de ne pas faire l’apprentissage Windows au passage.
  • Prendre le temps de faire vos essaies dans votre Bureau sinon le WAF vu chuter très vite!!
  • Prenez le temps de bien consulter les liens au début du post, beaucoup de réponse s'y trouve comme par exemple son installation: Exemple SDK du kinect, Speech, .Net ...

Vidéo de démo:


 
Sarah et HC2 par Vincent fresnel:

 
 
Matériel:

 

************** En cours de construction ****************
 
ToDo:

 

  • PluginCréator
  • Installation
  • Exemple: Lancer une radio ou playlist depuis votre HC2 ou HCL
  • MultiRoom
  • Principe de fonctionnement 
  • Conseil sur des plugins
  • Faire parler Sarah via la HC
  • Upvote 9
Lien vers le commentaire
Partager sur d’autres sites

Icons pour Sarah:

post-1730-0-87716400-1420614636_thumb.png

post-1730-0-24161000-1420614637_thumb.png

Je compléterais ici au fur et à  mesure, n'hésitez pas à  poster les vôtres.

 

 

Créer un Virtual Device pour faire parler Sarah:

 

HCL

Pré-requis: installer le plugin "Parle" sur Sarah

Conseil:

  • on pourrait se passer du plugin et attaquer directement Sarah en TTS, mais c'est plus "propre" de le faire de cette manière.
  • Je conseil de créer un module virtuel avec autant de bouton que de phrase pré-enregistré et on appel le bouton voulu à  la fin d'une scène par exemple
  • Mettre des + à  la place des "Espace" dans la phrase à  prononcée

Note: Avec du LUA on peut bien sur faire quelque chose de mieux en utilisant une variable pour la diction, mais étant avec une HCL je ne peut vous communiquer ma solution.

 

 

IP: <Pc_Sarah>

Port: 8080

 

Code:

GET /sarah/parle?phrase=Bonjour+Master HTTP/1.10x0D0x0A0x0D0x0A

Download:

Annonce_vocale.vfib

 

​HC2:

 

Pour la HC2 on va créer une variable global: parle

 

Ensuite on créé un VD avec un bouton et le code suivant:

local message = fibaro:getGlobalValue("parle")
HC2 = Net.FHttp("192.168.1.XXX",8080);
response = HC2:GET("/sarah/parle?phrase="..message);  
fibaro:setGlobal("parle", "" );--raz variable 
fibaro:sleep(1000);

Puis dans les scène ou VD, on l'appel à  la demande de cette façon:

fibaro:setGlobal("parle", "ton+message+ici")
fibaro:sleep(100)
fibaro:call(126, "pressButton", "1")

Note: Remplacer "126" par l'ID du 1er VD

 

 

 

 

 

 

Lancer une playlist Deezer ou une radio depuis la HCx:

 

*** comming soon *****

 

 

 

 

Plugin: Passerelle (1.5)

 

Fonction:

 

Se servir de Sarah pour relayer une requête url sans authentification (comme par exemple avec un ecodevice) à  une box domotique

 

Installation:

Dézipper le fichier dans le dossier plugin, puis le configurer en passant soit pas l'interface web de sarah ou en éditant le .prop

 

Download:

passerelle.zip

 

Appeler le plugin:

<IP_Sarah>:8080/sarah/passerelle?requete=alert1

ou

<IP_Sarah>:8080/sarah/passerelle?requete=alert2

 

 

Plugin Creator

par Julien Delnatte

 

Edit: Mise à  jour, suite à  des modif de la part de Google,

Suivre les instructions qui sont ici:

https://github.com/Tibus/SARAH-Plugin-PluginCreator

 

Fonction

Créer de nouvelles requêtes pour Sarah sans taper une ligne de code. On utilise une table sous google docs, et chaque ligne sera une nouvelle "phrase" que Sarah pourra reconnaitre.

 

Lien G+

 https://plus.google.com/100170060322292297131/posts/gNKmwTJLbNw

 

Download:

 http://goo.gl/KLx9JJ

 

Configuration:

Les explications complétés se trouvent dans le Readme du plugin mais voila une explication rapide:

En 1er il vous faut un compte Google, pour pouvoir éditer le fichier.

 

Faites une copie de cette table:

https://docs.google.com/spreadsheet/ccc?key=0AmgsAcIbiLOtdGhjX1cxWkxEaEtXMVctNjBJY043ZkE&usp=drive_web#gid=0

C'est un fichier type fournit par l'auteur du plugin afin de montrer des exemples.

Une fois copié vous pouvez supprimer tout le contenu en dessous de la ligne 5.

Vous pourrez toujours revenir sur le fichier original pour comprendre la syntaxe ou avoir des exemples. Assez utile quand on débute.

Ensuite il va falloir "publier"  le fichier en text brut pour Sarah y est accès.

 

Ficher > Publier sur le Web

Dessous Insérer un lien vers les données publiées,

​sélectionnez TXT (text brut) à  la place de Page Web

 

Puis copiez le lien et cliquez sur Démarrer la publication.

 

Ensuite dans l'interface Web de Sarah, ouvrez la configuration de plugin creator et collez le lien.

 

Et enfin pour mettre à  jour le plugin avec la table Google Docs il suffit de dire:

SARAH mets à  jour le créateur de plugin

 

Vérifier que cela fonctionne

Afin d'être sur qu'il n'y est pas de problème on va ajouter notre 1ére ligne.

Ouvrez le fichier ligne 6

Dans Group ajoutez la ligne suivante:

Le plugin est il bien configuré

 

et dans la colonne action:

url : parle Oui tu as bien travaillé

 

Note: il faut au préalable que le plugin "parle" soit installé (cf. au dessus, faire parler Sarah)

 

Ensuite, publiez de nouveau le fichier, (nécessaire à  chaque changement),

puis mettre à  jour Sarah avec la phrase magique.

Et enfin Demandez:

"Sarah, le plugin est il bien configuré?"

 

 

La syntaxe pour écrire de nouvelles requêtes:

Je vous invites à  bien regardé le fichier que nous avons copié au départ pour comprendre et avoir des exemples d'écriture de syntaxe ainsi que le Readme ou sur G+

Pour faire simple, dans group on peut mettre soit la requête complète, ou simplement le début si par exemple on veux créer plusieurs instructions pour baisser les volets selon les pièces.

 

Exemple:

Group: Baisse les volets

SubGroup (ligne en dessous): de la cuisine

SubGroup (encore une ligne en dessous): de la chambre

 

et en face de chaque sous groupe à  pourra mettre à  requête url qui correspond.

 

 

Dans la colonne action:

On y inscrit l'action à  réaliser comme par exemple faire parler Sarah, envoyer une requête url ou appeler un autre plugin.

 

Exemple:

On reprend nos volets roulant sur un ipx800.

Dans la colonne action on va mettre:

url : http://192.168.0.155/preset.htm?RLY1=1

 

Et enfin dans la colonne Callback, la phrase qui sera prononcée par Sarah une fois l'action exécutée.

 

post-1730-0-62691500-1421587110_thumb.jpg

 

Quelque explications:

Il faut toujours avoir quelque chose dans la colonne action, donc quand on veux simplement faire parler Sarah, on utilise le plugin par et non le callback. Cette obligation n'est pas valable dans le cas où il y a ensuite des SubGroup. Dans notre exemple de volet on avait ligne 1: Baisse les volets dans group, puis les différentes pièces pour les lignes suivantes. Il faudra donc une action en face des pièces mais pas forcément pour la ligne 1.

Vous aviez compris avec l'exemple que pour envoyer une requête url il fallait mettre dans action:

url : <request>

Pour piloter une HCx, on pourra y mettre par exemple:

url : http://<login>:<pass>@<IP>/api/callAction?deviceID=39&name=turnOn

En vrac

  • Une fois que vous aurez compris la mécanique vous pourrez utiliser des Variables qui seront renseignée dans les 1ére ligne du fichier afin d'éviter d'écrire tout le temps les url.
  • Il y à  également un colonne variable qui sera utile par exemple pour faire des requêtes avec un % de fermeture des volets ou de puissance d'éclairage.
  • Plugin Creator peut également appeler d'autre plugin avec la fonction: "plugin : "
  • On peut également appeler des exécutables ou du cURL.
  • Il faut bien respecter les espaces dans la colonne action.
  • La fonction Askme à  encore quelque problème.

Vous l'aurez compris c'est un plugin vraiment puissant et qui permet à  lui tout seul de rendre d'énorme service sans taper une seul ligne de code, ce qui est rare avec Sarah.

 

 

Plugin: Web

 

Fonction:

Le but de ce plugin est de faire ouvrir des pages web sur l'écran de Sarah ou de faire jouer des mp3

 

Installation:

Dézipper le fichier dans le dossier plugin, puis le configurer en passant soit pas l'interface web de sarah ou en éditant le .prop

Dans web.js il faut penser à  remplacer le chemin d'accès de S.a.r.a.h.

 

Download:

web.rar

 

Appeler le plugin:

 

VD type string: 

GET /sarah/web?val=frequence3 HTTP/1.10x0D0x0A0x0D0x0

LUA:

HC2 = Net.FHttp("192.168.1.XXX",8080);
response = HC2:GET("/sarah/web?val=frequence3");  

Dans le plugin j'ai laissé quelque une de mes fonctions pour donner des idées.

Ce plugin lance tout bêtement des .bat à  ajuster à  votre convenance.

 

 

Jouer des MP3:

Il faut ajouter les mp3 voulue dans le dossier médias de sarah et ensuite prendre pour exemple dans le web.js la dernière requête "universal"

 

Plugin Sarah to HomeCenter  par e1000 (Emile Gentil)

 

Nouveau plugin pour SARAH (v4) qui supporte la nouvelle API de Fibaro.

Devrait fonctionner avec toutes les box, mais je n'ai pas de HCL pour tester.

 

Pour l'instant, seules les fonctions suivantes sont supportées :

  • commande et interrogation des dimmers et switches
  • commande des modules virtuels (boutons et sliders)
  • interrogation des sondes
  • interrogation de la météo

 

update en ligne : https://github.com/e...gin-Home-Center

 
 - ajout support de la Logitech Harmony :
Le support est basique : pas de test de l'état d'une activité avant de la lancer donc si elle est lancée, ça 
l'éteint... À corriger plus tard.
La consultation de l'état est également fonctionnelle.
 
 - modifs de la structure de la grammaire pour faciliter la reconnaissance :
Motif optionnel entre le nom de l'action et celui du module (le, la, les, du, des, de la ...) 
 
- ajout support modules virtuels pour volets roulants Somfy RTS :
Pas très utile sauf si vous avez exactement le même module virtuel (que vous trouverez sur ce forum, cela dit  ;) ).

 

 

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

Update:

Sarah en V4 + HC2 V4

 

Par Synthetic

Le fait d'être passé à  la V4 les appellations des modules ont changées.

Il faut donc les modifier les lignes "case 'com.fibaro...." dans le fichier homecenter2.js du plugin Homecenter2 (lignes à  231 à  280)

 

Par exemple : remplacer case 'com.fibaro.dimmableLight' par case 'com.fibaro.binarySwitch'

On trouve ces nouvelles appellations grâce à  l'excellent HC2 Toolkit (onglet "Devices" colonne "Base type")

Je l'ai adapté pour mes modules mais pour le rendre compatible avec tous les autres il me faudrait leurs "appellations"...  

Je me lance :    ;)

 

Marque : FIBARO

FGD-211 :

"Base type" : com.fibaro.binarySwitch

FGMS-001 :

"Base type" capteur mouvement : com.fibaro.motionSensor

"Base type" capteur température / luminosité / séismomètre : com.fibaro.multilevelSensor

FGRM-222 :

"Base type" : com.fibaro.FGR221

 

Marque : QUBINO

ZMNHJA2 :

"Base type" : com.fibaro.binarySwitch

 

Marque : EVERSPRING

AN157-6 :

"Base type" : com.fibaro.actorEn modifiant le type des modules dans le fichier *.js, le plugin HC2 est fonctionnel avec la V4 de Fibar

 

o

Lien vers le commentaire
Partager sur d’autres sites

*Update*

 

J'ai fait un petit plugin tout simple pour les gens qui veulent utiliser Sarah comme passerelle de requête url qui ne peuvent pas avoir d'authentification à  la base comme par exemple avec une EcoDevice.

Dans la V2, on balancera directement la requête voulu en appelant le plugin au lieu de la mettre dans la configuration du plugin afin d'étendre les possibilités. Je n'arrives pas à  le faire actuellement car le signe '&' coupe la chaîne de caractère dans le variable.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir

J ai également le projet sarah en cours....

J ai prit une tablette avec Win 8,1 dessus et installer la v4, ma première idée Lorsque je rentre chez moi avec un détecteur de porte, Sarah puisse me parler, lui demander d allumer tel ou tel lumière, mettre canal sat en marche etc.

Je voulais faire du multiroom avec, deux micro Bluetooth de qualité et deux sonos play 1 , l'un a l étage avec un micro et l'autre au salon

 

Mais je suis perdu niveau prog j avoue

Lien vers le commentaire
Partager sur d’autres sites

1ére réponse à  chaud en rentrant,

Je repasse demain matin.

 

Pour commencer utiliser la 3.16. Plus stable, et tout les plugins tournent.

Tablette = petite config, il faut voir si cela ce va pas dégrader la reco de Sarah.

Micro bluetooth souvent critiqué pour le manque de qualité et de porté, mais à  test quand même si tu en as un sous le coude.

 

Pour le coté: déclencher des actions quand tu arrives, ca sera le sujet de demain, madame chauffe le lit ! :P

 

Ps: une nouvelle documentation à  jour est en français a vue le jour ici:

http://jpencausse.github.io/SARAH-Documentation/

 

C'est une mine d'information, je conseil à  tout le monde de la lire une fois au moins.

Lien vers le commentaire
Partager sur d’autres sites

Salut MasterBT,

 

En faite l'idée des micro bluetooth est parce-que effectivement Sarah étant sur une tablette windows que au long terme sera fixé a l'entrée de la maison, sera compliqué de brancher plusieurs micro dessus.

 

L'idée après est que chacun puisse lui parler et être reconnu mais aux différents endroits de la maison, avec un bon son sur les SONOS PLAY1

 

Je regarde ton lien ce soir, boulot oblige :)

Lien vers le commentaire
Partager sur d’autres sites

Yep je comprends tout à  fait l'idée.

J'avoue ne pas avoir lu beaucoup de retour positif sur l'utilisation de micro bluetooth.

Plusieurs chose à  prendre en compte,

Dans mon 1er post, je te conseils de te faire la main et de tester Sarah en 3.16 car c'est la version stable actuelle et tout les plugins tournent bien,

Avec cette version on peut lancer un seul client par contre et si tu lui balance le retour de plusieurs elle va trop de "voix" à  écouter et ne plus marcher correctement,

Pour faire du multi room, il faudra la V4 car tu pourra lancer plusieurs client en spécifiant les sources à  écouter et elle pourra savoir de quelle piéce vient l'ordre.

Aprés je ne connais pas la puissance de ta tablette, car tu multiplie la demande de puissance par client, même si la reco en vocal only reste faible. 

Lien vers le commentaire
Partager sur d’autres sites

re,

 

faut voir oui !!! car effectivement le micro reste un soucis majeur pour une installation propre.

 

Tu vois hier j'ai mis le plugin HC2, et la je me suis posé la question, quand tu dis a SARAH, allume la lumière, lol il allume laquel

 

enfin je dois vraiment m'y pencher

 

la tablette de marque BOULANGER, payer 200€ , la référence est 

 

Tablette multimédia Windows ESSENTIELBPC'TAB 1203
Lien vers le commentaire
Partager sur d’autres sites

Yop,

En fait je n'utilise aucun des 2 plugin pour la HC2, J'essaie de limiter les phrases que doit reconnaitre Sarah pour ne garder que celles qui servent vraiment pour limiter les erreurs et les faux positifs.

Pour la connexion à  l'interface web en fait je fais différemment:

J'ai fait un plugin pour ouvrir différentes pages web comme par exemple, la station météo, Fréquence 3 etc.. et avant simuler une touche du clavier pour sortir l'écran de veille. Pour l'interface de la HC, j'utilise un script qui entre automatiquement le log, mdp et valide.

Pour ce qui est de commander les modules de la HCx avec Sarah, idém j'ai garder que les éléments que je veux vraiment commander avec Sarah et viré tout le reste pour ne garder que l'essentiel. Mais tu a raison, les 2 plugins sont la pour ça et marchent bien.

 

Je ne suis pas sur de vraiment comprend ta question, tu voudrais commander au final plusieurs modules avec une seul commande?

Le mieux je penses c'est de faire des scène qui correspondes à  tes besoin et de pointer l'ordre vers cette scène.

Je vais bientôt faire une présentation d'un plugin vraiment utilise pour créer plein de commande sans taper une ligne de code, donc très utile.

Lien vers le commentaire
Partager sur d’autres sites

re,

 

effectivement tu as raison

 

en faite j'aimerai bien lui dire, sarah allume ci, allume ça, éteint si, éteint ça ... augmente le température d'une pièce par exemple, ouvre le garage, lol tu vois un peu :)

 

Même lui demander d'afficher soit la totalité de mes cameras ou les caméras par leur nom, si c'est possible lol

Lien vers le commentaire
Partager sur d’autres sites

C'est tout àfait possible,

Avec Sarah tu n'a pas vraiment de limite si ce n'est que le temps que tu y consacre et ton imagination.

J'ai un bloc note sur lequel on marque régulièrement les nouvelle fonctions voulue qui peuvent avoir un intérêt au quotidien, ou nous facilité la vie àla maison. C'est souvent pas grand chose, mais c'est l'addition de petit plus qui rend le truc sympa et vraiment sympa au quotidien.

Lien vers le commentaire
Partager sur d’autres sites

non j'ai prit le tuto comme tu l'as fait !!!

 

Tu parles du côté de la HC2 la ?

GET /sarah/parle?phrase=Lumière+et+allumé HTTP/1.10x0D0x0A0x0D0x0A

 

par contre si tu veux allumé une lumière directement branché sur un wall plug, faut-il modifié le ID avec celui de la wallplug dans la HC2

Lien vers le commentaire
Partager sur d’autres sites

Tu ne mélange pas plusieurs truc? je vois que tu met le code d'un Virtal Device.. mais ca n'a rien à  voir avec pluginCreator ^o)

 

Pour ton WallPlug il faut que tu appels l'api de la HCx avec la syntaxe qui correspond (il doit y avoir un tuto qui récap tout ça).

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...