05-10-2020, 09:16 PM
Bonjour,
Je me lance dans un petit projet de création d'interface graphique pour ma domotique Calaos.
Objectif : créer un petit écran tactile positionné à l'entrée de ma maison pour executer quelques fonctions principales :
- activer / désactiver l'alarme
- éteindre toutes les lumières
- fermer/ouvrir tous les volets roulants du rez de chaussé
- Activer un/ des scénarios
- ...Etc...
Le matériel :
- un Rpi 3 avec Raspbian + python 3.5 + TKinter
- un écran tactil 7"
j'ai écrit quelques script mais je bloque sur la fonction "get_state"
les fonctions "get_home' et "set_state" fonctionnent bien, mais pas "get_state", j'ai une collection vide en retour {}.
je peux allumer ou éteindre des lumières, mais pas connaitre l'état d'une sortie...
Voici mon code…. si quelqu'un peu me dépanner, ce serait sympa.
Ici la fonction "get_alarme_" ne me retourne rien par exemple.
Je me lance dans un petit projet de création d'interface graphique pour ma domotique Calaos.
Objectif : créer un petit écran tactile positionné à l'entrée de ma maison pour executer quelques fonctions principales :
- activer / désactiver l'alarme
- éteindre toutes les lumières
- fermer/ouvrir tous les volets roulants du rez de chaussé
- Activer un/ des scénarios
- ...Etc...
Le matériel :
- un Rpi 3 avec Raspbian + python 3.5 + TKinter
- un écran tactil 7"
j'ai écrit quelques script mais je bloque sur la fonction "get_state"
les fonctions "get_home' et "set_state" fonctionnent bien, mais pas "get_state", j'ai une collection vide en retour {}.
je peux allumer ou éteindre des lumières, mais pas connaitre l'état d'une sortie...
Voici mon code…. si quelqu'un peu me dépanner, ce serait sympa.
Ici la fonction "get_alarme_" ne me retourne rien par exemple.
Code:
import urllib.request, urllib.parse
import json
import ssl
calaos_url = 'https://192.168.1.2/api.php' # Calaos server API url
calaos_user = 'blablabla'
calaos_password = 'blablabla'
lum_salon = 'output_0'
open_rdc = 'input_58'
close_rdc = 'input_59'
on_='true'
off_='false'
def send_json(dict_send):
json_send = json.dumps(dict_send) # parameters string in JSON format
data_send = json_send.encode('ascii') # bytes data to be sent
headers_send = {'Content-Type': 'application/json'} # media type of the data to be sent
request = urllib.request.Request(calaos_url, data_send, headers_send) # data sent with POST method
context = ssl._create_unverified_context() # do not verify the SSL certificate
with urllib.request.urlopen(request, context=context) as response:
#print(response.info())
data_receive = response.read() # bytes data received
json_receive = data_receive.decode('ascii') # string received in JSON format
dict_receive = json.loads(json_receive) # dictionary received
return (dict_receive)
def get_home():
dict_send = {
'cn_user': calaos_user,
'cn_pass': calaos_password,
'action': 'get_home'
}
col_stat = send_json(dict_send)
return (col_stat)
def set_stat_(qui,quoi):
#print (qui,quoi)
dict_send = {
'cn_user': calaos_user,
'cn_pass': calaos_password,
'action': 'set_state',
'type': 'output',
'id': qui,
'value': quoi
}
send_json(dict_send)
def allumer_salon():
set_stat_(lum_salon,on_)
def eteindre_salon():
set_stat_(lum_salon,off_)
def get_alarme_():
"""action wget json get lumiere salon output_0"""
dict_send = {
'cn_user': calaos_user,
'cn_pass': calaos_password,
'action': 'get_state',
'inputs': ['input_1'],
'outputs': ['output_0","output_1'],
'audio_players': ['0']
}
col_stat = send_json(dict_send)
return (col_stat)
many77, équipé WAGO 750-849 + Rpi3