From 03ad60db3b2e6a0e71bd66e94a0cafb0fc5b9411 Mon Sep 17 00:00:00 2001 From: Karl Gutwin Date: Mon, 7 Jun 2021 21:31:01 -0400 Subject: [PATCH] Add simple support for iterator-based event subscription --- traeger.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/traeger.py b/traeger.py index 9ceb908..5accd63 100644 --- a/traeger.py +++ b/traeger.py @@ -14,7 +14,7 @@ import uuid import urllib import json - +import queue CLIENT_ID = "2fuohjtqv1e63dckp5v84rau0j" @@ -112,3 +112,13 @@ def get_grill_status(self, timeout = 10): time.sleep(1) remaining -= 1 return self.grill_status + + def grill_status_subscription(self): + sub_queue = queue.Queue() + def handle_message(client, userdata, message): + sub_queue.put(json.loads(message.payload)) + client = self.get_mqtt_client(self.grill_connect, handle_message) + for grill in self.grills: + client.subscribe(("prod/thing/update/{}".format(grill["thingName"]),1)) + while True: + yield sub_queue.get()