forked from sthope/battery2mqtt
		
	Only send MQTT payload if info has changed from previous payload
This commit is contained in:
		@@ -28,6 +28,7 @@ path = "/sys/class/power_supply/"
 | 
				
			|||||||
dirs = os.listdir(path)
 | 
					dirs = os.listdir(path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
payload = {}
 | 
					payload = {}
 | 
				
			||||||
 | 
					prev_payload = {}
 | 
				
			||||||
health_calc = {}
 | 
					health_calc = {}
 | 
				
			||||||
time_remaining = {}
 | 
					time_remaining = {}
 | 
				
			||||||
mqtt_connected = False
 | 
					mqtt_connected = False
 | 
				
			||||||
@@ -62,6 +63,8 @@ def check_conditions():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def get_info():
 | 
					def get_info():
 | 
				
			||||||
    # Get requested conditions and generate/send MQTT payload
 | 
					    # Get requested conditions and generate/send MQTT payload
 | 
				
			||||||
 | 
					    global payload
 | 
				
			||||||
 | 
					    global prev_payload
 | 
				
			||||||
    for dir in dirs:
 | 
					    for dir in dirs:
 | 
				
			||||||
        if AC_ADAPTER:
 | 
					        if AC_ADAPTER:
 | 
				
			||||||
            if dir.startswith('AC'):
 | 
					            if dir.startswith('AC'):
 | 
				
			||||||
@@ -120,7 +123,10 @@ def get_info():
 | 
				
			|||||||
                pass
 | 
					                pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try:
 | 
					    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':
 | 
					        if LOG_LEVEL == 'DEBUG':
 | 
				
			||||||
            logging.debug('Sending MQTT payload: ' + str(payload))
 | 
					            logging.debug('Sending MQTT payload: ' + str(payload))
 | 
				
			||||||
    except Exception as e:
 | 
					    except Exception as e:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user