Page 5 sur 6

Re: Script Vérification Modules ZWave

Publié : 01 déc. 2017, 20:49
par Bonson
+1 :-)

Re: Script Vérification Modules ZWave

Publié : 28 janv. 2018, 17:54
par spark
Bonsoir, je ressort ce sujet pour savoir si quelqu'un a réussit a obtenir un script pour suivre l’état du réseau Zwave?

Re: Script Vérification Modules ZWave

Publié : 29 janv. 2018, 00:21
par Shyrka973
Salut,
Si tu cherche un script pour connaître l’état du réseau ZWave, j’ai refait mon premier script pour le moteur ZWave actuel.
Recherche mes posts pour le trouver. Avec Tapatalk, je ne vais pas pouvoir le retrouver facilement.

Tiens moi au courant s’il fonctionne pour toi.


Envoyé de mon iPhone en utilisant Tapatalk

Re: Script Vérification Modules ZWave

Publié : 29 janv. 2018, 09:49
par extrapitou
Trouvé : viewtopic.php?t=26197

Envoyé depuis mon Mobicarte (Si Si jvous jure !!!)


Re: Script Vérification Modules ZWave

Publié : 25 août 2018, 23:39
par AleiZ
J'ai mis le script mais j'ai l'erreur suivante:

Résultat de la commande : PHP Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/script/core/ressources/zwaveHealth.php on line 99
0 modules HS:

Vous connaissez ?

Re: Script Vérification Modules ZWave

Publié : 26 août 2018, 09:56
par lguezennec
Bonjour,

Tu trouveras peut-être une explication dans le billet suivant https://nechry-automation.ch/2018/06/07/api-restful/, mais surtout une solution alternative détaillée pour ton besoin (et d'autres).

Re: Script Vérification Modules ZWave

Publié : 26 août 2018, 12:02
par AleiZ
Je pense que je vais regarder et coder un truc qui colle avec mon besoin :)

Re: Script Vérification Modules ZWave

Publié : 08 juil. 2019, 23:19
par cybersquat
Bonsoir à tous,

je réveil le sujet :), je suis débutant et j'ai testé l'ensemble de la configuration comme précisé en page une, mais je n'ai rien, y a t-il un exemple à faire ?

Merci de votre aide
AL

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 02:04
par winhex
bonjour j'ai repris un script (de mémoire de @nechry)
vérifie le port du serveur dans la config zwave
ta clef api dans configuration
et l'accés api activé

Code : Tout sélectionner

// Setup
// Jeedom configuration/API/Clef API Z-Wave
$apizwave = 'xxxxx';
// End Setup

$url_health = 'http://localhost:8085/network?type=info&info=getHealth&apikey=' . $apizwave;
$content = (file_get_contents($url_health));
$scenario->setLog($content);
$results = json_decode($content, true);
$success = $results["state"];
if ($success != 'ok') {
    $scenario->setLog('ZAPI network getHealth return an error: ' . $results["result"]);
} else {
    // get the full node list
    $devices = $results["result"]["devices"];
    $node_errors = array();
    foreach ($devices as $node_id => $node_values) {
      
      
                $scenario->setLog($node_id);
        $isFailed = $node_values["data"]["isFailed"]["value"];
        // device can be disabled from jeedom
        $enabled = $node_values["data"]["is_enable"]["value"];
      
        if ($enabled & $isFailed) {
            if (count($node_errors) == 0) {
                $scenario->setLog('****** These nodes are presumed dead ******');
            }
            // get the name of the device
            $node_name = $node_values["data"]["description"]["name"];

            // add a log entry
            $scenario->setLog('NodeId ' . $node_id . ' ' . $node_name);
            // add nodeId to the node list
            $node_errors[] = $node_id;
        }
    }
    if (count($node_errors) != 0) {
        $scenario->setLog('*******************************************');
    }
    // save nodes list for external processing
    $scenario->setData("ZWave_Nodes_Death", implode(',', $node_errors));
}
dans le log au lancement tu dois avoir
[2019-07-14 01:57:01][SCENARIO] Start : Scenario lance manuellement.
[2019-07-14 01:57:01][SCENARIO] Exécution du sous-élément de type [action] : code
[2019-07-14 01:57:01][SCENARIO] Exécution d'un bloc code
[2019-07-14 01:57:02][SCENARIO] {"state": "ok", ...........
[2019-07-14 01:57:02][SCENARIO] 64
[2019-07-14 01:57:02][SCENARIO] 1
[2019-07-14 01:57:02][SCENARIO] 67
[2019-07-14 01:57:02][SCENARIO] 69
[2019-07-14 01:57:02][SCENARIO] 9
[2019-07-14 01:57:02][SCENARIO] 10
[2019-07-14 01:57:02][SCENARIO] ****** These nodes are presumed dead ******
[2019-07-14 01:57:02][SCENARIO] NodeId 10 10FGS-212 Simple Charge Telerupteur
[2019-07-14 01:57:02][SCENARIO] 11
[2019-07-14 01:57:02][SCENARIO] 76
[2019-07-14 01:57:02][SCENARIO] 47
[2019-07-14 01:57:02][SCENARIO] 48
[2019-07-14 01:57:02][SCENARIO] 49
[2019-07-14 01:57:02][SCENARIO] 50
[2019-07-14 01:57:02][SCENARIO] 52
[2019-07-14 01:57:02][SCENARIO] 54
[2019-07-14 01:57:02][SCENARIO] 55
[2019-07-14 01:57:02][SCENARIO] 42
[2019-07-14 01:57:02][SCENARIO] 62
[2019-07-14 01:57:02][SCENARIO] *******************************************
et une variable ZWave_Nodes_Death avec l'id de module death soit 10 pour moi

il y a aussi un script pour les
"Modules de batterie qui ne se sont pas réveillés comme prévu"

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 09:09
par Antoinekl1

winhex a écrit :bonjour j'ai repris un script (de mémoire de @nechry)

il y a aussi un script pour les
"Modules de batterie qui ne se sont pas réveillés comme prévu"
Ça m'intéresse ce script, j'ai un soucis avec 2 capteurs de niveau d'eau

Tu sais où je pourrais le trouver

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 12:08
par winhex
sur son site
https://nechry-automation.ch/2018/06/07/api-restful/
pour ton info il est un des anciens createurs/participant du plug

je lui ai signalé que son site bug
en attendant

Code : Tout sélectionner

// Setup
// Jeedom configuration/API/Clef API Z-Wave
$apizwave = 'Xxx';
// End Setup

$time_now = time();
$url_health = 'http://localhost:8085/network?type=info&info=getHealth&apikey=' . $apizwave;
$content = (file_get_contents($url_health));
//$scenario->setLog($content);
$results = json_decode($content, true);
$success = $results["state"];

if ($success != 'ok') {
    $scenario->setLog('ZAPI network getHealth return an error: ' . $results["result"]);
} else {
    // get the full node list
    $devices = $results["result"]["devices"];
    $node_errors = array();
    foreach ($devices as $node_id => $node_values) {
        // listening devices work on sector
        $isListening = $node_values["data"]["isListening"]["value"];
        // device can be disabled from jeedom
        $enabled = $node_values["data"]["is_enable"]["value"];
        // test only if node is enable and is battery powered
        if ($enabled & $isListening == 0) {
            // get the wake up interval
            $wakeup_interval = $node_values["data"]["wakeup_interval"]["value"];
            if ($wakeup_interval == 0) {
                // this device never wakeup by itself, continue
                continue;
            }
            // check last notification received for this node
            $next_wakeup = $node_values["data"]["wakeup_interval"]["next_wakeup"];
            // check if node didn't wakeup as expected.
            if ($next_wakeup < $time_now) {
                // special case if the device is currently mark as awake
                $isAwake = $node_values["data"]["isAwake"]["value"];
                if ($isAwake) {
                    $last_notification = $node_values["last_notification"]["receiveTime"]["value"];
                    // check if the node has been awake for more than 5 minutes
                    if ($last_notification + 300 < $time_now) {
                        // this node seems awake for too long, we're going to ping
                        $url = 'http://localhost:8085/node?node_id=' . $node_id . '&type=action&action=testNode&apikey=' . $apizwave;
                        file_get_contents($url);
                        continue;
                    }
                }
                if (count($node_errors) == 0) {
                    $scenario->setLog('****** Battery modules that have not woken up as expected ******');
                }
                // get the name of the device
                $node_name = $node_values["data"]["description"]["name"];
                // add a log entry
                $scenario->setLog('NodeId ' . $node_id . ' ' . $node_name);
                // add nodeId to the node list
                $node_errors[] = $node_id;
            }
        }
    }
    if (count($node_errors) != 0) {
        $scenario->setLog('****************************************************************');
    }
    // save nodes list for external processing
    $scenario->setData("ZWave_Nodes_Wakeup_Error", implode(',', $node_errors));
}
idem que l autres script
avec sa variable de créé
en plus ça tente un réveil

c'est lié au wakeup
hier jen avait 2
aujourd'hui un autre
mais ça n'a rien à voir avec la dernière remonté d info

si tu decommentes
setlog content
tu lances le scénario
tu mets en pause le log
tu récupères cette ligne dans un fichier texte
tu as tous se qu'il faut pour récupérer un tas d info (a la sauce json)
je my suis amusé hier pour une dernière remonté mais l api jeedom (lastCommunication) est plus fiable pour un de mes modules. bizarreries !
exemple

Code : Tout sélectionner

// a voir https://jeedom-facile.fr/index.php/2018/12/18/la-surveillance-de-vos-equipements-domotiques/
// https://www.jeedom.com/forum/viewtopic.php?f=32&t=37319&p=617174&hilit=eqLogic%3A%3AbyString#p617174
$equipements = array(                   
"#[Zwave][Universal Relay Hotte Escamotable][Etat 1]#",                    
"#[Zwave][Universal Relay Sonnette Chaudieres][Sonnette]#",
"#[Zwave][Built In Dimmer VMC][Etat]#"

);
$maintenant = (new DateTime(date("Y-m-d H:i:s")));
$valeurfin = ($maintenant->format('Y-m-d H:i:s'));
$valeurfin2 = ($maintenant->getTimestamp());

$scenario->setLog("maintenant : $valeurfin timestamp : $valeurfin2");

foreach ($equipements as $equipement) {
	$cmd = cmd::byString($equipement);
	$idEquipt = $cmd->getEqLogic_id();

	$equipt=eqLogic::byId($idEquipt);
  
	$nomEquipement = $equipt->getName();
	$valeurdbt= $equipt->getStatus('lastCommunication');
  
// 1er methode différence delta
	$delta = gmdate("H:i:s",strtotime($valeurfin) - strtotime($valeurdbt));
  
// 2eme methode difference timestamp
  	$temp_difftime = ($valeurfin2 - (new DateTime($valeurdbt))->getTimestamp());
  	$scenario->setLog("-----------------------------------------------------");
	$scenario->setLog("Nom du device : $nomEquipement id : $idEquipt");
	$scenario->setLog("dernière communication : $valeurdbt différence : $delta secondes : $temp_difftime");
  $scenario->setData($nomEquipement."_LastCom", $temp_difftime);
  }
bonne lecture
https://nechry-automation.ch/2017/08/14 ... -partie-3/

il a mis ses script sur github
https://github.com/nechry/ZWave-RESTfull-API-samples

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 13:01
par Antoinekl1
Super je vais regarder ça

J'ai des soucis avec 2 modules de niveau d'eau aeotec dsb45 qui remontent mal leur etat

Ces scripts tu les mets bien dans un fichier en extension php et tu ajoutes les balises PHP de début et fin ?

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 15:04
par winhex
je préfère la fonction
scenario code (log, classement, ...)

sinon à faire l'apel api

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 20:42
par Antoinekl1
winhex a écrit :
14 juil. 2019, 15:04
je préfère la fonction
scenario code (log, classement, ...)

sinon à faire l'apel api
Oui c'est mieux en effet

Par contre ca me donne pas plus d'info que ce que me donne le plugin zwave de base
Et ça ne éveil pas plus mes 2 modules aeotec de m....

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 21:33
par winhex
this node seems awake for too long, we're going to ping
je ne peux pas faire plus
--
c'est pour scénarisé, en prenant en compte voir en faisant une info t'avisant d'un soucis.
si c'est pas fiable passe à un autre modèle, ou change de protocole
soit tu recycles pour un autre besoin ou tu revends. la porté est peut être trop loin

Re: Script Vérification Modules ZWave

Publié : 14 juil. 2019, 21:51
par Antoinekl1
winhex a écrit :
14 juil. 2019, 21:33
this node seems awake for too long, we're going to ping
je ne peux pas faire plus
--
c'est pour scénarisé, en prenant en compte voir en faisant une info t'avisant d'un soucis.
si c'est pas fiable passe à un autre modèle, ou change de protocole
soit tu recycles pour un autre besoin ou tu revends. la porté est peut être trop loin
Autre protocole, je préférais pas
Autre modèle, pourquoi pas mais je n'ai pas trouvé un autre modèle pour savoir qu'il n'y a plus d'eau au fond d'une cuve ou au fond du bassin
Je me tâte pour mettre un répéteur car même si quand je fais !es tests a proximité de ma boxe, puis une fois sur place, cela fonctionne bien mais au bout d'un moment, il ne se réveil plus et ne semble plus donner signe de vie

Re: Script Vérification Modules ZWave

Publié : 15 juil. 2019, 01:48
par winhex
un flotteur
dans un tube pvc ouvert
à fixer au fond
et de la gaine
pour manipulation, fixer,..
exemple
https://www.amazon.fr/gp/product/B00AZE ... ailpages00

après voir les spécificités
appaareamant courant 12v ou libre de potentiel , ...
donc un tas de possibilités
exemple un universel fibaro ou FGBS Smart tu peux en mettre 2

Re: Script Vérification Modules ZWave

Publié : 15 juil. 2019, 09:04
par Antoinekl1
winhex a écrit :
15 juil. 2019, 01:48
un flotteur
dans un tube pvc ouvert
à fixer au fond
et de la gaine
pour manipulation, fixer,..
exemple
https://www.amazon.fr/gp/product/B00AZE ... ailpages00

après voir les spécificités
appaareamant courant 12v ou libre de potentiel , ...
donc un tas de possibilités
exemple un universel fibaro ou FGBS Smart tu peux en mettre 2
Oui mais ça reste du bricolage que je maîtrise pas forcément, le module aeotec était bien bien pensé, un module avec 1m de câble et 2 pics au bout, c'est discret et facile a mettre en place, malheureusement il ne le produise plus c'est dommage car il n'y a pas d'équivalent, faudrait que je comprenne pourquoi ça fonctionne mal, mais j'avais ouvert un post sur ce forum mais sans grand résultat, je vais refaire une tentative car un point m'interpele sur 1 des 2 modules

Re: Script Vérification Modules ZWave

Publié : 15 juil. 2019, 15:47
par winhex
le flood le fait si tu veux réutilisé ton câble
gaffe à l oxidation
en plus tu peux l'alimenter (il deviens repeteur)

Re: Script Vérification Modules ZWave

Publié : 15 juil. 2019, 16:49
par Antoinekl1
winhex a écrit :le flood le fait si tu veux réutilisé ton câble
gaffe à l oxidation
en plus tu peux l'alimenter (il deviens repeteur)
Ok merci, je vais regarder ca

Édit : je vois pas d'info sur ce module si il peut être inversé afin de détecter l'absence d'eau plutôt que la présence, car sinon la batterie va se vider trop vite si il est toujours en alerte quand il est en contact avec l'eau