Når jeg går gjennom er det mer en et par linjer
Hvis du tar utgangspunkt i Airthings sin waveplus-reader så har jeg lagt til følgende under import-setningene for å starte MQTT. (paho-klienten må være installert)
import paho.mqtt.client as mqtt
import paho.mqtt.publish as publish
# MQTT
Broker = "10.0.xx.xx"
Broker_port = 1883
def on_connect(client, userdata, flags, rc):
print("MQTT connected with result code "+str(rc))
client = mqtt.Client()
client.on_connect = on_connect
client.connect(Broker, Broker_port, 60)
client.loop_start()
og så rundt linje 240 har jeg endret litt slik at det ikke legges til ppm og andre enheter bak så jeg får inn rene tall:
# extract
humidity = str(sensors.getValue(SENSOR_IDX_HUMIDITY))
radon_st_avg = str(sensors.getValue(SENSOR_IDX_RADON_SHORT_TERM_AVG))
radon_lt_avg = str(sensors.getValue(SENSOR_IDX_RADON_LONG_TERM_AVG))
temperature = str(sensors.getValue(SENSOR_IDX_TEMPERATURE))
pressure = str(sensors.getValue(SENSOR_IDX_REL_ATM_PRESSURE))
CO2_lvl = str(sensors.getValue(SENSOR_IDX_CO2_LVL))
VOC_lvl = str(sensors.getValue(SENSOR_IDX_VOC_LVL))
# Print data
data = [humidity, radon_st_avg, radon_lt_avg, temperature, pressure, CO2_lvl, VOC_lvl]
client.publish('airthings/co2', str(CO2_lvl))
client.publish('airthings/radon', str(radon_st_avg))
client.publish('airthings/voc', str(VOC_lvl))
waveplus-reader kræsjer av og til hvis den ikke får bluetooth-kontakt, så det hele kjøres av forever, som passer på å restarte hvis noe går galt. Du må installere node/npm først og så installere forever med npm.
Følgende linje i /etc/rc.local starter opp scriptet:
/usr/local/bin/forever -c /usr/bin/python /home/pi/waveplus-reader/send_waveplus.py 29300xxxxx 1800 pipe > /tmp/waveplus &
1800 er antall sekunder mellom hver refresh, så 30 min i dette tilfellet.