Page 12 sur 42
Re: Cozytouch Thermor
Publié : 23 févr. 2019, 15:17
par vr6man
Bonjour
Je reviens vers vous, suite à des problèmes avec mon Domoticz, j'ai refait une installation complete a partir d'un raspbian vierge
Par contre je n'arrive pas a lancer le script V2, j'ai le message d'erreur suivant et donc pas de devices qui se crée
sudo /usr/bin/python2.7 /home/pi/domoticz/scripts/python/cozytouch2.py
Traceback (most recent call last):
File "/home/pi/domoticz/scripts/python/cozytouch2.py", line 10, in <module>
import requests,shelve,json,time,unicodedata,os
ImportError: No module named requests
Auriez vous une idée ?
Merci
Re: Cozytouch Thermor
Publié : 25 févr. 2019, 14:06
par sg2
Bonjour,
En préambule, un grand merci à l'auteur de ce script et aux contributeurs ; non seulement ça marche chez moi, mais aussi ça m'a mis le pied à l'étrier python
Comme dit dans le 1er post de la page 2 de ce fil, tu dois d'abord installer les modules Python dont dépend le script :
sudo pip install requests shelves
Pour info, en passant :
- le script ne marche pas avec python 3.x, seulement avec 2.x (qu'on peut considérer comme deux langages différents, pour simplifier)
- vous pouvez installer simultanément python 3.x et 2.x, si vous voulez utiliser des scripts python 2 et 3. On peut alors lancer les scripts python 2 / 3 avec python2 monscript.py, et python3 monscript.py
- a priori, en-dessous de 2.7.9, vous aurez des warnings d'authentification SSL sur le site Atlantic, liés au fait que la librairie, les certificats et les mécanismes TLS de python < 2.7.9 sont obsolètes
- si vous pouvez, installez & utilisez python 2.7.15
- chez moi (4 radiateurs Thermor Bilbao + vieux domoticz 3.5xxx sur un raspeberry pi 2 sous raspbian wheezy avec python 2.7.3), le script ne marchait pas pour de multiples raisons, que j'ai corrigées. Je publierai mes changements, dont un sans lequel je me demande comment ça marche chez vous : le script extrait les infos de la trame reçue du serveur Atlantic par numéro ; exemple : "consigne" = paramètre 3, "on/off" = paramètre 2 etc. Or Atlantic semble avoir reformaté ses trames et changé l'ordre des paramètres... J'ai donc modifié le script pour qu'il extraie les paramètres par nom (invariant) et non par numéro (variant).
- au vu de la
montagne d'infos renvoyées par le serveur Atlantic, il y a plein de paramètres qui pourraient être intéressants, que j'ajouterai au script de façon optionnelle
- le bridge cozytouch fait aussi partie des équipements pour lesquels le serveur renvoie des infos ; a minima on peut afficher son état de connectivité au serveur Atlantic dans domoticz
Cordialement,
--
Stéphane
Re: Cozytouch Thermor
Publié : 25 févr. 2019, 16:16
par vr6man
Merci
Un peu de news
en faisant :
sudo pip install requests shelves
j'ai cette réponse
Successfully installed certifi-2018.11.29 chardet-3.0.4 idna-2.8 requests-2.21.0 shelves-0.3.8 urllib3-1.24.1
Du coup maintenant quand je lance le script a la main :
sudo /usr/bin/python2.7 /home/pi/domoticz/scripts/python/cozytouch.py
pi@rasp_home:~ $ sudo /usr/bin/python2.7 /home/pi/domoticz/scripts/python/cozytouch2.py
¤¤¤¤ DEMARRAGE SCRIPT ¤¤¤¤
**** Fonction test ****
repertoire actuel : /home/pi/domoticz/scripts/python/cozytouch_save
idx materiel dans cozytouch_save -> n°10
idx cozytouch trouve dans domoticz -> n°10
**** Fin fonction test ****
**** Tentative interrogation serveur Cozytouch ****
Requete GET : refreshAllStates
Requete de test reussie : Interrogation serveur...
**** Fonction decouverte devices ****
Requete GET : getSetup
**** Demarrage mise a jour devices ****
Mise a jour device :0
Traceback (most recent call last):
File "/home/pi/domoticz/scripts/python/cozytouch2.py", line 846, in <module>
decouverte_devices ()
File "/home/pi/domoticz/scripts/python/cozytouch2.py", line 507, in decouverte_devices
maj_device (data,name,p,x) # mise à jour du device
File "/home/pi/domoticz/scripts/python/cozytouch2.py", line 790, in maj_device
save (switch, ('save_onoff_'+str(classe.get('idx_on_off'))))
UnboundLocalError: local variable 'switch' referenced before assignment
Les devices sont bien créés mais pas mis à jour, tout les valeurs restent à zero
Tu aurais une idée ?
Merci de ton aide
Re: Cozytouch Thermor
Publié : 25 févr. 2019, 21:23
par sg2
Rebonjour’
Quelle version de domoticz utilises-tu ?
J’ai eu le même problème avec ma version 3.5033 de 2016, qui ne renvoie pas l’index des devices créés par le script dans son retour json.
Comme je veux garder ma version, que j’ai beaucoup modifiée par ailleurs, j’ai ajouté les quelques lignes de code qui renvoient l’index, recompilé domoticz et c’est tombé en marche.
Si tu utilises une version récente, il y a un autre souci.
Re: Cozytouch Thermor
Publié : 25 févr. 2019, 21:26
par vr6man
Je suis en V4.9700
Re: Cozytouch Thermor
Publié : 26 févr. 2019, 08:54
par sg2
Bonjour,
Ok, alors tu as le problème que j'ai évoqué, de changement d'ordre des paramètres de la trame Atlantic, avec laquelle le script n'est plus compatible. A priori, tous les utilisateurs du script devraient avoir ce souci.
Je publierai un correctif ; en attendant voici des changements provisoires dans la fonction maj_device() qui devraient refaire marcher le script :
- remplacer :
# Switch selecteur : définition des levels du switch
on_off = value(data,x,4)
mode = value(data,x,3)
par :
# Switch selecteur : définition des levels du switch
on_off = value(data,x,3)
mode = value(data,x,2)
- remplacer :
# Lecture et comparaison de la consigne de température actuelle :
comparaison_consigne ('confort',classe.get('url'),classe.get('nom'),classe.get('idx_cons_temp_confort'),value(data,x,10),("setComfortTemperature"))
par
# Lecture et comparaison de la consigne de température actuelle :
comparaison_consigne ('confort',classe.get('url'),classe.get('nom'),classe.get('idx_cons_temp_confort'),value(data,x,9),("setComfortTemperature"))
A priori ça devrait suffire.
Cordialement,
--
Stéphane
Re: Cozytouch Thermor
Publié : 26 févr. 2019, 09:07
par vr6man
ok super, j'attends le nouveau script dans ce cas
pour info avec une réinsatllation de la raspbian lite
la commande sudo pip install requests shelves ne fonctionne pas
j'ai du faire
sudo apt install python-pip
pip install requests
et enfin
sudo pip install requests shelves
Re: Cozytouch Thermor
Publié : 26 févr. 2019, 09:24
par sg2
Essaye quand même les changements de mon post précédent, si possible
Re: Cozytouch Thermor
Publié : 26 févr. 2019, 11:26
par vr6man
ok tu parles de quel changement ?
Re: Cozytouch Thermor
Publié : 26 févr. 2019, 12:08
par sg2
Ceux de mon post plus haut : "en attendant voici des changements provisoires dans la fonction maj_device() qui devraient refaire marcher le script" ...
Tu ouvres le script dans un éditeur de texte et tu fais les 3 changements indiqués.