Skip to content

Commit

Permalink
add more info/action on jeedom monitor
Browse files Browse the repository at this point in the history
  • Loading branch information
zoic21 authored Aug 6, 2024
1 parent cc5c402 commit e751a7d
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 15 deletions.
97 changes: 83 additions & 14 deletions core/class/virtual.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public static function createJeedomMonitor(){
$eqLogic = new virtual();
$eqLogic->setName(__('Jeedom interne', __FILE__));
$eqLogic->setIsEnable(1);
$eqLogic->setConfiguration('autorefresh','*/10 * * * *');
}
$eqLogic->setEqType_name('virtual');
$eqLogic->setLogicalId('jeedom::monitor');
Expand All @@ -38,6 +39,77 @@ public static function createJeedomMonitor(){
$eqLogic->setName($eqLogic->getName() . ' remote ' . rand(0, 9999));
$eqLogic->save();
}

$cmd = $eqLogic->getCmd(null, 'jeedom::monitor::update::nb');
if (!is_object($cmd)) {
$cmd = new virtualCmd();
$cmd->setName(__('Nombre de mise à jour',__FILE__));
$cmd->setTemplate('mobile', 'line');
$cmd->setTemplate('dashboard', 'line');
}
$cmd->setConfiguration('infoName','jeedom::internal');
$cmd->setEqLogic_id($eqLogic->getId());
$cmd->setLogicalId('jeedom::monitor::update::nb');
$cmd->setType('info');
$cmd->setSubType('numeric');
$cmd->save();

$cmd = $eqLogic->getCmd(null, 'jeedom::monitor::message::nb');
if (!is_object($cmd)) {
$cmd = new virtualCmd();
$cmd->setName(__('Nombre de message',__FILE__));
$cmd->setTemplate('mobile', 'line');
$cmd->setTemplate('dashboard', 'line');
}
$cmd->setConfiguration('infoName','jeedom::internal');
$cmd->setEqLogic_id($eqLogic->getId());
$cmd->setLogicalId('jeedom::monitor::message::nb');
$cmd->setType('info');
$cmd->setSubType('numeric');
$cmd->save();

$cmd = $eqLogic->getCmd(null, 'jeedom::monitor::version');
if (!is_object($cmd)) {
$cmd = new virtualCmd();
$cmd->setName(__('Version',__FILE__));
$cmd->setTemplate('mobile', 'line');
$cmd->setTemplate('dashboard', 'line');
}
$cmd->setConfiguration('infoName','jeedom::internal');
$cmd->setEqLogic_id($eqLogic->getId());
$cmd->setLogicalId('jeedom::monitor::version');
$cmd->setType('info');
$cmd->setSubType('string');
$cmd->save();

$cmd = $eqLogic->getCmd(null, 'jeedom::monitor::update');
if (!is_object($cmd)) {
$cmd = new virtualCmd();
$cmd->setName(__('Mettre à jour',__FILE__));
$cmd->setTemplate('mobile', 'line');
$cmd->setTemplate('dashboard', 'line');
}
$cmd->setConfiguration('infoName','jeedom::internal');
$cmd->setEqLogic_id($eqLogic->getId());
$cmd->setLogicalId('jeedom::monitor::update');
$cmd->setType('action');
$cmd->setSubType('other');
$cmd->save();

$cmd = $eqLogic->getCmd(null, 'jeedom::monitor::backup');
if (!is_object($cmd)) {
$cmd = new virtualCmd();
$cmd->setName(__('Backuper',__FILE__));
$cmd->setTemplate('mobile', 'line');
$cmd->setTemplate('dashboard', 'line');
}
$cmd->setConfiguration('infoName','jeedom::internal');
$cmd->setEqLogic_id($eqLogic->getId());
$cmd->setLogicalId('jeedom::monitor::backup');
$cmd->setType('action');
$cmd->setSubType('other');
$cmd->save();

foreach (plugin::listPlugin(true) as $plugin) {
if ($plugin->getHasOwnDeamon() != 1) {
continue;
Expand Down Expand Up @@ -83,34 +155,25 @@ public static function createJeedomMonitor(){
$cmd->setSubType('other');
$cmd->save();
}
self::updateJeedomMonitor();
}

public static function updateJeedomMonitor(){
$eqLogic = self::byLogicalId('jeedom::monitor','virtual');
if(!is_object($eqLogic)){
return;
}
$eqLogic->checkAndUpdateCmd('jeedom::monitor::update::nb',update::nbNeedUpdate());
$eqLogic->checkAndUpdateCmd('jeedom::monitor::message::nb',message::nbMessage());
$eqLogic->checkAndUpdateCmd('jeedom::monitor::version',jeedom::version());
foreach (plugin::listPlugin(true) as $plugin) {
if ($plugin->getHasOwnDeamon() != 1) {
continue;
}
$cmd = $eqLogic->getCmd(null, 'jeedom::monitor::deamonState::' . $plugin->getId());
if (!is_object($cmd)) {
continue;
}
$info = $plugin->deamon_info();
if ($info['state'] == 'ok') {
$cmd->event(1);
} else {
$cmd->event(0);
}
$eqLogic->checkAndUpdateCmd('jeedom::monitor::deamonState::' . $plugin->getId(),($plugin->deamon_info()['state'] == 'ok'));
}
}

public static function cron10(){
self::updateJeedomMonitor();
}

public static function event() {
log::add('virtual', 'debug', json_encode($_GET));
if (init('id') != '') {
Expand Down Expand Up @@ -508,6 +571,12 @@ public function execute($_options = null) {
$plugin->deamon_stop();
}
}
if (strpos($this->getLogicalId(), 'update') !== false) {
jeedom::update();
}
if (strpos($this->getLogicalId(), 'backup') !== false) {
jeedom::backup(true);
}
virtual::updateJeedomMonitor();
return;
}
Expand Down
2 changes: 1 addition & 1 deletion docs/fr_FR/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
>
>S'il n'y a pas d'information sur la mise à jour, c'est que celle-ci concerne uniquement de la mise à jour de documentation, de traduction ou de texte.
- Ajout d'un bouton pour crée Jeedom monitor, c'est un équipement qui vous permet de récuperer des informations sur Jeedom (pour le moment que l'état des démons) et d'agir sur Jeedom (pour le moment seulement sur les démons). Les informations sont mises à jour toutes les 10min
- Ajout d'un bouton pour crée Jeedom monitor, c'est un équipement qui vous permet de récuperer des informations sur Jeedom et d'agir sur Jeedom.

# 08/01/2024

Expand Down
5 changes: 5 additions & 0 deletions docs/fr_FR/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ Bouton permettant de créer un équipement Jeedom internet qui vous donnera des
- pour chaque plugin ayant un démon une commande sur l'état du démon
- pour chaque plugin ayant un démon une commande pour démarrer le démon
- pour chaque plugin ayant un démon une commande pour arreter le démon
- nombre de mise a jour disponible
- nombre de message dans le centre des messages
- version de jeedom
- faire un backup
- lancer la mise a jour de Jeedom (et des plugins)


## Configuration des équipements
Expand Down

0 comments on commit e751a7d

Please sign in to comment.