#!/usr/bin/python3 import glob import time import paho.mqtt.publish as publish Broker = '127.0.0.1' auth = { 'username': 'emonpi', 'password': 'emonpimqtt2016', } pub_topic = 'emon/DS18B20/Temperature/values' base_dir = '/sys/bus/w1/devices/' device_folders = glob.glob(base_dir + '28-*') def read_temp(device_file): valid = False temp = 0 with open(device_file, 'r') as f: for line in f: if line.strip()[-3:] == 'YES': valid = True temp_pos = line.find(' t=') if temp_pos != -1: temp = float(line[temp_pos + 3:]) / 1000.0 if valid: return temp else: return None while True: for device_folder in device_folders: device_file = device_folder + '/w1_slave' temp = read_temp(device_file) if temp is not None: pub_topic = 'emon/' + device_file + '/Temperature/values' publish.single(pub_topic, str(temp), hostname=Broker, port=1883, auth=auth,) time.sleep(6)