Alimenter virtuel pour Warning Batterie

Hello,

Je cherche qq chose de simple mais je n’y arrive pas.
Je souhaite que par défaut pour tous les équipements qui ont une batterie (donc pas besoin de faire de la conf lorsque l’on supprime ou l’on ajoute des devices) avoir une alerte sur un virtuel binaire.

Ci dessous des alertes mais c’est uniquement de type messages, donc mail ou SMS ou autre.

Y a til une solution pour avoir une notif sur un virtuel posé dans un design ?

Merci

Bonjour,

C’est quoi l’intérêt du binaire ?

juste du visuel ?
dans ce cas, importe le niveau de batterie dans ton virtuel et met lui un wiget multistate.

A l’image de ce que je fais pour m’assurer que mes ESP sont en ligne :slight_smile:

image

tu peux donc dupliquer ce même widget, et l’adapter le code a une valeur numérique.

J’ai tenté, un virtuel en numérique

Mais je ne le trouve pas dans la liste

C’est normale, ton widget est pour un binaire, il peut donc être attribué qu’a un binaire.

Il faut donc

et donc le renommer en cmd.info.numeric.monwidgetWarning.html

Edit :

En faite en regardant tes captures, je ne comprend ce que tu veux faire !

moi je parlait d’avoir une commande virtuel qui duplique ta commande « batterie », et de faire un widget qui en fonction de la valeur, affiche ta pastille. Tu pourrais même éviter le virtuel et appliquer ce nouveau widget directement a ta commande « batterie »

Edit 2 :
Il est même possible dans un widget code de récupérer directement l’indiquation de commande en « warning » ou en « danger », ce qui s’simplifie le code. pas besoin de faire des Si > 20…

Edit 3 (Oui je sait, sa fait beaucoup d’edit :rofl:) :
En relisant ton post je vient de saisir ton besoin.
En faite tu veux une synthèse, donc dès qu’il y a un équipement en warning, une commande d’un virtuel passe a 1.
c’est bien ca ?

oui exactement c’est le edit 3 :slight_smile:

Car un virtuel en numérique et un widget en numérique ne permet pas de sélectionner le virtuel il n’apparait pas.

image

Non justement, le core accepte seulement une commande de type message sur les actions sur alertes.

Pour ton besoin, je pense qu’il faut passer par un scénario programmer, et un bloc code qui permet de scanner tous les équipement pour en sortir une synthèse, puis ensuite faire un event dans une commande d’un virtuel.

ok. par contre scanner tous les équipements veut dire les lister et donc modifier le scénario à chaque ajout ou retrait de device avec une batterie ?

Non le scénario serai basé sur un bloc code, donc il est autonome, et recherche dans la totalité des équipements recensés dans Jeedom.

top. faut que je regarde sur le forum un bout de code la dessus alors.

Tient, c’est tellement simple que je te le fourni :grin: :

$tags = $scenario->getTags(); // Récupère la liste des tags.
$eqLogicsAll = eqLogic::all();
$tags['alert'] = 0;
foreach ($eqLogicsAll as $eqLogic) {
  if ($eqLogic->getStatus('batterywarning', 0) != 0 || $eqLogic->getStatus('batterydanger', 0) != 0) {
    $tags['alert'] = 1;
    break;
  }
}
$scenario->setTags($tags); // Enregistre les tags.
2 « J'aime »

Le code met a dispo un tag (alert), le tag vaut 1 si il y a au moins une alerte batterie sur un équipement, 0 si tout est ok.
Te restera a faire ce que tu veux du tag de sortie, comme par exemple alimenter un virtuel en binaire :

merci @Phpvarious

En même temps je m’adresse à une pointure :slight_smile:
Je teste et je te redis

Merci

cela fonctionne. :blush:
Est ce qu’il existe la meme chose avec par ex s’assurer que tous les noeuds zigbee ou zwave ou bluetooth ou wifi sont joignables ?

sans doute, c’est des infos qui peuvent être stockés en cache par les plugins, mais j’ai aucun de ces plugins donc je ne peut t’aider.

Bonjour Phpvarious

Merci pour se bout de code
Je voudrais savoir si dans le tag récupérer on pourrais avoir le nom de l’équipement concerné

Merci pour le retour

Hello, non c’est une synthèse, donc si il y a au moins 1 équipement en alerte le tag passe a 1

Merci pour le retour

en piochant a droite et gauche sur le forum j’ai fait se bout de code qui fonctionne avec telegram

$cmdId = "977"; // remplacer par l'id de la commande notification souhaitée.(telegram)
$message = "Danger"; // non du titre

$cmd = cmd::byId($cmdId);

$eqLogics = eqLogic::all(TRUE);

$eqLogicsAll = eqLogic::all();

foreach ($eqLogicsAll as $eqLogic) {
  if ($eqLogic->getStatus('batterywarning', 0) != 0 || $eqLogic->getStatus('batterydanger', 0) != 0) {
    $eqLogicName = $eqLogic->getName();
    $message .= "\u{1F534} - <strong>" . $eqLogicName .'</strong>  batterie faible' ;
    break;
  }
}

//$message=str_replace("|","\n",$message);
$options = array('message'=> $message);
$cmd->execCmd($options);

Pour l’instant j’ai qu’un device en pile basse et il 'envois son état
Je vais attendre d’avoir un deuxième device en pile basse pour voir si sa m’envois la total