47 lines
1.3 KiB
Python
Raw Permalink Normal View History

2022-10-09 11:38:51 +02:00
# main.py -- put your code here!
2022-10-10 18:31:40 +02:00
from mqtt_as import MQTTClient
from mqtt_as import config as mqttConfig
import config
import uasyncio as asyncio
2022-10-09 11:38:51 +02:00
2022-10-10 18:31:40 +02:00
def sub_cb(topic, msg, retained):
print(f"Topic = {topic} Msg = {msg} Retained = {retained}")
2022-10-09 11:38:51 +02:00
2022-10-10 18:31:40 +02:00
async def main(client):
await client.connect()
n = 0
await asyncio.sleep(2) # Give broker time
2022-10-09 11:38:51 +02:00
while True:
2022-10-10 18:31:40 +02:00
print('publish', n)
# If WiFi is down the following will pause for the duration.
await client.publish('rpi/hb', '{} {}'.format(n, client.REPUB_COUNT), qos = 1)
n += 1
await asyncio.sleep(20) # Broker is slow
async def connected_cb(client):
await client.subscribe('rpi/in', 1)
loop = asyncio.get_event_loop()
mqttConfig['ssid'] = config.SSID
mqttConfig['wifi_pw'] = config.WPA_KEY
mqttConfig['subs_cb'] = sub_cb
mqttConfig['server'] = config.MQTT_SERVER
mqttConfig['port'] = 8883
mqttConfig['user'] = config.MQTT_LOGIN
mqttConfig['password'] = config.MQTT_PASSWORD
mqttConfig['connect_coro'] = connected_cb
# mqttConfig['client_id'] = ubinascii.hexlify(bytearray(os.urandom(16))).decode()
mqttConfig['ssl'] = False
# Set up client
MQTTClient.DEBUG = True # Optional
client = MQTTClient(mqttConfig)
try:
loop.run_until_complete(main(client))
finally:
client.close()