Bonjour Jeff,
Je te remercie pour tes réponses.
J'ai gratté un peu. J'ai effectivement remarqué des lignes qui me dérangent. Je ne sais pas si c'est normal, donc j'ai essayé. entre les lignes 754 et 784, on ajoute les modules fil pilote (mes devices) mais aux lignes 769 et 772, on rappelle " radiateur[u'idx_switch'] ". J'ai pris le risque de remplacer "radiateur" par "module_fil_pilote".
Code : Tout sélectionner
def ajout_module_fil_pilote(idx,liste,url,x,label):
''' Fonction ajout module fil pilote
'''
# création du nom suivant la position JSON du device dans l'API Cozytouch
nom = 'Module fil pilote '+str(label)
# création du dictionnaire de définition du device
module_fil_pilote = {}
module_fil_pilote['url'] = url
module_fil_pilote['x']= x
module_fil_pilote['nom']= nom
# Création switch selecteur (level_0=off/level_10=frostprotection/level_20=eco/level_30=confort-2/level_40=confort-1/level_50=confort) :
nom_switch = u'Mode '+nom
769 module_fil_pilote[u'idx_switch']= domoticz_add_virtual_device(idx,1002,nom)
# Personnalisation du switch(Modification du nom des levels et de l'icone)
option = u'TGV2ZWxOYW1lczpPZmZ8SG9ycyBnZWx8RWNvfENvbmZvcnQgLTJ8Q29uZm9ydCAtMXxDb25mb3J0O0xldmVsQWN0aW9uczp8fHx8fDtTZWxlY3RvclN0eWxlOjE7TGV2ZWxPZmZIaWRkZW46ZmFsc2U%3D&protected=false&strparam1=&strparam2=&switchtype=18&type=setused&used=true'
772 myurl=u'http://'+domoticz_ip+u":"+domoticz_port+u'/json.htm?addjvalue=0&addjvalue2=0&customimage=15&description=&idx='+module_fil_pilote[u'idx_switch']+u'&name='+nom_switch+u'+&options='+option
req=requests.get(myurl)
if debug:
print(u' '.join((u'GET-> ',myurl,' : ',str(req.status_code))).encode('utf-8'))
# Log Domoticz :
domoticz_write_log(u"Cozytouch : creation "+nom+u" ,url: "+url)
# ajout du dictionnaire dans la liste des device:
liste.append(module_fil_pilote)
print("Ajout: "+nom)
return liste
A partir de là, dans domoticz, je crée bien un Cozytouch_V4, un module fil pilote Chambre 2 et un module fil pilote chambre 3.
J'en conclu que ma modif a été utile. Les logos et liste de choix étant d'ailleurs cohérents (eco, -1, +1.... etc).
En revanche, si je modifie une valeur sur domoticz et que je relance le script, j'obtiens une nouvelle erreur que je ne comprend pas. (Je suis en Debug=2)
Code : Tout sélectionner
**** Demarrage mise a jour devices ****
Mise a jour device 0 : io:AtlanticElectricalHeaterIOComponent
Failed to retrieve value core:OperatingModeState for device AtlanticElectricalHeater
GET-> http://192.168.1.17:8080/json.htm?type=devices&rid=None : 200
Traceback (most recent call last):
File "/home/domoticz/domoticz/scripts/python/cozytouch.py", line 1581, in <module>
decouverte_devices()
File "/home/domoticz/domoticz/scripts/python/cozytouch.py", line 666, in decouverte_devices
maj_device(data,name,p,x) # mise à jour du device
File "/home/domoticz/domoticz/scripts/python/cozytouch.py", line 1262, in maj_device
level_0=u'off',level_10=u'frostprotection',level_20=u'eco',level_30=u'comfort-2',level_40=u'comfort-1',level_50=u'comfort',setting_command_mode=u'setHeatingLevel')
File "/home/domoticz/domoticz/scripts/python/cozytouch.py", line 1128, in gestion_switch_selector_domoticz
domoticz_switch_actual = domoticz_read_device_switch_selector(idx_switch_domoticz)
File "/home/domoticz/domoticz/scripts/python/cozytouch.py", line 192, in domoticz_read_device_switch_selector
return data[u'result'][0][u'LevelInt']
KeyError: u'result'
J'ai l'impression qu'il cherche à mettre à jour "io:AtlanticElectricalHeaterIOComponent" et non pas un "Module fil pilote".