Proposition de répondeur Jeedom

Je vous propose ce répondeur Jeedom (Jeedom_Answerphone) :
Il gère une file d’attente des messages Jeedom en mode client/serveur (pour une garantir un traitement centralisé et fiable des messages) afin de délivrer les message en TTS (Text To Speech) avec le plugin GoogleCast uniquement au moment ou une personne est présente dans la pièce ou se trouve le Google Home via un scénario basé sur un simple détecteur de présence ou une reconnaissance de personnes ou de visages avec opencv.

La solution qui n’est pas encore sous forme de plugin est disponible ici :

Exemple 1 d’utilisation :
Votre Jeedom a détecté un colis dans votre boite aux lettres ce matin à 10h30 ainsi que l’ouverture du verrou du portail à 8h45. Lorsque vous rentrez chez vous le midi ou le soir, Jeedom détecte votre présence dans le séjour et demande au répondeur de retourner les messages de la journée pour les envoyer en TTS sur le Google Home du séjour :
« Vous avez deux messages : à 8h45 le verrou du portail est ouvert , à 10h30 un colis a été déposé dans votre boite aux lettres »

Exemple 2 : Sur la base de l’exemple 1 entre temps vers 9h quelqu’un a fermé le verrou du portail : Jeedom met à jour le répondeur en annulant le message de 8h45 (notion de cancel/tag) car le message n’est plus d’actualité et il n’est plus nécessaire de le délivrer.

Exemple 3 : Avec telegram lorsque vous êtes bloqué dans les embouteillages vous exécutez un scénario (1) à 18h30 pour écrire sur le répondeur push je serai en retard de 15 minutes.
Jeedom délivrera le message à la personne présente dans le séjour pour la prévenir :
« Vous avez un message : à 18h30 je serai en retard de 15 minutes »

(1) : scénario appelé par l’interaction nommée push dans cet exemple

Exemple 4 (futile mais rigolo) : Si vous aimez les citations Kaamelott et que vous êtes le seul à vouloir les entendre alors vous pouvez déposer avec un scénario une fois par jour sur le répondeur une citation taguée avec votre prénom. Un simple python3 opencv en tache de fond (face recognition) et hop au moment ou vous passez dans le séjour et que la caméra détecte votre visage il vous délivre en TTS une citation tirée au hasard (voir les exercices dans le README.md) (API/URL contenant le tag prénom).

Vous trouverez plus d’information pour faire tout ceci dans le
README.md

2 « J'aime »

Pas compris grand chose, mais c’est du à mes faibles compétences :roll_eyes:

Dans tous les cas… abonné !

Merci à toi

Je le fais avec snips et un script php qui stocke dans un json. Au final c’est super pratique !

Je me demandais justement si j’allais pas le faire en natif dans jeeRhasspy avec une commande speakLater. Sur mon script php je fait une commande message en title later, 120. Le 120 est un délai, au bout de 120mins si le message n’a pas été dit il est annulé. A voir …

Ton idée de plugin est vraiment très intéressante, cela répondrai à une problématique récurrente : Délivrer au bon moment les informations relatives aux évènements domotiques et autres…
J’adhère, et je vais suivre ton projet avec beaucoup d’intérêt !
Par contre la solution proposée par Kiboost ne me conviendrait pas personnellement, car quand je notifie, j’aimerais justement pouvoir annuler ou maintenir ma notif jusqu’à sa diffusion…

J’ai été étonné que ce sujet qui peut aller plutôt loin, comme avec opencv, n’ait pas été traité dans Jeedom. J’ai développé une solution qui n’est pas encore sous forme de plugin mais que l’on peut installer soi même et qui répond à pas mal des attentes en domotique.Vous trouverez un README.md sur le github myjdom Jeedom_answerphone assez complet pour vous assister au mieux dans son utilisation. La brique de base en python3 est assez simple : notification_server.py et notification_client.py sont les deux éléments principaux qui garantissent l’intégrité des messages (aucune perte) et ensuite le reste c’est de la configuration standard Jeedom pour l’utiliser (scénarios & interactions essentiellement). Cela fonctionne depuis quelques mois dans mon jeedom et la solution est très stable. Mon répondeur a géré quelques 600 messages sur les trois derniers mois. Il faut dire que les messages du genre 《merci d’avoir arrosé le papyrus》 ne sont plus ajoutés sur le répondeur depuis (c’est sympa au début mais ça manque d’intérêt) mais par contre les messages pertinents comme 《le papyrus a besoin d’être arrosé》 ou 《le verrou du portail est resté ouvert》 sont toujours traités et reçu au bon moment sans répétition. C’est que qui compte.
Les messages qui n’ont plus lieu d’être sont annulés sur le répondeur automatiquement. Un historique complet de la vie de chaque message est disponible (read, cancel, priority, expire, tag etc.).

Il n’y a que deux grandes étapes :

1 - Écriture et mise à jour des messages sur répondeur (cela inclut cancel,replace,expire etc.) :
scénario/interaction ou événement Jeedom ==> push message sur le répondeur

2 - Lecture du répondeur :
événement Jeedom présence (détecteur ou équivalent opencv) ==> pull des messages sur le répondeur ==> envoi en TTS (google home ou autre)

Bonjour,

Merci pour le partage. A tester.

Il y a déjà un plugin qui fait ca non ? NOTIFICATION QUEUE

Bon il gère pas encore la concaténation des messages mais c’est peut être prévu

Bonjour @philippeLC92,

Je l’ai juste installé sous ma homedir de pi pour faire un test local avant installation complète.
J’ai modifié la log pour la mettre dans ./*.log
Mais quand j’exécute, j’ai un pb avec le socket :

pi@raspberrypi:~/Jeedom_Answerphone $ ./notification_client.py --push 'bonjour'
Traceback (most recent call last):
  File "./notification_client.py", line 85, in <module>
    soc.connect(("127.0.0.1", port))
ConnectionRefusedError: [Errno 111] Connection refused

Si tu as le temps de m’aider :wink:

EDIT : Installé complétement et OK maintenant.

Bonjour,

Je trouve ton idée pas mal du tout je vais regarder cela de plus près :slight_smile:

Version 1.1 2023 :

Nouvelle fonction --get-all et aussi --cancel-all :
Permet de gérer un répondeur qui garde les messages pour être lu autant de fois que l'on souhaite
afin de l'afficher sur une horloge intelligente comme LAMETRIC TIME (utilisation du plugin pour Jeedom).
Le seul moyen de nettoyer le répondeur est d'utiliser la fonction --expire ou --cancel ou --cancel-all
Il est recommandé d'utiliser un numéro de répondeur différent de 0 (exemple 1) pour LAMETRIC TIME
1 « J'aime »