Page 1 sur 1

Erreur Script en Python pour avoir le niveau de batterie

Publié : 05 févr. 2017, 22:57
par GUN57
Bonsoir tout le monde.

D'abord, super site ! Je trouve des choses sympa à faire ou tester.

Possédant un rapsberry pi 3 + un RFXcom433E pour mes volets roulant somfy, j'ai continué en m'équipant de plusieurs module Z-Wave et Z-Wave+, les FIBARO System FGFS101 Flood Senso et FIBARO System FGSD002 Smoke Sensor avec une clé USB Aeotec ZW090 Z-Stick Gen5.

Comme ils sont majoritairement sur piles c'est dernier jour, j'aurais voulu remonter les infos des piles.

J'ai donc vue sur le site, le script "Les batteries en Z-Wave" https://easydomoticz.com/tag/batterie/

Donc ni une ni deux, je décide de tester mais j'ai rencontré 2 soucis dont un que je n'arrive pas à résoudre.

Le premier, une erreur dès la première ligne :
/usr/bin/python^M : mauvais interpréteur: Aucun fichier ou dossier de ce type

en cherchant j'ai bien compris qu'il y avait un soucis du faite de créer mon script sous windows et de l'envoyer sur mon pi dans le dossier script.
J'ai donc installer dos2unix et un os2unix <mon_scripts.py> = plus de problème dès la premières ligne.

Le second problème ce passe en fin de script :

au ligne

Code : Tout sélectionner

##### main ##

result={}
r=requests.get(requete).json()
valeur_batterie=str(r['result'][0][terme])

if debug==1:
    print r
    print valeur_batterie

maj_widget(valeur_batterie)
j'ai comme erreur :

Code : Tout sélectionner

 
  Traceback (most recent call last):
  File "./script_battery_fumee_cave.py", line 71, in <module>
    r=requests.get(requete).json()
  File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 866, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
     

Je me suis dit tien ce serait en rapport à ma version de python ? Je tape donc
python -V
j’obtiens :
Python 2.7.9

Bon je teste en modifiant la ligne

Code : Tout sélectionner

r=requests.get (requete).json
##sans  ()  après json
mais nouvelle erreur

Code : Tout sélectionner

pi@domoticz:~/domoticz/scripts/python $ ./script_battery_fumee_cave.py
Traceback (most recent call last):
  File "./script_battery_fumee_cave.py", line 72, in <module>
    valeur_batterie=str(r['result'][0][terme])
TypeError: 'instancemethod' object has no attribute '__getitem__'
   

j'ai cherché un peu, mais je sèche.
Si quelqu'un a une idée, je suis preneur.
Et s'il manque une info faut me le dire.

Merci à tous.

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 06 févr. 2017, 07:33
par vil1driver

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 06 févr. 2017, 08:13
par lestatcrog
Pour mon info, pourquoi utiliser un script pour les batteries ? les alertes en natif dans domoticz ne fonctionnent pas bien ?

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 06 févr. 2017, 08:23
par vil1driver
si si ça fonctionne très bien :D tu fais bien de le signaler

mais on peut trouver une utilité à gérer les choses soit même, ne serait-ce que pour avoir une alerte sur des niveaux différents ou notifier plusieurs personnes ou simplement ne pas se faire réveiller tous les soirs à minuit parce qu’une sonde souhaite une pile neuve :twisted:

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 06 févr. 2017, 11:05
par lestatcrog
vil1driver a écrit :si si ça fonctionne très bien :D tu fais bien de le signaler

je n'utilise pas le script que j'ai mis mais la fonction que tu cites.

mais j'imagine que l'on peut trouver une utilité à gérer les choses soit même, ne serait-ce que pour avoir une alerte sur des niveaux différents ou notifier plusieurs personnes..
Ok Merci du coup pas de changement pour moi :D

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 06 févr. 2017, 17:37
par GUN57
Bonjour et merci pour vos réponses.

tout d'abord merci pour le/les script LUA, je regarderais dans la soirée si j'arrive à faire quelque chose de mon côté.

Ensuite effectivement j'ai bien vu la fonction en natif dans domoticz, mais j'avais dans l'idée de gérer individuellement les niveaux des batteries avec notif personnalisées.
Et je me suis dit également, si j'arrive à mettre ce script en place, je peux faire une variante pour le taux d'humidité pour chaque sondes qui me donne l'info.

voilà pourquoi le script python ;) ( et bien sur c'est un des premiers résultats de recherche sur le net que j'ai trouvé) qui me semblais pas dur à mettre en place ^^....qui semblai... ^^

Donc je testerais dans la soirée le script LUA et si jamais il y a quelqu'un qui sait m'aider à comprendre pourquoi mon script plante à la fin je suis preneur ^^

Merci à tous

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 07 févr. 2017, 19:09
par GUN57
Bonsoir,

Bon j'ai tenté avec les scripts LUA.... mais malgré mes tentatives j'ai autant, voir plus d'erreurs dans les logs avec les scripts LUA.
Je pense que je suis pas doué pour ces scripts lol

je continue de chercher du côté du python

a+

Re: Erreur Script en Python pour avoir le niveau de batterie

Publié : 09 févr. 2017, 21:14
par patrice
Pour le script python : tu t'es trompé dans l IP de Domoticz, tu as un mot de passe dans Domoticz. Ces deux points ne s'excluant pas

Envoyé de mon PULP 4G en utilisant Tapatalk