[Tuto] Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par js-martin »

Je viens de mettre en place l'interface Web en PHP en attendant l'intégration dans Domoticz :
interface_web.jpg
interface_web.jpg (219.82 Kio) Consulté 12030 fois
Pour l'intégration, je réfléchie encore à la meilleure solution en regardant ce qui est déjà réalisé.
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
lanvezhon
Messages : 10
Inscription : 12 mai 2016, 19:10

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par lanvezhon »

Bonjour,
Nouveau sur le forum et incompétent en prog, je débute avec domoticz et j'ai ébauché un bout de python par copier/coller empreinté chez des bons!
(Mon daemon a été remanié pour coller au modèle). Ce même code est utilisé pour stocker les infos ttes les 20mn ds une base sqlite.
Le + dur reste à faire: modifier les réglages chaudière.

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-
import telnetlib
import csv, sqlite3
import os
import time
import sys
import requests
from requests.auth import HTTPBasicAuth

# relance daemon    
cmd = 'sudo service vitalk restart'
os.system(cmd)     
time.sleep(5)
# accès daemon
tn = telnetlib.Telnet("localhost", 83)
tn.read_until(b"$", 5)
replies=[]
     
# prepare fichier
fich = open('/var/python/vito3.txt', 'w')

# commands via telnet & write ds fich
commands = ["heure", "eau_temp_cc1", "pompe_cc1", "eau_temp_cc2", "pompe_cc2", "ext_temp", "vanne_text",  "ecs_temp", "dem_brul", "fonct_bruleur_h" ]
i=0
for command in commands:
	tn.write(b"g "+command+"\n")
        reply=tn.read_until(b"$", 5).strip("\n$")
        print commands[i].rjust(20)+": "+reply
        fich.write(reply+"\t") # tabulation entre records
        replies.append(reply)
	i+=1
tn.write(b"^]"+"\n")
tn.write(b"q\n")
fich.close() 
tn.close()

# extract data de fich
with open("/var/python/vito3.txt", "r") as data:
	for line in data:
		line = line.rstrip()
        	a,b,c,d,e,f,g,h,j,k = line.split('\t')
data.close()

# ------------------ ECRITURE DES DATA DANS DOMOTICZ -------------------
#print c , e , g
ip='192.168.0.111'
port='8080'
json_url_1='/json.htm?type=command&param=udevice&idx='
json_url_2='&nvalue=0&svalue='
json_url_s1='/json.htm?type=command&param=switchlight&idx='
json_url_s2='&switchcmd='

# Températures (OK)
eau_temp_cc1=str(b)
eau_temp_cc1_idx='13'
eau_temp_cc2=str(d)
eau_temp_cc2_idx='14'
ext_temp=str(f)
ext_temp_idx='2'
ecs_temp=str(h)
ecs_temp_idx='15'

# Textes (OK)
heure=str(a)
heure_idx='1'
vanne_text=str(g)
vanne_text_idx='18'
dem_brul=str(j)
dem_brul_idx='19'
fonct_bruleur_h=str(k)
fonct_bruleur_h_idx='20'

# Switches (OK)
if c == '0' :
   c = 'Off'
else: c = 'On'
pompe_cc1= c
pompe_cc1_idx='16'
if e == '0' :
   e = 'Off'
else: e = 'On'
pompe_cc2= e
pompe_cc2_idx='17'

requete_a='http://'+ip+':'+port+json_url_1+heure_idx+json_url_2+heure
requete_b='http://'+ip+':'+port+json_url_1+eau_temp_cc1_idx+json_url_2+eau_temp_cc1
requete_c='http://'+ip+':'+port+json_url_s1+pompe_cc1_idx+json_url_s2+pompe_cc1
requete_d='http://'+ip+':'+port+json_url_1+eau_temp_cc2_idx+json_url_2+eau_temp_cc2
requete_e='http://'+ip+':'+port+json_url_s1+pompe_cc2_idx+json_url_s2+pompe_cc2
requete_f='http://'+ip+':'+port+json_url_1+ext_temp_idx+json_url_2+ext_temp
requete_g='http://'+ip+':'+port+json_url_1+vanne_text_idx+json_url_2+vanne_text
requete_h='http://'+ip+':'+port+json_url_1+ecs_temp_idx+json_url_2+ecs_temp
requete_j='http://'+ip+':'+port+json_url_1+dem_brul_idx+json_url_2+dem_brul
requete_k='http://'+ip+':'+port+json_url_1+fonct_bruleur_h_idx+json_url_2+fonct_bruleur_h

#print c , e
#print requete_c
#print requete_e
r=requests.get(requete_a)
r=requests.get(requete_b)
r=requests.get(requete_c)
r=requests.get(requete_d)
r=requests.get(requete_e)
r=requests.get(requete_f)
r=requests.get(requete_g)
r=requests.get(requete_h)
r=requests.get(requete_j)
r=requests.get(requete_k)

if  r.status_code != 200:
    print "Erreur API Domoticz"

sys.exit(0)


js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par js-martin »

Bizarre comme approche : avant de faire l'assemblage, cela vaudrait le coup de faire un peu d'architecture logicielle (les briques nécessaires) et de savoir lire le code. En lisant ton code, je ne vois pas le deamon (processus qui tourne en arrière plan) ou l'utilisation de la base SQL (bon OK, tu dis que tu n'es pas un expert).

Je manque de temps en ce moment, mais l'on pourrait avoir deux programmes :

- un qui va lire les infos régulièrement de la chaudière et mettre à jour Domoticz (pas besoin de passer par des écritures disques, surtout avec une carte SD). Ce programme pourrait être exécuté toutes les x minutes (crontab par ex).

- un qui sera capable d'écrire des informations dans la chaudière si une action est faire dans domoticz.

Tu en penses quoi ?

Tu as un projet identique ? Tu as une interface ?
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
lanvezhon
Messages : 10
Inscription : 12 mai 2016, 19:10

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par lanvezhon »

c est le code du debut de bidouille pour affichage ds domoticz.
Celui qui tourne avec cron ressemble. Les data du fich sont envoyes ds sqlite.
Si tu veux la conf du daemon, je peux.
La connex se fait via un convertisseur usb sur le raspi. Ca tourne depuis 1 an.
Le php "vito" que tu affiche marche mais j ai des soucis avec l affichage gsm, c est la raison de mon test domoticz.
RL
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par js-martin »

J'ai pu testé la page php sur mon téléphone et cela marche bien. Comme tu l'as compris, mon but est de l'intégrer à Domoticz : ca sera pour bientôt !

Donc, si j'ai bien compris, tu testes Domoticz pour avoir une interface utilisable de ta Viessmann sur ton téléphone mobile ?

Dans quelques jours, ca sera bon alors ;)
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
lanvezhon
Messages : 10
Inscription : 12 mai 2016, 19:10

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par lanvezhon »

la page php ne marche qu'en affichage. Dès que je zoom pour changer un état, c'est le bazarre!
Domoticz me plait et ouvre vers d'autres "projets", porte de garage qui reste ouverte, store...
Ta vsion pour un python write et un read peut coller. (Faudrait juste un switch a 3 positions)
Tes estimations en jour sont à traduire en months! Un "IF" peut m'occuper 3 jours.
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par js-martin »

Certains vont être contents :

mon code est quasiment prêt : je suis parti sur un script python nommé "domo2vito" qui sert d'interface entre domoticz et vitalk.

il permet déjà ce genre de commande :

domo2vito update : update all domoticz values
domo2vito command : get command (e.g. domo2vito mode <=> get mode)
domo2vito command value : set command value (e.g. domo2vito mode 1 <=> set mode 1)


et mon premier test avec domoticz est concluant (et j'ai trouvé un nouveau switch multiposition !)
selector.JPG
selector.JPG (15.54 Kio) Consulté 11971 fois
et la configuration :
selector_config.JPG
selector_config.JPG (113.71 Kio) Consulté 11952 fois
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par js-martin »

Voici le code (il est tout frais => bugs possible...)

il demande l'installation du client telnet viTalk
(point 9 et 10 de ce tuto : https://www.bricozone.fr/t/interface-vi ... -pi.14671/ )


domo2vito.py (pensez à faire le "sudo chmod +x domo2vito.py " pour le rendre executable)

Code : Tout sélectionner

#!/usr/bin/python
# domo2vito 
# JS MARTIN - 05/2016


import telnetlib
import sys     
import os
import time
import requests
from requests.auth import HTTPBasicAuth


############# Parameters ################################# 

#~~~~~~~~~~ Parameters Domoticz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_ip='192.168.10.40'
domoticz_port='8080'
user=''  
password=''
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Commands viTalk
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#autorized commands
commands = ["mode","saving","party","party_soll_temp","outdoor_temp","raum_soll_temp","raum_ist_temp","k_ist_temp","ww_soll_temp","ww_ist_temp","k_abgas_temp","power"]
#write only commands
write_only_commands = ["mode","saving","party","party_soll_temp","ww_soll_temp"]

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# IDX de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# remplacer XXX par votre idx de votre widget
dummy_idx={'mode':343, 'saving': 344, 'party':345, 'party_soll_temp':346, 'outdoor_temp':347, 'raum_soll_temp':355, 'raum_ist_temp':349, 'k_ist_temp':350, 'ww_soll_temp':351, 'ww_ist_temp':352, 'k_abgas_temp':353, 'power':354}
# mode   : dummy selector switch OFF/Water/Heating (Boiler [FR:chaudiere] stand-by/water only/water+heating)
# saving : dummy switch ON/OFF (Boiler eco ON/OFF)
# party  : dummy switch ON/OFF (party temporary manual control)
# party_soll_temp: dummy thermostat setpoint (party temperature)
# outdoor_temp   : dummy temp (outdoor temperature)
# raum_soll_temp : dummy temp (heating setpoint [FR:consigne] temperature) - note : without vitotronic, use thermostat setpoint 
# raum_ist_temp  : dummy temp (heating current [FR:actuelle] temperature)
# k_ist_temp     : dummy temp (boiler current temperature)
# ww_soll_temp   : dummy temp (hot water setpoint temperature)
# ww_ist_temp    : dummy temp (hot water current temperature)
# k_abgas_temp   : dummy temp (exhaust gas [FR:gaz evacue'] temperature)
# power          : dummy percentage (% boiler power) 

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Mode debug
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# if debug = True => verbose
debug=True

#######################################################################
######  viTalk_connect() : connect to viTalk localhost:83
#######################################################################

def viTalk_connect():
        retry=3
        while retry!=0:
            try:
               tn = telnetlib.Telnet("localhost", 83)
               print "Connected to viTalk telnet !"
               return tn
            except:
               print "Connection ERROR - I try to restart viTalk deamon"
               #I try to restart viTalk
               cmd = 'sudo service vitalk restart'
               os.system(cmd)
               time.sleep(10)
               retry-=1
            else:
               tn.read_until(b"$", 5)
        if retry==0:
           tn.close()
           print "Connection ERROR - I could not restart viTalk deamon"
           sys.exit()
######


#######################################################################
###### viTalk_read(cmd) : read a value  
#######################################################################

def viTalk_read(cmd):
        global debug
        global tn
        retry=3
        value=""
        while retry!=0:
            tn.read_until(b"$", 5)
            tn.write(b"g "+cmd+"\n")
            value=tn.read_until(b"$", 5).strip("\n$")
            if value != "":
                break
            retry-=1
        if retry==0:
           tn.close()
           print(cmd+": "+value+" error")
           sys.exit()
        value = value.strip("\n$")
        if debug:
           print "get "+cmd+" : answer = "+value
        return value
          
######

#######################################################################
###### viTalk_set(cmd,val) : unsecured write
#######################################################################
def viTalk_set(cmd,val):
        global debug
        global tn
        tn.write(b"s "+cmd+" "+val+"\n")
        tn.read_until(b"$", 5).strip("\n$")
        if debug:
             print("set "+cmd+" "+val)
          
######

#######################################################################
###### viTalk_write(cmd,val) : secured write (I check if value is 
######                         really updated)
#######################################################################
def viTalk_write(cmd,val):
        global debug
        global tn
        retry=3
        value=""
        while retry!=0:
            viTalk_set(cmd,val)
            tn.read_until(b"$", 5)
            value=viTalk_read(cmd) 
            if val==value:
                break
            retry-=1
        if retry==0:
           tn.close()
           print(cmd+" "+val+" : error")
           sys.exit()
        if debug:
           print "check last command set "+cmd+" "+val+" : OK"

#########

#######################################################################
###### check_command(cmd) : is it an authorized command ?  
#######################################################################
def check_command(cmd):
       global commands
       global debug
       try:
         #check position of cmd in commands list 
         commands.index(cmd)
       except:
          print "command not found"
          return False
       else:
          if debug:
             print "this command "+cmd+" is known"
          return True
####

#######################################################################
###### check_set_command(cmd) : is it an authorized write command ?
#######################################################################
def check_set_command(cmd):
       global commands
       global debug
       try:
         #check position of cmd in write only commands list
         write_only_commands.index(cmd)
       except:
          print "set command not found (I can't write with this command)"
          return False
       else:
          if debug:
             print "this command "+cmd+" is known for writing"
          return True
####


#### START ####


# arguments in command line 
nb_arg=len(sys.argv)-1 

if nb_arg==0:
   print "HELP : "
   print "domo2vito update : update all domoticz values"
   print "domo2vito command : get command (e.g. domo2vito mode <=> get mode)"
   print "domo2vito command value : set command value (e.g. domo2vito mode 1 <=> set mode 1)"

if nb_arg==1 and sys.argv[1]!="update":
   if check_command(sys.argv[1]):
       if debug:
          print "get "+sys.argv[1] 
       tn=viTalk_connect()
       viTalk_read(sys.argv[1])
       tn.close()

if nb_arg==1 and sys.argv[1]=="update":   
   tn=viTalk_connect()
   values=[]
   i=0
   tn.read_until(b"$", 5)
   for command in commands:
       tn.write(b"g "+command+"\n")
       value=tn.read_until(b"$", 5).strip("\n$")
       if debug:
          print str(i)+") command : get "+command+ " => "+value
       values.append(value)
       i+=1
   tn.close() 
   
   #mode (selector level : 0=OFF 10=water 20=heating)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=switchlight&idx='+str(dummy_idx['mode'])+'&switchcmd=Set%20Level&level='+str(int(values[0])*10)
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # saving : dummy switch ON/OFF (Boiler eco ON/OFF)
   if values[1]=="0":
      req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=switchlight&idx='+str(dummy_idx['saving'])+'&switchcmd=Off'
   else:
      req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=switchlight&idx='+str(dummy_idx['saving'])+'&switchcmd=On'
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # party  : dummy switch ON/OFF (party temporary manual control)
   if values[2]=="0":
      req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=switchlight&idx='+str(dummy_idx['party'])+'&switchcmd=Off'
   else:
      req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=switchlight&idx='+str(dummy_idx['party'])+'&switchcmd=On'
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # party_soll_temp: dummy thermostat setpoint (party temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['party_soll_temp'])+'&nvalue=0&svalue='+values[3]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # outdoor_temp   : dummy temp (outdoor temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['outdoor_temp'])+'&nvalue=0&svalue='+values[4]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # raum_soll_temp : dummy temp (heating setpoint [FR:consigne] temperature) - note : without vitotronic, use thermostat setpoint
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['raum_soll_temp'])+'&nvalue=0&svalue='+values[5]
   requests.get(req,auth=HTTPBasicAuth(user,password))
 
   # raum_ist_temp  : dummy temp (heating current [FR:actuelle] temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['raum_ist_temp'])+'&nvalue=0&svalue='+values[6]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # k_ist_temp     : dummy temp (boiler current temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['k_ist_temp'])+'&nvalue=0&svalue='+values[7]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # ww_soll_temp   : dummy temp (hot water setpoint temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['ww_soll_temp'])+'&nvalue=0&svalue='+values[8]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # ww_ist_temp    : dummy temp (hot water current temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['ww_ist_temp'])+'&nvalue=0&svalue='+values[9]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # k_abgas_temp   : dummy temp (exhaust gas [FR:gaz evacue'] temperature)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['k_abgas_temp'])+'&nvalue=0&svalue='+values[10]
   requests.get(req,auth=HTTPBasicAuth(user,password))

   # power          : dummy percentage (% boiler power)
   req='http://'+domoticz_ip+':'+domoticz_port+'/json.htm?type=command&param=udevice&idx='+str(dummy_idx['power'])+'&nvalue=0&svalue='+values[11]
   requests.get(req,auth=HTTPBasicAuth(user,password))


if nb_arg==2:
   if check_set_command(sys.argv[1]):
       print "set "+sys.argv[1]+" "+sys.argv[2]
       tn=viTalk_connect()
       viTalk_write(sys.argv[1],sys.argv[2])
       tn.close()
Pour une mise à jour régulière :
ajouter dans la crontable (crontab -e) la ligne :

Code : Tout sélectionner

*/3 * * * *  /home/pi/domoticz/scripts/python/domo2vito.py update
(ici toutes les 3 minutes)
Les widgets nécessaires :
widgets.JPG
widgets.JPG (129.27 Kio) Consulté 11951 fois
La configuration des switchs est très simple : il suffit de rajouter le script python et les paramètres en arguments :
switch_config.JPG
switch_config.JPG (59.73 Kio) Consulté 11948 fois
(note : viTalk ne fonctionne pas totalement avec le mode party : c'est peut-être dû à ma commande déportée Vitotronic 300... si party est activé, il est possible de le désactiver mais pas l'inverse) ; le mode saving fonctionne (si la chaudière est en mode chauffage bien entendu).

Pour les thermostats (setpoint), je n'ai pas encore regardé. Ils se mettent bien à jour mais c'est tout pour le moment (j'aimerai configurer ce qui se passe lorsque l'on clique sur "regler").

Les températures remontent bien dans Domoticz :
temp.JPG
temp.JPG (53.27 Kio) Consulté 11946 fois
Dernière modification par js-martin le 01 juin 2016, 22:36, modifié 5 fois.
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
lanvezhon
Messages : 10
Inscription : 12 mai 2016, 19:10

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par lanvezhon »

Ouah!!! La montagne franchie en un jour.
Bien vu le sw à 3 positions, + bo qu'à casto.
C'est parti pour la semaine pour "décrypter" le code.
js-martin
Messages : 487
Inscription : 22 mars 2015, 22:08
Contact :

Re: Contrôler sa chaudière Viessmann avec Domoticz via une interface infrarouge

Message par js-martin »

Tu n'auras plus de raison de ne pas te mettre à Domoticz ;)

J'ai mis pleins de commentaires dans le code pour qu'il soit le plus clair possible. Si un truc n'est pas clair, n'hésite pas...

Pas de bug : tout marche bien. La chaudière change bien de mode correctement avec le selector (lorsque je suis tombé dessus, j'étais ravi !)

Après une journée, c'est amusant de voir les courbes se former (ici la température de la chaudière : on peut voir quand elle réchauffe le ballon d'eau chaude) :
temp_chaudiere.JPG
temp_chaudiere.JPG (49.47 Kio) Consulté 11927 fois
il faut que je regarde comment marche le setpoint pour finaliser ce script.

L'intégration dans Domoticz ouvre la porte aux scénarios. Mon premier est le suivant : ma température d'eau chaude est à 42°C. C'est bas mais cela nous suffit (et pas de risque de brûlure). Toutefois, cette basse température n'est pas recommandée à cause de la légionellose.
J'ai lu sur Internet :
Les légionelles se multiplient entre 20-25°C et 45°C avec un optimum vers 35°C. Aux alentours de 45°C, la multiplication se ralentit. En dessous de 20°C, les légionelles sont à l’état de dormance.
Les durées pour réduire de 90% une population de Legionella pneumophila en suspension sont estimées à environ 6 h à 50°C, 45 s à 60°C et 30 s à 70°C.
Il est donc facile de passer régulièrement (une fois par semaine semble pas mal) la température à 60°C pendant une minute pour éviter une prolifération...
Domotisation de : mes compteurs EDF, solaire, eau / mon alarme / ma Chaudière Viessamnn / mon congel / ma sonnette. Matériels : Pi2 - RFXTrx433e - Zwave+ Aeotec, ampoules Hue - Détecteur et prises Fibaro - Capteurs Oregon - présentation installation => lien
Répondre