From d3b2e5e428d72c6dbc072aefa1cd7bbcf8c87797 Mon Sep 17 00:00:00 2001 From: Tediore Date: Tue, 17 Aug 2021 23:53:48 -0500 Subject: [PATCH] Only send MQTT payload if info has changed from previous payload --- battery2mqtt.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/battery2mqtt.py b/battery2mqtt.py index 8dcd381..4d966ec 100644 --- a/battery2mqtt.py +++ b/battery2mqtt.py @@ -28,6 +28,7 @@ path = "/sys/class/power_supply/" dirs = os.listdir(path) payload = {} +prev_payload = {} health_calc = {} time_remaining = {} mqtt_connected = False @@ -62,6 +63,8 @@ def check_conditions(): def get_info(): # Get requested conditions and generate/send MQTT payload + global payload + global prev_payload for dir in dirs: if AC_ADAPTER: if dir.startswith('AC'): @@ -120,7 +123,10 @@ def get_info(): pass try: - client.publish("battery2mqtt/" + MQTT_TOPIC + '/' + dir, json.dumps(payload), MQTT_QOS, False) + if prev_payload != payload: + # only send MQTT payload if information has changed from previous payload + client.publish("battery2mqtt/" + MQTT_TOPIC + '/' + dir, json.dumps(payload), MQTT_QOS, False) + prev_payload = payload if LOG_LEVEL == 'DEBUG': logging.debug('Sending MQTT payload: ' + str(payload)) except Exception as e: