Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Exécution d'un code à l'aide d'un scénario

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
pabeu
Timide
Messages : 6
Inscription : 09 avr. 2018, 11:55
Contact :

Exécution d'un code à l'aide d'un scénario

Message par pabeu » 11 juil. 2018, 13:20

Hello cher tous,

Je voudrais savoir comment voir les logs du code php dans un bloc code d'un scénario.

En effet j'ai créé un scénario avec un bloc code
<?php
log::add('test','[debug]','Température: test 30 °C');
?>
J'ai créé le fichier test.log dans /var/www/html/log (-rwxrwxrwx 1 www-data www-data 0 Jul 11 10:58 test.log)

Mais j'ai pas les logs lors de l'exécution du scénario
------------------------------------
[2018-07-11 11:15:03][SCENARIO] Start : 'Scenario execute automatiquement sur programmation'.
[2018-07-11 11:15:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2018-07-11 11:15:03][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2018-07-11 11:15:03][SCENARIO] Exécution du sous-élément de type [action] : else
[2018-07-11 11:15:03][SCENARIO] Ajout de l'alerte : Ko
[2018-07-11 11:15:03][SCENARIO] Exécution d'un bloc élément : 37
[2018-07-11 11:15:03][SCENARIO] Exécution du sous-élément de type [action] : code
[2018-07-11 11:15:03][SCENARIO] Exécution d'un bloc code
[2018-07-11 11:15:03][SCENARIO] Fin correcte du scénario

Est ce que cette manière de faire est elle correcte ?

Merci pour l'aide

Cordialement

Avatar de l’utilisateur
kiboost
Actif
Messages : 1433
Inscription : 19 déc. 2017, 15:02
Localisation : France, Bretagne

Re: Exécution d'un code à l'aide d'un scénario

Message par kiboost » 11 juil. 2018, 13:48

Essaye çà : log::add('test','error','Température: test 30 °C');
Ce sera alors visible dans le log test, pas celui de ton scenario

Sinon echo 'bibi'; sera visible dans analyse, logs : scenario_execution

Mais à mon avis ce que tu cherche (écrire dans le log du scénario lui même) c'est çà :
$scenario->setLog('bibi');

Prod : Jeedom Stable sur Smart | Z-wave
Synology DS1512+|Rpis Kodi|Netatmo|SNIPS-Tips|Market
JeedomV4Tips

ksin
Timide
Messages : 86
Inscription : 22 mai 2017, 13:09
Localisation : Lyon

Re: Exécution d'un code à l'aide d'un scénario

Message par ksin » 27 juil. 2018, 16:12

Bonjour,

Je rebondis sur la question initiale: est-il possible d'écrire dans une log dédiée (pas la log du scenario) en exécutant un bloc code depuis un scenario ?
Si oui comment ?

Merci de vos retours
Jeedom 3.3.30 sur Debian 9.4
NUC7I5BNK avec ESXi 6.7

Zouritte74
Timide
Messages : 27
Inscription : 30 juil. 2016, 21:22

Re: Exécution d'un code à l'aide d'un scénario

Message par Zouritte74 » 23 mars 2019, 07:32

Bonjour,

Je reviens sur ce sujet, je suis aussi à la recherche d’uzne fonction qui me permet de DEBUG mon code php, avoir un log plus précis que:
« Exécution d’un bloc code » 

j’ai essayé:

$scenario->setLog(’bibi’); et n’ai rien trouvé dans le log scenario_execution

Auriez vous d’autre idée

Par avance, merci

Tim

befa
Timide
Messages : 1
Inscription : 04 août 2017, 10:34

Re: Exécution d'un code à l'aide d'un scénario

Message par befa » 17 avr. 2019, 13:00

Bonjour à tous,

J'ai eu pas mal de difficultés mais j'ai fini par y arriver, alors si ça peut aider les prochains qui tomberont sur ce fil, voici comment j'ai procédé :

  1. Tout d'abord veillez à avoir le bon niveau de Log par défaut dans votre configuration Jeedom
    Dans : Configuration > Logs > puis en bas onglet Log (à côté de Alertes)
    Réglez le niveau de log "minimal" que vous souhaitez voir apparaître dans "Niveau de log par défaut".
    Pour ma part il était réglé sur "Erreur", donc les logs "Info" et "Warning" ne passaient pas.
    Je l'ai donc réglé sur "Info"
  2. Ensuite créez un fichier log avec le nom de votre choix, on dira "monlog" dans /var/www/html/log
    Vous verrez ce log apparaître dans Analyse > Logs si ça a bien fonctionné
  3. Enfin dans votre scénario, utilisez le bloc code avec la syntaxe suivante :
    log::add("monlog","info","L'information que je veux logger");
    Attention! utilisez bien des " car la fonction attend des string, j'ai galéré sur ce point à cause du copier/coller de codes incorrects sur les forums :roll:
    Ajustez le niveau de log que vous voulez info/warning/error
Voilà, moi ça me permet de tenir un ou des logs pour surveiller certains modules, ouvertures/fermetures de portes par exemple.
J’espère que ça dépannera certains d'entre vous !

// befa

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

Re: Exécution d'un code à l'aide d'un scénario

Message par winhex » 20 avr. 2019, 13:12

Merci befa
Pièces jointes
Screenshot_20190525-130801_Chrome.jpg
Screenshot_20190525-130801_Chrome.jpg (125.34 Kio) Consulté 3088 fois

winhex
Actif
Messages : 3799
Inscription : 23 janv. 2015, 01:41

Re: Exécution d'un code à l'aide d'un scénario

Message par winhex » 28 août 2019, 00:37

un autre moyen log "app.log"

Code : Tout sélectionner

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;

$logger = new Logger('default');
$format = "[%datetime%] \n [%level_name%] %message% \n [Context %context% Extra %extra%]\n -----------\n";
$streamHandler = new StreamHandler(__DIR__.'/../../log/app.log', Logger::DEBUG);
$streamHandler->setFormatter(new LineFormatter($format, 'H:i:s'));
//$logger->addInfo('Hello log!');
$logger->pushHandler($streamHandler);

$someText ="test";
$declencheur=$scenario->getRealTrigger();
// extras
$logger->pushProcessor(function ($record) {
    $record['extra']['user'] = get_current_user();
    return $record;
});
$logger->critical('Could not connect to the database');
 $logger->info($someText, ['qui lance' => $declencheur]);
//$logger->info('$someText');
[INFO] test
[Context {"qui lance":"user"} Extra {"user":"www-data"}]
-----------
[00:33:38]
[CRITICAL] Could not connect to the database
[Context [] Extra {"user":"www-data"}]
-----------
[00:33:38]
[INFO] test
[Context {"qui lance":"user"} Extra {"user":"www-data"}]
-----------
création json ect
http://zetcode.com/php/monolog/

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 10 invités