Bonjour,
Je cherche à envoyer une variable "chaine de caractères" depuis un Arduino relié au Raspberry par liaison USB de manière à l'afficher dans une variable virtuelle de type texte déjà crée.
Par un script Python, j'arrive bien à lire la chaire de caractères (fonction print(ser.readline()) , mais je ne sais pas la renvoyer vers la variable texte.
Depuis le navigateur je sais écrire dans cette variable (http://192.168.0.10:8080/json.htm?type= ... ue=xxxxxxx,
mais ça s'arrête là. Je n'arrive pas à envoyer cette commande depuis le script.
Quelqu'un pourrait-il me venir en aide ? Ou trouver un bout de script ressemblant ? Je suis retraité, pas informaticien et bien bloqué !!! Depuis hier j'ai beaucoup cherché, mais en vain !
Au secours, de l'aide pour script Python
Re: Au secours, de l'aide pour script Python
Bonjour
il faut que tu installes la bibilothèque requets python
puis apres dans ton script python tu crée ton url bien formatée : (http://192.168.0.10:8080/json.htm?type= ... ue=xxxxxxx,
puis tu lance requests.get(requete) pour envoyer ca vers ton ip:port
Exemple
requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+val
print (requete)
r=requests.get(requete)
print (r)
r est le code de retour 200 egale ok , sinon 404,400,403..
un exemple ici
https://easydomoticz.com/scripts/airparif.py
il faut que tu installes la bibilothèque requets python
Code : Tout sélectionner
sudo apt-get install python-dev
sudo apt-get install python-setuptools
sudo apt-get install python-pip
sudo pip install requests
puis tu lance requests.get(requete) pour envoyer ca vers ton ip:port
Exemple
requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+val
print (requete)
r=requests.get(requete)
print (r)
r est le code de retour 200 egale ok , sinon 404,400,403..
un exemple ici
https://easydomoticz.com/scripts/airparif.py
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
Objectif : WAF > 1
Re: Au secours, de l'aide pour script Python
Un GRAND merci. Comme je suis un boulet en informatique, j'ai mis 3h à faire fonctionner, mais çà fonctionne parfaitement (tout au moins si je met une valeur fixe dans la chaine de caractères que je souhaite envoyer vers ma variable virtuelle) .
Je suis pas (encore ? ) arrivé à envoyer la chaine qui vient de l'Arduino. Mais je la reçois. C'est le lien qui me manque.
Tiens, maintenant c'est le "browser cache refresh failed". C'est pas gagné !!!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import requests
import serial
import sys
import string
from requests.auth import HTTPBasicAuth
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_ip='192.168.0.10'
domoticz_port='8080'
user=''
password=''
#val=str('aBCDefgh_abcdefgh_ABCDEFGH-abcdefgh') ----> pour essais
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# IDX message virtuel
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
periph_idx={'dz_no1':69,
}
############### fin des parametres #############################
#Acquisition chaine par liaison série
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=3)
while True :
try:
# Read data incoming on the serial line
val=ser.readline()
print val
#val contient bien la chaine que je souhaite envoyer vers ma variable virtuelle
except:
print "Unexpected error:", sys.exc_info()
sys.exit()
# l URL Domoticz pour le widget virtuel
json_url_text1='/json.htm?type=command¶m=udevice&idx='
json_url_text2='&svalue='
def maj_widget(domoticz_idx,val):
requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+val
#print requete
r=requests.get(requete)
#print (r)
domoticz_idx=str(periph_idx['dz_no1'])
maj_widget (domoticz_idx,val)
Je suis pas (encore ? ) arrivé à envoyer la chaine qui vient de l'Arduino. Mais je la reçois. C'est le lien qui me manque.
Tiens, maintenant c'est le "browser cache refresh failed". C'est pas gagné !!!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import requests
import serial
import sys
import string
from requests.auth import HTTPBasicAuth
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
domoticz_ip='192.168.0.10'
domoticz_port='8080'
user=''
password=''
#val=str('aBCDefgh_abcdefgh_ABCDEFGH-abcdefgh') ----> pour essais
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# IDX message virtuel
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
periph_idx={'dz_no1':69,
}
############### fin des parametres #############################
#Acquisition chaine par liaison série
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=3)
while True :
try:
# Read data incoming on the serial line
val=ser.readline()
print val
#val contient bien la chaine que je souhaite envoyer vers ma variable virtuelle
except:
print "Unexpected error:", sys.exc_info()
sys.exit()
# l URL Domoticz pour le widget virtuel
json_url_text1='/json.htm?type=command¶m=udevice&idx='
json_url_text2='&svalue='
def maj_widget(domoticz_idx,val):
requete='http://'+domoticz_ip+':'+domoticz_port+json_url_text1+domoticz_idx+json_url_text2+val
#print requete
r=requests.get(requete)
#print (r)
domoticz_idx=str(periph_idx['dz_no1'])
maj_widget (domoticz_idx,val)