recuperer etat d'un switch de domoticz

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
judeoleborgne
Messages : 44
Inscription : 04 juin 2015, 17:15

recuperer etat d'un switch de domoticz

Message par judeoleborgne »

bonjour à tous,

j'ai un problème typiquement le genre à m'arracher les cheveux, j'ai un raspberry en service sur laquelle ce script fonctionne très bien mais je suis en train d'en programmer une autre et ce le même script copié coller ne fonctionne pas et je ne parviens pas à comprendre le problème

voici le script:

Code : Tout sélectionner

#!/usr/bin/env python
import json
import requests
from requests.auth import HTTPBasicAuth

############# Parametres #################################

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='127.0.0.1'
domoticz_port='8080'
user=''
password=''

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du peripherique
# l idx Domoticz
# la chaine  recherchee sensible a la casse
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_idx='11'
terme_recherche='Data'


#===================
domoticzurl = 'http://127.0.0.1:8080/json.htm?type=devices&rid='+str(domoticz_i$
r=requests.get(domoticzurl,auth=HTTPBasicAuth(user,password))
status=r.status_code
if status == 200:
# l API renvoie 200 si tout est OK
    domoticzjson=r.json
    for i, v in enumerate(domoticzjson["result"]):
       val= domoticzjson["result"][i][terme_recherche]

print(val)

if val == 'On' :
   print(1)
if val == 'Off' :
   print(0)

voici la reponse quand je l'execute :

Code : Tout sélectionner

pi@raspberrypi:~ $ ./lecture-sortie.py
Traceback (most recent call last):
  File "./lecture-sortie.py", line 34, in <module>
    for i, v in enumerate(domoticzjson['result']):
TypeError: 'instancemethod' object has no attribute '__getitem__'
Avez-vous une idée d'où pourrait provenir le problème?
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: recuperer etat d'un switch de domoticz

Message par patrice »

Bonsoir

Sur cette ligne
domoticzurl = 'http://127.0.0.1:8080/json.htm?type=devices&rid='+str(domoticz_i$

elle finit pati$ alors qu'il faut idx)

Cela provient d'un copier coller depuis putty lorque les ligne sont trops longues , elle ne sont pas affichées en enteir et si tu fais un copier/coller tu ne prends pas la fin de la ligne
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
judeoleborgne
Messages : 44
Inscription : 04 juin 2015, 17:15

Re: recuperer etat d'un switch de domoticz

Message par judeoleborgne »

merci c'est super, j'ai modifier cette ligne et j'ai du remettre des parenthèses après json,

Code : Tout sélectionner

val= domoticzjson()["result"][i][terme_recherche]
cela fonctionne. merci
Répondre