Je cherche pouvoir récupérer tous les devices par défaut (pas besoin de faire de config lorsque j’ajoute ou je retire des devices) et leur état dans un virtuel par ex.
@Phpvarious a fourni un code pour la meme chose pour les items avec une batterie.
$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.
J’imagine qu’il est possible de faire la meme avec du zigbee.
Hello,
Je veut pas dire d’erreur mais le « Accessible » est, me semble t-il, ni plus ni moins la même chose que le timeout disponible sur la config de l’équipement, sauf que la, il est gérer par Z2M :
[2025-03-02 14:33:07][SCENARIO] -- Début : Scenario lance manuellement.
[2025-03-02 14:33:07][SCENARIO] - Exécution du sous-élément de type [action] : code
[2025-03-02 14:33:07][SCENARIO] Exécution d'un bloc code
[2025-03-02 14:33:07][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-03-02 14:33:07][SCENARIO] Changement de [Système][Batterie Warning][Warning] à 0
[2025-03-02 14:33:07][SCENARIO] - Exécution du sous-élément de type [action] : code
[2025-03-02 14:33:07][SCENARIO] Exécution d'un bloc code
[2025-03-02 14:33:07][SCENARIO] - Exécution du sous-élément de type [action] : action
[2025-03-02 14:33:07][SCENARIO] Changement de [Système][Device Warning][Device Warning] à 0
[2025-03-02 14:33:07][SCENARIO] Fin correcte du scénario
J’ai essayé avec un D majuscule mais idem, j’ai du raté qq chose
Il n’y a qu’en configurant correctement le timeout dans la configuration avancée de ton équipement, que le code pourra fonctionner.
Le bloc code ne va pas vérifier la valeur « Accessible » !
en effet je n’ai pas du comprendre.
Mon souhait est d’avoir une alerte sur mon design lorsqu’un device (ex un capteur deconz qui à encore de la batterie mais à perdu sa communication) ne communique plus.
Mais la de ce que je comprends c’est en se basant sur la batterie ?
Non c’est en se basant sur la date de la dernière communication (timeout).
comme j’ai dit, le core te permet déja de configurer ceci, et c’est grâce a cet configuration que le bloc code fonctionnera.
Il ne peut pas récupérer le « accessible » directement dans le plugin.
Mais existe t il un moyen que par défaut tous les devices deconz par ex ait la config de timeout pour la communication, cela évite a avoir à passer sur tous les devices ?
Dans le bloc code ? car actuellement le bloc code ressort une synthèse, donc si tu veut le nom du device c’est possible mais il peut y en avoir plusieurs en même temps, donc plusieurs nom de devices.
Ok mais comment tu veux que les équipements ressortent du bloc code ? un tag avec les équipements délimité par un caractère (ex : Eq1 | Eq2 ). Que veut-tu faire de cette info ?
Par contre je n’ai pas compris le if à la fin.
De ma compréhension il faut que je récupère $tags[‹ eqLogic ›] pour le mettre en variable et le mettre sur le design