import subprocess import paho.mqtt.client as mqtt import time import json client = mqtt.Client() client.connect("localhost", 1883, 60) client.loop_start() try: while True: completed = subprocess.run(['/home/pi/go/bin/rtlamr','-filterid=xxxxxxxxx', '-single=true', '-format=json', '-duration=10m'], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) try: data=json.loads(completed.stdout.decode("utf-8")) except ValueError: print("Error") else: reading = data['Message']['Consumption'] client.publish("home/gasmeter",reading,0,True); print("Reading:",reading) except KeyboardInterrupt: print("interrupted!") client.loop_stop() client.disconnect()