"Résolu"Capteur de porte Fibaro pour sécurité Chauffage

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
Cedric59
Messages : 33
Enregistré le : 15 mars 2020, 18:58

"Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par Cedric59 »

Bonjour à tous,

je souhaite ajouter un capteur Fibaro dans mon script "voir ci-dessous" il me sert à gérer le chauffage de la chambre de ma fille en fonction de la température de la pièce... il fonctionne très bien, mais je souhaite passer une étape en ajoutant une condition si la fenêtre est ouverte....

Code : Tout sélectionner

local temp = 'Température chambre Lihore' 
local thermostat_setpoint = 'Thermostat Lihore'
local heating_unit = 'Ventilateur Chauffage Lihore'


local hysteresis = 0.5

commandArray = {}

if devicechanged[temp] then
		print('temp:'..otherdevices_temperature[temp])
		print('thermostat_setpoint:'..otherdevices[thermostat_setpoint])
        if tonumber(otherdevices[thermostat_setpoint]) < tonumber(otherdevices_temperature[temp]-hysteresis) then
            if (otherdevices[heating_unit] == "On") then
                commandArray[heating_unit]='Off'
                print("Heating is Off")
            end
        elseif tonumber(otherdevices[thermostat_setpoint]) > tonumber(otherdevices_temperature[temp]+hysteresis) then
            if (otherdevices[heating_unit] == "Off") then
                commandArray[heating_unit]='On'
                print("Heating is On")
            end
        end
end

return commandArray
Dans ce script j'ai "essayer" d'ajouter le capteur de porte Fibaro j'ai donc essayer d'ajouter une condition "if" la fenêtre est ouverte le ventilateur du chauffage ne pourra pas démarrer même si la température mesuré est inférieur à la température demandé... et qu'il puisse fonctionner dès que la fenêtre se ferme.... .

Code : Tout sélectionner

local temp = 'Température chambre Lihore' 
local thermostat_setpoint = 'Thermostat Lihore'
local heating_unit = 'Ventilateur Chauffage Lihore'
local windows_lihore = 'Capteur Fenêtre Lihore'


local hysteresis = 0.5

commandArray = {}

if devicechanged[temp] then
		print('temp:'..otherdevices_temperature[temp])
		print('thermostat_setpoint:'..otherdevices[thermostat_setpoint])
		print('windows_lihore:'..otherdevices[windows_lihore])
        if tonumber(otherdevices[thermostat_setpoint]) < tonumber(otherdevices_temperature[temp]-hysteresis) then
            if (otherdevices[heating_unit] == "On") then
                if(otherdevice[windows_lihore] == "On") then
                    commandArray[heating_unit]='Off'
                    print("Heating is Off")
                end
        elseif tonumber(otherdevices[thermostat_setpoint]) > tonumber(otherdevices_temperature[temp]+hysteresis) then
            if (otherdevices[heating_unit] == "Off") then
                if (otherdevices[windows_lihore] == "Off") then
                    commandArray[heating_unit]='On'
                    print("Heating is On")
                end
            end
        end
    end
return commandArray
Bien sur si je suis là c'est que cela ne fonctionne pas correctement j'ai cette erreur dans les log...

Code : Tout sélectionner

 2020-04-05 23:49:37.120 Error: EventSystem: in Test gestion chauffage chambre Lihore V2.0: [string "local temp = 'Température chambre Lihore' ..."]:30: 'end' expected (to close 'if' at line 11) near <eof>
Je ne comprend pas d'ou vient l'erreur exactement...

Quelqu'un peux m'aider ?

Merci d'avance à tous
Modifié en dernier par Cedric59 le 06 avr. 2020, 21:34, modifié 1 fois.
Débutant sur domoticz
Débutant dans la prog....
Raspberry Pi 3, Fibaro door, ESP8266-01 + carte relais x2, contrôleur Z-wave, sonde de température DHT11

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Capteur de porte Fibaro pour sécurité Chauffage

Message par vil1driver »

Salut,

Tu as ajouté ta condition sans y mettre fin
C'est ce que signifie l'erreur
'end' expected to close 'if'
Il attend un 'end' pour clôturer le 'if'

Le script qui fonctionne dit
Si la temp est haute
on stop le chauffage

Je simplifie, je ne mentionne pas la condition qui vérifie que le chauffage est bien en marche avant de l'arrêter.
Ca complexifie la lecture et personnellement je trouve que dans le fonctionnement il vaut mieux répéter ces ordres, ça fiabilise grandement.


Bref...

Tu as donc la condition A qui arrête le chauffage.

Toi, ce que tu veux c'est en ajouter une autre (la condition B : si la fenêtre est ouverte)

L'une ou l'autre pouvant arrêter le chauffage
Le plus simple est probablement de faire

Si A ou B alors
......

Si (il fait chaud) ou (la fenêtre est ouverte) .....

Reprend à partir du script qui fonctionne
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

Cedric59
Messages : 33
Enregistré le : 15 mars 2020, 18:58

Re: Capteur de porte Fibaro pour sécurité Chauffage

Message par Cedric59 »

Salut Vill1driver.

C'est bon sa fonctionne :D

Merci de tes conseils

Est ce que tu penses que c'est utile de le mettre dans la section tuto du forum ?
Débutant sur domoticz
Débutant dans la prog....
Raspberry Pi 3, Fibaro door, ESP8266-01 + carte relais x2, contrôleur Z-wave, sonde de température DHT11

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: "Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par vil1driver »

Ce n'est pas utile non ;)

J'insiste sur un point
Ceci

Code : Tout sélectionner

if(otherdevice[heating_unit] == "On") then
        commandArray[heating_unit]='Off'
        print("Heating is Off")
end
N'a pour but que d'éviter l'envoi d'ordres inutiles à répétition (à chaque relève de temp)
Mais que ce passe t'il si l'ordre n'est pas reçu ?
Plus aucun autre ordre ne sera envoyé.
Et il va faire super chaud ou super froid...

Mon conseil, soit à minima ajouter un script qui va répéter les ordres ou alors simplement
Faire

Code : Tout sélectionner

commandArray[heating_unit]='Off'
print("Heating is Off")
Idem pour 'On'
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

Cedric59
Messages : 33
Enregistré le : 15 mars 2020, 18:58

Re: "Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par Cedric59 »

Ce n'est pas déjà le cas ?

Code : Tout sélectionner

local temp = 'Température chambre Lihore' 
local thermostat_setpoint = 'Thermostat Lihore'
local heating_unit = 'Ventilateur Chauffage Lihore'
local windows_lihore = 'Capteur Fenêtre Lihore'


local hysteresis = 0.5

commandArray = {}

if devicechanged[temp] then
		print('temp:'..otherdevices_temperature[temp])
		print('thermostat_setpoint:'..otherdevices[thermostat_setpoint])
        if tonumber(otherdevices[thermostat_setpoint]) < tonumber(otherdevices_temperature[temp]-hysteresis) or (otherdevices[windows_lihore] == "On") then
            if (otherdevices[heating_unit] == "On") then
                commandArray[heating_unit]='Off'
                print("Heating is Off")
            end
        elseif tonumber(otherdevices[thermostat_setpoint]) > tonumber(otherdevices_temperature[temp]+hysteresis) then
            if (otherdevices[heating_unit] == "Off") then
                commandArray[heating_unit]='On'
                print("Heating is On")
            end
        end
end

return commandArray
J'ai ajouter une autre condition car de temps en temps je constate des pertes de connection de mon esp8266 je pense avoir vu un article sur le forum mais je n'ai pas encre eu le temps de bien l'analyser du coup si je constate que la température et égal à 0 on coupe le ventilateur ... .

Code : Tout sélectionner

local temp = 'Température chambre Lihore' 
local thermostat_setpoint = 'Thermostat Lihore'
local heating_unit = 'Ventilateur Chauffage Lihore'
local windows_lihore = 'Capteur Fenêtre Lihore'


local hysteresis = 0.5

commandArray = {}

if devicechanged[temp] then
		print('temp:'..otherdevices_temperature[temp])
		print('thermostat_setpoint:'..otherdevices[thermostat_setpoint])
        if tonumber(otherdevices[thermostat_setpoint]) < tonumber(otherdevices_temperature[temp]-hysteresis) or (otherdevices[windows_lihore] == "On") or (otherdevices_temperature[temp] == "0") then
            if (otherdevices[heating_unit] == "On") then
                commandArray[heating_unit]='Off'
                print("Heating is Off")
            end
        elseif tonumber(otherdevices[thermostat_setpoint]) > tonumber(otherdevices_temperature[temp]+hysteresis) then
            if (otherdevices[heating_unit] == "Off") then
                commandArray[heating_unit]='On'
                print("Heating is On")
            end
        end
end

return commandArray
Débutant sur domoticz
Débutant dans la prog....
Raspberry Pi 3, Fibaro door, ESP8266-01 + carte relais x2, contrôleur Z-wave, sonde de température DHT11

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: "Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par vil1driver »

Je proposais ceci

Code : Tout sélectionner

local temp = 'Température chambre Lihore' 
local thermostat_setpoint = 'Thermostat Lihore'
local heating_unit = 'Ventilateur Chauffage Lihore'
local windows_lihore = 'Capteur Fenêtre Lihore'


local hysteresis = 0.5

commandArray = {}

if devicechanged[temp] then
		print('temp:'..otherdevices_temperature[temp])
		print('thermostat_setpoint:'..otherdevices[thermostat_setpoint])
        if tonumber(otherdevices[thermostat_setpoint]) < tonumber(otherdevices_temperature[temp]-hysteresis) or (otherdevices[windows_lihore] == "On") then
                commandArray[heating_unit]='Off'
                print("Heating is Off")
        elseif tonumber(otherdevices[thermostat_setpoint]) > tonumber(otherdevices_temperature[temp]+hysteresis) then
                commandArray[heating_unit]='On'
                print("Heating is On")
        end
end

return commandArray
Saisi tu la différence de fonctionnement ?
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

Cedric59
Messages : 33
Enregistré le : 15 mars 2020, 18:58

Re: "Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par Cedric59 »

Au lieu de lui demander "si" demande de chauffe et si le radiateurs est off et qu'il doit être on Alors on

Maintenant c'est si demande de chauffe radiateur on et si pas demande de chauffe ou temp (ok) alors radiateur Off.

On ne demande plus l'état intermédiaire du Rad il doit s'allumer ou s'éteindre et peu importe dans quel état il est...

C'est correct ?

Code : Tout sélectionner

local temp = 'Température chambre Lihore' 
local thermostat_setpoint = 'Thermostat Lihore'
local heating_unit = 'Ventilateur Chauffage Lihore'
local windows_lihore = 'Capteur Fenêtre Lihore'


local hysteresis = 0.5

commandArray = {}

if devicechanged[temp] then
		print('temp:'..otherdevices_temperature[temp])
		print('thermostat_setpoint:'..otherdevices[thermostat_setpoint])
        if tonumber(otherdevices[thermostat_setpoint]) < tonumber(otherdevices_temperature[temp]-hysteresis) or (otherdevices[windows_lihore] == "On") or (otherdevices_temperature[temp] == 0) then
                commandArray[heating_unit]='Off'
                print("Heating is Off")
        elseif tonumber(otherdevices[thermostat_setpoint]) > tonumber(otherdevices_temperature[temp]+hysteresis) then
                commandArray[heating_unit]='On'
                print("Heating is On")
        end
end

return commandArray
J'ai ajouter pour le moment si température = 0 coupe le chauffage comme j'ai des problèmes de temps de perte de réseau

Je vais aussi "essayer" de refaire un script (histoire de s'entrainer) pour gérer les horaires de charge des accu du radiateur pour le moment je le gère avec un Blocky.

Question par rapport à cela est ce que je peux le gérer dans le même script ?
Débutant sur domoticz
Débutant dans la prog....
Raspberry Pi 3, Fibaro door, ESP8266-01 + carte relais x2, contrôleur Z-wave, sonde de température DHT11

vil1driver
Messages : 5455
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: "Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par vil1driver »

Oui,

Si le radiateur est allumé (selon domoticz) alors au besoin on lui dis de s'éteindre

Idem pour lui dire de s'allumer, on regarde si (selon domoticz) il est éteint.

Cela permet de n'envoyez que des ordres utiles et ainsi de ne pas saturer les ondes radio.

Seulement voila, tout est selon domoticz, en gros si, on envoie l'ordre d'arrêt au chauffage, pour domoticz ce dernier est arrêté comme on vient de le lui ordonner.

Mais voila, si jamais l'ordre n'a pas été reçu (beaucoup de possibilités pour que cela arrive)

Pour domoticz, le radiateur est éteint mais en réalité il est allumé.
Mais domoticz ne va pas aller dire à un radiateur supposé éteint de s'arrêter...

Du coups en peu de temps il fait 35°C dans la chambre de ta fille....

Idem dans l'autre sens, il peux faire 5°C de la même façon.

Tu saisi le risque encouru par l'économie de signaux RF ?

Dans la lignée, on a aussi des sondes de température dont les piles rendent l'âme et qui n'indiquent plus rien, comment se comporte alors le script ?
La sonde dont la dernière mise à jour date de 5h indique toujours 19, mais il fait 35 en réalité...

Avant de bien voir les choses dans leur ensemble, fait tes essais dans ta chambre et non celle de ta fille.

----

Si temp = 0 ? Pourquoi ?
Des accu de radiateur ? Kezako ?
Beaucoup de choses sont possibles dans un même script, le tout est de faire au plus simple, de sorte à ne pas s'y perdre (même 1 an après...en relecture )
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

Cedric59
Messages : 33
Enregistré le : 15 mars 2020, 18:58

Re: "Résolu"Capteur de porte Fibaro pour sécurité Chauffage

Message par Cedric59 »

Pour le test dans la chambre de ma fille pas de "stress" elle à 2mois et elle dort encore dans ma chambre ;)

Et vue le confinement ma femme est tous les jours à la maison et moi 2X / semaine pour du télétravail...

Tu saisi le risque encouru par l'économie de signaux RF ? Non pas du tout comme tu le sais je suis un débutant et donc j'apprend à chaque fois que tu me réponds :)

si temp = 0 : de temps en temps je constate qu'il y à une perte de connexion donc plus de retour de température et cela affiche 0 degrès sur Domoticz... je sais que ce n'est pas top mais c'est en attendant de trouver pourquoi a perte de connection... .

Les accus c'est un radiateur avec des accu "briques réfractaires à accumulation" du coup il se charge la nuit heure creuse" et en fonction du besoin tu peux déterminer le niveau de charge "la puissance du charge des briques" en fonction de la nécessité de chauffe. c'est celui la "https://www.eibabo.be/fr/glen-dimplex/c ... R2EALw_wcB"
Débutant sur domoticz
Débutant dans la prog....
Raspberry Pi 3, Fibaro door, ESP8266-01 + carte relais x2, contrôleur Z-wave, sonde de température DHT11

Répondre