Closed pipiche38 closed 6 years ago
Heu y a meme pire, il y a un decalage. En fait dans la fonction processNotinDBDevices() Devices[x].Options = Devices[x-1].Options ou Devices[x+1].Options
Ce qui explique pkoi la partie avec detection IEE est desactivee, ca risque pas de fonctionner correctement.
@Smanar tu peux préciser où dans le code, car je n'ai pas trouvé ?
Dans la partie desactivee, dans le coin de ca https://github.com/sasu-drooz/Domoticz-Zigate/blob/code-split/z_heartbeat.py#L237 Affiche en debug la valeur de DOptions['Zigate'] Ca va t'afficher la valeur d'un autre device que celui sur lequel tu est Devices[x].DeviceID. Moi ca m'affichait les vlaurs d'une lampe alors que j'etais en train d'apairer une sonde de temperature.
Mais c'est un commentaire , non ?
#DOptions = Devices[x].Options
#Dzigate=eval(DOptions['Zigate'])
#Domoticz.Debug("HearBeat - Devices[x].Options['Zigate']['IEEE']=" + str(Dzigate['IEEE']))
#Domoticz.Debug("HearBeat - self.ListOfDevices[key]['IEEE']=" + str(self.ListOfDevices[key]['IEEE']))
#if Dzigate['IEEE']!='' and self.ListOfDevices[key]['IEEE']!='' :
# if Dzigate['IEEE']==self.ListOfDevices[key]['IEEE'] :
# IEEEexist = True
Je suis désolé. Peut-etre fatigué ce soir, mais je ne vois pas le problème/
for x in Devices:
if Devices[x].DeviceID == str(key) :
IsCreated = True
Domoticz.Debug("onHeartbeat - Devices already exist. Unit=" + str(x) + " versus " + str(self.ListOfDevices[key]) )
Quand Devices[x].DeviceID == str(key) est vrai, on affiche x qui est l'Index dans la table des Devices Domoticz et self.ListOfDevices[key]. Key venant du parcours de ListOfDevices.
Donc je ne vois pas ou l'un peut pointer sur un autre ...
Essaye de reparer la partie desactivee, tu vas comprendre. En supposant que tu essayes de pairer un detecteur de temperature, tu vas avoir Devices[x].DeviceID = key = XXXX = adresse du detecteur mais si tu fais dans la meme boucle.
DOptions = Devices[x].Options
print DOptions['Zigate']
Ca va t'afficher les parametre du device ZZZZ au lieu de ceux du capteur XXXX. J'ai pas dit que le bug etait la, mais y a plus qu'un soucis de mise a jour.
Ce qui ne me suprend pas puisque ces commentaires ne sont dans le if !
Ok donc c'est normal que Devices[1].Options['Zigate']['IEE'] corresponde a l'IEE de Devices[2].DeviceID au lieu de Devices[1].DeviceID ?
PS , j'ai pris les valeur 1 et 2 au hazard.
Implemented in the recent 'dev' branch / 445bb321d77078214722ea9f77435e6b01b2fce2
Options['Zigate'] is stored to the Domoticz database when creating the device. However a long the life of the system some of the fields will be updated RSSI, BatteryLevel and it might be a good idea to update the Domoticz Database with the latest information on a regular basis (or at shutdown time)