listes variables

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

Je suppose que j'aurais pu mettre :
if (devicechanged[sonde] or devicechanged[consigne]) and (otherdevices[periode] == 'On')
a la place de
if (devicechanged[sonde] and otherdevices[periode] == 'On') or (devicechanged[consigne] and otherdevices[periode] == 'On')
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: listes variables

Message par vil1driver »

Il y a plusieurs méthodes.. Tant que tu restes logique ça ira ;)

Attention cependant au nom du script ! Pas de - après le type mais un _
script_device_thermSDB.lua
Ps: pense à utiliser la balise code dans tes messages ;)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

merci c'etait une petite coquille...

Au fait tu as deja utilisé des

Code : Tout sélectionner

if (devicechanged[XXX] then etc
Y a une astuce car moi j'ai abandonné trop galere
j'ai fini par faire :

Code : Tout sélectionner

local hysteresis = 1 --Valeur seuil pour éviter que le relai ne cesse de commuter dans les 2 sens
local radiateur = 'Prise_SecheServiette' --Nom du device radiateur à allumer/éteindre
local periode = 'Periode_Chauffe_SDB' --Switch manuel permettant de valider si on est en periode de chauffage de SDB
local sonde = 'Temp_SDB' -- sonde temperature/humidite salle de bain
local planning = 'Consignes_SDB' --themostat avec plannification pour le chauffage de la salle de bain
--------------------------------
-- End of edit section --
--------------------------------
commandArray = {}
local temp, hum = otherdevices_svalues[sonde]:match("([^;]+);([^;]+)") -- recuperation de la temperature de la sonde
local temp = tonumber(temp) -- mise au format chiffre
local consigne = otherdevices_svalues[planning]  -- recuperation de la temperature du hermostat
local consigne = tonumber(consigne) -- mise au format chiffre
-- print("temperature reference "..consigne) -- utiliser pour test
-- print("temperature reel "..temp) -- utiliser pour test
if (otherdevices[periode] == 'Off' and otherdevices[radiateur] == 'On') then
    commandArray[radiateur]='Off'
    --print("Pas de chauffage en ce moment dans SDB ")
    elseif (temp <= (consigne - hysteresis) and otherdevices[periode] == 'On' and otherdevices[radiateur] == 'Off') then
    commandArray[radiateur]='On'
    print("Allumage du chauffage dans SDB ")
    elseif (temp <= (consigne - hysteresis) and otherdevices[periode] == 'Off' and otherdevices[radiateur] == 'On') then
    commandArray[radiateur]='Off'   
    --print("Attention periode hors chauffage SDB ")
    elseif (temp > (consigne + hysteresis) and otherdevices[periode] == 'On' and otherdevices[radiateur] == 'On') then
    commandArray[radiateur]='Off'
    print("Extinction du chauffage dans SDB ")
    elseif (temp > (consigne + hysteresis) and otherdevices[periode] == 'Off' and otherdevices[radiateur] == 'On') then
    commandArray[radiateur]='Off'
    --print("Attention periode hors chauffage SDB - en plus il fait trop chaud ")
    elseif (temp < (consigne + hysteresis) and temp > (consigne - hysteresis)) then
    --print("temperature ideal ")
    else 
    --print("Aucune modif necessaire ")
end
return commandArray
ça fonctionne, mais est-ce viable ?
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: listes variables

Message par vil1driver »

Oui, pas de soucis avec les devicechanged.. Mais pas pour le chauffage pour moi
Le tout est de bien les utiliser.

Ton script est du coups un script_time... Tu fais la différence n'est-ce pas ?

Ton script est compliqué

Fait une première condition juste avec ta période
Si oui tu fais tes autres conditions avec la temp/consigne..
Si non chauffage off

Ce sera plus facile à lire

Perso par sécurité je ne teste pas l'état des radiateurs je renvoie la commande systématiquement.

Pour quelqu'un qui voulait une liste de commandes tu t'en sors bien ;)

Ps: perso je n'aime pas l'hystéresis
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

Merci beaucoup de ton retour... je vais peaufiner alors
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

script_time .... c'est pour qu'il s'execute toute les minutes c'est ça et non pas a chaque changement d'un device ???
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

vil1driver a écrit :Oui, pas de soucis avec les devicechanged.. Mais pas pour le chauffage pour moi
Fait une première condition juste avec ta période
Si oui tu fais tes autres conditions avec la temp/consigne..
Si non chauffage off
Pas de probleme de balancer un ordre d'eteindre toute les minutes s'il est déjà en off ?
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

vil1driver a écrit : Fait une première condition juste avec ta période
Si oui tu fais tes autres conditions avec la temp/consigne..
Si non chauffage off
genre

Code : Tout sélectionner

if (otherdevices[periode] == 'On') then
	if (temp <= (consigne - hysteresis)) then
		commandArray[radiateur]='On'
		print("Allumage du chauffage dans SDB ")
	elseif (temp > (consigne + hysteresis)) then
		commandArray[radiateur]='Off'
		print("Extinction du chauffage dans SDB ")
	-- elseif (temp < (consigne + hysteresis) and temp > (consigne - hysteresis)) then -- pour test
		--print("temperature ideal ")
	end
else
	commandArray[radiateur]='Off'
	--print("Hors periode de chauffage de la SDB ")
end
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: listes variables

Message par vil1driver »

Alors, oui, non, exactement ;)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Stef17
Messages : 96
Inscription : 02 mai 2016, 21:10

Re: listes variables

Message par Stef17 »

En promenant mon petit bout de choux... j'ai eu une idée pour éviter d'envoyer une commande inutile ;-)

Code : Tout sélectionner

if (otherdevices[periode] == 'On') then
	if (temp <= (consigne - hysteresis)) then
		commandArray[radiateur]='On'
		print("Allumage du chauffage dans SDB ")
	elseif (temp > (consigne + hysteresis)) then
		commandArray[radiateur]='Off'
		print("Extinction du chauffage dans SDB ")
	-- elseif (temp < (consigne + hysteresis) and temp > (consigne - hysteresis)) then -- pour test
		--print("temperature ideal ")
	end
elseif (otherdevices[radiateur] == 'On') then
	commandArray[radiateur]='Off'
	--print("Hors periode de chauffage de la SDB ")
end
Remplacement du else de fin par une condition qui fait qu'il envoie ordre extinction que si le radiateur est allumer.
Utile ou non ???

Peut être que tu vas me dire par précaution envoie un Off ???
RaspberryPi2B+SD16GPNYclass10-RFlink firm1.1R41-domoticz 5877-6 sonde temp + une prise domotisé et 4 adaptateurs chaicon pour radiateur
Répondre