Vous n'êtes pas identifié(e).
Dernière modification par Joube31 (16-12-2020 21:06:07)
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
Si j'ouvre le lien sous chrome j'ai juste "1" ou "0" afficher en haut a gauche
Merci
Dernière modification par Joube31 (15-12-2020 21:07:49)
Hors ligne
Info/Action commande
Voici l’URL = http://#IP_JEEDOM#/core/api/jeeApi.php?apikey=#APIKEY#&type=cmd&id=#ID#
id : correspond à l’id de ce que vous voulez piloter ou duquel vous souhaitez recevoir des informations.
Le plus simple pour avoir cette URL est d’aller sur la page Analyse → Résumé domotique, de chercher la commande puis d’ouvrir sa configuration avancée (l’icône “engrenage”) et là, vous allez voir une URL qui contient déjà tout ce qu’il faut en fonction du type et du sous-type de la commande.
Note
Il est possible pour le champs #ID# de passer plusieurs commandes d’un coup. Pour cela, il faut passer un tableau en json (ex %5B12,58,23%5D, à noter que [ et ] doivent être encodés d’où les %5B et %5D). Le retour de Jeedom sera un json.
Note
Les paramètres doivent être encodés pour les url, Vous pouvez utiliser un outil, ici.
J'aurais donc tendance à penser qu'il faut encoder les paramètres de l'URL avec l'outil en lien.
Edit 2 : la commande devient donc
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
merci de ton aide :-)
Hors ligne
Il y a donc des & entre chaque paramètre, et tu as mis un = entre les paramètre apikey et type Edit : le bon paramètre qui est type, et sa valeur cmd Edit : donc, en fait, c'est qu'il manque &type avant =cmd
Edit : pour t'aider au mieux, ça serait bien de mettre à chaque fois la commande curl que tu utilises par copié/collé afin de s'assurer de ce genre de problème, en masquant ta clé d'API et le domaine (évite les X, ça envoi sur des sites bizarres ) comme tu l'as fait plus haut.
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
Donc ça c'est l'url que me fourni jeedom (je ne l'ai pas encodé) si je l'ouvre sous Chrome ça fonctionne une page blanche s'affiche avec le texte "1" uniquement (Valeur de ma variable)
Si je change l'id en 3430 à la place de 3431 j'ai exactement le même résultat sous curl. par contre sous chrome une page blanche s'affiche avec le texte "Aucune commande correspondant à l'ID : 3430" ce qui est logique car aucune commande info n'existe sur jeedom.
Je pense que le lien est bon et qu'il ne faut l'encoder QUE si il y a plusieurs commandes or moi il n'y a qu'une seule commande la "3431"
si on doit encoder le lien on le fais à partir du "?" si oui avec curl j'ai le résultat "No such file or directory"
Merci :-)
Dernière modification par Joube31 (16-12-2020 06:01:05)
Hors ligne
Je pense que le lien est bon et qu'il ne faut l'encoder QUE si il y a plusieurs commandes or moi il n'y a qu'une seule commande la "3431"
Personellement, je lis 2 notes de suite, indépendantes l'une de l'autre, et la deuxième t'indique que les URL doivent de toute façon être encodées.
si on doit encoder le lien on le fais à partir du "?" si oui avec curl j'ai le résultat "No such file or directory"
De ce que je lis sur ce tuto, le paramètre inclue le ?. Maintenant, pourquoi ça ne fonctionne pas ???
De toute façon, ton problème se découpe en 3 étapes :
Récupérer la données via l'API Jeedom, et là c'est plus un problème de Jeedom que de bash (il y a peut-être des finesses avec curl, mais a priori avec une requête GET ça devrait passer)
Parser l'état de ton capteur, la manière de s'y prendre dépend du type de donnée, et de ce que je comprends tu pars sur du HTML (il y aurait moyen de récupérer du JSON-RPC si tu envois du JSON-RPC)
Lancer poweroff en fonction de cette donnée avec un test bash
Je pense qu'on peut facilement t'aider pour les étapes 2 et 3. Pour la 1, il faudrait peut-être voir sur le forum Jeedom ?
Je peux essayer d'en installer un en local pour faire des essais, mais pas avant ce week-end
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
On voit bien le "0" en début de deuxième ligne, si je passe l'info à 1 ça marche également.
J'ai essayé de faire quelques essais pour le test conditionnel mais ça ne fonctionne pas
1 Le résultat est toujours le même "Power ON" malgré que la variable passe bien à 0 et 1
2 Si je décommente la 3ème ligne le test if fonctionne bien et le résultat passe à "Power OFF"
Merci de ton aide :-)
Hors ligne
Hors ligne
et ça :
ce n’est pas compatible.
Cette forme de test est spécifique à Bash, et posera des soucis avec le shebang demandant l’interprétation par un shell respectant le standard POSIX.
---
Une proposition de correction de ce script :
Une alternative utilisant case plutôt que if :
Hors ligne
Voila le résultat de la commande curl:
Je ne vois pas le retour, du coup, on ne sait pas si ça renvoi du HTML
P.S. : je vais passer ça sur le forum programmation
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
En ligne