raspberrypi-temp-sensor/readBresserTempSensor.py

60 lines
1.7 KiB
Python
Executable File

import json
import sys
import os
# Import MQTT client.
import paho.mqtt.publish as publish
import paho.mqtt.client as paho
# MQTT credentials
#mqtt_username = 'homeassistant' # MQTT client username
#mqtt_password = '3355' # MQTT client password
#client_id = 'temperature' # unique client_id
mqtt_broker = "raspberrypi" # broker address, usually your HASS IP address
# create the MQTT client
client = paho.Client(protocol=paho.MQTTv31) # * set a random string (max 23 chars)
# Command topic
#topic = 'weathersensors/garden'
# client connection
#client.username_pw_set(mqtt_username, mqtt_password) # MQTT server credentials
client.connect(mqtt_broker, 1883, 60) # MQTT server address
#client.loop_start()
# -R 42 HIDEKI TS04 Temperature, Humidity, Wind and Rain Sensor (garden sensor)
# -R 187 Inkbird ITH-20R temperature humidity sensor (pool sensor)
process = os.popen('docker run --device /dev/bus/usb/001/004 rtl_433:inkbird -R 42 -R 187 -F json -T 65 -M time:utc:usec')
processData = process.read().split('\n')
print("processData: ")
print(processData)
for i in processData:
print("i: ")
print(len(i))
print(i)
if len(i) > 0:
jsonData = (json.loads(i))
model = str(jsonData['model'])
if model == "Hideki-TS04":
topic = 'weathersensors/garden'
else:
topic = 'weathersensors/pool'
time = str(jsonData['time'])
battery = str(jsonData['battery_ok'])
temperature = str(jsonData['temperature_C'])
humidity = str(jsonData['humidity'])
client.publish(topic + "/time", "" + time)
client.publish(topic + "/battery", "" + battery)
client.publish(topic + "/temperature", "" + temperature)
client.publish(topic + "/humidity", "" + humidity)
process.close()