Générer des URL pour commander des accessoires

Bonjour à tous,

Est-ce-qu’il existe un plugin permettant de donner accès à un accessoire avec une simple commande curl ?
Je prends l’exemple bête du chauffagiste qui vient chez moi, je veux le rendre autonome.
Je veux lui envoyer par exemple 2 liens :
1ER_LIEN : ouvrir portail
2EME_LIEN : ouvrir garage

Puis pour aller plus loin, je définis une plage horaire, soit à date fixe, soit quotidienne.
Il clique sur le lien, ça ouvre … il revient le lendemain, ça ne fait rien, normal, il n’est plus autorise.

Merci pour votre aide.
Désolé si je le sujet a déjà été évoqué, mes recherches n’ont rien remonté.

Salut,

Dans les paramètre de ta commande :

Tu as l’URL directe ici.

Pour le reste, ca doit pouvoir se faire via un scenario et un virtuel actif que sur la plage horaire decidée.

Merci pour l’URL.
AH ! On peut donner des plages à un virtuel, c’est natif sur jeedom ça ?
Donc chaque accessoire doit avoir son virtuel.

Quel est le danger ?
Si je crée un virtuel pour mon portail, que je te file l’URL, serais-tu en mesure d’exécuter une autre commande que celle voulue ?

1 « J'aime »

Non ce n’est pas si simple que ça.

D’entrée, je ne sais pas si en donnant l’URL la personne pourras l’utiliser où s’il y a des restrictions d’accès. On va partir du principe que c’est le cas.

Mettons que tu veux me donner accès à une seule commande, et rien d’autre, une seule fois.
Tu ne peux pas me donner l’accès direct à l’URL de la commande, car je pourrais continuer de m’en servir.

L’idée serait de créer un virtuel, avec une commande. C’est l’URL de la commande ce virtuel que tu transmettrais.
Ce virtuel déclencherais un scenario réalisant la commande que tu souhaites faire ( Ouverture de portail, de porte…) puis désactiverais le virtuel en question pour le rendre inopérant.
Le jour ou tu sais que l’artisan revient, tu réactives ton virtuel et rebelotte.
Dans cette configuration ton virtuel permet de réaliser la tache voulue, une seule fois et ne peux plus être utilisé.

Tu comprends la logique ?

Par contre, je ne sais pas a quel point c’est risqué. Ton URL se termine par l’ID de la commande, si le mec s’amuse à changer l’ID il peut tomber sur des commande au hasard. Les experts en sécu répondrons mieux que moi.

EDIT : Quand j’essaye d’aller directement sur une URL de mon jeedom via l’ordi du boulot, en mode navigation privée, ça fonctionne.

Bonjour
Oui : l’URL fonctionne seul. Il va ouvrir une page internet. Si la commande passe. Il va simplement s’afficher un petit zero (permet de savoir si la commande est passée dans un Raccourci souS iOS par exemple)
Non : il faut pas partager direct ta commande. Elle contient ton API = commande tout se que tu peux commander
Oui : il faut creer un utilisateur de type limité, l’appeler « Invité »
Faire un virtuel avec une action « ouvrir le portail », avec une action après la commande : activée l’action ouvrir le portail
Si tu veux avec des horaires. Passer pas un scénario
Donner acces a ce virtuel a l’utilisateur invité
Créer l’adresse en remplacant la clef API par celle de l’utilisateur invité.
Quand tu veux résilier le droit, il suffit de régénérer la clef de l’utilisateur invité

Si c’est pas clair. Je te laisse avancer et redire où ça bloc.
Capture d’écran 2022-11-30 à 14.22.30


Commande API « Invité ponctuel »
Portail Bouton : 3344
https://MON_JEEDOM.eu.jeedom.link/core/api/jeeApi.php?apikey=ClefDeL’Invité&type=cmd&id=3344

Tu donne l’URL du scénario et tu gère dedans. Ensuite condition dans le scénario voir supprimé le scénario, plus d’url

Il aura tjrs l’adresse de ton Jeedom par contre … a pas faire trop souvent.

Je comprends tout, merci.
Je suis juste étonné de la non existence d’un plugin qui fait ça.
Mon cas de figure n’est pas très … original à vrai dire ?

Le but de Jeedom est de pouvoir faire un maximum de chose le plus facilement possible.
Ici, une fois qu’on connait l’astuce c’est facile à faire et rapide.
Les plugin ont plutot pour but de faire des choses compliqué, facilement (qu’il serait difficile de faire pour le commun des mortel sans ce plugin).

Les scripts n’ont pas d’ID.
Vous confirmez ?
ça veut dire que ne peux curl qu’un ID virtuel.
J’arrive à le faire pour un utilisateur « guest » → ça ouvre mon portail, avec l’aide d’un virtuel.

A côté, j’utilise le plugin MODE. J’ai donc le mode invité, « autorisé » ou « non autorisé »
Je peux du coup faire un script, mais comment l’appeler en curl ?

Toutes les commandes sous jeedom, qu’importe le plugin, sont utilisables via appel api.
Le lien directe est toujours au même endroit, dans la config avancée de la commande.

Oui, c’est pour ça que je précise : scénario.
Dans le plugin virtuel, je ne peux pas ajouter de conditions à mes actions.

  1. vous pouvez écrire les mots au complet, ca sera plus lisible
  2. non vous n’avez pas précisé scénario, même pas un morceau du mot, vous avez parlé de script, ce qui (logiquement) me fait penser au plugin-script :
  1. concernant les scénarios vous avez déjà reçu la réponse, relisez les réponses précédentes.

Lisez la documentation jeedom également car tout cela s’y trouve.

En effet, j’ai dit script, et je voulais dire scénario.
Pour le mot « scério », c’est une faute de frappe. Désolé.

Je vais relire.

L’ID d’un scénario se trouve en haut à gauche.
Pour l’appeler dans un navigateur, il faut pas utiliser le mot id, mais scenario, mais aussi le paramètre action.
Exemple d’appel d’un scénario :
https://MON_ADRESSE_JEEDOM/core/api/jeeApi.php?apikey=MON_API_KEY&type=scenario&id=ID_SCENARIO&action=start

J’ai mis la photo des déclencheurs du scénario… (l’information virtuel qui passe a 1 sous l’action du virtuel appelé par la commande API)
Puis dans ton scénario tu peux commencer par un
SI : trigger(invité)==1 && Mode (bidule)== 0 && heure comprise entre …
Alors : STOP
Sinon : ouvrir le portail + envoyer une notif « portal ouvert par Invité »

(Je le fait en court… il y a mille possibilités de contrôle et d’informations grace au scénario.
L’avantage de ne pas utiliser l’id du scénario est la souplesse -possible mettre comme moi plein de déclencheurs puis discriminer ensuite-
De plus tu n’as pas besoin de donner les droit sur le scénario a l’invité ! Juste le virtuel qui le concerne. Le jour où tu veux donner d’autres possibilités a un invité, pas besoin de retoucher les droits. Juste ajouter des commandes dans son virtuel…… bref, pas certain que ça soit une bonne idée de vouloir passé par l’id du scénario !!!)

Ps: avec un iPhone (androïde sûrement possible ms je connais pas) tu peux mettre un tag NFC dans ta voiture
Quand tu pose le téléphone dessus (+géolocalisation si envie de faire plein de chose avec le même tag) cela déclenche une « Automation » qui fait une action, ou lance un / des Raccourci : le portail s’ouvre, alarme s’arrête, lumière en marche, etc…
Bref les API c’est puissant !!! Et il faut mieux un truc bien carré (un droit / des commandes / des informations / que l’on peut ensuite suivres grace liens) pour pas que ça parte dans tous les sens…

Hello,

Pardon pour le déterrage de sujet, mais j’ai une petite question : est il possible de faire en sorte que l’url appelée pour la commande n’ouvre pas de page web de retour d’action réalisée (le 0 dans notre exemple) ?

Merci.

Antar

Bonjour
Pas a ma connaissance !
Mais comme je passe par l’application iOS Raccourcis / Shortcuts, cela n’ouvre aucune page internet….
Je sais pas s’il y a l’équivalent sous Androïd ?

Bonjour,
oui bien sûr, tu peux utiliser sur android :

  • Domowidget lien ==> Plus maintenu par contre
  • Http Request Shortcuts lien
1 « J'aime »