Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Modules Dead

Retrouvez ici des sujets concernant le protocole Z-Wave et les modules domotiques de type Z-Wave utilisés avec JEEDOM
francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 08 juin 2018, 06:18

Bonjour,

Par pitié ne me jette pas des tomates dessus ;-)
Tout code est exactement ce que je cherche par contre j' ai plus l habitude de jongler entre les scénarios/virtuel/plugin, là je suis un peu largué.

Peux tu me dire comment l exploiter?

D avance merci
gblais77 a écrit :
22 mai 2018, 10:50
Voici un bout de code pour tester les modules zWave sur piles et renseigne les modules en erreur dans une variable:
il considère le module en erreur si il n'a pas communiqué depuis 2 fois son Wake-Up Interval (on autorise un problème de communication ponctuel).

Code : Tout sélectionner

//**********************************************************
// Parameters
//**********************************************************
$API_Key = 'CLE_API_ZWAVE;
$time_now = time();
//**********************************************************


//**********************************************************
// Get list baey element on error
//**********************************************************
$scenario->setLog('**********************************************************');
$scenario->setLog('***** Get list *****');
$scenario->setLog('**********************************************************');
$url_GetInfo = 'http://localhost:8083/network?apikey=' .$API_Key .'&type=info&info=getHealth';
$Error_Module = array();

$content = (file_get_contents($url_GetInfo));

$All_Info = json_decode($content, true);
$All_node = $All_Info["result"]["devices"];

//$scenario->setLog($content);

foreach($All_node as $Array_Key => $Array_value){
	$Alim = $Array_value["data"]["isListening"]["value"];
	if(($Alim == 0)){
		$Last_Info = $Array_value["data"]["lastReceived"]["updateTime"];
		$Wakeup_Interval = $Array_value["data"]["wakeup_interval"]["value"];
      	if(($Last_Info + ($Wakeup_Interval * 2)) < $time_now){
        	$scenario->setLog('Module :'.$Array_Key .' is on error' );
         												 $Module_Name = $Array_value["data"]["description"]["name"];
         												 $scenario->setLog('Module :'.$Module_Name .' is on error' );
          	$Error_Module[] = $Array_Key;
        }
	}
}

//**********************************************************
// Set variable for the next steps of the scenario
//**********************************************************
$scenario->setData("zWave_ModuleError_01", implode(',', $Error_Module));

gblais77
Timide
Messages : 10
Inscription : 01 févr. 2016, 14:10

Re: Modules Dead

Message par gblais77 » 08 juin 2018, 09:07

Bonjour,

Il faut le mettre dans un "scenario" => "bloc code"
Ensuite il te crée/remplie un variable (zWave_ModuleError_01) que tu exploites comme tu veux.

par exemple a la suite de ce "bloc code" tu ajoutes des bloc (if, action...) qui t'alerte (mail, sms...) si la variable n'est pas vide ou si elle a été modifié depuis la dernière fois...

exemple:
Pièces jointes
Jeedom_01.png
Jeedom_01.png (105.05 Kio) Consulté 2251 fois

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 08 juin 2018, 21:23

Merci pour ton aide ;-) je regarde demain et te tiens au courant.

Encore merci

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 09 juin 2018, 11:43

Bonjour,

J'ai reproduit ton code et scénario mais je galère un peu. J'ai un keyfob de chez fibaro qui apparaît en erreur (périphérique 92), pas grave==>la première fois que j'ai lancer le scénario il me la derouler entierrement en m'envoyer un mail=>parfait

Depuis j'ai simulé un pb, en enlevant une pile d'un détecteur de porte (periphérique 51)==>le scenar me vois le probleme mais l'expression est non valide.

Je te mets en pièce jointe les logs si tu peut regarder je t'en serai extrêmement reconnaissant ;-)

D'avance merci
Pièces jointes
scenario79.log
(34.85 Kio) Téléchargé 42 fois

Avatar de l’utilisateur
nechry
Actif
Messages : 9644
Inscription : 24 juin 2014, 20:07
Localisation : Suisse
Contact :

Re: Modules Dead

Message par nechry » 10 juin 2018, 22:10

le code du scénario est bien mais il faut couvrir des petits cas de figures spécifiques, j'ai justement fais un Tuto sur le sujet avec des exemples:
https://nechry-automation.ch/2018/06/07/api-restful/
As-tu consulté la documentation avant de poser ta question?
Les demandes de support en MP ne seront pas traité mais j'accepte les dons paypal.me/nechry
Visiter mon blog http://nechry-automation.ch/

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 10 juin 2018, 23:49

Bonsoir nechry,

Merci pour le lien. C est la première fois que je fais ( que j' ai besoin) du code sur jeedom et je suis pas trop serein mais entre tes codes et celui de gblais je devrai m en sortir. Enfin j espère....;-)

Encore merci,

François

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 12 juin 2018, 20:33

@nechry

Je viens enfin de pouvoir tester ton code (j'ai un enfant en bas âge).Il marche parfaitement mais je galère à utiliser la variable qui stocke les nœuds en erreurs.Peux tu m'expliquer?

Merci d'avance

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 12 juin 2018, 21:37

Re,

J'ai avancé à exploiter la variable en basant mon scénario sur celui de gblais. Le problème est que j'ai une expression non valide quand j'ai deux (ou plus) modules en pannes (log et copie d'écran scenario en en pièce jointe).

Sais tu ce que je fais de mal?

D'avance merci



François
Pièces jointes
Expression non valide.jpg
Expression non valide.jpg (162.18 Kio) Consulté 2179 fois
scenario80.log
(6.42 Kio) Téléchargé 42 fois

gblais77
Timide
Messages : 10
Inscription : 01 févr. 2016, 14:10

Re: Modules Dead

Message par gblais77 » 12 juin 2018, 22:02

Bonjour,

il faut ajouter des " lors de la comparaison des variables:
"variable(zWave_ModuleError_01)" != "variable(zWave_ModuleError_01_previous)"

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 12 juin 2018, 22:42

Super ça fonctionne merci

gblais77
Timide
Messages : 10
Inscription : 01 févr. 2016, 14:10

Re: Modules Dead

Message par gblais77 » 14 juin 2018, 11:45

Bonjour,

version un peu améliorée qui gère les modules sur pile et sur secteur.
Code:

Code : Tout sélectionner

//**********************************************************
// Parameters
//**********************************************************
$API_Key = 'ALE_API_ZWAVE';
$time_now = time();
$Timeout_Critical = 10800;
$Timeout_Warning = 3600;
$Error_Module_Battery = array();
$Error_Module_Sector = array();
$Ping_Wait = 5;
//**********************************************************


//**********************************************************
// Get list baey element on error
//**********************************************************
$scenario->setLog('**********************************************************');
$scenario->setLog('***** Get list *****');
$scenario->setLog('**********************************************************');
$url_GetInfo = 'http://localhost:8083/network?apikey=' .$API_Key .'&type=info&info=getHealth';
$content = (file_get_contents($url_GetInfo));
$All_Info = json_decode($content, true);
$HTTP_success = $All_Info["state"];
//Test if Web API is OK
if($HTTP_success != "ok"){
	$scenario->setLog("Z-Wave API error: " .$content);
}
else{
	$All_node = $All_Info["result"]["devices"];
	foreach($All_node as $Array_Key => $Array_value){
		// ==============================
		// Get information
		// ==============================
		$Alim = $Array_value["data"]["isListening"]["value"];
		$isEnabled = $Array_value["data"]["is_enable"]["value"];
		$isFailed = $Array_value["data"]["isFailed"]["value"];
		$Last_Info = $Array_value["data"]["lastReceived"]["updateTime"];
		$TimeOut = $time_now - $Last_Info;
		$Controller = $Array_value["data"]["type"]["value"];
		$Module_Name = $Array_value["data"]["description"]["name"];
		// ==============================
		
		// ==============================
		// Battery module
		// ==============================
		if(($Alim == 0) AND $isEnabled){
			$Wakeup_Interval = $Array_value["data"]["wakeup_interval"]["value"];
			$Time_limit = $Wakeup_Interval * 2;
			if(($TimeOut >= $Time_limit) OR ($isFailed)){
				$scenario->setLog('Module :'.$Array_Key ."/" .$Module_Name .' is on error' );
				$Error_Module_Battery[] = $Array_Key;
			}
		}
		// ==============================
		
		// ==============================
		// Sector module
		// ==============================
		elseif(($Alim == 1) AND $isEnabled AND ($Controller != "Static PC Controller")){
			//OK
			if(($TimeOut < $Timeout_Warning) OR ($isFailed)){
				//$scenario->setLog('Module :'.$Array_Key ."/" .$Module_Name .' is OK');
			}
			//Warning
			elseif($TimeOut <= $Timeout_Critical){
				$scenario->setLog('Ping Module :'.$Array_Key ."/" .$Module_Name );   
				$url_ping = 'http://localhost:8083/node?apikey=' .$API_Key .'&node_id=' .$Array_Key .'&type=action&action=testNode';
				file_get_contents($url_ping);
				sleep($Ping_Wait);
			}
			//Critical
			if(($TimeOut > $Timeout_Critical) OR ($isFailed)){
				$scenario->setLog('Module :'.$Array_Key ."/" .$Module_Name .' is KO');
				$Error_Module_Sector[] = $Array_Key;
				$url_sendNodeInformation = 'http://localhost:8083/node?apikey=' .$API_Key .'&node_id=' .$id .'&type=action&action=hasNodeFailed';
				file_get_contents($url_sendNodeInformation);
				sleep($Ping_Wait);
			}
		}
		// ==============================
	}
}
//**********************************************************


//**********************************************************
// Set variable for the next steps of the scenario
//**********************************************************
$scenario->setData("zWave_ModuleError_Battery", implode(',', $Error_Module_Battery));
$scenario->setData("zWave_ModuleError_Sector", implode(',', $Error_Module_Sector));

$scenario->setLog('**********************************************************');
$scenario->setLog('***** Fin *****');
$scenario->setLog('**********************************************************');
//**********************************************************
Scenario:
ZWave_Scenario.jpg
ZWave_Scenario.jpg (210.35 Kio) Consulté 2158 fois

Fonctionnement:
Control_ZWave_Modules.png
Control_ZWave_Modules.png (112.82 Kio) Consulté 2158 fois

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 14 juin 2018, 16:52

Super merci. Je me demande si avec ta surveillance des modules en secteurs on pourrait pas faire une surveillance anti brouillage. Par contre ça implique de diminuer la fréquence de lancement du scénario à quelques minutes et dissocier le scénar module secteur avec le scénar module batterie. Je vais voir ça dès que possible.

En tous cas encore merci

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 17 juin 2018, 12:31

Bonjour,

J'ai appliqué ton nouveau code.Le problème est que mes trois sirènes intérieurs et mon module télérupteur qubino sont détecter comme KO. La quinzaine d'autres périphériques (module volet roulant, prise fibaro et fgd212)==>pas de soucis.

Je te laisse le log en pièce jointe si tu as une idée ;-)

Merci d'avance
Pièces jointes
scenario79.log
(35.19 Kio) Téléchargé 43 fois

gblais77
Timide
Messages : 10
Inscription : 01 févr. 2016, 14:10

Re: Modules Dead

Message par gblais77 » 18 juin 2018, 22:34

Bonjour,

il faudrait regarder l'état des modules dans la santé ZWave

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 18 juin 2018, 23:01

Bonsoir,

J avais regarder sur le moment la santé zwave==> pas de soucis.
Ce matin à 06h20 les trois sirènes ne sont plus en erreurs. J ai mis une programmation du scénario toutes les 20 minutes.J imagine qu il y a une histoire de ping qui s'est déroulé à 06h00. Depuis ce matin pas de soucis...bizarre ;-)

En tous cas merci

gblais77
Timide
Messages : 10
Inscription : 01 févr. 2016, 14:10

Re: Modules Dead

Message par gblais77 » 18 juin 2018, 23:22

Peut-être parce que c'était la 1ere utilisation:
- sirenne OK mais pas de communication depuis plus de 3H00 (pas de soucis)
- pour le scénario: pas de communication depuis plus de 3H00 = erreur (parceque il fait des ping si la comm est entre 1H et 3H)

j'ajouterai un ping si la communication est superieur à 3H (actuellement il fait juste une tentative de réparation qui ne sert a rien si tout va bien)

je ne pense pas être très claire...

francoisceline
Timide
Messages : 72
Inscription : 29 juin 2016, 23:02

Re: Modules Dead

Message par francoisceline » 18 juin 2018, 23:48

Tu dois avoir raison . Cela doit être lié à la première utilisation et au timing des trois heures. Le module télérupteur qubino qui était aussi en défaut au départ à cesser d être KO dès lors que j allume la lampe ( communication avec jeedom). Les autres modules sur secteur ( prise/ volet roulant)envois tous l infos de leurs puissance à jeedom ( com avec jeedom).

Si je peux ce weekend je vais essayer de modifier ton code pour en faire un détecteur de brouillage ( vérif des sirènes qui ont leurs batterie interne donc si plus de communications avec les trois ce n' est pas une coïncidence ;-) )

spark
Actif
Messages : 514
Inscription : 10 févr. 2016, 22:30

Re: Modules Dead

Message par spark » 19 juin 2018, 13:40

Bonjour,


J'ai depuis plusieurs temps un module FGS-222 qui apparaît en DEAD dans jeedom mais il fini par revenir seul OK en 2 minutes. Je n'ai pas d'autres modules qui bug.


J'ai trouvé dans ce sujet sur le forum des explications mais je n'ai pas trop envie de me lancer dans des code complexe qui ne corrige pas le problème mais ne sont que des "rustines" pour en cas de problème. Je n'ai jamais le temps de lancer une commande ping pour confirmer que j'ai le même problème ou non.

Vous parlez egalement de module sur pile principalement, moi ce n'est pas mon cas

J'ai également regardé le blog de @Nechry blog et il parle d'une méthode mais elle me parait encore plus complexe que les autres.
API RESTful du plugin ZWave

Merci d'avance si vous avez des idée ou des sujet

(j'utilise la dernière version de jeedom et du plugin)
Pièces jointes
unnamed.png
unnamed.png (5.81 Kio) Consulté 2089 fois

lithium73fr
Timide
Messages : 347
Inscription : 29 avr. 2016, 09:52

Re: Modules Dead

Message par lithium73fr » 25 avr. 2019, 17:21

Le code fonctionne bien mais j'ai plusieurs faux positifs (modules qui sont détectés comme HS alors qu'ils sont en réalité OK). Surtout sur des modules secteurs

Répondre

Revenir vers « [Plugin Officiel] Z-Wave »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités