from time import sleep #em phyton normal não existe sleep_ms
from random import choice #sorteia alguma coisa
from rede import Rede
from json import load
#, JSONDecodeError #16min #33min
from machine import reset
from ntptime import settime
from umqtt.robust import MQTTClient
topicoA = b'ifrsrgauto/info/1105404'
topicoB = b'ifrsrgauto/info/11054042'
#tem que converter para byte min51
def debug(x):
print(x)
def fofoqueira(topico, payload): #callback
print(f'{topico} -> {payload}')
try:
with open('config.json') as arq:
cfg = load (arq) #depois daqui usa só cfg, não tem mais nada haver com o arquivo
except FileNotFoundError:
print ("Deu ruim no arquivo")
except JSONDecodeError:
print ("Deu ruim no JSON")
filas = ('Livre', 'A', 'B', 'C')
r = Rede(cfg['rede'], cfg['senha'], cb=debug)
if r.conectado:
settime()
cliente = MQTTClient(cfg ["clientId"], cfg["broker"]) #nomes que estavam no arq config.json
cliente.set_callback(fofoqueira) #tem que ser antes da conexão
cliente.connected()
cliente.subscribe('topicoA')
cliente.subscribe('topicoB')
else:
print ("Deu ruim...Reiniciando")
sleep(2)
reset()
while True:
cliente.check_msg() #verifica se o broker mandou algo via rede, se mandou ela avisa a função fofoqueira que analisa o que chegou
fila = choice(filas)
print (fila)
sleep(2)
#msg=payload.decode() transforma em string
#comando=loads(msg) transforma em dic
#https://www.hivemq.com/demos/websocket-client/