Aller au contenu
Moicphil

Etre averti en cas de piles faibles

Recommended Posts

Script pour connaitre la capacité et être averti par e-mail en cas de "piles faibles" sur un ou des modules

 

gallery_2_5_61306.jpg

 

  •  
  • Créer une Scène en Lua et insérer ce code :
  •  

--[[
%% properties
%% globals
--]]
local batterieDevice = "1"
local minbattSeuil = 70 -- Saisir le seuil mini d'alerte ici!
local i = 0
local maxNodeID = 250
for i = 0, maxNodeID do
local type = fibaro:get (i, "isBatteryOperated");
x , y = string.find (type, batterieDevice )
local niveauBatterie = tonumber(fibaro:getValue (i, "batteryLevel"))
if x ~= nill and niveauBatterie ~= nill and (niveauBatterie <= minbattSeuil or minbattSeuil == 255) then
local nom = fibaro:getName(i)
fibaro:debug("Device "..i.."="..nom.." Niveau Batterie="..niveauBatterie)
fibaro:call(4, "sendEmail", "Alerte Batterie", "Piles faibles module: "..nom)

end
end

Vous avez juste à  spécifier à  partir de quel seuil vous souhaitez être averti .

 

Dans cet exemple, je vais recevoir un mail pour chaque module en dessous de 70%.(changer l'ID "sendEmail" par celui souhaité)

Vous pouvez aussi remplacer "sendEmail" par "sendPush" pour une notification

 

Vous pouvez lancer la scène manuellement périodiquement . Personnellement, j'ai créé une autre scène qui exécute celle-ci tous les jours.

 

 

Auteur original du script : Jompa68

  • Upvote 4

Partager ce message


Lien à poster
Partager sur d’autres sites

Super sympa comme code pour surveiller les niveaux des piles.

Tu ajoutes quelle ligne pour lancer ce script une fois par jour?

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour lancer le script, j'ai créé cette scène simple:

 

gallery_2_5_20069.jpg

 

Une autre solution,encore plus simple est possible mais j'ai pas essayé, il suffit de rajouter dans le code :

  • %% autostart 
  • fibaro:sleep(24*60*60*1000)
--[[
%% properties
%% globals
%% autostart
--]]
local batterieDevice = "1"
local minbattSeuil = 70 -- Saisir le seuil mini d'alerte ici!
local i = 0
local maxNodeID = 250
for i = 0, maxNodeID do
local type = fibaro:get (i, "isBatteryOperated");
x , y = string.find (type, batterieDevice )
local niveauBatterie = tonumber(fibaro:getValue (i, "batteryLevel"))
if x ~= nill and niveauBatterie ~= nill and (niveauBatterie <= minbattSeuil or minbattSeuil == 255) then
local nom = fibaro:getName(i)
fibaro:debug("Device "..i.."="..nom.." Niveau Batterie="..niveauBatterie)
fibaro:call(4, "sendEmail", "Alerte Batterie", "Piles faibles module: "..nom)

fibaro:sleep(24*60*60*1000)--Cela fait 24h
end
end

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de rajouter les deux lignes de codes, je vous dirais si cela marche demain ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bravo pour ce script moicphil :).

 

Cependant il est important de préciser un point: Le script peut participer à  vider les batteries, l'interrogation et la sortie de veille d'un périphérique sur batterie est consommateur d’énergie... Bon 1x par jour c'est pas bien grave ;). ET puis cela peut aider pour ceux qui ont des problèmes de "Dead nodes" en ajoutant 2, 3 lignes dans le code...

 

Cette fonctionnalité est incluse dans le HC2: vous pouvez choisir ou non d'être averti par mail en cas de niveau faible de batterie sur les périphériques de votre choix. Le HC2 examine le niveau à  chaque sortie de veille automatiquement :15:

Partager ce message


Lien à poster
Partager sur d’autres sites

Krikroff, par hasard existerait-il un code pour checker les noeuds morts et les reveiller àintervalle régulier?

Partager ce message


Lien à poster
Partager sur d’autres sites

Super je ne l'avais pas vu celui là, je viens de le mettre en place.

Faire un post avec un lien serait bien et pourrait servir àd'autres ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ou demander a l auteur de le poster sur le forum....

Ca ferait un membre de plus ;)

Lionel

Partager ce message


Lien à poster
Partager sur d’autres sites

Krikroff, par hasard existerait-il un code pour checker les noeuds morts et les reveiller à  intervalle régulier?

 

http://www.domotique-fibaro.fr/index.php/topic/101-script-contr%C3%B4le-des-noeuds-mort-et-leur-r%C3%A9veil/  :)

Modifié par Yohan
Edit du lien.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Pour reprendre :

 

Cette fonctionnalité est incluse dans le HC2: vous pouvez choisir ou non d'être averti par mail en cas de niveau faible de batterie sur les périphériques de votre choix. Le HC2 examine le niveau à  chaque sortie de veille automatiquement  :15:

 

Pour un débutant comme moi, où se trouve cette fonctionnalité ?  :huh:

 

Cependant il est important de préciser un point: Le script peut participer à  vider les batteries, l'interrogation et la sortie de veille d'un périphérique sur batterie est consommateur d’énergie... Bon 1x par jour c'est pas bien grave ;). ET puis cela peut aider pour ceux qui ont des problèmes de "Dead nodes" en ajoutant 2, 3 lignes dans le code...

 

Cette fonctionnalité est incluse dans le HC2: vous pouvez choisir ou non d'être averti par mail en cas de niveau faible de batterie sur les périphériques de votre choix. Le HC2 examine le niveau à  chaque sortie de veille automatiquement :15:

Partager ce message


Lien à poster
Partager sur d’autres sites

Question bête :

fibaro:call(4, "sendEmail", "Alerte Batterie", "Piles faibles module: "..nom)

Si j'ai bien compris le "4" est l'ID d'un module ?

ou est-ce que je récupere l'ID du module sur ma box ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Non, le "4" est l'Id de l'utilisateur pour les notifications .

 

Tu peut le retrouver facilement avec le Toolkit de Krikroff. ( ou en cliquant dans le panneau " contrôle d’accès" puis "utilisateur", tu verra l'Id dans la barre du navigateur )

 

Les Id des modules à  pile sont récupérés automatiquement par le script

 

Pour résumer, pour faire fonctionner le script, tu as juste à  modifier le seuil mini pour l'alerte et l'Id utilisateur pour la notif.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, 

 

je viens de tester le script et celui-ci me remonte l'erreur suivant :(...

 post-2213-0-70927000-1433853894_thumb.png

 

et j'avoue que je ne comprends pas trop pk... est-ce du fait que je suis en V 4.048 ?...  

j'ai oublie un truc, thanks for you help .... 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

 

je viens de testé le script et j'ai ca 

 

[DEBUG] 20:14:22: line 12: bad argument #1 to 'find' (string expected, got nil)

 
 
J'ai utilisé celui ci 
 
--[[
%% properties
%% globals
%% autostart
--]]
local batterieDevice = "1"
local minbattSeuil = 70 -- Saisir le seuil mini d'alerte ici!
local i = 0
local maxNodeID = 250
for i = 0, maxNodeID do
local type = fibaro:get (i, "isBatteryOperated");
x , y = string.find (type, batterieDevice )
local niveauBatterie = tonumber(fibaro:getValue (i, "batteryLevel"))
if x ~= nill and niveauBatterie ~= nill and (niveauBatterie <= minbattSeuil or minbattSeuil == 255) then
local nom = fibaro:getName(i)
fibaro:debug("Device "..i.."="..nom.." Niveau Batterie="..niveauBatterie)
fibaro:call(235, "sendEmail", "Alerte Batterie", "Piles faibles module: "..nom)
 
fibaro:sleep(24*60*60*1000)--Cela fait 24h
end
end

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est du très vieux code des v1 et v3 ça !!!

 

Le champs isBatteryOperated n'existe même plus dans l'API en v4.

Et la méthode qui consistait à  parcourir tous les devices de 1 à  maxNodeID = 250 est dépassée, depuis on fait mieux.

Bref, il faudrait réécrire totalement le code LUA là .

Mais je ne suis pas certain de l'utilité, car la HC2 sait envoyer des Emails quand le niveau de batterie d'un module est faible, et on a aussi un super VD My Batteries sur le forum

Partager ce message


Lien à poster
Partager sur d’autres sites

×