Monitorer Equipement via scenario

Bonjour,

j’avance bien dans ma domotique et maintenant je m’attaque à la surveillance des équipements.
.
je souhaiterais controler les dates de communication de mes équipements plugin-z2m.

Ayant aucune connaissance en code , j’essay de faire trés simple et donc de ne pas utiliser de bloc code que je ne serai pas maintenir et aussi eviter d’utiliser un plugin d’un dev tiers(qui pourrais ne plus etre maintenu). loins de moi de critiquer , j’ai des plugin de dev hors jeedom mais ils sont trés actifs sur le community. mais la je bute.
je voudrais eviter au maximum de devoir creer des virtuel pour transformer la derniere communication en info binaire
alors j’ai trouvé ce sujet mais il n’est pas comme je le voudrais

il utilise les scénario => ok
il verifier la date de derniere communication => ok
mais je voudrais afficher que les warnings et surtout envoyer en notification les warning.

Le code :

$idleMax = new DateTime("1 day ago"); // Délai maximum toléré dernière communication
$tsIdleMax = $idleMax->getTimestamp();

// Fonction de tri des équipements basée sur la date de communication
function lastCommunication_sort ($a, $b) {
  if ($a["lastCommunication"] == $bl["lastCommunication"]) {
    return 0;
  }
  return ($a["lastCommunication"] < $b["lastCommunication"]) ? -1 : 1;
}

$eqList = array();
foreach (eqLogic::all() as $eqLogic) {
  // Récupération de tous les équipements z2m avec une date
  if (in_array($eqLogic->getEqType_name(), ["z2m"]) && $eqLogic->getStatus("lastCommunication")) {
    array_push($eqList, ["lastCommunication" => $eqLogic->getStatus("lastCommunication"), "eqLogic" => $eqLogic]);
  }
}
usort($eqList, "lastCommunication_sort");

foreach (array_values($eqList) as $item) {
  $eqLogic = $item["eqLogic"];
  $tsLastCommunication = strtotime($eqLogic->getStatus("lastCommunication"));
  $dateFR = date("d/m/Y \à H\hi", $tsLastCommunication);
  $messageLevel = $tsLastCommunication < $tsIdleMax ? "[WARNING]" : "[INFO]" ;
  $scenario->setLog("$messageLevel Dernière communication le $dateFR : ". $eqLogic->getHumanName());
}

le log resultat :

[2024-09-06 18:47:38][SCENARIO] -- Début : Scenario lance manuellement.
[2024-09-06 18:47:38][SCENARIO] - Exécution du sous-élément de type [action] : code
[2024-09-06 18:47:38][SCENARIO] Exécution d'un bloc code
[2024-09-06 18:47:38][SCENARIO] WARNING Dernière communication le 28/02/2024 à 23h13 : [CHAMBRE PARENT][Eclairage]
[2024-09-06 18:47:38][SCENARIO] WARNING Dernière communication le 28/02/2024 à 23h13 : [CHAMBRE 3][Eclairage]
[2024-09-06 18:47:38][SCENARIO] WARNING Dernière communication le 28/02/2024 à 23h13 : [CHAMBRE ARMAND][Eclairage]
[2024-09-06 18:47:38][SCENARIO] WARNING Dernière communication le 01/09/2024 à 06h25 : [SALON][Contact de fenêtre porte dentrée]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 17h46 : [CHAMBRE ARMAND][Bouton Lit]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 17h59 : [SALON][Contact de fenêtre Est Droite]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h02 : [WC][Contact de fenêtre]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h03 : [SALON][Contact de fenêtre Ouest droite]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h18 : [Cuisine][Contact de fenêtre Gauche]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h22 : [Cuisine][Contact de fenêtre Droite]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h44 : [SALLE DE BAIN][Volet Roulant]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h44 : [SALON][Contact de fenêtre Ouest Gauche]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h44 : [COULOIR ETAGE][Contact de fenêtre]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h44 : [2 Multimédia][Multiprise TV]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h46 : [SALLE DE BAIN][Contact de fenêtre Droite]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h46 : [CHAMBRE ARMAND][Contact de fenêtre]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h46 : [CHAMBRE PARENT][Volet roulant]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h46 : [CHAMBRE 3][Contact de fenètre]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h46 : [SALON][Eclairage]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [RPI Chauffage][Boost etage]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [SALON][Contact de fenêtre Est gauche]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [COULOIR ETAGE][Eclairage]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [SALON][PC Aspi Canapé]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [SALON][PC TV ASPI]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [Cuisine][Eclairage]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [2 Multimédia][Charge Tablette]
[2024-09-06 18:47:38][SCENARIO]  INFO  Dernière communication le 06/09/2024 à 18h47 : [RPI Chauffage][Arret PAC]
[2024-09-06 18:47:38][SCENARIO] Fin correcte du scénario

l’idée serais d’avour uniquement les warning dans les logs mais surtout les extraires vers une notification via un scénario.

ma page santé :

merci pour votre aide

Salut,

Alors j’ai pas encore essayé de comprendre mais je voulais déjà être sûr de la façon de faire…

Tu veux pas de bloc code mais il y a un bon gros bloc code juste après dans ton post.

J’ai pas tout compris :sweat_smile:

oui par ce que c’est la seul facon de faire que j’ai trouvé pour analyser et log les communications des mes équipements.
s’il y a différent je prends.

bonsoir,
Pourquoi ne pas utiliser le plugin-watchdog ?

effectivement j’y ai pensé mais sigalou a quitté jeedom et ne maintient plus ses plugins…
voila pourquoi j’avais marqué dans mon premier message

Si le but, comme je le comprends, c’est d’être alerté en cas de non communication d’un équipement c’est le genre de chose qui est natif à Jeedom

Utilisation des actions sur alertes dans la configuration + définition d’un timeout en minutes sur les équipements qui t’interesse.

Il y a un pas à pas sur cette page par exemple : https://blog.domadoo.fr/101056-alerte-defaillance-domotique-jeedom/

effectivement je n’avais pas percu, et ca fonctionne.
le seul Bemol j’aurais voulu customiser le texte mais bon je ne peux pas ,pour que ca soit un plus funky.

Plus Funky ?

« Oh purée, l’équipement qui gère l’éclairage de la chambre 3 n’a pas communiqué depuis plus de 1440 minutes !! Tu devrais le redémarrer, le secouer. Essai de changer les piles, sinon bha jette-le :frowning: »

Faut voir si tu attaches plus d’importance à un message funky mais basé sur un scénario en bloc code et autre joyeuseté qui pourraient ne plus fonctionner un jour ou avoir un message efficace basé sur une fonctionnalité du core et qui sera maintenue.

Enfin bon moi je disais ça surtout par rapport à ta 1ere remarque d’éviter le bloc code hein. J’utilise aussi des choses qui ne fonctionneront plus un jour :slight_smile:

1 « J'aime »

ahah il y a bien l’eclairage qui fonctionne mais suite à migration de zigbee à jeezigbee je n’ai pas finit :slight_smile:
mais je base sur ma domotique sur une régle : si je débranche jeedom ma maison doit fonctionner normalement…

je te remercie pour la solution. Cela réponds à 100% à ma demande.

La partie funky est surtout accessoire. si je ne peux pas l’'avoir ce n’est pas grave :wink:

merci pour ton aide

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.