Besoin de vos lumières sur du LUA ( temp + difference + ... )

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
BenGeek
Messages : 5
Enregistré le : 03 déc. 2019, 20:56

Besoin de vos lumières sur du LUA ( temp + difference + ... )

Message par BenGeek » 23 déc. 2019, 15:48

Bonjour à vous !

Ca fait 1 an que je m'amuse avec Domoticz et toute une flopée de capteurs / interr et maintenant que je commence a pousser un peu plus loin mes scripts je me retrouver bloqué sur des co...... J'ai abandonné le Blocky il y a quelque temps car je trouve le LUA plus logique et plus complet.

Aujourd'hui je bloque sur la gestion de mes sondes de températures. J'ai exploré beaucoup de tuto sur internet mais la y'a quelque chose que je pige pas.

Le but est le suivant :
- J'ai une dizaine de sondes à l’intérieur et à l’extérieur. En fonction de certaines températures j'ai des alertes qui seront envoyées sur mon tel via telegram + des actions sur des interr mais ça je le ferai dans un second temps. Je veux que mes sondes soit interrogées toutes les 2 minutes.

J'ai commencé comme ceci :

Code : Tout sélectionner

-- Script pour gérer les sondes de températures
-- Le but est de définir plusieurs valeurs froides et chaudes et de déclencher des alertes en fonction
-- Il ne faut pas surcharger les log
-- Il faut comparer la T°c actuelle avec les T°c froides et chaudes

local temp_froide1 = 15 -- Temperature minimale voulue dans chaque piéce
local temp_froide2 = 2 -- Temperature minimale avant qu'il ne géle
local temp_chaude1 = 40 -- Temperature maximale normale dans chaque piéce
local temp_chaude2 = 50 -- Temperature maximale normale dehors
local temp_ch_bas = otherdevices_svalues['Temperature de la chambre du bas']

commandArray = {}

if (devicechanged[temp_ch_bas] ) then
    print(temp_ch_bas)
	commandArray['Variable:last_temp_ch_bas']=temp_ch_bas
	print("update var last_temp_ch_bas")
	-- si cette mesure n'est pas la même qu'il y a 2 minutes alors
	if  tonumber(uservariables['last_temp_ch_bas']) <= tonumber(uservariables['temp_froide1']) then
	    print("temp ch bas inferieur temp basse")
		commandArray['SendNotification']='subject#Température de la chambre inférieur à --temp_froide1 #0#sound#extradata#telegram'
	end
end	

return commandArray 
Sauf que j'ai 3 problèmes :
1 - Vu le nombre de capteurs et de pièces je vais me retrouver avec un script très chargé !
2 - Je n'ai pas réussi a mettre en place la fonction différence pour interroger les sondes toutes les 2mn
3 - Je ne sais pas comment personnaliser mon message de notification en fonction de la valeur temp_froide1

On trouve énormément de tuto sur le net mais je peine un peu avec les bases. Je n'ai malheureusement pas le temps de chercher des heures et des heures. Je pourrai apprendre quand je pourrai manipuler mes scripts qui marchent déjà.

Je vous écoute pour vos conseils et merci d'avance.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


thier
Messages : 580
Enregistré le : 26 sept. 2015, 10:32
Localisation : charente

Re: Besoin de vos lumières sur du LUA ( temp + difference + ... )

Message par thier » 23 déc. 2019, 18:15

1- fait un script pour une sonde. Ensuite tu apprendras à faire une boucle du type "for n,device in pairs(devices) do"
2- tu veux scruter tes températures toutes les deux minutes donc ton script doit être de type time et non pas device. Par contre, pour qu'il s'exécute toutes les 2 minutes et non pas toutes les minutes tu peux utiliser une fonction à mettre en début de script:

Code : Tout sélectionner

function periode(laps)
    local l = os.date("*t").min
    if (l%laps == 0) then
    return  true
    else        
    return false
    end
end
pour l'utiliser tu mets en début de script if (periode(2)) then
3- Pas d'idée je n'utilise pas télégram
PI3 + stretch, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.

denis_brasseur
Messages : 335
Enregistré le : 24 déc. 2018, 17:05
Localisation : (26)

Re: Besoin de vos lumières sur du LUA ( temp + difference + ... )

Message par denis_brasseur » 23 déc. 2019, 18:52

Tu peux également utiliser ceci
[DZVents] Script de notifications ultime (mais pas que)
avec
Exemple 4 : être averti si la température ou l'hygrométrie dépasse les seuils minimal ou maximal pendant un certain nombre de minutes
avec fréquence de notifications en minutes et notification des heures calmes
Ça a l'avantage d’être très modulable et personnalisable pour chaque sonde.
Pi3 + DD PiDrive + RFXtrx433 + AEON Labs ZW090
7 Modules fil pilote ZMNHJD1
2 détecteur fumées CHACON 34131
5 Bresser Capteur thermo/hygro
1 contacteur porte Philio PST02-1A Z
OWL Micro+ CM180
D2L LINKY
FGR-223 "Roller Shutter 3"

BenGeek
Messages : 5
Enregistré le : 03 déc. 2019, 20:56

Re: Besoin de vos lumières sur du LUA ( temp + difference + ... )

Message par BenGeek » 24 déc. 2019, 06:10

Bonjour.

Merci pour vos réponses. Je vais me pencher la dessus et je reviendrai vers vous par la suite :)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


BenGeek
Messages : 5
Enregistré le : 03 déc. 2019, 20:56

Re: Besoin de vos lumières sur du LUA ( temp + difference + ... )

Message par BenGeek » 19 janv. 2020, 16:01

Comme prévu je vous fais un retour un peu tardif car entre temps j'ai migré mon Dz sur un Pi puis j'en ai profité pour virer la passerelle XIaomi et mettre en place une conbee2 + installation Mosquito etc.... BREF j'ai opté pour Dzvent et le script de notification ultime et j'avoue que ça répond bien à mes attentes.

Donc si comme moi vous voulez avoir des relevés de températures et gérer les fréquences comme bon vous semble passez direct à cette solution ! En plus il y a pleins de choses sympas a faire avec ce script ;)

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre