Les ‘notifications push’ sont très intéressantes dans le domaine de la domotique comme l’ont fait remarquer bien avant moi sur leurs blogs Clement Storck : http://clement.storck.me/?p=78 et Spy : http://www.e-home.fr/2011/01/domotique-notifications-push/

Pour les non initiés ou les non utilisateurs d’iPhone/iPad, les notifications push c’est un système qui permet aux applications iOS d’afficher une notification avec une alerte sur un iPhone ou un iPad; un peu comme un SMS en fait mais gratuit et avec des fonctionnalités plus extensibles.

Comme vous pouvez le voir dans l’article de Clement, les deux applications les plus connues dans ce domaine sont :


Ayant eu envie d’utiliser ces moyens de notification dans mon installation domotique, je me suis attelé à les y intégrer; ce qui a débouché (comme souvent chez moi ;) ) sur un petit agent xPL écrit en perl s’intégrant au framework xpl-perl de Mark Hindess.

Son petit nom c’est xpl-pushmsg et pour le télécharger, il faut aller dans la section downloads (sisi c’est en haut à droite là).

L’installation se fait comme n’importe quel programme perl :

tar zxfv xpl-pushmsg*.tar.gz
perl Makefile.PL
make
sudo make install

Puis il se lance simplement :

xpl-pushmsg -v

Vous pouvez ensuite envoyer des notification Prowl ou Pushme.to via des commandes sur votre réseau xPL.

Pour Prowl :
xpl-sender -m xpl-cmnd -c sendmsg.basic to=APIKEY@prowl body=bonjour subject=Alerte
(Regardez le man de xpl-pushmsg pour connaitre tous les paramètres car il y a d'autres possibilités comme par exemple la priorité des messages ou encore la possibilité d'attacher une URL)

Pour Pushme.to :
xpl-sender -m xpl-cmnd -c sendmsg.basic to=NICKNAME@pushmeto body=bonjour from=Maison


Et voila ! De cette façon vous pourrez vous envoyer des notifications pour n’importe quel évènement de votre maison, comme certains l’ont fait par exemple lorsque quelqu’un sonne à leur porte : http://clement.storck.me/?p=80


Comme d’habitude avec les bouts de code que je fait, celui-ci n’est probablement pas exempt de bug, et je suis preneur de toute suggestion :)