# main.py -- put your code here! from mqtt_as import MQTTClient from mqtt_as import config as mqttConfig import config import uasyncio as asyncio def sub_cb(topic, msg, retained): print(f"Topic = {topic} Msg = {msg} Retained = {retained}") async def main(client): await client.connect() n = 0 await asyncio.sleep(2) # Give broker time while True: 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()