Page 2 sur 3
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 18 nov. 2023, 17:48
par Keros
Sauf qu'en écrivant le print en début de ligne, cela termine la condition du If. Il faut qu'il soit aligné avec url+.
Autre chose, je ne pense pas que print() fonctionne : au-dessus la syntaxe est print "Erreur API Domoticz"
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 12:23
par fcBourgogne
Bonjour,
Rien n'y fait, que des erreurs!
Avec ce code, ajout de "url+=print url":
Code : Tout sélectionner
if voltage is not None:
print('Voltage={0:0.1f}V'.format(ina.voltage())
url ='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
url+ ='&nvalue=0&svalue='
url+=str('{0:0.1f};0').format(voltage)
url+=print url
maj_widget(url)
Erreur pointe toujours sur "url":
File "currentsensor.py", line 42
url ='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
^
SyntaxError: invalid syntax
Si je retire tous les print(s), puisque que tu dis que cela termine la condition du "if":
Code : Tout sélectionner
if voltage is not None:
41 # print('Voltage={0:0.1f}V'.format(ina.voltage())
42 url ='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
43 url+ ='&nvalue=0&svalue='
44 url+=str('{0:0.1f};0').format(voltage)
45 # url+=print url
46 maj_widget(url)
une autre erreur apparaît:
File "currentsensor.py", line 43
url+ ='&nvalue=0&svalue='
^
IndentationError: unexpected indent
Je tourne en rond.
A+
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 13:02
par Keros
La dernière erreur indique IndentationError: unexpected indent > c'est donc un problème d'indentation, ce que je disais au-dessus. En python, l'indentation (le nombre d'espaces au début d'une ligne) est super important. Essaye de regarder comment fonctionne le code python pour ça et tu devrais arriver à lever cette erreur.
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 13:51
par fcBourgogne
Merci Keros, j'avance!
Concernant la dernière erreur:
File "currentsensor.py", line 43
url+ ='&nvalue=0&svalue='
^
IndentationError: unexpected indent
J'ai résolu le problème avec ceci:
Code : Tout sélectionner
if voltage is not None:
#print('Voltage={0:0.1f}V'.format(ina.voltage())
url='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
url+='&nvalue=0&svalue='
url+=str('{0:0.1f};0').format(voltage)
maj_widget(url)
print "l'URL="
print url
else:
print('Probleme avec la lecture de l INA219')
sys.exit(1)
il faut que tout ce qui se trouve sous la ligne du "if" soit sur la même colonne, tous les "url" et le reste sinon erreur.
Bon, maintenant je dois résoudre une autre erreur de format json pour domoticz:
Erreur API Domoticz
l'URL=
/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.3;0
A+
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 15:46
par fcBourgogne
Ah ben, non!
Domoticz refuse la connexion:
Erreur API Domoticz
<Response [401]>
http://192.168.1.**:****/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.3
Savez vous où se trouve l'erreur?
A+
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 16:35
par Keros
Tu vois, le python est super précis quant à son écriture. Je connais très peu ce langage, mais je savais que tout devait être aligné "verticalement".
Tu as quoi de Menu Configuration / Paramètres / Onglets Sécurité / Réseaux de confiance ?
Ton script tourne sur la même machine qui a le serveur DomoticZ ?
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 16:55
par fcBourgogne
de Keros:
Tu vois, le python est super précis quant à son écriture. Je connais très peu ce langage, mais je savais que tout devait être aligné "verticalement".
Ah oui, il fallait le savoir, car le deviner??? Merci, encore, je me coucherai moins c**.
Pour répondre à ta question:
Tu as quoi de Menu Configuration / Paramètres / Onglets Sécurité / Réseaux de confiance ?
réponse:
192.168.1.*;127.0.0.1
et pour:
Ton script tourne sur la même machine qui a le serveur DomoticZ ?
Hein, quoi, comment?
Le script est dans /home/pi/domoticz/scripts.
Et ma commande est lancée de mon pc avec putty.
A+
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 17:29
par Keros
Ton script aurait pu être sur une autre machine que celle qui héberge DomoticZ.
Avec Putty en SSH, tu lances la commande comme si tu étais sur le serveur directement.
Est-ce que tu peux essayer de remplacer 192.168.1.xx par 127.0.0.1 dans ton script ? Le 127.0.0.1 est l'ip de lui-même.
Essaye aussi de réécrire les réseaux de confiance. J'ai déjà vu que cela avait résolu le pb.
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 18:02
par fcBourgogne
J'ai fait les deux mon capitaine, mais toujours la même réponse:
Erreur API Domoticz
<Response [401]>
http://127.0.0.1:****/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.3;0
Ce que je ne comprends pas, c'est que de mon pc avec mon navigateur internet si je tape:
http://192.168.1.**:****/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.7;0
domoticz accepte et la valeur est mise à jour???
A+
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Publié : 19 nov. 2023, 20:25
par Keros
J'ai un seul script python et dedans j'utilise
Code : Tout sélectionner
r = requests.get("http://127.0.0.1:8080/json.htm?type=command¶m=updatexxxxxxxxxxxxxxxxxxxxxxxxxx
Essaye de modifier le script en ajoutant au début :
et dans la fonction maj_widget(val_url), enlever l'authentification :
Si tu n'y arrives pas, mets-nous ton script entier avec les logs correspondant.