Code PHP pour balayer les variables Jeedom et en sélectionner certaines en fonction de leur nom

Bonjour

Pas informaticien, j’ai besoin d’aide …
Je me débrouille à peu près pour faire des scénarios basiques, mais là j’ai besoin de code PHP et là ça me dépasse

pour faire simple, je veux balayer toutes les variables Jeedom, en sélectionner certaines en fonction de leur nom (exemple : le nom contient ‹ abc ›) et ensuite mettre les valeurs de ces variables dans des tags de mon scénario

J’ai trouvé cette commande
$maVar = $scenario->getData(‹ <nom_variable> ›);
Mais je ne sais pas forcément explorer toute la collection de variables, faire les boucles, etc …

Merci d’avance pour votre aide

Michel

Salut.

Hum, est ce que tu peux détailler un peu pourquoi tu veux faire ça ?
Pourquoi passer par des tags si tes valeurs sont déja dans des variables ?

Bonsoir,
Voici un bloc code pour parcourir la liste des variables de scenario et écrire dans le log du scénario le nom de la variable et sa valeur.

$variables = dataStore::byTypeLinkId('scenario');
foreach($variables as $var) {
  $scenario->setLog("Variable: [" .$var->getKey() ."] Valeur: [" .$var->getValue() ."]");
}

Les variables sont stockées dans la table dataStore de la bdd.
Toutes les fonctions relatives aux variables sont dans le fichier core/class/dataStore.class.php

Sans programmer, les variables sont accessibles depuis le menu dans Outils → Variables

1 « J'aime »

Hello,

Je ne passerai pas forcément par des tags effectivement.
J’ai un autre scénario qui stocke des valeur de conso dans des variables qui ont toutes à peu près le même nom. Je veux les récupérer (celles là en fct de le nom et pas les autres variables jeedom, et je veux les trier en fct de leur valeur

Ce que vient de répondre @jpty m’aide bien et va me permettre d’avancer (peut-être pas jusqu’au bout mais c’est déjà très bien, merci à toi.

Pour menu Outils>Variables, je sais
Ce que je ne connais pas c’est dans quelles tables sont stockées les données …
Où as tu ces infos ?

Alors comment dire …

1 « J'aime »

Merci pour ce commentaire bien constructif … je sais à peu près lire
J’ai lu la réponse de @jpty puisque je l’avais déjà cité

et je le remercie encore pour son aide

Par ma remarque …

Ce que j’aimerais comprendre c’est comment on sait que les les variables sont dans dataStore, les équipements dans eqlogics je crois, et ainsi de suite…

J’avais vu un moment un lien vers la doc de l’API Jeedom mais le lien n’est plus valide, je pense que ça a changé

Ben désolé pour le commentaire « non constructif » mais clairement je n’avais pas compris que ta question était celle la …

Pour répondre pour ma partie, je ne suis pas dev (du moins pas déclaré tel quel chez jeedom) et je ne sais pas si des docs réservées aux devs existent.

Si je cherche une information assez précise, ça m’est déja arrivé d’aller dans le code de jeedom sur ma box pour trouver en fonction de l’écran sur lequel je trouve l’info sur l’ihm où et comment cette information est récupérée.

Cela dit clairement pour la BDD il n’y a que quelques tables avec des noms pas si exotiques que ça donc normalement on s’y retrouve assez naturellement.

Sans rancune, ma susceptibilité est certainement déplacée sur ce coup-là
Merci à toi aussi pour tes réponses