Capturer la fin de relance zwave

J’ai fait des scenarios de relance de ma domotique après de longues coupures de courant, mais j’ai un bug avec le plugin zwave qui met des lustres à redémarrer son réseaux. Hors dans mon scenario de relance j’ai des commandes sur du chauffage et autres qui ont besoin de piloter des objets zwave. Jusqu’à aujourd’hui je mettais une tempo de 10 minutes mais ce matin suite à une coupure ou mon onduleur n’a pas tenu assez longtemps, les plugin open-zwave à mis près de 20 minutes à faire complètement son mappage… ratant mes commandes.
Ma question est: est-il possible d’intercepter la fin du mappage/démarrage zwave pour lancer un scenario ?

Bonjour,
il y a bien le déclencheur #start# mais c’est le redémarrage jeedom, je doute que ça prenne en compte le redémarrage de tous les plugins. A tenter quand même?
Sinon, la seule solution serait de tester un module (capteur , température, information…) jusqu’à ce qu’il réponde :slight_smile:

Effectivement le déclencheur #start# ne fonctionne pas pour ce cas, il arrive trop tôt.
Et pour tester un module, ce n’est pas non plus efficace, il monte bien le réseaux dans l’ordre des identifiants des modules (je pourrais donc tester sur le dernier) mais ne les termine pas forcément dans cet ordre…
Pour l’instant je continue avec une tempo…

J’ai aussi eu quelques déboires au démarrage d’une Jeedom dont le scénario de démarrage (#start#) ne s’exécutait pas complètement. Aussi, j’ai structuré celui-ci ainsi :

  1. Désactivation de toutes les tâches cycliques ou pouvant générer des commandes z-wave (par exemple un régulateur de température), ceci avec un script html (voir https://jeedom.github.io/core/fr_FR/api_http )
  2. Attente dans une boucle que l’état du z-wave (obtenu avec le plugin Jeedom Link) et l’état du réseau Ethernet (obtenu avec le plugin Networks) soient tous deux OK. Si OK, initialisation des variables et virtuels, initialisation des périphériques z-wave (commandes), relance des tâches désactivées, envoi d’un Telegram de notification et Stop pour quitter le scénario.
  3. En cas d’état NOK, on reboucle

Si le mappage du réseau z-wave est complexe, je pense qu’une attente supplémentaire soit la seule solution simple à mettre en oeuvre.

Merci pour ces indices, surtout Jeedom Link. Je vais regarder comment il fonctionne pour peut être y trouver ma solution.
Pour l’instant j’utilise un mode « Off », qui bloque tous mes scenario etc + une tempo, le temps que tout se relance.

Au passage j’ai remarqué que si je soigne et relance régulièrement le réseau Zwave, il met moins longtemps à démarrer.

En cherchant un peu mieux, j’ai trouvé ma réponse sur l’ancien forum : Récupérer l’état du Z-Wave par script

J’utilise un appel à l’API Zwave dans un bloc code de scenario, je regarde le résultat, si le résultat est inférieur à 7 (awake) je refais une boucle du scenario toute les minutes, je lui laisse 30 minutes, si toujours pas réveillé après ce temps, je renvoie une erreur.


Dans mon scenario de relance de ma domotique, je fais un Si sur ce scenario.

PS: le bloc code pour ceux qui veulent faire du copier/coller :slight_smile:

# Etat possible du réseau Z-Wave

# STATE_STOPPED = 0
# STATE_FAILED  = 1
# STATE_RESET   = 3
# STATE_STARTED = 5
# STATE_AWAKED  = 7
# STATE_READY   = 10
# source: https://forum.jeedom.com/viewtopic.php?t=26197#p568789
try {
  $apizwave = 'xxxx';
  $url = 'http://127.0.0.1:8083/network?type=info&info=getStatus&apikey='.$apizwave;
  $contents = file_get_contents($url);
  $contents = utf8_encode($contents);
  $results = json_decode($contents);
  if ($results->state == "ok") {
    $networkState = $results->result->state;
    $scenario->setData('ZWaveStatus', $networkState);
  }
} catch (Exception $e) {
  $scenario->setData('ZWaveStatus', -1);
}

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