script thermostat avec commande de la temperature

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 <\>.
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

script thermostat avec commande de la temperature

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
pacheth
Messages : 3
Inscription : 10 nov. 2014, 09:47

Re: script thermostat avec commande de la temperature

Message 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
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: script thermostat avec commande de la temperature

Message par jackslayter »

Oui j'ai un ID dans domoticz , normalement on peut mettre plus de 3 sondes sans problème
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: script thermostat avec commande de la temperature

Message 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) , .......
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
pacheth
Messages : 3
Inscription : 10 nov. 2014, 09:47

Re: script thermostat avec commande de la temperature

Message 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...
mike913
Messages : 159
Inscription : 18 oct. 2014, 10:22
Localisation : Morsang / Orge - Essonne
Contact :

Re: script thermostat avec commande de la temperature

Message 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
DS718+ 2 x 3To(SHR) - Firmware: DSM 7.0.1-42218
DS712+ 2 x 4To (SHR) - Firmware: DSM 6.2.4-25556
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox Delta
https://meteo.folcke.net
https://wiki.folcke.net
pacheth
Messages : 3
Inscription : 10 nov. 2014, 09:47

Re: script thermostat avec commande de la temperature

Message 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
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: script thermostat avec commande de la temperature

Message 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
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: script thermostat avec commande de la temperature

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: script thermostat avec commande de la temperature

Message 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
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Répondre