Aller au contenu

Messages recommandés

Posté(e)

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
Posté(e)

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
Posté(e)

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:

Posté(e) (modifié)

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.
Posté(e)

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:

  • 2 mois après...
Posté(e)

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 ?

Posté(e)

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.

  • 1 an après...
Posté(e)

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 .... 

 

 

 
  • 8 mois après...
Posté(e)

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
  • 3 mois après...
Posté(e)

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

×
×
  • Créer...