Hello, je n’ai pas tout a fait la même configuration, mais j’utilise un reTerminal (Getting Started with reTerminal | Seeed Studio Wiki) sur lequel je fait afficher un design Jeedom.
Mais j’ai également une interaction avec les boutons du terminal, pour cela j’utilise un virtuel,
Que je mets à jour avec un programme python sur le Terminal,
#!/usr/bin/env python3
import seeed_python_reterminal.core as rt
import seeed_python_reterminal.button as rt_btn
import os
import requests
rt.sta_led_green = True
rt.sta_led_red = False
apikey = 'xxxx'
link = "https://xxxx.eu.jeedom.link/core/api/jeeApi.php"
device = rt.get_button_device()
while True:
for event in device.read_loop():
buttonEvent = rt_btn.ButtonEvent(event)
if buttonEvent.name != None:
payload = {'plugin':'virtual', 'type':'event' , 'apikey': apikey, 'id':'2239' , 'value':1}
r = requests.post(link, params=payload)
value = buttonEvent.value
if str(buttonEvent.name) == "ButtonName.F1":
button = 2233
if buttonEvent.value == 1:
status = os.system('systemctl | grep kiosk.service >null')
if status != 0:
os.system('systemctl start kiosk.service >null')
rt.sta_led_red = False
rt.sta_led_green = True
payload = {'plugin':'virtual', 'type':'event' , 'apikey':apikey , 'id':'2237' , 'value':1}
r = requests.post(link, params=payload)
else:
os.system('systemctl stop kiosk.service >null')
rt.sta_led_red = True
rt.sta_led_green = False
payload = {'plugin':'virtual', 'type':'event' , 'apikey':apikey , 'id':'2237' , 'value':0}
r = requests.post(link, params=payload)
elif str(buttonEvent.name) == "ButtonName.F2":
button = 2234
elif str(buttonEvent.name) == "ButtonName.F3":
button = 2235
elif str(buttonEvent.name) == "ButtonName.O":
button = 2236
status = os.system('DISPLAY=:0 xset q | grep "Monitor is On"')
if status == 0:
os.system('DISPLAY=:0 xset dpms force off >null')
payload = {'plugin':'virtual', 'type':'event' , 'apikey':apikey , 'id':'2239' , 'value':1}
r = requests.post(link, params=payload)
else:
payload = {'plugin':'virtual', 'type':'event' , 'apikey':apikey , 'id':'2239' , 'value':0}
r = requests.post(link, params=payload)
payload = {'plugin':'virtual', 'type':'event' , 'apikey':apikey , 'id': button, 'value': value}
r = requests.post(link, params=payload)
Je gère la mise à jour du virtuel avec la bibliothèque requests et je fait des posts par exemple avec:
payload = {'plugin':'virtual', 'type':'event' , 'apikey':apikey , 'id': button, 'value': value}
r = requests.post(link, params=payload)
Pas sur que cela soit la meilleure manière, mais cela fonctionne pour mon besoin.
Tu peux egalement accéder par un get et recuperer une valeur de Jeedom vers le terminal.
import requests
r =requests.get('https://xxxx.eu.jeedom.link/core/api/jeeApi.php?apikey=xxxx&type=cmd&id=2240')
print(r.status_code)
print(r.text)
Mathieu