Ntfy et Jeedom : un plugin

Suite à un post de Cédric de Maison et Domotique sur le forum Jeedom, j’ai découvert ce nouveau produit de notification Ntfy. Il ne me restait plus qu’à faire travailler Ntfy et Jeedom ensemble.

Présentation de Ntfy

Ntfy est un système de publication et souscription disponible en self-hosted.

On trouve une app mobile et une webapp qui viendra directement avec votre instance. Si vous ne souhaitez pas utiliser votre propre instance, vous pouvez aussi utiliser directement ntfy.sh

Le principe de base, on publie d’un côté un message sur une URL de son instance, par exemple monntfy.maison/mesmessages. De l’autre on a l’app mobile ou la webapp qui a “souscrit” à ces topics et va recevoir les notifications.

C’est simple, rapide et sans chichi. Au top.

Customisation des messages

Un autre avantage, c’est la facilité de customisation en ajoutant un titre, des icones voir une image.

Fonctionnalités conservées dans le plugin comme on le verra.

Installation en docker

Ntfy propose un docker pour un self-hosted. Chacun trouvera son compte pour l’héberger sur un NAS ou autre
Dans mon cas, j’utilise les dockers avec Traefik en reverse proxy et Authelia en SSO. Ce qui permet de mapper chaque docker a un sous-domaine, dont le certificat https sera géré et renouvelé directement par Traefik. Par défaut, tout accès sera protéger par Authelia profitant d’une authentification centrale en double facteur.

Toute la configuration de Traefik par container se fait par labels qu’on peut facilement gérer dans un docker-compose, par exemple :

ntfy:

image: binwiederhier/ntfy

container_name: ntfy

command:

– serve

environment:

– TZ=${TZ}

volumes:

– /data/docker/ntfy/data/cache:/var/cache/ntfy

– /data/docker/ntfy/data/lib:/var/lib/ntfy/

– /data/docker/ntfy/conf:/etc/ntfy

restart: unless-stopped

labels:

– traefik.enable=true

– traefik.http.routers.ntfy.rule=Host(`ntfy.${DOMAIN}`)

– traefik.http.routers.ntfy.entrypoints=websecure

– traefik.http.routers.ntfy.tls.certresolver=myresolver

– traefik.http.routers.ntfy.middlewares=authelia@docker

– traefik.http.services.ntfy.loadbalancer.server.port=80

Dans le cas de ntfy, l’application mobile ne passera pas l’authenfication double d’Authelia. Du coup j’exclue ce sous-domaine de l’authentification centrale et j’ai ajouté un compte directement sur Ntfy en suivant leur doc pour sécuriser.

A l’occasion, je reviendrais sur la gestion de ma stack personnelle d’outil via Traefik/Authelia/Docker-compose

Ntfy et Jeedom

Avant l’arrivée de Ntfy, j’utilisais exclusivement Telegram avec Jeedom. Mais c’est vrai que 80% des utilisations ne sont “que” des notifications, et pas des interactions/ask ou autre. Donc ntfy s’avère bien mieux pour beaucoup d’usage.

Suite à la demande sur le forum, j’ai donc écrit un petit plugin. D’ailleurs si certains sont intéressés par faire leur propre plugin ou comprendre comment un plugin marche, je recommande de commencer par ntfy. C’est le plus simple que j’ai écrit, il y a pas grand chose dedans mais c’est impeccable pour commencer.

Le plugin simplifie l’utilisation. Vous pourrez créer un équipement par topic. Cet équipement propose en configuration simplement de mettre l’url du topic (sur ntfy.sh ou self-hosted) et vous pouvez saisir user:password si vous l’avez protéger.

Ensuite, une seule commande qui permet la notification. Le champ message sera émis en texte de la notification. Dans le titre, vous pouvez passer toutes les options supportées par ntfy (voir la doc), en séparant chaqune avec du ;

Bonus, la nouvelle release contient un ajout pour le support natif du ask des scénarios Jeedom. En envoyant une question, chaque réponse apparaitra sous la forme d’un bouton cliquable directement et qui effacera la notif.

Conclusion

Un petit mot de la fin, il manque plusieurs choses à mon avis à cette nouvelle application : gérer le statut “lu” entre les différents clients, une application mobile un peu plus sexy, un client desktop qui utilise les notifs standards du système sans devoir lancer la webapp

Laisser un commentaire