Page 1 sur 2

retrouver une commande depuis son ID

Publié : 13 nov. 2017, 06:59
par maisonclaire30
Bonjour à tous et merci par avance pour votre aide.
Dans mes scénarii, mes commandes sont remplacées par leur ID (par exemple, #123# se substitue à la commande d'origine). L'étude du log du scénario me montre une erreur d'exécution au niveau de cette commande.
Comment puis je retrouver l'intitulé de cette commande à partir de son ID?
Peut on paramétrer le texte des scénarii de façon à ce que le texte reste sous sa forme initiale de façon à ce que sa compréhension - et donc la recherche des erreurs dans les logs reste plus aisée?

Avec toute l'indulgence due à un vieux débutant.

Re: retrouver une commande depuis son ID

Publié : 13 nov. 2017, 07:06
par Fabrice
Bonjour,

Quand vous avez l'ID qui s'affiche sous la forme #1234#, c'est que vous avez supprimé la commande d'origine. Il faut alors aller la rechercher pour que l'ID disparaisse et laisse la place à l'équipement / commande / état, sous son nom usuel.

Re: retrouver une commande depuis son ID

Publié : 13 nov. 2017, 10:32
par maisonclaire30
Bonjour,
Merci pour la rapidité de votre réponse. Je me dois d'apporter une précision à la situation décrite: ce sont toutes les commandes de type "équipement/commande/état" qui ont été remplacées dans cette procédure, mais également dans d'autres scénarii. C'est pour celà que je demandais s'il était possible de paramétrer le texte des scénarii de façon à ce que le texte reste sous sa forme initiale. Je vais tester une nouvelle procédure pour voir si le problème se reproduit systématiquement.
D'autre part, la relecture de la documentation "scénario" m'a fait identifier une commande spécifique qui semble susceptible de me permettre de répondre à ce problème: il s'agit de cmd::byId($id). Pouvez vous me confirmer que je ne me trompe pas? Si c'est le cas, où faut-il écrire une telle commande dans JEEDOM (un plug-in spécifique? un éditeur?) pour obtenir la remontée de la commande d'origine.
En espérant ne pas abuser de cotre disponibilité, cordialement,
P. BERMON

Re: retrouver une commande depuis son ID

Publié : 13 nov. 2017, 15:30
par maisonclaire30
Je me réponds à moi même:
je viens de trouver ceci, qui semble répondre à mon problème.

Equipement

Voici l’URL = http://#IP_JEEDOM#/jeedom/core/api/jeeApi.php?apikey=#APIKEY#&type=eqLogic&object_id=#OBJECT_ID#

object_id : ID de l’objet dont on veut récupérer les équipements

Je rentre dans mon navigateur l'URL en remplaçant les tags par leurs valeurs. Je prends bien soin de donner l'OBJECT_ID d'un objet existant. Je reçois en réponse "file not found' !!!!!

WHY! WHY! WHY!

n.b.: je l'ai fait avec les ID de plusieurs objets dont je suis sur de l'existence!!!

retrouver une commande depuis son ID

Publié : 13 nov. 2017, 15:35
par floman321
Plus simplement :
dans un scenario, mettre une action puis #4585# et si après sauvegarde il se transforme en nom lisible c'est ok.

Re: retrouver une commande depuis son ID

Publié : 13 nov. 2017, 15:50
par maisonclaire30
Bonjour floman321,

je teste tout de suite, mais déjà, merci pour l'attention apportée à mon problème.

Re: retrouver une commande depuis son ID

Publié : 13 nov. 2017, 16:01
par maisonclaire30
CA MARCHE !!!! :D :D :D :D :o :o :o :o

C'est magique!!!!

Une petite explication sur ce que fait #4585# me rendrait béat d'admiration pour le restant de la soirée!! Mais d'ores et déjà, un grand merci.

;) ;)

Re: retrouver une commande depuis son ID

Publié : 14 nov. 2017, 11:07
par maisonclaire30
Bonjour à tous,

Episode suivant : tout d'abord, je confirme que la solution apportée par floman321 est pleinement opérationnelle.

Par contre, j'ai pu ainsi découvrir que plusieurs de mes commandes avaient disparues, ce qui donne raison à fabrice qui m'avait apporté une première réponse. De fait, j'ai pu vérifier que ces commandes existent toujours - en me référant à outil ---> résumé domotique --> * mais pas avec la même ID que celle que j'avais mise dans mes scénarii. Comment celà est-il possible?
Je vais donc réécrire les scénarii concernés.

Merci fabrice pour ton apport pris en compte après analyse plus approfondie de ma part.

Re: retrouver une commande depuis son ID

Publié : 05 mars 2018, 20:43
par sheep300
bonjour a tous en cherchant je suis tombé sur ce sujet.
je suis dans un cas legerement different pour une raison inconnu certain de mes equipement on sauté il ne reste dans mes scenario que de #xxx# y'a t'il un moyen de retrouver quel etait l'equipement qui avait cette id car moi je ne me souvient plus de quel equipement a sauté
merci par avance

Re: retrouver une commande depuis son ID

Publié : 22 janv. 2019, 09:28
par Loic74
Hello
Je déterre ce sujet, j'ai la même question que sheep300

Re: retrouver une commande depuis son ID

Publié : 22 janv. 2019, 09:35
par domoggvad
Bonjour
ça aurait était génial de retrouver tous les ID un peut du style domo widget lors de la récupération des équipements..

Re: retrouver une commande depuis son ID

Publié : 22 janv. 2019, 09:46
par Loic74
En fait j'ai deux besoins qui surviennent parfois (peut-être non réalisables):

1/ retrouver le nom d'une commande qui a été détruite via son ID #xxx#

2/ changer l'ID d'une commande par une autre ID. Par exemple, une commande a été détruite et je dois la recréer, elle va avoir un nouvel ID. Est-il possible de lui attribuer l'ancien ID de sorte que mes scénarios et scripts n'aient pas à tous être modifiés

Re: retrouver une commande depuis son ID

Publié : 22 janv. 2019, 10:26
par loic
Bonjour,
2) déja possible dans la configuration avancée des commandes
1) sera disponible en 3.3.X

Re: retrouver une commande depuis son ID

Publié : 22 janv. 2019, 10:56
par Jeandhom
viewtopic.php?f=132&t=31663&p=602454#p602454

Une solution en attendant la version 3.3.X

Re: retrouver une commande depuis son ID

Publié : 23 janv. 2019, 19:11
par MaisonClaireNimes
Super, merci LoÏc pour cette information et pour l'évolution envisagée. Je n'avais pas été capable de reproduire la solution proposée par floman321 qui avait pourtant marché une fois.

Re: retrouver une commande depuis son ID

Publié : 23 janv. 2019, 19:21
par kerdale
Perso pour éviter de se retrouver comme un gland quand on fait une supression hazardeuse je fait chaque jour au moment du backup une sauvegarde de toutes les commandes existantes avec leur libellé complet et leur ID numérique . Si dans l'analyse équipement, j'ai des commandes orphelines, je peux grace a ce backup journalier finir par retrouver ce qu'était cette cde orpheline .
Ca donne un fichier de ce style (extrait):

Code : Tout sélectionner

2350 : [Automatisme][IPX800_santé][Dernier refresh]
2351 : [Automatisme][IPX800_santé][Etat]
2352 : [Automatisme][IPX800_santé][All On]
2353 : [Automatisme][IPX800_santé][All Off]
2354 : [Automatisme][IPX800_santé][Reboot]
2355 : [Automatisme][IPXana1_T°Séjour][Brut]
2356 : [Automatisme][IPXana1_T°Séjour][Réel]
2357 : [Chambre droite][T°ChDrte_ipx][Brut]
2358 : [Chambre droite][T°ChDrte_ipx][Réel]
2359 : [Chambre RdC][T° Ch Rdc-ipx3][Brut]
2360 : [Chambre RdC][T° Ch Rdc-ipx3][Réel]

Re: retrouver une commande depuis son ID

Publié : 23 janv. 2019, 22:05
par Loic74
Bonjour,
2) déja possible dans la configuration avancée des commandes
1) sera disponible en 3.3.X
Super nouvelle pour le 1/ et pour le 2/ je ne vois pas comment cela fonctionne dans le cas où j'ai détruit la commande. Je vais dans quelle config avancée pour retrouver mes petits?
Perso pour éviter de se retrouver comme un gland quand on fait une supression hazardeuse je fait chaque jour au moment du backup une sauvegarde de toutes les commandes existantes avec leur libellé complet et leur ID numérique
Excellent. Tu fais cela via un script? Peux-tu m'en dire plus?

Re: retrouver une commande depuis son ID

Publié : 24 janv. 2019, 11:25
par kerdale
Je ne suis pas l'auteur du code. Je l'ai trouvé sur le fofo mais ou? Pas réussi à retrouver, mais je pense que c'était avant la bascule du fofo.
Donc à adapter pour le répertoire de stockage.
J'ai ce code en début d'un scénario à 03H30 (horaire avant le backup Jeedom à 03H45)
Une fois le code terminé, le scénario copie sur un serveur distant le fichier jeedomcmd.txt en changeant le nom pour l'horodater et le rendre unique.
(En fait j'utilise le gros disque disque de Kodi que je démarre si Kodi est off line au moment du backup, ce qui est généralement le cas: backup Id à 03H00 et backup Jeedom à 03H45)

Code : Tout sélectionner

$backupdir = '/var/www/html/zzzbackuperasecmd';
$backupfile = '/jeedomcmd.txt';
$cmdlistold = array();
$cmdlistnew = array();

if (!is_dir($backupdir)) {
  $scenario->setLog('Création du répertoire ' . $backupdir);
  mkdir($backupdir, 0775);
}
if (file_exists($backupdir . $backupfile)) {
  $scenario->setLog('Récupération de la liste dans ' . $backupdir . $backupfile);
  $jeedomcmd = fopen($backupdir . $backupfile, 'r');
  while (($buffer = fgets($jeedomcmd)) !== false) {
    $buffer = trim($buffer,"\n");
    $cmdlistold[] = $buffer;
  }
  fclose($jeedomcmd);
}

foreach(cmd::all() as $cmd) {
  $scenario->setLog('bdd ' . $cmd->getId() . ' : ' . $cmd->getHumanName());
  $cmdlistnew[] = $cmd->getId() . ' : ' . $cmd->getHumanName();
}

$cmdlistdiff = array_diff($cmdlistnew, $cmdlistold);
$cmdlistnew = array_merge($cmdlistold, $cmdlistdiff);
asort($cmdlistnew,SORT_NUMERIC);

$jeedomcmd = fopen($backupdir . $backupfile, 'w+');
foreach($cmdlistnew AS $ligne) {
  $scenario->setLog('bck ' . $ligne);
  fputs($jeedomcmd,$ligne."\n");
}
fclose($jeedomcmd);
avec:
$backupdir = '/var/www/html/zzzbackuperasecmd';
l'emplacement ou va etre stocker le fichier backupID
$backupfile = '/jeedomcmd.txt';
le nom du fichier backup.
Attention comme Il sera écrasé par le backupID suivant

Je le renomme avec un script

Code : Tout sélectionner

#!/bin/bash
DAY=$(date +%d)
MONTH=$(date +%m)
YEAR=$(date +%Y)
sudo cp /var/www/html/zzzbackuperasecmd/jeedomcmd.txt  /home/jeedom/jeedom/backup/jeedomcmd.txt  
sudo cp -a /home/jeedom/jeedom/backup/jeedomcmd.txt /home/jeedom/jeedom/backup/backupcdeJ100-$YEAR-$MONTH-$DAY.txt
sudo rm /home/jeedom/jeedom/backup/jeedomcmd.txt
sudo rm /var/www/html/zzzbackuperasecmd/jeedomcmd.txt
soit on le laisse sur le même disque que Jeedom ( :( !!, Pour ne pas me casser la tête, j'utilise le super plugin datatranfert de femsoft pour le poser sur le disque de kodi ou ailleurs ....

Re: retrouver une commande depuis son ID

Publié : 24 janv. 2019, 12:44
par Loic74
Merci Kerdale, je vais tester

Re: retrouver une commande depuis son ID

Publié : 24 janv. 2019, 13:55
par Jeandhom
Jeandhom a écrit :
22 janv. 2019, 10:56
viewtopic.php?f=132&t=31663&p=602454#p602454

Une solution en attendant la version 3.3.X
Le script original est là.