diff --git a/hass_button_emulator.py b/hass_button_emulator.py index ef85604..9ec98c2 100755 --- a/hass_button_emulator.py +++ b/hass_button_emulator.py @@ -2,39 +2,33 @@ import time import paho.mqtt.client as mqtt -import argparse import json import mqtt_client -def main(): - parser = argparse.ArgumentParser(description="Allen & Heath Qu MQTT event emulator") - parser.add_argument("mqtt_hostname", help="IP of the MQTT broker") - args = parser.parse_args() - - print(f"MQTT broker hostname: {args.mqtt_hostname}") - - def on_connect(client, userdata, flags, reason_code, properties): - print(f"Connected: {reason_code}") - client.subscribe("#") - - client = mqtt.Client(callback_api_version=mqtt.CallbackAPIVersion.VERSION2) - client.on_connect = on_connect - - client.connect(args.mqtt_hostname, mqtt_client.MQTT_SERVER_PORT, 60) - client.loop_start() - - j = json.dumps({"command": "scene_recall", "args": {"scene_id": 0}}) - # j = json.dumps({'command': 'shutdown'}) - - client.publish(mqtt_client.MQTT_TOPIC, payload=j, qos=0, retain=False) - - time.sleep(2) - - client.loop_stop() - client.disconnect() +def on_connect(client, userdata, flags, reason_code, properties): + print(f"Connected: {reason_code}") + client.subscribe("#") -if __name__ == "__main__": - main() +def on_message(client, userdata, msg): + print(f"{msg.topic}: {msg.payload.decode()}") + + +client = mqtt.Client(callback_api_version=mqtt.CallbackAPIVersion.VERSION2) +client.on_connect = on_connect +client.on_message = on_message + +client.connect(mqtt_client.MQTT_SERVER_ADDRESS, mqtt_client.MQTT_SERVER_PORT, 60) +client.loop_start() + +j = json.dumps({"command": "scene_recall", "args": {"scene_id": 0}}) +# j = json.dumps({'command': 'shutdown'}) + +client.publish(mqtt_client.MQTT_TOPIC, payload=j, qos=0, retain=False) + +time.sleep(2) + +client.loop_stop() +client.disconnect() diff --git a/mqtt_client.py b/mqtt_client.py index 3b7e5b8..3ff7ed6 100644 --- a/mqtt_client.py +++ b/mqtt_client.py @@ -7,6 +7,7 @@ import paho.mqtt.client as mqtt import mixer from mixer import Mixer +MQTT_SERVER_ADDRESS = "localhost" MQTT_SERVER_PORT = 1883 MQTT_TOPIC = "homeassistant/device/mixer" @@ -15,7 +16,7 @@ m: Mixer = None def on_connect(client, userdata, flags, reason_code, properties): print(f"Connected: {reason_code}") - client.subscribe(MQTT_TOPIC) + client.subscribe("#") def on_message(client, userdata, msg): @@ -34,20 +35,18 @@ def on_message(client, userdata, msg): def main(): parser = argparse.ArgumentParser(description="Allen & Heath Qu MQTT Remote Control") - parser.add_argument("mixer_ip", help="IP of the mixer") - parser.add_argument("mqtt_hostname", help="IP of the MQTT broker") + parser.add_argument("ip", help="IP of the mixer") args = parser.parse_args() - - print(f"Mixer IP: {args.mixer_ip}, MQTT broker hostname: {args.mqtt_hostname}") + print(f"IP: {args.ip}") global m - m = mixer.Mixer(args.mixer_ip) + m = mixer.Mixer(args.ip, mixer.MIXER_PORT) client = mqtt.Client(callback_api_version=mqtt.CallbackAPIVersion.VERSION2) client.on_connect = on_connect client.on_message = on_message - client.connect(args.mqtt_hostname, MQTT_SERVER_PORT, 60) + client.connect(MQTT_SERVER_ADDRESS, MQTT_SERVER_PORT, 60) client.loop_forever()