guillaumezin / DomoticzLinky

Linky plugin for Domoticz
GNU Affero General Public License v3.0
143 stars 26 forks source link

Module Import failed, exception: 'AttributeError' #148

Closed LordDarkneo closed 3 years ago

LordDarkneo commented 3 years ago

Hello,

J'ai pris un peu de temps pour revoir le paramètre concernant la version de Domoticz, et du coup je suis confronté à un autre "soucis":

2021-07-20 17:47:05.093 Error: (linky) failed to load 'plugin.py', Python Path used was '/usr/local/domoticz/var/plugins/DomoticzLinky/:/volume1/@appstore/py3k/usr/local/lib/python35.zip:/volume1/@appstore/py3k/usr/local/lib/python3.5/:/volume1/@appstore/py3k/usr/local/lib/python3.5/plat-linux:/volume1/@appstore/py3k/usr/local/lib/python3.5/lib-dynload'. 2021-07-20 17:47:05.093 Error: (Linky_HW) Module Import failed, exception: 'AttributeError' 2021-07-20 17:47:05.093 Error: (Linky_HW) Error Line details not available.

Je pense qu'il doit me manquer un lib importée... Mais alors laquelle?!! j'ai essayé de commenté les import un par un pour voir lequel il me manquait... j'ai toujours le meme message.

Quand je lance plugin.py en SSH, c'est la Lib Domoticz qui lui manque (je confirme que je n'ai pas de lib Domoticz dans mes pythons).

Une idée de comment résoudre ce soucis? Déjà eu ce genre de manque?

Merci pour le coup de main

Edit: Pour rappel, Domoticz est installé sur un NAS Synology, en version 4.9700

guillaumezin commented 3 years ago

Bonjour, Je devine que c'est sur du Synology, ça a toujours été la plaie niveau compatibilité. Vous êtes sur quelle version de Domoticz ? Quelle version du plugin ? C'est une réinstallation complète ? Pouvez-vous essayer avec une autre version de Python ? Edit: je viens de voir votre edit.

LordDarkneo commented 3 years ago

Hello,

Oui je confirme sur Syno c'est une vraie cata les plugin python :'(

J'ai testé avec le python 2.7, mais j'ai directement une erreur:

SyntaxError: Non-ASCII character '\xc3' in file plugin.py on line 28, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Python3 est en 3.5.1 Python est en 2.5.6

Et oui c'est une install récente du plugin (via gitclone il y a 2 ou 3 semaines), mais je ne sais pas trop ou trouver le version... 🤣

Edit: Ah j'ai pas dit, mais dans le doute j'ai tenté un pip3 install Domoticz... inconnu au bataillon....

Edit#2: bon ca semble pas lié à l'import Domoticz, car en essayant de remplacer par domoticz il me jette (donc ca a bien du l'importer...)

Edit#3: Je suis un gros boulet!!! 😕 En fait, mon erreur, c'est en voulant changer la variable dtNextRefresh (set à None, qui du coup me provoque une erreur dans le compare entre un datetime() et un NoneType() ). La valeur que j'ai mise dedans n'était pas syntaxée correctement... Et du coup l'erreur de compre avec NoneType(), je l'ai sur dateNextConnection.... je sens que je vais devoir convertir toutes les variables datetime() set à None à autre chose...

LordDarkneo commented 3 years ago

Je pense avoir fini le débug... et le backportage risque d'etre plus compliqué que prévu.... Apparemment dans le plugin, on lit tout un tas de variables de Domoticz qui n'existent pas en 4.9700:

2021-07-20 21:24:51.929 Error: (Linky_HW) Domoticz.Configuration read failed: 'module 'Domoticz' has no attribute 'Configuration'' 2021-07-20 21:24:51.929 Error: (Linky_HW) 'onHeartbeat' failed 'TypeError':'a float is required'. 2021-07-20 21:24:51.929 Error: (Linky_HW) ----> Line 2273 in /usr/local/domoticz/var/plugins/DomoticzLinky/plugin.py, function onHeartbeat 2021-07-20 21:24:51.929 Error: (Linky_HW) ----> Line 2123 in /usr/local/domoticz/var/plugins/DomoticzLinky/plugin.py, function onHeartbeat 2021-07-20 21:24:51.929 Error: (Linky_HW) ----> Line 1630 in /usr/local/domoticz/var/plugins/DomoticzLinky/plugin.py, function handleConnection 2021-07-20 21:24:51.929 Error: (Linky_HW) ----> Line 1450 in /usr/local/domoticz/var/plugins/DomoticzLinky/plugin.py, function setHistoryDays

Pour info, les variables modifiées: dateNextConnection = datetime(1900, 5, 1, 0, 0) dtGlobalTimeout = datetime(1900, 5, 1, 0, 0) dtNextRefresh = datetime(1900, 5, 1, 0, 0)

guillaumezin commented 3 years ago

Aïe, je m'appuie énormément sur l'objet Configuration, c'est vrai que c'est un ajout "assez récent" dans Domoticz. Oui, le backportage ne me paraît pas possible.

LordDarkneo commented 3 years ago

Dans le doute, je me suis créé une variable utilisateur qui s'appelle Configuration (en pensant que ca ferait le taff), mais appremment ca suffit pas.... Car dans domoticz les mises à jour des variables user ne peuvent être faite qu'en Json....

guillaumezin commented 3 years ago

L'objet Configuration a été introduit en version 4.10731

LordDarkneo commented 3 years ago

Bon ben je clos, je ne pourrai malheureusement pas utiliser ce plugin... tant pis.. Go solution B avec un CM180 alors.. Merci pour ton temps et bon courage pour la suite ;)