samedi 2 juin 2012

Karotz Kmd - Kommand Line Interface


Objectif : Envoyer en direct des ordres simples au Karotz sans passer par la procédure normale de développement et d'installation d'applications (appz) sur le store Violet. Aussi simple que d'imprimer !

Un simple .exe qui s'exécute en mode console (ms-dos) et permet ainsi d'exécuter des tâches automatisées et/ou de lancer des batches (.bat)

Télécharger le Zip - version compilée pour .NET v3.5
Pour la version .NET v4.0 c'est celui-ci

Plateforme : Windows avec .NET v 3.5 installé. Pour vérifier la version du .NET installé sur votre PC, allez dans le répertoire C:\Windows\Microsoft.NET\Framework et vous devriez y découvrir (un ou) plusieurs dossiers nommés v1.0.x v1.1.x v2.0.x v3.0 v3.5 v4.0.x. Le mieux est quand même d'avoir la version v3.5 au minimum. Dans le cas contraire, se rendre sur le site de MS pour télécharger le .NET

  • Installation : Télécharger le zip puis extraire les 4 fichiers (kzkmd.exe + kzkmd.ini + kzkmd.txt + google.protocolbuffers.dll) dans un dossier (nommé ici KzKmd pour le tuto).
  • Configuration
KzKmd.ini à éditer (avec un notepad)
# Karotz Kommander Conf file
# http://Wizz.cc
#
# Find your ip on your Kz account manager.
# Go to http://www.karotz.com

Host=192.168.1.4
# Default Port : always set to 9123
Port=9123
#
Modifier la ligne host avec l'adresse ip lcoale de votre Karotz. Vous pouvez la trouver sur votre compte Karotz. Ensuite cliquer sur le picto réprésentant votre Kz pour y décourvir son IP, Adresse MAC et Pseudo. Le port de communication est toujours le (tcp) 9123.

KzKmd.txt contient les commandes à envoyer au Karotz.
# Commentaire
led 0000ff
play http://mp3.live.tv-radio.com/fip/all/fip-32k.mp3
#
pause 10
#
  • Utilisation 
En ligne de commandes ou en batch.

kzkmd.exe [-conf=file.ini] [-file=kmd.txt] [-host=192....] [-port=9123] [-debug]

Par défaut le fichier de configuration est kzkmd.ini et le fichier de commandes kzkmd.txt

Les paramètres -host et -port passés en ligne de commandes sont alors prioritaires sur ceux définis dans le fichier .ini

Ex: kzkmd.exe -debug -host=192.168.1.110

L'InteractiveId obtenu lors de la connexion au Karotz est sauvegardé dans le fichier KzKmd.pid

Vous pouvez ainsi le récupérer avec un autre programme externe du même genre pour communiquer avec la session active.

On pouvait penser aussi à fermer cette session par l'url fournie par l'Api Violet dans sa section Dév http://api.karotz.com/api/karotz/interactivemode?action=stop&interactiveid=3e910454-xxx mais non trop beau !..

vendredi 1 juin 2012

Nabaztag V2 : Plugs-in Java with Groovy


Objectif : Ecrire ses applications - plugs-in - en langage Groovy (dynamic language for the Java Virtual Machine) pour le nouveau serveur Violet www.nabaztag.com.

Le serveur Violet est écrit en Java et accepte désormais les modules additionnels écrits en Groovy. Cela permet la prolifération rapide d'applications très diverses pour tous les lapins rattachés à ce type de serveur.


  • Ma 1ère Appli : Télécharger l'exemple Radio Fip. Un projet Groovy pour le serveur Violet est un .zip qui contient toujours 3 fichiers : descriptor.json, icon.png et main.groovy.
descriptor.json : - un peu à l'image du descriptor pour le Karotz - contient les paramètres de l'application. A modifier à l'aide d'un simple éditeur de texte.

- La zone 'triggers' contient 'RFID', la seule possibilité de déclenchement de l'appz pour l'instant.
- La zone 'fields' contient des parmètres passés à l'application.
- La zone 'name' contient le nom de l'application et la zone 'description' peut recevoir une partie html qui s'affiche dans l'info-bulle lorsque l'utilisateur la survole.

icon.png : image qui apparait dans la liste des applications sur le serveur.

main.groovy : le corps de l'application en java.

- Importer les classes NabAlive :
import com.nabalive.application.core.ApplicationBase;
import com.nabalive.data.core.model.ApplicationConfig;
import com.nabalive.data.core.model.Nabaztag;
import com.nabalive.common.server.MessageService;

- Renommez la classe principale de manière unique. Ici public class RadioFIPApplication extends ApplicationBase .../...

- Chaque plug-in est identifié de manière unique par son guid - uuid. Il faut donc en générer un à chaque nouvelle appz - c'est souvent cet oubli qui génère un erreur à l'installion... Se rendre sur http://www.guidgenerator.com/ pour la génération d'un uuid et remplacer la valeur retournée par la fonction getApikey() par celle obtenue sur le site.

  • Mettre en ligne : uploader uniquement le .zip dans le répertoire des applications du serveur Violet.

Un autre exemple de plug-in : Voici.fr