Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

2/3 petits trucs

vins
Timide
Messages : 327
Inscription : 09 nov. 2014, 10:44

Re: 2/3 petits trucs

Message par vins » 09 janv. 2018, 13:24

Ahh Ok. Je suis sur téléphone avec application. Pas de soucis.
Je verrai cela dès que j'ai un peu de temps.
Merci
2 RPI jeedom : EcoDevices, RFXCom, Zwave, Enocean, PlcBus, squeeze, Kodi, SNMP, Camera, Présence, Alarme, Imperihome, Pushbullet,
Ipfire bananaPi : Routeur 3G/4G, Asterisk, SMB, print/scan, (Serveur mail)

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

Re: 2/3 petits trucs

Message par kiboost » 09 janv. 2018, 13:27

Oki

On peux aussi le modifier pour renseigner les équipements/scenarios par id. Une fois dans la fonction, on check si la variable est une string, si oui on récupère l'id comme maintenant sinon on passe direct à la suite. Dans scenarios/vue d'ensemble c'est rapide de tout récupérer.

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

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

Re: 2/3 petits trucs

Message par kiboost » 09 janv. 2018, 17:02

Bon et bien waf 1000 de mon coté :D :lol: :lol:

Comme d'autres semblent intéressés, voici une nouvelle version:
- Vous pouvez spécifier l'id pour équipement et scenario
Du coup, 2èm paramètre non obligatoire dans getScenarioActivity() pour le nom, sinon il marquera Scenario IDxx
- getScenarioActivity() renvoi les actions déclenchées par le scenario
- J'ai rajouté un peu d'aide en commentaire en tête du script

Exemple de retour:

Code : Tout sélectionner

2018-01-09 15:17:52 | Salle allumé
2018-01-09 15:17:52 | Canapé allumé
2018-01-09 15:17:52 | [Move Prises Salon] Sur evenement: [Salon][Move Salon][Presence]
                     ->[Salon][Prise Salle][On]
                     ->[Salon][Prise Canapé][On]
Le script

Code : Tout sélectionner

<?php
  
/*
JeeLog : General log for Jeedom !

Set it in plugin Script, as script / action
Set $delta as you like (default: 6h = 21600sec)

Set your call to getEqActivity and getScenarioActivity

Call it in a browser, mobile or not, via https://bibi.dns.jeedom.com/core/api/jeeApi.php?apikey=yourapikeyhere&type=cmd&id=xxx with last id being the one of the script action

||getEqActivity will generate log for equipment, example:
  by id: getEqActivity(381, 'Salon', 'move');
  by string: getEqActivity('#[Salon][Move Salon][Présence]#', 'Salon', 'move');

  second parameter will appear in log
  third parameter set the type of epuipment for better log formating:
    'move' for movement sensor, will report Presence
    'open' for opening sensor, will report opening / closing
      'light' for light or wall-plug, will report turn on / turn off

||getScenarioActivity will generate log for scenario, example:
  by id: getScenarioActivity(25, '[Smoke Detection]');
    by string: getScenarioActivity('#[Maison][Alarme][Smoke Detection]#');
    
    second parameter will appear in log. If ommited, S'cenario IDxx' will be used.

*/

include('/var/www/html/core/class/cmd.class.php');
include('/var/www/html/core/class/scenario.class.php');

$delta = 21600; //previous 6 hours, -21600sec

$timezone = 'Europe/Paris';
$var = new DateTime('NOW', new DateTimeZone($timezone));
$now = $var->format('Y-m-d H:i:s');
$from = $var->sub(new DateInterval('PT'.$delta.'S')); 
$from = $from->format('Y-m-d H:i:s');

echo '[', $from, ' -- ', $now, "]<br>";

$events = array(); //stock all events to sort them later by time

//get some equipment history:
getEqActivity(381, 'Salon', 'move');
getEqActivity('#[Studio][Open Studio][Ouverture]#', 'Studio', 'open');
getEqActivity('#[Salon][Prise Canapé][Etat]#', 'Canapé', 'light');

//get some scenarios history:

getScenarioActivity(47, '[Flood Detection]');
getScenarioActivity('#[Maison][Alarme][Smoke Detection]#');

//getScenarioActivity(40, '[Move Prises Salon]');

//========= INTERNAL SOUP, DO NOT TOUCH OR KNOW WHAT TO DO :-)

//sort all of them by time:
usort($events, 'date_compare');
$events = array_reverse($events);

//create full report:
$data = '';
foreach ($events as $event) {
    $data .= $event[0].' | '.$event[1]."<br>";
}

//return data:
echo $data;

//====functions
function getScenarioActivity($myScenario, $name=null) //scenario log parser
{
    global $from, $events;

    if ( is_string($myScenario) ) 
    {
        if ($name == null) $name = $myScenario;
        $myID = scenario::fromHumanReadable($myScenario);
        $myID = str_replace('#scenario', '', $myID);
        $myID = str_replace('#', '', $myID);
    }
    else $myID = $myScenario;
  
    if ($name == null) $name = 'Scenario ID'.$myID;
  
    //read scenario log:
    $logPath = '/var/www/html/log/scenarioLog/scenario'.$myID.'.log';
    if (!file_exists($logPath)) return;
    $file = fopen($logPath, 'r');
    $data = fread($file, filesize($logPath));
    fclose($file);

    $lines =  explode(PHP_EOL, $data);
    $lines = array_reverse($lines); //recent top
  
    //parse scenario log:
    $cmdCache = '';
    foreach($lines as $line)
    {
        if (stripos($line, 'Exécution de la commande') !== false)
        {
            $var = explode(' avec', $line)[0];
            $cmdCache .= "<br>".str_repeat('&nbsp;', 29).'->'.explode('de la commande ', $var)[1];
        }
      
        if (stripos($line, '------------------------------------') !== false) $cmdCache = '';
        
      
        //scenario as started:
        if (stripos($line, '[SCENARIO] Start :') !== false)
        {
            $var = explode(']', $line)[0];
            $date = ltrim($var, '[');
            if (strtotime($date) < strtotime($from)) return;
               
            $startedBy = '';
            if (stripos($line, 'sur programmation') !== false) $startedBy = ' | Programmation';
           
            if (stripos($line, 'Lancement provoque par le scenario') !== false)
            {
                $var = explode('par le scenario  : ', $line)[1];
                $var = explode("'.", $var)[0];
                $startedBy = ' Par scenario: '.$var;
            }
            else if (stripos($line, 'Lancement provoque') !== false) $startedBy = ' | Manuel';
          
            if (stripos($line, 'en mode synchrone') !== false) $startedBy = ' | Synchrone';
         
            if (stripos($line, 'automatiquement sur evenement') !== false)
            {
                $var = explode('evenement venant de : ', $line)[1];
                $var = explode("'.", $var)[0];
                $startedBy = ' Sur evenement: '.$var;
            }
            $data = $name.$startedBy;
            //echo '$cmdCache: ', $cmdCache, "<br>";
            if ($cmdCache != '') $data .= $cmdCache;
            array_push($events, array($date, $data));
        }
  }
}

function getEqActivity($command, $name, $type)
{
    global $from, $now, $events;
  
    if ( is_string($command) ) 
    {
    $cmdId = cmd::byString($command)->getId();
    }
    else $cmdId = $command;
    
    $result = history::all($cmdId, $from, $now);
    for ($i = 0; $i < count($result); $i++)
    {
        $value = $result[$i]->getValue();
        if ($type=='move')
        {
            if ($value >= 1) array_push($events, array($result[$i]->getDatetime(), 'Présence '.$name));
        }
        if ($type=='light')
        {
            if ($value >= 1) array_push($events, array($result[$i]->getDatetime(), $name.' allumé'));
            else array_push($events, array($result[$i]->getDatetime(), $name.' éteint'));
        }
        if ($type=='open')
        {
            if ($value >= 1) array_push($events, array($result[$i]->getDatetime(), 'Ouverture '.$name));
            else array_push($events, array($result[$i]->getDatetime(), 'Fermeture '.$name));
        }
    }
}

function date_compare($a, $b)
{
    $t1 = strtotime($a[0]);
    $t2 = strtotime($b[0]);
    return $t1 - $t2;
}
?>
Et peu-être qu'un jour on aura directement un onglet Log dans l'app mobile :mrgreen:

Jeedom powaaaaaaaaaaaaaaaaaa 8-)

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

Djal94
Actif
Messages : 1137
Inscription : 09 août 2016, 09:21

Re: 2/3 petits trucs

Message par Djal94 » 09 janv. 2018, 20:17

Salut, merci pour ton travail.
Une version Dashboard serait top :)
Jeedom 3.2.8 sur NUC Intel (Debian 8)
Zwave - BLEA - Wifi
Trucs et Astuces

Djal94
Actif
Messages : 1137
Inscription : 09 août 2016, 09:21

Re: 2/3 petits trucs

Message par Djal94 » 09 janv. 2018, 20:27

Petite remarque, si j'active la log pour une commande état (light), je ne vois apparaitre uniquement "Allumé", mais je n'ai pas de "Eteint". J'ai mal fais quoi? :)
Jeedom 3.2.8 sur NUC Intel (Debian 8)
Zwave - BLEA - Wifi
Trucs et Astuces

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

Re: 2/3 petits trucs

Message par kiboost » 09 janv. 2018, 20:32

Djal94 a écrit :
09 janv. 2018, 20:27
Petite remarque, si j'active la log pour une commande état (light), je ne vois apparaitre uniquement "Allumé", mais je n'ai pas de "Eteint". J'ai mal fais quoi? :)
En 'light' tu a les deux en effet, tu a vérifié dans l'historique de la commande qu'elle c'est bien teinte ?

Un log d'erreur ? script ou jeeevent ou http ?

çà marche nickel ici

Code : Tout sélectionner

2018-01-09 20:15:05 | Dressing éteint
2018-01-09 20:15:05 | Studio éteint

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

Djal94
Actif
Messages : 1137
Inscription : 09 août 2016, 09:21

Re: 2/3 petits trucs

Message par Djal94 » 09 janv. 2018, 20:48

Ah bah mieux que ca je vois qu'elle s'éteint de mes yeux, je n'ai pas d'erreur dans les logs :)
Jeedom 3.2.8 sur NUC Intel (Debian 8)
Zwave - BLEA - Wifi
Trucs et Astuces

Djal94
Actif
Messages : 1137
Inscription : 09 août 2016, 09:21

Re: 2/3 petits trucs

Message par Djal94 » 09 janv. 2018, 20:52

Ok c'est bon, c'est du au fait que l'historique est lissé, je l'ai purgé et je vois bien "éteint" maintenant.
Jeedom 3.2.8 sur NUC Intel (Debian 8)
Zwave - BLEA - Wifi
Trucs et Astuces

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

Re: 2/3 petits trucs

Message par kiboost » 09 janv. 2018, 21:28

Oui le lissage par défaut induit énormément d’erreur d’interprétation, au moins pour les nouveaux.

Cool si ça marche, à voir si certains veulent améliorer avec une interface pour entrer ce qu'on veux logger. Mais c'est déjà pas mal je pense 😉

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

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

Re: 2/3 petits trucs

Message par kiboost » 11 janv. 2018, 12:12

J'ai ajouté une option 'value' pour les équipements.

Ex:

avec getEqActivity('#[Salon][Volet Salle][Etat]#', '//Volet Salle', 'value');

2018-01-11 07:41:16 | //Volet Salle | Value: 99
2018-01-11 07:41:03 | //Volet Salle | Value: 0

J'ai aussi ajouté un filtre sur les valeurs car toutes mes commandes de prises et qubino relay apparaissaient en double (comme dans l'historique).

Je ferait peut-être un truc pour afficher les scenarios que si il a déclenché une action...

Code : Tout sélectionner

<?php
  
/*
JeeLog : General log for Jeedom !

Set it in plugin Script, as script / action
Set $delta as you like (default: 6h = 21600sec)

Set your call to getEqActivity and getScenarioActivity

Call it in a browser, mobile or not, via https://bibi.dns.jeedom.com/core/api/jeeApi.php?apikey=yourapikeyhere&type=cmd&id=xxx with last id being the one of the script action

||getEqActivity will generate log for equipment, example:
  by id: getEqActivity(381, 'Salon', 'move');
  by string: getEqActivity('#[Salon][Move Salon][Présence]#', 'Salon', 'move');

  second parameter will appear in log
  third parameter set the type of epuipment for better log formating:
    'move' for movement sensor, will report Presence
    'open' for opening sensor, will report opening / closing
    'light' for light or wall-plug, will report turn on / turn off
    'value' for non binary eq, will report the value

||getScenarioActivity will generate log for scenario, example:
  by id: getScenarioActivity(25, '[Smoke Detection]');
    by string: getScenarioActivity('#[Maison][Alarme][Smoke Detection]#');
    
    second parameter will appear in log. If ommited, S'cenario IDxx' will be used.

*/

include('/var/www/html/core/class/cmd.class.php');
include('/var/www/html/core/class/scenario.class.php');

$delta = 21600; //previous 6 hours, -21600sec

$timezone = 'Europe/Paris';
$var = new DateTime('NOW', new DateTimeZone($timezone));
$now = $var->format('Y-m-d H:i:s');
$from = $var->sub(new DateInterval('PT'.$delta.'S')); 
$from = $from->format('Y-m-d H:i:s');

echo '[', $from, ' -- ', $now, "]<br>";

$events = array(); //stock all events to sort them later by time

//get some equipment history:
getEqActivity(381, 'Salon', 'move');
getEqActivity('#[Studio][Open Studio][Ouverture]#', 'Studio', 'open');
getEqActivity('#[Salon][Prise Canapé][Etat]#', 'Canapé', 'light');
getEqActivity('#[Salon][Volet Salle][Etat]#', '//Volet Salle', 'value');

//get some scenarios history:
getScenarioActivity(47, '[Flood Detection]');
getScenarioActivity('#[Maison][Alarme][Smoke Detection]#');

//getScenarioActivity(40, '[Move Prises Salon]');

//========= INTERNAL SOUP, DO NOT TOUCH OR KNOW WHAT TO DO :-)

//sort all of them by time:
usort($events, 'date_compare');
$events = array_reverse($events);

//create full report:
$data = '';
foreach ($events as $event) {
    $data .= $event[0].' | '.$event[1]."<br>";
}

//return data:
echo $data;

//====functions
function getScenarioActivity($myScenario, $name=null) //scenario log parser
{
    global $from, $events;

    if ( is_string($myScenario) ) 
    {
        if ($name == null) $name = $myScenario;
        $myID = scenario::fromHumanReadable($myScenario);
        $myID = str_replace('#scenario', '', $myID);
        $myID = str_replace('#', '', $myID);
    }
    else $myID = $myScenario;
  
    if ($name == null) $name = 'Scenario ID'.$myID;
  
    //read scenario log:
    $logPath = '/var/www/html/log/scenarioLog/scenario'.$myID.'.log';
    if (!file_exists($logPath)) return;
    $file = fopen($logPath, 'r');
    $data = fread($file, filesize($logPath));
    fclose($file);

    $lines =  explode(PHP_EOL, $data);
    $lines = array_reverse($lines); //recent top
  
    //parse scenario log:
    $cmdCache = '';
    foreach($lines as $line)
    {
        if (stripos($line, 'Exécution de la commande') !== false)
        {
            $var = explode(' avec', $line)[0];
            $cmdCache .= "<br>".str_repeat('&nbsp;', 29).'->'.explode('de la commande ', $var)[1];
        }
      
        if (stripos($line, '------------------------------------') !== false) $cmdCache = '';
        
      
        //scenario as started:
        if (stripos($line, '[SCENARIO] Start :') !== false)
        {
            $var = explode(']', $line)[0];
            $date = ltrim($var, '[');
            if (strtotime($date) < strtotime($from)) return;
               
            $startedBy = '';
            if (stripos($line, 'sur programmation') !== false) $startedBy = ' | Programmation';
           
            if (stripos($line, 'Lancement provoque par le scenario') !== false)
            {
                $var = explode('par le scenario  : ', $line)[1];
                $var = explode("'.", $var)[0];
                $startedBy = ' Par scenario: '.$var;
            }
            else if (stripos($line, 'Lancement provoque') !== false) $startedBy = ' | Manuel';
          
            if (stripos($line, 'en mode synchrone') !== false) $startedBy = ' | Synchrone';
         
            if (stripos($line, 'automatiquement sur evenement') !== false)
            {
                $var = explode('evenement venant de : ', $line)[1];
                $var = explode("'.", $var)[0];
                $startedBy = ' Sur evenement: '.$var;
            }
            $data = $name.$startedBy;
            //echo '$cmdCache: ', $cmdCache, "<br>";
            if ($cmdCache != '') $data .= $cmdCache;
            array_push($events, array($date, $data));
        }
  }
}

function getEqActivity($command, $name, $type)
{
    global $from, $now, $events;
  
    if ( is_string($command) ) 
    {
    $cmdId = cmd::byString($command)->getId();
    }
    else $cmdId = $command;
    
    $result = history::all($cmdId, $from, $now);
  	$prevDate = $from;
  	$prevValue = null;
    for ($i = 0; $i < count($result); $i++)
    {
        $value = $result[$i]->getValue();
      	$date = $result[$i]->getDatetime();
      	
        if ($type=='move')
        {
            if ($value >= 1) array_push($events, array($date, 'Présence '.$name));
        }
        if ($type=='light')
        {
          	//Don't report duplicated values 1 or 2 sec after
        	if ((strtotime($date) <= strtotime($prevDate)+60) and ($prevValue == $value)) continue;
            if ($value >= 1) array_push($events, array($date, $name.' allumé'));
            else array_push($events, array($date, $name.' éteint'));
        }
        if ($type=='open')
        {
            if ($value >= 1) array_push($events, array($date, 'Ouverture '.$name));
            else array_push($events, array($date, 'Fermeture '.$name));
        }
      	if ($type=='value')
        {
            array_push($events, array($date, $name.' | Value: '.$value));
        }
      	$prevDate = $date;
      	$prevValue = $value;
    }
}

function date_compare($a, $b)
{
    $t1 = strtotime($a[0]);
    $t2 = strtotime($b[0]);
    return $t1 - $t2;
}
?>

;)

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

Djal94
Actif
Messages : 1137
Inscription : 09 août 2016, 09:21

Re: 2/3 petits trucs

Message par Djal94 » 11 janv. 2018, 13:39

Cool pour l'option Value.

C'est dur a faire de l'afficher sur le dashboard?, j'y arrive pas...
Jeedom 3.2.8 sur NUC Intel (Debian 8)
Zwave - BLEA - Wifi
Trucs et Astuces

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

Re: 2/3 petits trucs

Message par kiboost » 11 janv. 2018, 14:51

Djal94 a écrit :
11 janv. 2018, 13:39
Cool pour l'option Value.

C'est dur a faire de l'afficher sur le dashboard?, j'y arrive pas...

çà fait même pas 15j que je suis passé sous Jeedom donc là je vois pas trop.

Le top serait d'en faire un plugin, avec liste de ce qu'on veux logger. Il pourrait faite un fichier json qui serve de cache (qu'on peux reseter si on rajoute des choses dedans), pour ne pas recalculer toujours les 6h si pas besoin. Et du coup on pourrait je pense designer une tuile avec une zone de scroll et le fichier json dedans. Et un petit bouton refresh manuel. On pourrait aussi directement choisir la durée (6h dans le script), quitte à le lancer par cron une fois dans la nuit pour construire une partie du cache et ainsi alléger les autres appels dans la journée.

Mais pas encore assez de connaissance des entrailles de Jeedom de mon coté :?

Je regarderai du coté dev de plugin, j'ai d'autres idées donc why not, mais j'ai déjà une vie bien remplit :D

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

Avatar de l’utilisateur
tomdom
Actif
Messages : 542
Inscription : 14 nov. 2016, 05:46

Re: 2/3 petits trucs

Message par tomdom » 12 janv. 2018, 06:36

Bonjour,
kiboost a écrit :
11 janv. 2018, 14:51
Le top serait d'en faire un plugin, avec liste de ce qu'on veux logger. Il pourrait faite un fichier json qui serve de cache
Comme la timeline ;) Le fichier json se trouve dans JEEDOM_HOME/data/ ou il y a la méthode jeedom::getTimelineEvent()
Il y a 10 catégories de personnes, celles qui connaissent le binaire et les autres
.

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

Re: 2/3 petits trucs

Message par kiboost » 12 janv. 2018, 07:46

A l'occasion j'ai un rpi3 sur lequel je mettrai un jeedom pour tester des devs de plugins.
A moins qu'il y est une image docker pour syno toute faites mais pas trouvé.

Sinon pour info le script remonte aussi les changements du plugin mode, en Value il sort la string du nouveau mode.

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

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

Re: 2/3 petits trucs

Message par kiboost » 13 janv. 2018, 17:54

Pour info, on peux l'afficher sur le dashboard, avec refresh fonctionnel !

- Faut changer le script pour qu'il mette le log dans une variable (l'appel par url marchera toujours)

Code : Tout sélectionner

scenario::setData('JeeLog', $data);

//return data:
echo $data;
- Créez un virtuel avec une commande info, avec comme valeur cette variable

- Ensuite dans la configuration de la commande, Code, ajoutez ce css pour le dashboard et mobile, sur la première ligne (pour la div donc)

Code : Tout sélectionner

style="display: block;overflow: auto; height:250px; font-size:0.9em;line-height: 0.9em;text-align:left !important;"
Pour l'adapter à votre dashboard, changer le height:250px si besoin

- Si vous voulez que le bouton rafraichir mette à jour le log: Dans configuration avancée (du virtuel), commande parent/virtuel/rafraichir, Configuration, ajoutez une action avant exécution de la commande et mettre #[votre script][nom de votre commande]#

Y'a tout pour faire un truc pas mal en fait...
J'ai installé un jeedom de test sur mon syno pour pouvoir jouer sans casser la baraque :lol: :roll:

JeeLog.jpg
JeeLog.jpg (69.16 Kio) Consulté 502 fois

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

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

Re: 2/3 petits trucs

Message par kiboost » 28 avr. 2018, 21:48

Comme l'histoire avait commencé ici et que j'ai enfin trouvé un peu de temps pour en faire un plugin... ;)

viewtopic.php?f=144&t=35997

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

Avatar de l’utilisateur
Jeandhom
Actif
Messages : 558
Inscription : 20 oct. 2015, 17:32

Re: 2/3 petits trucs

Message par Jeandhom » 02 mai 2018, 16:28

Je n'avais pas vu ce sujet, la genèse de JeeLog...

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

Re: 2/3 petits trucs

Message par kiboost » 10 mai 2018, 15:28

Jeandhom a écrit :
02 mai 2018, 16:28
Je n'avais pas vu ce sujet, la genèse de JeeLog...

Exactement :lol: :lol:

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

lcn
Timide
Messages : 25
Inscription : 26 déc. 2017, 12:14

Re: 2/3 petits trucs

Message par lcn » 11 mai 2018, 00:01

Le plug-in Jeelog est vraiment très utile , il répond parfaitement à mes besoin. Merci de l'avoir conçu !

Il est idéal pour visualiser l'état d'ouvertures de portes.

Est ce que le cron pour les refresh sont très consommateurs de ressources, surtout si on a plusieurs Jeelog à rafraichir, je n'ose pas positionner les refreshes toutes les minutes de peur de trop charger le raspberry ...

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

Re: 2/3 petits trucs

Message par kiboost » 13 mai 2018, 18:16

Demande plutôt sur le sujet du plugin, ici c'est un vieux sujet qui a abouti sur un script, qui m'a effectivement servit de prototype pour le plugin JeeLog

viewtopic.php?f=144&t=35997

Sinon, non, ce n'est pas gourmand en performance.
Mais des crons toutes les minutes j'évite et je n'en ai pas, par principe. Surtout que tu ne sera pas en permanence devant ton log a attendre les refresh, d'où le bouton refresh pour rafraichir manuellement quand on a besoin.

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

Répondre

Revenir vers « Suggestions pour le Core »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité