[Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
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"
Autre chose, je ne pense pas que print() fonctionne : au-dessus la syntaxe est print "Erreur API Domoticz"
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
fcBourgogne
- Messages : 172
- Inscription : 31 mars 2020, 14:22
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Bonjour,
Rien n'y fait, que des erreurs!
Avec ce code, ajout de "url+=print url":
Erreur pointe toujours sur "url":
une autre erreur apparaît:
A+
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)
Si je retire tous les print(s), puisque que tu dis que cela termine la condition du "if":File "currentsensor.py", line 42
url ='/json.htm?type=command¶m=udevice&idx='+str(domoticz_idx)
^
SyntaxError: invalid syntax
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)
Je tourne en rond.File "currentsensor.py", line 43
url+ ='&nvalue=0&svalue='
^
IndentationError: unexpected indent
A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
fcBourgogne
- Messages : 172
- Inscription : 31 mars 2020, 14:22
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Merci Keros, j'avance!
Concernant la dernière erreur:
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:
Concernant la dernière erreur:
J'ai résolu le problème avec ceci:File "currentsensor.py", line 43
url+ ='&nvalue=0&svalue='
^
IndentationError: unexpected indent
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)
Bon, maintenant je dois résoudre une autre erreur de format json pour domoticz:
A+Erreur API Domoticz
l'URL=
/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.3;0
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
-
fcBourgogne
- Messages : 172
- Inscription : 31 mars 2020, 14:22
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
Ah ben, non!
Domoticz refuse la connexion:
A+
Domoticz refuse la connexion:
Savez vous où se trouve l'erreur?Erreur API Domoticz
<Response [401]>
http://192.168.1.**:****/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.3
A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
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 ?
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 ?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
fcBourgogne
- Messages : 172
- Inscription : 31 mars 2020, 14:22
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
de Keros:
Pour répondre à ta question:
Le script est dans /home/pi/domoticz/scripts.
Et ma commande est lancée de mon pc avec putty.
A+
Ah oui, il fallait le savoir, car le deviner??? Merci, encore, je me coucherai moins c**.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".
Pour répondre à ta question:
réponse:Tu as quoi de Menu Configuration / Paramètres / Onglets Sécurité / Réseaux de confiance ?
et pour:192.168.1.*;127.0.0.1
Hein, quoi, comment?Ton script tourne sur la même machine qui a le serveur DomoticZ ?
Le script est dans /home/pi/domoticz/scripts.
Et ma commande est lancée de mon pc avec putty.
A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
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.
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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
-
fcBourgogne
- Messages : 172
- Inscription : 31 mars 2020, 14:22
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
J'ai fait les deux mon capitaine, mais toujours la même réponse:
A+
Ce que je ne comprends pas, c'est que de mon pc avec mon navigateur internet si je tape:Erreur API Domoticz
<Response [401]>
http://127.0.0.1:****/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.3;0
domoticz accepte et la valeur est mise à jour???http://192.168.1.**:****/json.htm?type=command¶m=udevice&idx=740&nvalue=0&svalue=3.7;0
A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
Re: [Python] Interfacer un INA219 avec une passerelle Domoticz sous Raspberry Pi
J'ai un seul script python et dedans j'utilise
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.
Code : Tout sélectionner
r = requests.get("http://127.0.0.1:8080/json.htm?type=command¶m=updatexxxxxxxxxxxxxxxxxxxxxxxxxxEssaye de modifier le script en ajoutant au début :
Code : Tout sélectionner
import requestsCode : Tout sélectionner
,auth=HTTPBasicAuth(user,password)Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos