47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
# 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() |