Bonjour à tous, j'avance tout doucement dans domoticz, et je suis confronté à un nouveau problème.
J'ai un capteur de température dans chaque pièce de la maison, et j'ai créé un capteur virtuel dans lequel je souhaiterai afficher une température moyenne.
je ne sais pas comment faire, si vous aviez des pistes pour que je puisse essayer de vous soumettre quelque chose ce serait sympa.
Merci
moyennes de température
Re: moyennes de température
Bonsoir, j'ai un capteur de temp vituel "Temp_moy_maison" qui se calcul toutes les 10min
Voici le script time en lua
Voici le script time en lua
Code : Tout sélectionner
function timedifference (str)
year = string.sub(str, 1, 4)
month = string.sub(str, 6, 7)
day = string.sub(str, 9, 10)
hour = string.sub(str, 12, 13)
minutes = string.sub(str, 15, 16)
seconds = string.sub(str, 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) --résultat en secondes
return difference
end
--calcul de la temp moy de la maison
local capteurs_temp_interieur={'Temp_Bureau1(Oregon BB02)','SDB2_Cresta','Temp_poele_bois(oregon CB)','Temp_cuisine_gw','Etage2_TempLum','Temp_chambre2(gw)','TV_Temp','Bureau2_TEMP','EntreeTemp','Netatmo_Temperature','Salle_A_Manger_Temp'}
heur=os.date('*t')
if (heur.min%10==0) then
local cpt=0
local temp_moy=0
for i,v in ipairs(capteurs_temp_interieur) do
local lastupdate=otherdevices_lastupdate[v]
if(lastupdate==nil) then
lastupdate='2017-06-02 15:02:41'
print(v.."nil")
end
if (timedifference(lastupdate)<1800) then
temp_moy = temp_moy + otherdevices_temperature[v]
cpt=cpt+1
end
end
if cpt>0 then
temp_moy=temp_moy/cpt
commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx['Temp_moy_maison']..'|0|' .. tostring(round(temp_moy,1))}
end
end
Opi
RFXCOM
RFLINK 433 & 315
Mysensors
Wifi & Mqtt
EspEasy - Tasmota
Zigate+
RFXCOM
RFLINK 433 & 315
Mysensors
Wifi & Mqtt
EspEasy - Tasmota
Zigate+
Re: moyennes de température
bonjour,
merci pour ton retour
en ce qui me concerne, j'ai créé un capteur virtuel (Temp + Hygro) qui s'appelle 'Maison'.
Je souhaite y faire remonter la moyenne des capteurs Temp{'Entrée','Cuisine','Salle de Bain','Salon','Chambre Erynn','Chambre Parentale'}
et
la moyenne des capteurs Hygro{'Salle de Bain','Salon','Chambre Erynn','Chambre Parentale'}
J'ai pas réussi a adapter ton code.
pourrais tu me l'expliquer, pour que j'essaye à nouveau.
Je m'excuse par avance, mais j'essaye de me familiariser avec les codes LUA de Domoticz, et ça fait qu'une semaine que j'essaye d'écrire. j'en ai qui marchent et d'autres non...
Merci
merci pour ton retour
en ce qui me concerne, j'ai créé un capteur virtuel (Temp + Hygro) qui s'appelle 'Maison'.
Je souhaite y faire remonter la moyenne des capteurs Temp{'Entrée','Cuisine','Salle de Bain','Salon','Chambre Erynn','Chambre Parentale'}
et
la moyenne des capteurs Hygro{'Salle de Bain','Salon','Chambre Erynn','Chambre Parentale'}
J'ai pas réussi a adapter ton code.
pourrais tu me l'expliquer, pour que j'essaye à nouveau.
Je m'excuse par avance, mais j'essaye de me familiariser avec les codes LUA de Domoticz, et ça fait qu'une semaine que j'essaye d'écrire. j'en ai qui marchent et d'autres non...
Merci
Re: moyennes de température
Bonjour,
1) On définit un tableau qui regroupe les sondes T° dont on veux la moyenne
2) toute les 10min (if (heur.min%10==0))
on boucle sur le dit tableau (for i,v in ipairs(capteurs_temp_interieur) do)
3) Pour chaque sonde, on récupère le dernier lastupdate , si la sonde à émis il y a au plus 1800s (=30min) alors on incrémente la variable
temp_moy = temp_moy + otherdevices_temperature[v]
ainsi qu'une autre (cpt++)
4) A la sortie de la boucle, si cpt>0 (=nb de sondes du tableau ayant émis il y a au plus 30min) alors on calcule la moyenne et on retourne un commandArray:
commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx['Temp_moy_maison']..'|0|' .. tostring(round(temp_moy,1))}
Voila c'est tout
1) On définit un tableau qui regroupe les sondes T° dont on veux la moyenne
2) toute les 10min (if (heur.min%10==0))
on boucle sur le dit tableau (for i,v in ipairs(capteurs_temp_interieur) do)
3) Pour chaque sonde, on récupère le dernier lastupdate , si la sonde à émis il y a au plus 1800s (=30min) alors on incrémente la variable
temp_moy = temp_moy + otherdevices_temperature[v]
ainsi qu'une autre (cpt++)
4) A la sortie de la boucle, si cpt>0 (=nb de sondes du tableau ayant émis il y a au plus 30min) alors on calcule la moyenne et on retourne un commandArray:
commandArray[#commandArray+1] = {['UpdateDevice'] = otherdevices_idx['Temp_moy_maison']..'|0|' .. tostring(round(temp_moy,1))}
Voila c'est tout
Opi
RFXCOM
RFLINK 433 & 315
Mysensors
Wifi & Mqtt
EspEasy - Tasmota
Zigate+
RFXCOM
RFLINK 433 & 315
Mysensors
Wifi & Mqtt
EspEasy - Tasmota
Zigate+