Bonjour,
Je cherche a recuperer la liste de mes scenarios (et leurs id) via un scenario (pour que cela soir dynamique)
J’arrive bien a faire la requete SQL avec adminer, et je souhaiterai obtenir le meme resultat dans un scenario.
Cela me permettrai d’interroger mon jeedom via sms ou pushbullet pour obtenir la liste des scenarios et les id, afin de pouvoir exectuer un id via l’API.
Est-ce possible ? En PHP sans doute via l’action code ? Mais comment recuperer le resultat afin que le scenario puisse me le retourner ?
volontairement je regroupe 2 lignes php pour une requete
je fixe une limite de 5 mais dans la requête tu peux avoir des variables php
se qui donne en scenario code
$sql = "SELECT id,name,isActive FROM `scenario` ";
// et
$sql = $sql."LIMIT 5";
$scenario->setLog("SQL = $sql");
$results = DB::Prepare($sql, NULL, DB::FETCH_TYPE_ALL);
foreach ($results as $result) {
$d_name = $result['name'];
$d_id = $result['id'];
$d_Active = $result['isActive']=1?"activer":"non-activer";
$scenario->setLog('le scenario portant le nom '.$d_name.' pour id : '.$d_id.' est '.$d_Active);
}
[2021-01-12 02:38:46][SCENARIO] Start : Scenario lance manuellement.
[2021-01-12 02:38:46][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-01-12 02:38:46][SCENARIO] Exécution d’un bloc code
[2021-01-12 02:38:46][SCENARIO] SQL = SELECT id,name,isActive FROM scenario LIMIT 5
[2021-01-12 02:38:46][SCENARIO] le scenario portant le nom Lever/Coucher Soleil pour id : 4 est activer
[2021-01-12 02:38:46][SCENARIO] le scenario portant le nom Lever pour id : 5 est activer
[2021-01-12 02:38:46][SCENARIO] le scenario portant le nom Coucher pour id : 6 est activer
[2021-01-12 02:38:46][SCENARIO] le scenario portant le nom Coucher +15 pour id : 12 est activer
[2021-01-12 02:38:46][SCENARIO] le scenario portant le nom Portes pour id : 13 est activer
[2021-01-12 02:38:46][SCENARIO] Fin correcte du scénario
mais @Mips à raison si tu peux te passer de cette façon de faire
j’avais envie de tester. « et voir »
pouquoi :
pour moi les cmd api jeedom utilise cette cmd db « base de données »
mais avec des sécurités. même si ce n’est que de la lecture de bdd.
Ce n’est pas l’api ça mais les classes du core.
Bien sûr le core fait des requêtes et cette classe est utilisée par les classes de la couche au dessus : scénario, cmd, eqlogic etc et ce sont ces classes que du code doit utiliser et pas directement la couche db.
Même dans les plugins n’en ont pas besoin pour toutes les tables du core.
Au top ! Merci de vos réponses a tous.
J’ai tenté l’API JSON. La commande scenario::all retourne bien tout je mettrai le formalisme car j’ai un petit peu galeré quand meme !
Reste a savoir comment je peux mettre ça en pratique, via le plugin script ? (Pour parser le resultat)