-#!/usr/bin/env python
+#!/usr/bin/env python3
# Iris -- the Burrow's goddess of rainbow
# Controls LEDs on the Rainbow according to the state of the house
# (c) 2022 Martin Mareš <mj@ucw.cz>
will = aiomqtt.Will(topic='status/iris', payload='dead', qos=1, retain=True)
- async with aiomqtt.Client(client_id='iris', hostname="burrow-mqtt", port=8883, tls_context=sctx, will=will) as mqtt:
- global st
- st = State(mqtt)
- async with mqtt.messages() as messages:
- await mqtt.subscribe("burrow/air/ac-on")
- await mqtt.subscribe("burrow/heating/#")
- await mqtt.subscribe("burrow/temp/#")
- await mqtt.publish("status/iris", "ok", retain=True)
- async for msg in messages:
- await mqtt_process_msg(msg.topic, msg.payload.decode())
+ mqtt = aiomqtt.Client(client_id='iris', hostname="burrow-mqtt", port=8883, tls_context=sctx, will=will)
+ await mqtt.connect()
+ global st
+ st = State(mqtt)
+ async with mqtt.messages() as messages:
+ await mqtt.subscribe("burrow/air/ac-on")
+ await mqtt.subscribe("burrow/heating/#")
+ await mqtt.subscribe("burrow/temp/#")
+ await mqtt.publish("status/iris", "ok", retain=True)
+ async for msg in messages:
+ await mqtt_process_msg(msg.topic.value, msg.payload.decode())
async def mqtt_watcher():