Demander une action dans le futur au plugin

mcpia, vraiment le chaînon qui manquait à mon projet! Je m’amuse comme un petit fou :-).
Mais, comme j’en voudrais toujours plus,oserais-je proposer à Titidom d’ajouter au serveur mcp une action dans le futur?
Cas concret: le taupier m’avertit qu’il passe à 8h lundi matin et donc qu’il faut prévoir un accès libre au jardin. Or je sais très bien que le lendemain d’une veille très festive, je ne pourrai pas ouvrir le portail à cette heure. D’où la demande à mon assistant perso: « Samantha, ouvre le portail lundi 7 septembre à 8 heures ». Mais ça pourrait être « Samantha, allume le percolateur demain à 9 heures », « éteins la télé dans une heure », etc…
Titidom, je sais tes nombreux plugins, mais si tu as un peu de temps et que l’idée te plaît? :slight_smile:

Claude

hello

je le fait deja avec Apple et SIRI tout ca :slight_smile: et c’est “gratuit”

Merci pour l’info; je ne connais pas la façon dont Siri s’interface avec jeedom.
Par les interactions? Genre « Mets le chauffage sur 22 degrés à 14h50 » (avec les tags #time# et/ou #duration# ?)
Ne faut-il pas créer une routine par appareil?

Cela fonctionne avec l’assitant vocal, (homepod, homepod mini) toute ma domotique remonte dans l’app maison d’apple via le plugin Homebridge, apres c’est simple tu dis : “dis siri” ou “siri” ferme les volets ou tel volet a telle heure, met le chauffage a 19h à 23h, etc…etc….

OK, merci. Comme tous les systèmes apple, c’est pas mal foutu en effet.
Mais ma philosophie est tout autre: je travaille pour une dépendance minimum du net et un prix nul.
J’utilise des smartphones (android :wink: ) obsolètes écoutant non-stop pour la reconnaissance vocale.
Mes ordres restent en majorité en traitement local via les interactions et exceptionnellement si jeedom ne les reconnaît pas (ou si la demande ne concerne pas ma domotique), basculent sur l’IA, d’où ma demande à Titidom.
Tu me diras que l’IA n’est pas gratuite mais l’étape suivante serait (?) de disposer d’un llm dans mon LAN.

Bonsoir,

En fait, tu peux déjà le faire avec le plugin mcpIA :wink: de plusieurs manières d’ailleurs.

2 exemples :

  • tu utilises le fait que mcpIA peut créer et activer un scénario jeedom, qui serait programmé pour le lendemain matin 8h (ou la date que tu veux) et avec comme action d’ouvrir le portail

Pour cela, tu peux écrire un prompt de ce style (j’ai pas de portail alors pour l’exemple je lui ai demandé d’allumer la lumière :stuck_out_tongue: : (demandé à Claude pour cet exemple)

je veux créer un scénario qui ne se déclenche qu’une seule fois, aujourd’hui à 18h, et qui allume le trio du salon : peux tu me faire cela et mettre ce scénario dans la catégorie « Tests »

Il m’a répondu :

Et le scénario dans Jeedom est bien créé, et vient de se déclencher :stuck_out_tongue:

Autre possibilité : utiliser CoWork (si tu as un abonnement Claude) :

  • Tu crées une tache planifiée qui va se déclencher le jour J à l’heure souhaitée, et qui va faire “ouvre le portail via Jeedom” et cela fera la même chose (je me sers de ces tâches planifiées pour me faire un topo tous les matins sur l’état de mon Jeedom - batteries, logs en erreurs, espace disque, mémoire etc…) = très pratique :stuck_out_tongue:

TiTidom.

Oui, bien sûr TiTidom. Mais la tâche sera à répéter pour chaque besoin (qui pourrait par ailleurs survenir à l’improviste et … loin du PC!)

Mon circuit est le suivant:
Jeedom interaction ordre compris? => ordre exécuté
ordre incompris?

jeedomVoice.py (* extrait)

MCPia

ordre exécuté

Et mon idée :

D’après ce que je comprends, mcp utilise la séquence suivante: searchDevices → executeActions en fonction du prompt.

J’avais pensé qqch comme searchDevices → executeActionsDifferees avec le prompt ci-dessous modifié: « si l’utilisateur demande une action Jeedom dans le futur (« dans une minute », « dans 20 minutes », « demain à 8 heures », « ce soir à 22 heures », etc.), ne pas exécuter immédiatement la commande mais utiliser executeActionsDifferees » .

Je pense ainsi pouvoir lancer toutes les commandes jeedom existantes (allumer, éteindre, démarrer scenario,… Ex: éteins le projecteur de l’allée à 23h30, active la sécurisation du jardin dans 2 heures,etc.) tout ça sans alourdir avec des scenarii à finalité ponctuelle et… éphémères.

(* extrait): je demande ici à l’IA d’interpréter un ordre imprécis, approximatif car mal prononcé ou mal perçu avant de transmettre sa réponse à mcpia

[ [ [
JEEDOM_MCP_URL = os.environ.get(« JEEDOM_MCP_URL », « http://192.168.1.200/mcp »)
JEEDOM_MCP_TOKEN = subprocess.check_output(
[
« php »,
« -r »,
« »"
require_once ‹ /var/www/html/core/php/core.inc.php ›;
$eq = null;
foreach (mcpia::all() as $item) {
if ($item->getName() == ‹ Profil cdh ›) {
$eq = $item;
break;
}
}
if ($eq) {
echo $eq->getConfiguration(‹ mcpToken ›, ‹ ›);
}
« »"
],
text=True
).strip()

PORT = int(os.environ.get(« PORT », 5000))

#Nombre maximum d’échanges conservés en mémoire (1 échange = 1 user + 1 assistant)

MAX_HISTORY = 6

#— Prompt système -----------------------------------------------------------

SYSTEM_PROMPT = “““
Tu es un assistant domotique contrôlant une maison via Jeedom.
Tu reçois des commandes vocales en français (parfois approximatives) et tu dois
les exécuter via les outils disponibles.
Mais avant d’utiliser un outil, détermine si la demande concerne réellement :

  • la maison,
  • les appareils,
  • les scénarios,
  • les capteurs,
  • les températures,
  • les volets,
  • les lumières,
  • les batteries,
  • ou un équipement Jeedom.

etc. “““

] ] ]… code généré par IA :slight_smile: