Page 1 sur 10

Thermostat connecté Honeywell Evohome

Publié : 19 nov. 2017, 16:59
par vincentl
Bonjour,

Quel plugin faut il utiliser pour gérer les thermostats connectés Honeywell ? (si il y en a un :?:)
Excusez la question débutant

Vincent

Re: Thermostat connecté Honeywell Evohome

Publié : 20 nov. 2017, 10:32
par vincentl
je ne trouve pas beaucoup d'informations avec jeedom et les thermostats evohome.
Ils sont nativement pris en charge avec domoticz, via la plateforme https://international.mytotalconnectcomfort.com/

Pouvez vous m'aider dans mes recherches ?

Vincent

Re: Thermostat connecté Honeywell Evohome

Publié : 25 nov. 2017, 14:43
par ctwins95
Bonjour,
Comme toi, j'avoue que je suis également déçu de ne pas avoir trouvé d'info à ce sujet.
Ce qui m'intéresse avant tout, serait de sauvegarder toute la programmation afin de disposer de pré-réglages selon les périodes (normal/travail, absence/vacances, présence qq'un à la maison, ...), vu que la programmation elle-même, je la trouve plutôt confortable sur le satellite, voire sur l'appli smartphone.
Je réfléchis à créer un plugin, ayant récupéré les composants Python evohomeclient, et mis en oeuvre sur le PC du backup/restore (ci-dessous), mais aussi d'afficher les températures et partant, sortir des graphes par zone (ceux-ci étant intéressants en phase d'ajustement).
Je ne connais pas Python, ça n'aide pas, mais on trouve toutes les infos sur le net.
Par contre, créer un plugin, je n'ai toujours pas trouvé un point d'entrée guidé, un template.
Il faut comprendre l'évosystème de Jeedom à priori en étudiant des plugins existants, bref pas une mince affaire quand on n'y passe pas ses journées.
Doc développeur, on arrive là : https://jeedom.github.io/documentation/ ... fault.html
et après ?
Si quelqu'un savait me montrer la voie, ce serait fort sympathique !

Les GIT de evohomeclient :
https://github.com/watchforstock/evohome-client
https://github.com/watchforstock/java-evohome-client
DOC :
http://evohome-client.readthedocs.io/en ... index.html

et du fork :
https://github.com/reines/evohome-client (java, host paramétrable)
https://github.com/gordonb3/evohomeclient (C++)

Un blog de discussion qui commence à cumuler pas mal de pages : http://www.automatedhome.co.uk/vbulleti ... l-remotely
De mémoire, il me semble que c'est à partir de ce forum qu'est né evohomeclient

Pour terminer, la DOC officielle de Honeywell, mais à priori non aboutie :
https://mytotalconnectcomfort.com/WebApi/Help
en ouvrant une session avec le code appli : 91db1612-73fd-4500-91b2-e63b069b185c


Script pour le backup des zones :
(après install de https://github.com/watchforstock/evohome-client)
from evohomeclient2 import EvohomeClient
client = EvohomeClient('USERNAME', 'PASSWORD', debug=False)
client.zone_schedules_backup('backup.json')

et le restore :
client.zone_schedules_restore('backup.json')

disons que c'est un petit début... (avec un grand merci à https://github.com/watchforstock)

Re: Thermostat connecté Honeywell Evohome

Publié : 11 déc. 2017, 22:58
par underscan
+1
meme situation, j'ai un evohome wifi, et je cherche a l'integrer a jeedom, seul probleme, pas de plugin et je ne suis pas developpeur..
@sarakha63, peut etre que tu peux guider ctwins95?

Re: Thermostat connecté Honeywell Evohome

Publié : 14 déc. 2017, 22:19
par underscan
ctwins95 a écrit :Bonjour,
Comme toi, j'avoue que je suis également déçu de ne pas avoir trouvé d'info à ce sujet.
Ce qui m'intéresse avant tout, serait de sauvegarder toute la programmation afin de disposer de pré-réglages selon les périodes (normal/travail, absence/vacances, présence qq'un à la maison, ...), vu que la programmation elle-même, je la trouve plutôt confortable sur le satellite, voire sur l'appli smartphone.
Je réfléchis à créer un plugin, ayant récupéré les composants Python evohomeclient, et mis en oeuvre sur le PC du backup/restore (ci-dessous), mais aussi d'afficher les températures et partant, sortir des graphes par zone (ceux-ci étant intéressants en phase d'ajustement).
Je ne connais pas Python, ça n'aide pas, mais on trouve toutes les infos sur le net.
Par contre, créer un plugin, je n'ai toujours pas trouvé un point d'entrée guidé, un template.
Il faut comprendre l'évosystème de Jeedom à priori en étudiant des plugins existants, bref pas une mince affaire quand on n'y passe pas ses journées.
Doc développeur, on arrive là : https://jeedom.github.io/documentation/ ... fault.html
et après ?
Si quelqu'un savait me montrer la voie, ce serait fort sympathique !

Les GIT de evohomeclient :
https://github.com/watchforstock/evohome-client
https://github.com/watchforstock/java-evohome-client
DOC :
http://evohome-client.readthedocs.io/en ... index.html

et du fork :
https://github.com/reines/evohome-client (java, host paramétrable)
https://github.com/gordonb3/evohomeclient (C++)

Un blog de discussion qui commence à cumuler pas mal de pages : http://www.automatedhome.co.uk/vbulleti ... l-remotely
De mémoire, il me semble que c'est à partir de ce forum qu'est né evohomeclient

Pour terminer, la DOC officielle de Honeywell, mais à priori non aboutie :
https://mytotalconnectcomfort.com/WebApi/Help
en ouvrant une session avec le code appli : 91db1612-73fd-4500-91b2-e63b069b185c


Script pour le backup des zones :
(après install de https://github.com/watchforstock/evohome-client)
from evohomeclient2 import EvohomeClient
client = EvohomeClient('USERNAME', 'PASSWORD', debug=False)
client.zone_schedules_backup('backup.json')

et le restore :
client.zone_schedules_restore('backup.json')

disons que c'est un petit début... (avec un grand merci à https://github.com/watchforstock)
Après quelque recherche j'ai trouvé une doc sur un plugin template qui sert de squelette pour les nouveaux plugins:
https://jeedom.com/doc_old/documentatio ... #_template

Tu penses realiste de démarrer quelque chose ?
Perso je ne suis pas développeur donc je ne peux malheureusement pas faire grand chose..

Envoyé de mon SM-T805 en utilisant Tapatalk


Re: Thermostat connecté Honeywell Evohome

Publié : 14 déc. 2017, 23:50
par vincentl
Salut,

Personnellement je compte y regarder dès que j'ai un peu de temps :-D

Vincent

Re: Thermostat connecté Honeywell Evohome

Publié : 17 déc. 2017, 13:13
par ctwins95
Après quelque recherche j'ai trouvé une doc sur un plugin template qui sert de squelette pour les nouveaux plugins:
https://jeedom.com/doc_old/documentatio ... #_template
J'avais vu cela aussi, mais cela reste un peu trop théorique pour savoir comment démarrer, comment faire apparaître le plugin ou simuler une installation ? Comprendre l'écosystème et comment s'y intégrer ?
Egalement, le plugin installé, la page de création reste vierge de tout bouton :(
S'inspirer de plugins existants, je ne trouve pas que cela soit une bonne approche, car x développeurs, x façon de faire, et pas forcément de la meilleure façon, j'imagine donc une bonne prise de tête pour identifier les bonnes pratiques, et les bouts de code utilisables pour le besoin.

<edit 23.52>Enfin, il me/nous faut traduire le code python en php, ce qui ajoute en complexité/temps, vu que je connais peu le premier, et trèèès peu le second.
Je viens de voir que les plugin, basés donc sur php, peuvent lancer des scripts python... à voir comment remonter vers php les data collectées via python, le sens descendant étant relativement plus évident.</edit>

Re: Thermostat connecté Honeywell Evohome

Publié : 18 déc. 2017, 13:22
par vincentl
Salut,

Avant d'avoir un vrai plugin, voici un début de solution avec le plugin script

1) installer la librairie python sur la debian :

Code : Tout sélectionner

sudo apt-get clean
sudo apt-get update
sudo apt-get install -y wget python-pip
if [ $(pip list | grep evohomeclient | wc -l) -eq 0 ]; then
    echo "Installation du module evohomeclient pour python"
    sudo pip install evohomeclient
fi
2) installer le plugin script
3) exemple de script getTemp.py pour récupérer la température (remplacer login/pass avec votre compte https://international.mytotalconnectcomfort.com)

Code : Tout sélectionner

# -*- coding: utf8 -*-
from evohomeclient2 import EvohomeClient
ec = EvohomeClient('login', 'mdp', debug=False)
for device in ec.temperatures():
      print(device["temp"])
 
exemple de script pour le setTemp.py #slider#, vous devez connaitre le nom de la zone, un print (device) vous le donne

Code : Tout sélectionner

# -*- coding: utf8 -*-
import sys
tempe = sys.argv[1]
from evohomeclient2 import EvohomeClient
ec = EvohomeClient('login', 'mdp', debug=False)
zone = ec.locations[0]._gateways[0]._control_systems[0].zones["Salon"]
zone.set_temperature(tempe)
print tempe
 

Re: Thermostat connecté Honeywell Evohome

Publié : 18 déc. 2017, 21:38
par vincentl
la dernière version pour aujourd'hui

Code : Tout sélectionner

# -*- coding: utf8 -*-
# Author: VLV
import argparse

login="xxx"
passw="xxx"
zonename="Salon"

parser = argparse.ArgumentParser(description='dialogue avec EvohomeClient')
parser.add_argument('--set','-s', type=float, nargs=1)
parser.add_argument('--gettemp', dest='gettemp', action='store_true')
parser.add_argument('--getpoint', dest='getpoint', action='store_true')
args = parser.parse_args()

from evohomeclient2 import EvohomeClient
ec = EvohomeClient(login, passw, debug=False)
def showTemp(): # Ajouter le device
   for device in ec.temperatures():
      print(device["temp"])
   return

def showPoint(): # Ajouter le device
   for device in ec.temperatures():
      print(device["setpoint"])
   return

def setTemp(zonename,tempe):
   zone = ec.locations[0]._gateways[0]._control_systems[0].zones[zonename]
   zone.set_temperature(tempe)
   return

#Main
if args.gettemp:
    showTemp()
elif args.set:
    setTemp(zonename,args.set[0])
elif args.getpoint:
    showPoint()
Voilà comment j'ai configuré le plugin script :
script.png
script.png (89.33 Kio) Consulté 2855 fois
J'ai maintenant un thermostat sur le dashboard :-)

Re: Thermostat connecté Honeywell Evohome

Publié : 28 déc. 2017, 22:24
par underscan
vincentl a écrit :la dernière version pour aujourd'hui

Code : Tout sélectionner

# -*- coding: utf8 -*-
# Author: VLV
import argparse

login="xxx"
passw="xxx"
zonename="Salon"

parser = argparse.ArgumentParser(description='dialogue avec EvohomeClient')
parser.add_argument('--set','-s', type=float, nargs=1)
parser.add_argument('--gettemp', dest='gettemp', action='store_true')
parser.add_argument('--getpoint', dest='getpoint', action='store_true')
args = parser.parse_args()

from evohomeclient2 import EvohomeClient
ec = EvohomeClient(login, passw, debug=False)
def showTemp(): # Ajouter le device
   for device in ec.temperatures():
      print(device["temp"])
   return

def showPoint(): # Ajouter le device
   for device in ec.temperatures():
      print(device["setpoint"])
   return

def setTemp(zonename,tempe):
   zone = ec.locations[0]._gateways[0]._control_systems[0].zones[zonename]
   zone.set_temperature(tempe)
   return

#Main
if args.gettemp:
    showTemp()
elif args.set:
    setTemp(zonename,args.set[0])
elif args.getpoint:
    showPoint()
Voilà comment j'ai configuré le plugin script :
script.png
J'ai maintenant un thermostat sur le dashboard :-)
ENORME!!!!!! C'est TRES intéressant. Nous voilà avec ce qui ressemble a une première intégration evohome jeedom!! Je suis ravi. Merci!
Il reste a emballer tous cela dans un beau plugin, et jeedom l'aura sa compatibilité evohome pour tous!!

Envoyé de mon SM-T805 en utilisant Tapatalk


Re: Thermostat connecté Honeywell Evohome

Publié : 10 janv. 2018, 13:58
par leval
Cool ca semble en bonne voie.

Re: Thermostat connecté Honeywell Evohome

Publié : 10 janv. 2018, 14:25
par cham79
je viens de faire l'acquisition d'un Thermostat connecté sans fil Y87RF savez vous si c'est compatible avec la solution évoqué ci dessus

Re: Thermostat connecté Honeywell Evohome

Publié : 10 janv. 2018, 15:49
par leval
Humm j'ai créé le script avec mes login/passw, mais j'ai un output bizarre :

Re: Thermostat connecté Honeywell Evohome

Publié : 10 janv. 2018, 16:33
par leval
Bon ca marche maintenant, mais zonename, ne semble pas pris en compte, il me donne toutes les zones :

# python evohome.py --gettemp
23.0
11.0
19.0
20.5
15.0
19.0
12.5

voici le script édité :

# -*- coding: utf8 -*-
# Author: VLV
import argparse
import logging

logging.getLogger('urllib3.connectionpool').setLevel(logging.ERROR)

login="valentin@******.**"
passw="**********"
zonename="SALON"

parser = argparse.ArgumentParser(description='dialogue avec EvohomeClient')
parser.add_argument('--set','-s', type=float, nargs=1)
parser.add_argument('--gettemp', dest='gettemp', action='store_true')
parser.add_argument('--getpoint', dest='getpoint', action='store_true')
args = parser.parse_args()

from evohomeclient2 import EvohomeClient
ec = EvohomeClient(login, passw, debug=False)
def showTemp(): # Ajouter le device
for device in ec.temperatures():
print(device["temp"])
return

def showPoint(): # Ajouter le device
for device in ec.temperatures():
print(device["setpoint"])
return

def setTemp(zonename,tempe):
zone = ec.locations[0]._gateways[0]._control_systems[0].zones[zonename]
zone.set_temperature(tempe)
return

#Main
if args.gettemp:
showTemp()
elif args.set:
setTemp(zonename,args.set[0])
elif args.getpoint:
showPoint()

Re: Thermostat connecté Honeywell Evohome

Publié : 12 janv. 2018, 18:19
par PeP
Super intéressant !! Perso j'ai leur alarme... ça devrait donc fonctionner de la même façon ?
Par contre, il faudrait savoir où trouver les différentes actions (variables)...

Re: Thermostat connecté Honeywell Evohome

Publié : 18 janv. 2018, 18:06
par coolweb
Bonjour à tous, je suis développeur et developpe le plugin mystrom. J'ai fait l'acquisition en août du système evohome et j'ai déjà travaillé sur un plugin depuis plus de 2 mois pour evohome. Je ne l'ai pas encore publié car encore un ou 2 soucis et je suis occupé sur le plugin mystrom. Donc un peu de patience cela va arriver

Envoyé de mon SM-J510FN en utilisant Tapatalk


Re: Thermostat connecté Honeywell Evohome

Publié : 19 janv. 2018, 09:43
par leval
coolweb a écrit :
18 janv. 2018, 18:06
Bonjour à tous, je suis développeur et developpe le plugin mystrom. J'ai fait l'acquisition en août du système evohome et j'ai déjà travaillé sur un plugin depuis plus de 2 mois pour evohome. Je ne l'ai pas encore publié car encore un ou 2 soucis et je suis occupé sur le plugin mystrom. Donc un peu de patience cela va arriver

Envoyé de mon SM-J510FN en utilisant Tapatalk
Si tu as besoin de testeur ;)

Re: Thermostat connecté Honeywell Evohome

Publié : 09 févr. 2018, 00:24
par ctwins95
Bonjour à tous,
Dans l'attente d'un retour MP de coolweb, j'ai fini par m'y mettre et dispose d'un premier prototype dont voici les copies écran :

Capture1.JPG
Capture1.JPG (27.23 Kio) Consulté 2599 fois
contenu du combo Zones à droite issu de la lecture des zones du système (+ les températures en 1/10e)


Capture3.JPG
Capture3.JPG (30.47 Kio) Consulté 2599 fois
ces 3 infos sont ajoutées automatiquement post création de l'équipement et du choix de la zone


Capture2.JPG
Capture2.JPG (47.89 Kio) Consulté 2599 fois
Ici, l'ensemble de mes composants via une Vue dédiée (il se fait tard, et ça ne chauffe plus très fort à cette heure :))
- couleurs des consignes reprises du site Honeywell histoire de rester en terrain connu
- une petite symbolique avec une flamme animée lorsque la température < consigne, et un check vert dans le cas contraire.
- si un forçage de consigne est actif, affichage du symbole et éventuellement de l'heure de fin (infos contenues dans Type Consigne). Cela fonctionne aussi si vous avez forcé directement via le thermostat (l'heure de fin étant le début du prochain schedule).
[new 10/02] - en cas de rupture de communication, typiquement piles HS, un symbole apparaît, et les mesures de température ne sont alors plus reportées (en réalité, valeur = null ; la consigne - qui est en mémoire dans le satellite - reste tracée)

Les captures toutes zones sont effectuées toutes les 10mn via le cron de 1mn.
Curieusement, l'historique montre des trous de parfois 40mn sur certaines zones, ce qui n'a pas de sens, car l'historique de toutes les zones est réglée sans lissage, sans purge et en gestion de répétition = "toujours répéter" (et il n'y a pas d'erreur dans la récupération des valeurs).


Sur le panneau de configuration générale, sont à saisir : username, password, choix du système (ces 3 infos selon votre compte Honeywell, la dernière étant récupérée après saisie username/password et sauvegarde/réouverture), choix du système d'arrondi (les valeurs lues étant au 1/10e), sachant que l'arrondi Honeywell procède au 0.5 inférieur ! (exemple : 16.89 => 16.50)

Egalement une zone virtuelle que j'ai appelée Console (l'image affichée est alors l'Evohome couleurs ;)), et qui va permettre de sauvegarder/restaurer les programmes hebdo.
[maj 10/02] le pilotage des programmes hebdo est (heureusement) possible via scénario, par la mise en place d'un bloc de code de 2 lignes
Apparaît également sur ce composant le mode actuel du système (Auto, Absence, etc) via le logo officiel, ainsi que sa durée le cas échéant.

Comme je l'ai annoncé, je ne m'attacherai pas à vouloir piloter les consignes, encore moins les programmes hebdo.

Re: Thermostat connecté Honeywell Evohome

Publié : 09 févr. 2018, 07:40
par ecc
super ... comme je suis impatient de tester tout cela :) merci pour ton travail

Re: Thermostat connecté Honeywell Evohome

Publié : 09 févr. 2018, 14:14
par leval
:shock: :shock: :shock: Trop cool :!: :!: :!: