Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

question only #1

Open
vargatomy opened this issue Aug 12, 2021 · 1 comment
Open

question only #1

vargatomy opened this issue Aug 12, 2021 · 1 comment

Comments

@vargatomy
Copy link

vargatomy commented Aug 12, 2021

Hi Jonathan,

Thanks for the script I like it and using it to monitor T&H on a DHT22 connected to an RPi.
For some reason I receive the T&H data in the csv output but not visible in MQTT - only the Temp data.
If you have time and willing to help can you please take a look at the script?

Thanks in advance
Tom

import Adafruit_DHT
import paho.mqtt.client as paho
import os
import time

Define constants

Sensor type (Adafruit_DHT.DHT11 or Adafruit_DHT.DHT22)

DHT_SENSOR = Adafruit_DHT.DHT22

Configure GPIO pins

CUPBOARD_PIN = 2
#FLOOR_PIN = 4
#WASHINGMACHINE_PIN = 27

MQTT details

MQTT_BROKER="192.168.1.131"
MQTT_PORT=1883

Output file name

LOGFILE = "/home/pi/sensors.csv"

##########################################################

Only edit below if you know what you're doing!

##########################################################

def on_publish(client,userdata,result): #create function for callback
print("data published \n")
pass
client1= paho.Client("control1") #create client object
client1.on_publish = on_publish #assign function to callback
client1.connect(MQTT_BROKER,MQTT_PORT) #establish connection

try:
f = open(LOGFILE, 'a+')
if os.stat(LOGFILE).st_size == 0:
f.write('Date,Time,Sensor,Temperature,Humidity\r\n')
except:
pass

cupboardHumidity, cupboardTemperature = Adafruit_DHT.read_retry(DHT_SENSOR, CUPBOARD_PIN)
#floorHumidity, floorTemperature = Adafruit_DHT.read_retry(DHT_SENSOR, FLOOR_PIN)
#washingMachineHumidity, washingMachineTemperature = Adafruit_DHT.read_retry(DHT_SENSOR, WASHINGMACHINE_PIN)

if cupboardHumidity is not None and cupboardTemperature is not None:
ret= client1.publish("akna/temperature","{0:0.1f}".format(cupboardTemperature))
ret= client1.publish("akna/humidity","{0:0.1f}".format(cupboardHumidity))
f.write('{0},{1},akna,{2:0.1f}*C,{3:0.1f}%\r\n'.format(time.strftime('%y-%m-%d'), time.strftime('%H:%M'), cupboardTemperature, cupboardHumidity))
else:
ret= client1.publish("kitchen/cupboard/temperature","FAILED")
print("Failed to retrieve data from cupboard sensor")

#if floorHumidity is not None and floorTemperature is not None:
ret= client1.publish("kitchen/floor/temperature","{0:0.1f}".format(floorTemperature))
ret= client1.publish("kitchen/floor/humidity","{0:0.1f}".format(floorHumidity))
f.write('{0},{1},Floor,{2:0.1f}*C,{3:0.1f}%\r\n'.format(time.strftime('%y-%m-%d'), time.strftime('%H:%M'), floorTemperature, floorHumidity))
#else:
ret= client1.publish("kitchen/floor/temperature","FAILED")
print("Failed to retrieve data from floor sensor")

#if washingMachineHumidity is not None and washingMachineTemperature is not None:
ret= client1.publish("kitchen/washing-machine/temperature","{0:0.1f}".format(washingMachineTemperature))
ret= client1.publish("kitchen/washing-machine/humidity","{0:0.1f}".format(washingMachineHumidity))
f.write('{0},{1},Washing-Machine,{2:0.1f}*C,{3:0.1f}%\r\n'.format(time.strftime('%y-%m-%d'), time.strftime('%H:%M'), washingMachineTemperature, washignMachineHumidity))
#else:
ret= client1.publish("kitchen/washing-machine/temperature","FAILED")
print("Failed to retrieve data from washing-machine sensor")

def on_disconnect(client, userdata, rc):
print("client disconnected ok")
client1.on_disconnect = on_disconnect
client1.disconnect()

@CurtisFeatures
Copy link

@vargatomy

I have the exact same issue. Its driving me mad, Did you find a solution?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants