Flip Dots
Electromechanical flip-dot display driven by custom software.
View on GitHub# MQTT callbacks — commands arrive as strings on dotty/command
def _mqtt_on_connect(client, userdata, flags, rc, properties=None):
log.info("MQTT connected rc=%s flags=%s", rc, flags)
if rc == 0:
client.publish("dotty/status", "online", qos=1, retain=True)
client.subscribe("dotty/command")
else:
log.warning("MQTT connect returned rc=%s", rc)
def _mqtt_on_message(client, userdata, msg):
try:
payload = msg.payload.decode(errors="ignore").strip()
except Exception:
payload = "<binary>"
log.info("MQTT RX %s -> %s", msg.topic, payload)
if payload:
try:
command_queue.put_nowait(payload)
except queue.Full:
log.warning("Command queue full; dropping MQTT command")
def _mqtt_on_disconnect(client, userdata, rc):
log.warning("MQTT disconnected rc=%s", rc)