Aller au contenu

My Batteries


Steven

Messages recommandés

Super module et j'ai même fait une version Zwave (noeuds morts) avec la même structure de code.(si ça intéresse qql'un je peux le poster)

 

 

Par contre ce matin, j'ai un smoke sensor qui s'est arrêté (problème de pile qui était à  50% depuis qqles jours et qui est passée de 50% à  ... 0,5v tout d'un coup) Donc 2 questions :

 

1) Je "vois" toujours le smoke sensor avec une batterie à  50% (malgré plusieurs mises à  jour) Strange ! le smoke sensor indique 0°C en température et est vraiment sans pile! le HC2 a l'air de ne pas se mettre à  jour (rapidement)

 

2) Est-ce normal de changer les piles d'un smoke sensor en qqles mois (moins de 6 mois)  ? Au début, j'avais mis un "intervalle de réveil à  3600 mais depuis que je suis passé à  50% de batterie je suis revenu à  21600...Quelqu'un a-t-il une expérience avec ce capteur ?

Lien vers le commentaire
Partager sur d’autres sites

@JM13

J'avais oublié un petit détail, lorsqu'une pile est à  l'état critique, Fibaro renvoi 255 au lieu du pourcentage de batterie restant.

Une nouvelle version est donc disponible, le 255 est remplacer par 0 pour affiché le module en tête de liste.

 

Pour les flemmards ou ceux qui ont personnalisé leur module, le code modifié est ici, c'est juste la ligne 7 qui a été ajoutée  :



local modules = {}
for i = 1, 350 do
if (string.find(fibaro:get(i, 'isBatteryOperated'), "1" )) then
local batt = fibaro:getValue(i, 'batteryLevel')
if (batt and (tonumber(batt) ~= nil)) then
if (tonumber(batt) == 255) then batt = 0 end
table.insert(modules, {batt, fibaro:getName(i) .. " (" .. i .. ")"})
end
end
end


function comp(w1,w2)
return tonumber(w1[1]) < tonumber(w2[1])
end

table.sort(modules,comp)

for index, value in ipairs(modules) do
pcall( function()
fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2].. " ... " .. value[1] .. "%")
end
)
end

Lien vers le commentaire
Partager sur d’autres sites

Pour l'instant, je ne les lit pas et je comptais me réserver une soirée complète pour le faire. Maintenant que je sais que tu y participes, je vais rajouter une soirée à  mon agenda. Tu penses que cela va suffire ?  :P

Lien vers le commentaire
Partager sur d’autres sites

Fredo & Steven ... on dirait un vieux couple qui se dispute  :rolleyes: on va finir par vous paxer tous les deux !    :rolleyes:

 

 

Pour le VD sur les batteries, la modif en effet corrige une faiblesse de l'algorithme mais je pense quand même qu'il doit y avoir un loup dans le HC2.

 

Comme mon smoke sensor est SANS batterie, j'ai l'impression qu'il n'y a pas de mise à  jour de la dernière valeur connue...donc reste à  50%.

Ce qui est étrange aussi c'est que le HC2 ne voit pas ce capteur comme "mort" (même après 24h et reboot)

 

A suivre ...

Lien vers le commentaire
Partager sur d’autres sites

Ce qui est bizarre, c'est que même le script ne le voit pas  mort. J'ai repris ta structure et fait le module suivant :


-- ------------------- DEVICES SETTINGS ---------------------
local userID = 2;	 		-- User ID (email used to notify) 2 = admin
local SmartPhone = 33;		-- SmartPhone
local Max_Node = 350; 		-- List of nodes you want to check
local dtLog = os.date(); 	-- Datation 
 
local modules = {}

 
-- Fonction Printlog -----------------
function Printlog(message)
  fibaro:debug(message)
  fibaro:log(message)
end

-- Fonction comparaison -----------------
function comp(w1,w2)
	return tonumber(w1[1]) < tonumber(w2[1])
end

-- ---------------- START ENGINE LOOP PROCESS ------------------
Printlog("Zwave script started at " .. dtLog);
fibaro:sleep(500);

-- Analyse du réseau Zwave --

for id = 1, 5 do --RAZ Affichage des 5 premiers affichages
	fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..id..".value", "RAS") 
end


for id = 1, Max_Node do
 
  if (string.find(fibaro:getValue(id, 'dead'), "1" )) then       -- dead node found
    table.insert(modules, {id, fibaro:getName(id) .. " (" .. id .. ")"})
    fibaro:debug("Le device : "..id.." est taggé comme mort");

    local name = fibaro:getName(id);
    local room = fibaro:getRoomNameByDeviceID(id);
    local message = dtLog .. "[status] Le device (" .. name .. " ID#" .. id .. " dans la pièce [" .. room .. "]) est taggé comme noeud mort." 
      -- try to wakeUp device
      	fibaro:wakeUpDeadDevice(id);
    	fibaro:sleep(1000);
      -- send mail & PUSH
        fibaro:call(userID, "sendEmail", "Information Zwave - Noeuds morts", message);
     --   fibaro:call(SmartPhone, "sendPush", "Information Zwave - Noeuds morts "..message);
      -- Affichage
        fibaro:call(fibaro:getSelfId(), "setProperty", "ui.status.value", "Dead node found");
        Printlog(message)
    end -- end dead node found
  end


table.sort(modules,comp)

for index, value in ipairs(modules) do
  	pcall( function() 
		fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", value[2])
    	end
  	)
end

fibaro:call(userID, "sendEmail", "Information HC2 - Test Zwave réalisé ", dtLog);
fibaro:call(SmartPhone, "sendPush", "Information HC2 - Test Zwave réalisé le "..dtLog);
Printlog("Zwave script done the " .. dtLog);

Lien vers le commentaire
Partager sur d’autres sites

Ben si ton module n'apparait pas comme "Dead" à  l'écran, c'est qu'il n'est pas notifié comme "Dead" dans la base de données de ta HC2.

 

Ton script ne verra donc rien, puisqu'il interroge la base uniquement.

 

Il serait intéressant de connaitre l'intervalle de réveille et de le comparer ... pourrais-tu essayer ce code :

local id = 16

local modifSensor = fibaro:getModificationTime(tonumber(id), "valueSensor")
local modifValue = fibaro:getModificationTime(tonumber(id), "value")
local wakeup = os.time()-fibaro:getValue(tonumber(id), "wakeUpTime")

local recent = math.max(modifSensor, modifValue)
fibaro:debug(os.date("%c", recent))
fibaro:debug(os.date("%c", wakeup))

if (recent > wakeup) then
	fibaro:debug(fibaro:getName(id) .. " est en vie")
else
	fibaro:debug(fibaro:getName(id) .. " est probablement mort")    	
end

Lien vers le commentaire
Partager sur d’autres sites

Steven,

 

Effectivement, ton petit code remonte bien que le capteur est "probablement mort"  :) MAIS le capteur n'ayant plus de piles depuis le 27/08 à  18h le débug ci-dessous reste étrange

[DEBUG] 09:12:18: 1409375018
[DEBUG] 09:12:18: 1409204558
[DEBUG] 09:12:18: 1409447538
[DEBUG] 09:12:18: Sat Aug 30 07:03:38 2014
[DEBUG] 09:12:18: Sun Aug 31 03:12:18 2014
[DEBUG] 09:12:18: Smoke_Sensor est probablement mort

Là , je crois que c'est le HC2 qui n'ayant plus de communication avec le capteur, ne remets pas les données à  jour (ce qui n'est pas le cas pour d'autres capteurs)

Lien vers le commentaire
Partager sur d’autres sites

Désolé...résurrection  :) même sans pile ...c'est un capteur mutant  :D

[DEBUG] 09:31:54: 1409470189
[DEBUG] 09:31:54: 1409204558
[DEBUG] 09:31:54: 1409448714
[DEBUG] 09:31:54: Sun Aug 31 09:29:49 2014
[DEBUG] 09:31:54: Sun Aug 31 03:31:54 2014
[DEBUG] 09:31:54: Smoke_Sensor est en vie

Il est cette fois noté comme mort dans l'interface Fibaro  (c'est déjà  bien ;)) mais le script le voit "vivant".

 

Je crois que c'est le moment de remettre la pile ... et d'attendre la V4 pour voir s'il la gestion du Zwave s'est améliorée !!

Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...