Présentation du plugin JeeWhatsApp

Bonjour à tous,

Je vous présente JeeWhatsApp, un plugin permettant d’intégrer WhatsApp directement dans Jeedom — sans aucun serveur intermédiaire ni abonnement tiers. Tout passe directement entre votre box Jeedom et les serveurs WhatsApp, via la bibliothèque open-source Baileys.


:clipboard: Fiche technique

Champ Valeur
Nom JeeWhatsApp
ID jeewhatsapp
Version 0.6 (beta)
Auteur Aldarande
Licence AGPL v3
Catégorie Communication
Jeedom min. 4.4
Prix Gratuit

Langages : PHP, JavaScript (Node.js 18+ ESM)
Démon : Oui — jeewhatsappd.js (Node.js), port HTTP local 55148
Dépendances : @whiskeysockets/baileys, qrcode, pino, sharp (npm) — optionnelles : ffmpeg, Piper TTS, Vosk STT, Tesseract OCR (installés automatiquement via install_dep.sh)
Crons : Oui — nettoyage des médias entrants (daily)
Panel dédié : Non
Prix : Gratuit — licence AGPL v3

:bullseye: Concept

Le plugin utilise un groupe WhatsApp dédié comme canal de communication entre Jeedom et votre famille/téléphone. Jeedom envoie ses alertes et réponses dans ce groupe, et vous pouvez piloter votre domotique par simple message.

Aucune donnée ne quitte votre réseau : pas d’API cloud, pas de clé secrète chez un tiers, pas d’abonnement. Le démon Node.js tourne localement et se connecte directement aux serveurs WhatsApp.


:white_check_mark: Fonctionnalités

Messagerie

  • Envoi/réception de messages texte dans un groupe WhatsApp canal dédié
  • Réponse quoted (citée) au dernier message reçu
  • Multi-comptes : plusieurs équipements = plusieurs comptes WhatsApp simultanés

Médias

  • Envoi d’images, vidéos, documents, notes vocales, stickers, localisations GPS, contacts vCard, sondages
  • Réception et affichage inline des médias dans le widget dashboard

Interactions domotiques

  • Déclenchement de scénarios Jeedom par message (whitelist + mot-clé configurable)
  • Raccourcis slash /commande → exécution directe sans passer par le NLP
  • Messages templates : pool de messages réutilisables avec tags Jeedom #[Objet][Éq][Cmd]#
  • Reconnaissance d’utilisateurs : mapping numéro → profil Jeedom

Intelligence artificielle (optionnel, local, hors-ligne)

  • TTS — synthèse vocale des réponses via Piper (voix française)
  • STT — transcription des notes vocales reçues via Vosk
  • OCR — extraction de texte des images reçues via Tesseract

Gestion avancée

  • Widget dashboard style WhatsApp (bulle de chat, statut connexion, micro intégré)
  • Sauvegarde/restauration chiffrée de session (AES-256-GCM + PBKDF2) — sans re-scanner le QR
  • Gestion du groupe : ajout/retrait membres, sujet, description, lien d’invitation
  • Messages éphémères, présence « en train d’écrire », réactions emoji, statuts WhatsApp 24h
  • Accusés de lecture (coches bleues)
  • Groupes additionnels (plusieurs groupes écoutés par équipement)
13 « J'aime »

Hello et merci, ça renforce un peu la confiance de ne pas passer par un service tiers :wink:

Comme pour plusieurs plugins récemment proposé, attention à l’icône.
https://doc.jeedom.com/fr_FR/dev/Icone_de_plugin

il est bien spécifié de ne pas utiliser la couleur des plugins officiels et l’IA n’a pas ou ne suit pas cette directive.
Idem pour la zone vide en dessous pour le titre

bonne continuation :wink:

J’ai changé l’icone pour mettre le vert whatsapp
jeewhatsapp_icon

salut,
il ne faut pas laisser des coins blancs, cela doit etre transparent, cf toutes les autres icones :wink:


ah oui? pour envoyer des données sur un groupe whatsapp ca parait étonnant :thinking:

ps: non c’est pas raler pour raler, ca me désole juste que ce que pont l’ia ne soit meme pas relu

Le plugin s’appuie sur whatsappweb donc on ne passe pas par un provider tier.
cf Introduction | Baileys

L’icone sans coin :
jeewhatsapp_icon

Cool ! Bonne idée !

Ca reste des api cloud et les données quittent le réseau local, évidemment !
Ca n’est pas un problème un soit, c’est juste que cette phrase de la présentation est ridicule

1 « J'aime »

Oui je comprend ton sujet.
Le message est transmis via whatsapp doc il passe sur les serveurs de Meta.
Mon propos est que je n’utilise pas de service ( API cloud ) pour accéder à Meta.

Et je te donne raison sur l’usage de l’ia, c’est un outil puissant qui me permet d’offrir des plugins avec mon abonnement perso, en quelques semaines et avec des focntionnalités auquel ne j’avais pas pensé.

Mais comme dis Oncle Ben :

« De grands pouvoirs, implique de grands devoirs »

Aussi il faut contrôler et relire systématiquement…

Hello,

Bon après quelques difficultés du à des messages d’erreurs
Cela fonctionne




Mais il y a des points à régler …

1 « J'aime »

Je veux bien les logs de l’installation du pligun et du plugin,s 'il te plait

C’est un emoji livre (:open_book:) qui génère l’erreur sql (nombreux sujets sur ce cas, les très vieilles installations jeedom n’ont pas forcément le bon encodage c’est peut être ça)

1 « J'aime »

Tu as quel version de Jeedom ?

C’est super abouti, bravo


[2026-05-31 22:22:32] Node.js : v20.18.1
[2026-05-31 22:22:32] Installation des dépendances npm (@whiskeysockets/baileys, qrcode, pino, sharp)...
[2026-05-31 22:22:32] Cela peut prendre 2-5 minutes selon la connexion...
added 123 packages in 19s
npm notice
npm notice New major version of npm available! 10.8.2 -> 11.16.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.16.0
npm notice To update run: npm install -g npm@11.16.0
npm notice
[2026-05-31 22:22:57] ffmpeg déjà présent (ffmpeg version 4.3.9-0+deb11u2 Copyright (c) 2000-2025 the FFmpeg developers)
[2026-05-31 22:22:57] Installation de Piper TTS (synthèse vocale, optionnel)...
[2026-05-31 22:23:02] Piper TTS installé (voix fr_FR-siwis-medium, checksums vérifiés)
[2026-05-31 22:23:02] Installation de Tesseract OCR (français, optionnel)...
[2026-05-31 22:24:35] Tesseract OCR installé (tesseract 4.1.1)
[2026-05-31 22:24:35] Installation de Vosk STT (transcription vocale, optionnel)...
[2026-05-31 22:24:52] Vosk STT installé (modèle fr small, checksum vérifié)
[2026-05-31 22:24:52] Installation terminée avec succès
[2026-05-31 22:24:52] Baileys : 6.7.23

Hello,
Encore bravo pour le développement de ce Plugin
Question : est-il normal que je ne reçoive pas de notification sonore sur mon iPhone lorsque je reçois un message ?

1 « J'aime »

J’allais justement poser la même question sur Android ?

1 « J'aime »

Ce dépend du numéro que vous avez loggué sur jeewhatsapp.
Mais vous utilisez surement le même numéro donc vous vous envoyé un message à vous même.

Pas de notification de push pour soi même.

C’est pour cela que le plugin utilise un préfixe pour identifier ces messages.

J’ai aussi mis en ligne la documentation.

1 « J'aime »

Comment faire alors ?
Sinon cela perd tout son sens

tu crees un groupe avec toi meme !

hello @Aldarande

J’ai remarqué une augmentation significative de la taille de mon backup.

dans ton fichier core/class/jeewhatsapp.class.php il faudrait ajouter à l’intérieur de ta class:

  public static function backupExclude() {
  	return ["resources/piper/piper","resources/piper/voices"]; 
  }

je ne pense pas que ça soit vital et ce n’est pas présent à l’installation, il s’agit donc de relancer les dépendances en cas de restauration.

1 « J'aime »