import time from datetime import datetime import subprocess import sys # Import Adafruit_DHT import Adafruit_DHT # Import MQTT client. import paho.mqtt.publish as publish import paho.mqtt.client as paho # DATETIME now = datetime.now() #print("now =", now) #Output format: DD/MM/YYYY H:M:S dt_string = now.strftime("%d-%m-%Y %H:%M:%S") # MQTT credentials #mqtt_username = 'homeassistant' # MQTT client username #mqtt_password = '3355' # MQTT client password client_id = sys.argv[1] # unique client_id mqtt_broker = "raspberrypi" # broker address, usually your HASS IP address # DHT config DHT_PIN = 4 # GPIO nr DHT_SENSOR = Adafruit_DHT.DHT22 # connection event def on_connect(client, data, flags, rc): print('Connected: ' + str(rc)) # create the MQTT client client = paho.Client(protocol=paho.MQTTv31) # * set a random string (max 23 chars) # Command topic temperature_topic = 'weathersensors/' + client_id + '/temperature' humidity_topic = 'weathersensors/' + client_id + '/humidity' time_topic = 'weathersensors/' + client_id + 'time' #client connection #client.username_pw_set(mqtt_username, mqtt_password) # MQTT server credentials client.connect(mqtt_broker) # MQTT server address client.loop_start() while True: # Get Temperature from DHT _, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN) temperature = round(temperature, 2) # Get Humidity from DHT humidity, _ = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN) humidity = round(humidity, 2) # Publish our data client.publish(temperature_topic, temperature) client.publish(humidity_topic, humidity) client.publish(time_topic, dt_string) time.sleep(30) # Output data to screen # print temperature # print humidity