Page 17 sur 42

Re: Cozytouch Thermor

Publié : 05 mars 2019, 23:47
par jojomul1983
**********************************************************
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.

Re: Cozytouch Thermor

Publié : 06 mars 2019, 20:11
par sg2
Ok, tes matériels ne sont pas supportés par le script.

Le script ne supporte actuellement que deux types de matériels :
  • les radiateurs connectés Atlantic / Thermor / Sauter et autres compatibles io-Homecontrol selon Atlantic
  • les chauffe-eau électriques connectés idem
Si tu es codeur, alors tu peux ajouter le support de tes matériels...

Re: Cozytouch Thermor

Publié : 06 mars 2019, 20:16
par vr6man
sg2 as tu vu mon message pour ameliorer l'affichage ?

Re: Cozytouch Thermor

Publié : 06 mars 2019, 20:37
par sg2
vr6man a écrit : 06 mars 2019, 20:16 sg2 as tu vu mon message pour ameliorer l'affichage ?
Oui, je t'ai demandé de vérifier si la ré-exécution du script ne changeait rien à la valeur aberrante ; si c'est le cas alors annule la modification, en attendant une meilleure suggestion.

Re: Cozytouch Thermor

Publié : 06 mars 2019, 20:39
par vr6man
j'avais pas vu

non ca ne change rien a la valeur

Re: Cozytouch Thermor

Publié : 06 mars 2019, 20:51
par sg2
Je vous propose ma version 3 du script

Elle corrige tous les soucis que j'ai eus pour l'exécuter chez moi avec une version différente de python et des classes importées, je l'espère de façon tolérante aux différentes versions dans la nature (on verra bien :)

Elle récupère les paramètres par nom dans la trame cozytouch et non par numéro

Elle permet aussi de piloter le mode de fonctionnement des radiateurs (confort / eco / hors-gel / off etc.) depuis les sélecteurs de l'onglet "switches" de Domoticz.

Elle propose 3 niveaux de debug :
  • 0 : traces de base comme le script d'origine
  • 1 : idem 0 + traces de protocole HTTP et autres traces d'exécution)
  • 2 : idem 1 + dump complet de la structure json récupérée du serveur cozytouch, pour permettre l'analyse et l'ajout de matériels non encore supportés (regard en direction de jojomul1983 :D )
En principe elle capture et affiche beaucoup plus de cas d'erreur.

Elle marche chez moi :) Mais je m'attends à un tas d'anomalies chez les autres

Ne pas oublier d'ajuster les paramètres au début du script : login, mot de pase cozytouch + adresse IP et port Domoticz

Attention : si vous utilisez les modes debug 1 et 2, n'oubliez pas d'enlever vos login et mot de passe cozytouch avant de coller le résultat ici !

Bon test aux courageux !

PS vr6man : cette version ne modifie pas le souci d'affichage d'énergie, on verra ça dans la prochaine s'il y en a une :)

Re: Cozytouch Thermor

Publié : 06 mars 2019, 20:53
par vr6man
ok merci sg2 donc pas intéeret pour moi implementer ce nouveau script ?

Re: Cozytouch Thermor

Publié : 06 mars 2019, 21:03
par sg2
Ben si, de mémoire il intègre des modifs que je t'ai fait faire sur le script V2 sans lesquelles ça ne marchait pas

Re: Cozytouch Thermor

Publié : 06 mars 2019, 21:06
par vr6man
ok donc je laisse le mien pas la peine de mettre le V3

Re: Cozytouch Thermor

Publié : 07 mars 2019, 02:45
par jojomul1983
sg2 a écrit : 06 mars 2019, 20:11 Ok, tes matériels ne sont pas supportés par le script.

Le script ne supporte actuellement que deux types de matériels :
  • les radiateurs connectés Atlantic / Thermor / Sauter et autres compatibles io-Homecontrol selon Atlantic
  • les chauffe-eau électriques connectés idem
Si tu es codeur, alors tu peux ajouter le support de tes matériels...
Merci, au moins, je sais à quoi m'en tenir.

Je ne suis pas codeur, mais je voudrais bien essayer de rentrer mes matériels dans ton script.
Comment pourrais-je faire?

PS: Le lien du script V3 =>erreur 404