Vera et Karotz: premières interactions…

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

2011 09 27 123543

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

2011 12 07 103330

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

2011 12 07 103433

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:

2011 12 07 103726

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.

kron

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

2011 12 07 110733

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:

IMG 5490

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

Pour information, cet article peut contenir des liens affiliés, sans aucun impact sur ce que vous gagnez vous même ou le prix que vous pouvez payer pour le produit. Passer par ce lien vous permet de me remercier pour le travail effectué sur le blog chaque jour, et d'aider à couvrir les dépenses du site (hébergement, frais de port pour les concours, etc.). Ca ne vous coute rien, mais ca m'aide beaucoup ! Merci donc à ceux qui joueront le jeu !

Inscrivez vous à notre newsletter !

Ne ratez plus aucun article, test de produit ou guide, grâce à un mail dans votre boite chaque vendredi !

Tags :

16 Commentaires

Laisser un commentaire

Maison et Domotique
Logo
Register New Account
Enregistrez vous, et stockez vos articles préférés sur votre compte pour les retrouver n'importe où, n'importe quand !
Compare items
  • Casques Audio (0)
  • Sondes de Piscine Connectées (0)
  • Smartphones (0)
Compare