Page 2 sur 2

Re: détecter défaut rafraichissement sonde oregon par lua ?

Publié : 08 oct. 2015, 00:15
par vil1driver
Tu devrais oublier blockly, ;)

Re: détecter défaut rafraichissement sonde oregon par lua ?

Publié : 08 oct. 2015, 21:48
par oula85
Pour l'instant je le trouve quand même plus pratique pour retoucher avec mon petit niveau en lua mais je progresse doucement en gros j'utilise le lua pour les sécurités et les calculs et je laisse en blocky pour l'instant ce qui me parait chaud patate à programmer en lua d'un bout à l'autre

Donc ma solution semble fonctionner nickel verdict à la prochaine panne de sonde

le script final , il détecte donc la perte de la sonde supérieure à 10min et lance un interrupteur virtuel alarme à ON et le coupe quand la sonde revient à la vie , ceci zone par zone , à l'issue je récupère cette condition à rajouter dans ma ligne de mise en marche confort et eco sur mon blocky de la zone en question

Code : Tout sélectionner

-- script_time_alarme.lua
-- ce script détecte une perte de sonde et coupe le chauffage dans la zone
 
--------------------------------
------ Variables à éditer ------
--------------------------------

local sonde = 'Temp Salon' -- Nom de la sonde de température
local sonde2 = 'Temp Cuisine' -- Nom de la sonde de température
local sonde3 = 'Temp Chambre 2' --Nom de la sonde de température
local sonde4 = 'Temp Chambre Capucine' --Nom de la sonde de température

local radiateur = 'Module Salon' -- Nom de l'interrupteur de chauffage
local radiateur2 = 'Module Cuisine' -- Nom de l'interrupteur de chauffage
local radiateur3 = 'Module Chambre 2' -- Nom de l'interrupteur de chauffage
local radiateur4 = 'Module Chambre Capucine' -- Nom de l'interrupteur de chauffage

--------------------------------
-- Fin des variables à éditer --
--------------------------------
 
time = os.date("*t")  

function timedifference(d)
   s = otherdevices_lastupdate[d]
   year = string.sub(s, 1, 4)
   month = string.sub(s, 6, 7)
   day = string.sub(s, 9, 10)
   hour = string.sub(s, 12, 13)
   minutes = string.sub(s, 15, 16)
   seconds = string.sub(s, 18, 19)
   t1 = os.time()
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
   return difference
end


-- on regarde de quand date la dernière relève de température

local lastSeen = timedifference(sonde)
local lastSeen2 = timedifference(sonde2)
local lastSeen3 = timedifference(sonde3)
local lastSeen4 = timedifference(sonde4)

commandArray = {}


-- lance une alarme par zone au dessus du seuil 600s si l'alarme est à OFF et la coupe en dessous si l'alarme est à On 

if (lastSeen > 600 ) and (otherdevices['Alarme Salon'] == 'Off') then
      commandArray['Alarme Salon']='On'
end
if (lastSeen2 > 600 ) and (otherdevices['Alarme Cuisine'] == 'Off') then
      commandArray['Alarme Cuisine']='On'
end
if (lastSeen3 > 600 ) and (otherdevices['Alarme Chambre 2'] == 'Off') then
      commandArray['Alarme Chambre 2']='On'
end
if (lastSeen4 > 600  ) and (otherdevices['Alarme Chambre Capucine'] == 'Off') then
      commandArray['Alarme Chambre Capucine']='On'
end
if (lastSeen < 600 ) and (otherdevices['Alarme Salon'] == 'On') then
      commandArray['Alarme Salon']='Off'
end
if (lastSeen2 < 600 ) and (otherdevices['Alarme Cuisine'] == 'On') then
      commandArray['Alarme Cuisine']='Off'
end
if (lastSeen3 < 600 ) and (otherdevices['Alarme Chambre 2'] == 'On') then
      commandArray['Alarme Chambre 2']='Off'
end
if (lastSeen4 < 600  ) and (otherdevices['Alarme Chambre Capucine'] == 'On') then
      commandArray['Alarme Chambre Capucine']='Off'
end

   
    
   
  return commandArray
Image


En tout cas un grand merci à toi Vil1Driver ;) ;) ;)

Re: détecter défaut rafraichissement sonde oregon par lua ? RESOLU en page 2

Publié : 22 août 2019, 11:38
par Wolfen38
Je viens de tester ce script qui fonctionne nickel.

Reste plus qu'à mettre en place quelque chose pour ne recevoir la notif qu'une fois.

Merci.

Re: détecter défaut rafraichissement sonde oregon par lua ? RESOLU en page 2

Publié : 22 août 2019, 11:50
par Wolfen38
Par contre, y a moyen dans un seul script de tester plusieurs devices ?

Re: détecter défaut rafraichissement sonde oregon par lua ? RESOLU en page 2

Publié : 22 août 2019, 15:10
par PhilTass2Montaig
Juste une remarque: otherdevices.lastupdate['mydevicename'] ne rend pas la valeur LAST SEEN (moment du dernier contact de domoticz avec le module) mais le moment du dernier changement de valeur. POur les sondes, ça revient presque au même, mais pour les modules de commande (interrupteurs, variateurs, etc), ça rend la date/heure de dernière activation du module, qui peut avoir eu lieu il y a 3 jours ... :(
D'ailleurs, je cherche un moyen de récupérer le "vrai" LAST SEEN. une idée quelqu'un ?