A voir
 

Vera et Karotz: premières interactions…

 
karotz-pet-rabbit-1
karotz-pet-rabbit-1
karotz-pet-rabbit-1

 
Présentation
 

Catégorie:
 
Prix:
 
Durée:
 
Mise en place
 
 
 
 
 


 
Utilisation
 
 
 
 
 


 
Utilité
 
 
 
 
 


 
Cout
 
 
 
 
 


 
Note Globale
 
 
 
 
 


Note des Lecteurs
Aucun vote

 

Pour


Contrôler sa maison à la voix ou avec un porte clé RFID !

Contre


Toutes les fonctions du Karotz ne sont pas encore disponibles (synthèse vocale, caméra...)


Posté le8 décembre 2011 par

 
Tutorial Complet
 
 

Vous êtes nombreux à me demander s’il est possible d’utiliser le Karotz avec la Vera. Il n’existe malheureusement pas encore d‘application aussi aboutie qu’avec la Zibase, néanmoins je vais vous expliquer aujourd’hui comment déclencher quelques actions sur la Vera depuis le Karotz.

Je vais pour cela prendre un exemple concret: activation  / désactivation de l’alarme en passant un porte clé rfid devant le Karotz.

 

I. Sur la Vera

 

Pour la configuration complète de l’alarme sur la Vera, je vous invite à lire le tutorial qui avait été fait il y a quelques mois.

Je ne détaillerai donc pas ici toute la mise en place de l’alarme. Je vais juste créer un device virtuel qui indiquera le status de celle ci.

Si vous n’avez jamais créé de device virtuel sur la Vera, il faudra commencer par télécharger les fichiers de configuration de ce device.

Ensuite, rendez vous dans MiOS Developer, puis dans l’onglet Luup Files. Uploadez les deux fichiers téléchargés précédemment, et cochez “Restart Luup after upload”:

 

 

Une fois l’upload terminé, retournez dans MiOS Developers, cette fois ci dans l’onglet “Create Device”, pour créer notre device virtuel:

 

 

Validez, et sauvez la configuration. Vous devriez obtenir un nouveau device:

 

 

Ce device servira donc à indiquer le status de l’alarme: On pour activée, Off pour désactivée.

Nous allons maintenant créer le scénario qui sera lancé par le Karotz. Il n’y a ici aucun déclencheur de scénario sur la Vera, puisque c’est le Karotz qui le déclenchera à distance. On crée donc simplement une nouvelle scène, avec un bout de code Lua:

 

 

Remarquez l’ID de la scène, indiqué en haut de l’écran: ici on voit qu’il s’agit de la scène 96. Retenez cet ID, il servira plus tard.

Je vais vous expliquer le code Lua utilisé ici, car il peut paraitre complexe, mais il ne fait en fait que reprendre du code déjà vu dans des tutoriaux précédents.

Il faut savoir qu’on ne peut déclencher qu’une seule action sur le Karotz au passage d’un Tag RFID. Si on veut activer et désactiver l’alarme, donc, il faudrait normalement un Tag pour l’activer, et un autre pour la désactiver, ce qui serait plutôt lourd :/ Notre scénario va donc « switcher » l’état de l’alarme: si elle est activée, le passage du Tag va la désactiver, et si elle est désactivée, le passage du Tag va l’activer. On n’utilise donc qu’un seul Tag.

Voilà donc les actions effectuées par ce script, commentées dans le code:

 

[sourcecode language="perl"]

– On récupère l’état du device virtuel "Etat Alarme" créé précédemment, dont l’ID est le 197 (à remplacer par le votre)
local etatalarme = luup.variable_get("urn:upnp-org:serviceId:SwitchPower1", "Status", 197)

– On vérifie cet état
if (etatalarme == "0") then

– Si l’alarme est désactivée, on l’active, en passant le status du device virtuel 197 à 1
luup.variable_set("urn:upnp-org:serviceId:SwitchPower1", "Status", 1, 197)

– on éteint la lumière du salon (il s’agit d’un variateur, donc on passe son niveau à 0). Remplacez 52 par l’ID de votre module
luup.call_action("urn:upnp-org:serviceId:Dimming1","SetLoadLevelTarget",{ newLoadlevelTarget="0" },52)

– On crée une connexion au serveur Squeezebox
socket=require(‘socket’)
local client = socket.connect(‘IP_SERVEUR_SQUEEZEBOX’, 9090)

– On allume la Squeezebox du salon
client:send("74:00:00:00:00:95 power 1\n")
local result=client:receive()

– On met le volume a 90
client:send("74:00:00:00:00:95 mixer volume 90\n")
local result=client:receive()

– On lance l’annonce confirmant que l’alarme a bien été activée. Indiquez le chemin du fichier à lire
client:send("74:00:00:00:00:95 playlist play file:///D:/shares/Musique/bruitages/attentionalarme.wav\n")
local result=client:receive()

– Pour finir, on envoie une notification Prowl sur le mobile
luup.inet.wget("https://prowl.weks.net/publicapi/add?apikey=VOTRE_CLE_API_PROWL&application=Vera&event=Alarme&description=Alarme+activee&priority=1")

return true

else

– En revanche, si l’alarme est déjà activée, on la désactive en passant le status du device virtuel 197 à 0
luup.variable_set("urn:upnp-org:serviceId:SwitchPower1", "Status", 0, 197)

– On allume la lumière du salon
luup.call_action("urn:upnp-org:serviceId:Dimming1","SetLoadLevelTarget",{ newLoadlevelTarget="100" },52)

– On crée une connexion au serveur Squeezebox
socket=require(‘socket’)
local client = socket.connect(‘IP_SERVEUR_SQUEEZEBOX’, 9090)

– On allume la Squeezebox du salon
client:send("74:00:00:00:00:95 power 1\n")
local result=client:receive()

– On met le volume a 90
client:send("74:00:00:00:00:95 mixer volume 90\n")
local result=client:receive()

– On lance l’annonce confirmant que l’alarme a bien été désactivée
client:send("74:00:00:00:00:95 playlist play file:///D:/shares/Musique/bruitages/attentionalarmedesactivee.wav\n")
local result=client:receive()

– Pour finir, on envoie une notification Prowl sur le mobile
luup.inet.wget("https://prowl.weks.net/publicapi/add?apikey=VOTRE_CLE_API_PROWL&application=Vera&event=Alarme&description=Alarme+desactivee&priority=1")

return true

end
[/sourcecode]Quand je passe le Tag devant le museau du lapin, si l’alarme est désactivée, la Vera va l’activer, éteindre la lumière du salon, diffuser un message via la Squeezebox du salon pour m’en informer vocalement, et m’envoyer également une notification Prowl sur mon iPhone, pour en être informé si jamais ce n’est pas moi qui active l’alarme.

A contrario, si l’alarme est activée quand je passe le Tag, la Vera va la désactiver, allumer la lumière du salon, diffuser un message de bienvenue, me confirmant la désactivation de l’alarme, et m’envoyer une notification sur mon iPhone (toujours pour être informé si ce n’est pas moi qui effectue l’action).

Il suffira de jouer avec la temporisation de l’alarme pour avoir le temps d’entrer dans la maison et passer son porté clé devant le lapin avant le déclenchement des hostilités :p

C’est tout pour la Vera, il ne nous reste plus qu’à « cabler » cela avec le Karotz.

 

II. Communication avec le Karotz

 

L’interaction entre le Karotz et la Vera va être possible via une petite application à installer sur le Karotz: Kron, que vous trouverez à cette adresse.

 

 

Une fois installée sur votre Karotz, il n’y a plus qu’à la configurer:

 

 

Cette application permet d’envoyer une requête HTTP. Nous nous en servons ici pour contrôler la Vera, mais elle peut servir à bien d’autres choses: contrôle d’une carte IPX, de son Media Center, etc…

On commence par donner un nom au profil, ici je l’appelle « Alarme ». Ce nom servira également à activer l’alarme via une commande vocale si je le souhaite, en appuyant sur le bouton sur la tête du Karotz, et en lui susurrant « Kron Alarme ».

Ensuite, on lui indique la requête HTTP à effectuer, en remplacant l’ID de la scène par le votre:

http://MA_VERA:3480/data_request?id=lu_action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=96

Enfin, je coche « déclenchement manuel », et j’indique quel Tag devra déclencher cet évènement, ici le porte clé bleu. On valide, et c’est fini !

A partir de là, si je dis au Karotz « Kron Alarme », ou que je lui passe mon porte clé bleu devant le nez, il va se charger d’activer ou désactiver l’alarme en fonction de son état actuel. Petite démo en vidéo:

 

J’ai configuré un scénario sur mon porte clé, et un sur celui de ma femme, ce qui permet du coup de personnaliser le message d’accueil si on veut, il suffit d’utiliser un scénario différent par personne, avec un message différent diffusé sur la Squeezebox.

Sur le même principe, on peut tout à fait allumer une lampe, lancer un scénario d’ambiance, etc… Vous avez là la ligne directrice, faites en ensuite ce qu’il vous plait !

Pour les Tag, vous pouvez utiliser les Flatnanoz ou les Nanoztag. Personnellement je préfère les petits porte clé RFID qu’on peut trouver chez Planète Domotique, parfaitement compatibles, et beaucoup plus discrets:

 

 

En plus, à 12.90€ les 3 portes clés, c’est plus économique ;-) Pensez aussi aux étiquettes RFID. A 3.90€ l’étiquette, ce n’est pas donné pour une étiquette, mais elle trouvera pas mal d’applications: collées sur un CD pour lancer une playlist au passage du CD, lecture d’une histoire au passage d’un livre, etc…

 

III. Conclusion

 

Comme vous le voyez, l’interconnexion entre le Karotz et la Vera n’est pas encore parfaite: j’utilise par exemple mes Squeezebox pour faire passer un message vocal alors que le Karotz en serait tout à fait capable. Mais pour cela il faudrait une application dédiée, comme celle qui existe pour la Zibase. On attend un développeur motivé, personnellement je manque de temps et je n’ai pas du tout abordé la programmation sur le Karotz. Une telle application permettrait au Karotz de nous donner la température de la pièce, nous annoncer la présence d’un visiteur à l’accueil, etc… Ce serait top !

En attendant, on fait avec ce qu’il y a, et la petite application Kron permet de déclencher des scénarios sur la Vera, via le passage d’un Tag ou via une commande vocale, ce qui n’est déjà pas si mal. Avec les évolutions prévues bientôt sur le Karotz, comme la possibilité de déclencher une action sur détection de mouvement de la caméra intégrée, ou détection de bruit via le micro, cela laisse imaginer bien des applications, comme le Karotz qui allumerait automatiquement la lumière, ou réglerait le chauffage, etc… Il y a donc déjà du potentiel à exploiter :p

Vous aimez ? Partagez le ! Share on FacebookShare on Google+Tweet about this on TwitterPin on PinterestShare on RedditShare on TumblrShare on LinkedInBuffer this pageFlattr the authorEmail this to someone