Page 1 sur 3
script thermostat avec commande de la temperature
Publié : 30 oct. 2014, 10:14
par jackslayter
bonjour,
je vous propose mon script thermostat avec commande de la température via télécommande (DIO ou autre) avec retour de la température souhaité en tant que sonde virtuelle
Code : Tout sélectionner
local hysteresis = 0.5
local sonde = 'piece'
local thermostat = 'Thermostat actif ou pas'
local radiateur = 'radiateur a piloter'
local pas = 0.5 --increment de la temperaure du thermostat
local remote = 'telecommande temp'
-- Capteur Temperature thermostat virtuel - nom et id
local tempthermo = 'Temp Thermostat'
local idx = 58
commandArray = {}
if (devicechanged[remote]) then
nowtemp = tonumber(otherdevices_svalues[tempthermo])
if (devicechanged[remote]=='On') then
commandArray['UpdateDevice'] = idx .. '|0|' .. tostring(nowtemp+pas)
elseif (devicechanged[remote]=='Off') then
commandArray['UpdateDevice'] = idx .. '|0|' .. (tostring(nowtemp-pas))
end
end
if (devicechanged[sonde]) then
nowtemp = tonumber(otherdevices_svalues[tempthermo])
local temperature = devicechanged[string.format('%s_Temperature', sonde)]
if (otherdevices[thermostat]=='On') then
if (temperature < (nowtemp - hysteresis)) and (otherdevices[radiateur]=='On') then
commandArray[radiateur]='Off'
elseif (temperature > (nowtemp + hysteresis)) and (otherdevices[radiateur]=='Off')then
commandArray[radiateur]='On'
end
end
end
return commandArray
Re: script thermostat avec commande de la temperature
Publié : 10 nov. 2014, 10:15
par pacheth
Bonjour,
Ma question n'est pas liée directement au script fourni. Je vous remercie d'ailleurs, je le testerai bientot.
Je vois que vous avez un RFXCOM + 3 sondes Oregon. Je viens du monde Zibase auquel j'ai ajouté une installation Domoticz pour un autre logement. Sur Zibase, j'avais configuré le logiciel pour utiliser un ID type "OSxxxxxxx" unique pour chaque sonde Oregon en lieu et place du canal. Inconvénient: il change au remplacement des piles.
Sur RFXCOM + Domoticz, c'est le numéro du canal qui est affiché dans la liste des dispositifs. Cela ne m'arrange pas trop car j'ai plus de 3 sondes à placer...
Et vous, c'est comment?
D'avance merci
Re: script thermostat avec commande de la temperature
Publié : 10 nov. 2014, 11:58
par jackslayter
Oui j'ai un ID dans domoticz , normalement on peut mettre plus de 3 sondes sans problème
Re: script thermostat avec commande de la temperature
Publié : 10 nov. 2014, 12:16
par mike913
Bonjour,
pacheth a écrit :
Sur RFXCOM + Domoticz, c'est le numéro du canal qui est affiché dans la liste des dispositifs. Cela ne m'arrange pas trop car j'ai plus de 3 sondes à placer...
Chez moi dans la liste des dispositifs il y a dans l' ordre:
Idx (identifiant attribué par domoticz),
Matériel,
ID (identifiant de la sonde comme pour zibase) ,
Unit (le canal ? mais pas sur) , .......
Re: script thermostat avec commande de la temperature
Publié : 10 nov. 2014, 14:25
par pacheth
Excusez-moi, je me suis mal exprimé.
Je ne doute pas que Domoticz soit capable de gérer plus de 3 sondes. Mais si le software se base uniquement sur le canal, la limitation viendra des sondes Oregon.
En effet, mis à part la dernière génération (ex: THGR 810 qui m'a d'ailleurs donné du souci), on est très vitre limité en choix de canal.
De plus, il y a risque d'interférence avec des voisins.
D'après ce que je sais, le RFXCOM devrait envoyé (comme la Zibase), une chaine complète comprenant le canal et un identifiant beaucoup plus long et généré lorsqu'on change les piles. Mais Domoticz n'a l'air que de servir du canal...
Re: script thermostat avec commande de la temperature
Publié : 10 nov. 2014, 23:53
par mike913
Pas du tout domoticz se sert de l' identifiant de la sonde renvoyé par le RFXTRX qui change effectivement à chaque changement de pile
Re: script thermostat avec commande de la temperature
Publié : 12 nov. 2014, 10:04
par pacheth
Autant pour moi, je viens d'essayer et effectivement l'ID change. C'est le champ "Unit" qui semble rester lié au canal.
Merci pour l'aide
Re: script thermostat avec commande de la temperature
Publié : 28 nov. 2014, 11:57
par Jihem
Bonjour
Je cherche à réaliser un thermomètre virtuel qui me donnerait la différence entre la chaleur au soleil et celle sous abri.
j'ai deux sondes Oregon Tsoleil au soleil et Text à l'abri.
j'ai créé un sensor virtuel Soleil avec idx=123.
Je me suis inspiré de ton script pour essayer de réaliser cela; mais je ne maitrise pas bien le langage.
local sonde1 = 'Tsoleil'
local sonde2 = 'Text'
local idx = 123
commandArray = {}
if (devicechanged[sonde1]) then
local temperature1 = devicechanged[string.format('%s_Temperature', sonde1)]
local temperature2 = devicechanged[string.format('%s_Temperature', sonde2)]
commandArray['UpdateDevice'] = idx .. '|0|'.. tostring(temperature1-temperature2)
end
J'obtiens l'erreur suivante:
Error: /home/pi/domoticz/scripts/lua/script_device_Soleil_1.lua:11: attempt to perform arithmetic on local 'temperature2' (a nil value)
j'ai essayé avec l'expression temperature2= tonumber(otherdevices_svalues[sonde2]) mais ça envoi la même erreur.
Peux tu m'aider?
Merci d'avance
Re: script thermostat avec commande de la temperature
Publié : 28 nov. 2014, 12:47
par jackslayter
essai ca
Code : Tout sélectionner
local sonde1 = 'Tsoleil'
local sonde2 = 'Text'
local idx = 123
commandArray = {}
if (devicechanged[sonde1]) then
temperature1 = tonumber(otherdevices_svalues[sonde1])
temperature2 = tonumber(otherdevices_svalues[sonde2])
commandArray['UpdateDevice'] = idx .. '|0|'.. tostring(temperature1-temperature2)
end
Re: script thermostat avec commande de la temperature
Publié : 28 nov. 2014, 13:50
par patrice
bonjour les gars
Je sais que ca ce fait pas mais je m'incruste dans ce sujet pour tout a fait autre chose
ca fait plusieurs fois que je lis
commandArray['UpdateDevice'] = idx .. '|0|'.. tostring(temperature1-temperature2)
je n'en comprends pas la syntaxe : le ['UpdateDevice'] = idx .. '|0|'..
qq pour m'expliquer