Re: Cozytouch Thermor
Publié : 05 mars 2019, 23:47
**********************************************************
Fonction de comparaison de consigne pour maj Domoticz
**********************************************************
'''
def comparaison_consigne (texte,url_device,nom_device, idx_cons_domoticz, cons_device,cde_name):
''' Compare les consignes de domoticz ancienne / actuelle / ainsi que celle du device
pour déterminer qui demande un changement de consigne
envoi le changement de consigne au device ou à Domoticz et inscrit un log
'''
cons_domoticz_prec = restore ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz))
# Calcul de l'écart de consigne
# limitation consigne : la consigne n'accepte que des pas de 0,5°C
# si la partie décimale est égale à 0,5 on accepte, sinon on arrondi
cons_domoticz = read_device_data (idx_cons_domoticz)
e = int(cons_domoticz)
e = cons_domoticz - e
# si la partie décimale est différente de 0,5°C on arrondi
if e <> 0.5:
cons_domoticz = round(cons_domoticz)
# comparaison avec la consigne en cours du radiateur
if cons_device <> cons_domoticz and cons_domoticz <> cons_domoticz_prec and cons_domoticz_prec > 0:
# si un écart est détecté
# et si le changement de consigne vient de domoticz, on envoie le changement au device
# et si la consigne précédente est différente de 0 (cas au démarrage)
requete_POST (url_device,cde_name,cons_domoticz)
write_log('Cozytouch - '+nom_device+' : nouvelle consigne '+str(texte)+' transmise: '+str(cons_domoticz)+'°C')
save (cons_domoticz, ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz)))
elif cons_device <> cons_domoticz and cons_domoticz == cons_domoticz_prec and cons_domoticz_prec > 0:
# sinon, le changement vient du device
# mise à jour de domoticz
write_log('Cozytouch - '+nom_device+' : détection changement consigne ' +str(texte)+' : '+str(cons_device)+'°C')
write_device(cons_device,idx_cons_domoticz)
save (cons_device, ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz)))
else :
# ou simple rafraichissement si aucun changement
# mise à jour de domoticz
write_device(cons_device,idx_cons_domoticz)
save (cons_device, ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz)))
def maj_device (data,name,p,x):
''' Fonction de mise à jour du device dans Domoticz
'''
print ("Mise a jour device :"+str(p))
print (json.dumps(data, indent=4))
def value (data,device, item):
value=(data['setup']['devices'][device]['states'][item]['value'])
return value
Je pense voir bien fait.
Fonction de comparaison de consigne pour maj Domoticz
**********************************************************
'''
def comparaison_consigne (texte,url_device,nom_device, idx_cons_domoticz, cons_device,cde_name):
''' Compare les consignes de domoticz ancienne / actuelle / ainsi que celle du device
pour déterminer qui demande un changement de consigne
envoi le changement de consigne au device ou à Domoticz et inscrit un log
'''
cons_domoticz_prec = restore ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz))
# Calcul de l'écart de consigne
# limitation consigne : la consigne n'accepte que des pas de 0,5°C
# si la partie décimale est égale à 0,5 on accepte, sinon on arrondi
cons_domoticz = read_device_data (idx_cons_domoticz)
e = int(cons_domoticz)
e = cons_domoticz - e
# si la partie décimale est différente de 0,5°C on arrondi
if e <> 0.5:
cons_domoticz = round(cons_domoticz)
# comparaison avec la consigne en cours du radiateur
if cons_device <> cons_domoticz and cons_domoticz <> cons_domoticz_prec and cons_domoticz_prec > 0:
# si un écart est détecté
# et si le changement de consigne vient de domoticz, on envoie le changement au device
# et si la consigne précédente est différente de 0 (cas au démarrage)
requete_POST (url_device,cde_name,cons_domoticz)
write_log('Cozytouch - '+nom_device+' : nouvelle consigne '+str(texte)+' transmise: '+str(cons_domoticz)+'°C')
save (cons_domoticz, ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz)))
elif cons_device <> cons_domoticz and cons_domoticz == cons_domoticz_prec and cons_domoticz_prec > 0:
# sinon, le changement vient du device
# mise à jour de domoticz
write_log('Cozytouch - '+nom_device+' : détection changement consigne ' +str(texte)+' : '+str(cons_device)+'°C')
write_device(cons_device,idx_cons_domoticz)
save (cons_device, ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz)))
else :
# ou simple rafraichissement si aucun changement
# mise à jour de domoticz
write_device(cons_device,idx_cons_domoticz)
save (cons_device, ('save_consigne_'+str(nom_device)+str(idx_cons_domoticz)))
def maj_device (data,name,p,x):
''' Fonction de mise à jour du device dans Domoticz
'''
print ("Mise a jour device :"+str(p))
print (json.dumps(data, indent=4))
def value (data,device, item):
value=(data['setup']['devices'][device]['states'][item]['value'])
return value
Je pense voir bien fait.