#  Demo to show a simple MQTT subscriber to BayEOS Gateway bridge
#  Oliver Archner
#  29.07.2015

from bayeosgatewayclient import BayEOSWriter, BayEOSSender
import paho.mqtt.client as mqtt

# BayEOS sender
sender = BayEOSSender(
    url='http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat',
    user='******',
    password='******')
sender.start()

# BayEOS writer
writer = BayEOSWriter()


# MQTT connect and subscribe
def on_connect(client, userdata, rc):
    print("Connected with result code:{0}".format(rc))
    # Subscribe everything
    client.subscribe("#")


# MQTT receive and save message
def on_message(client, userdata, msg):
    # Expects a payload in csv format like '1.0,2.0,3.0,4.0'
    try:
        lst = msg.payload.split(',')
        writer.save(values=[float(i) for i in lst], origin=str(msg.topic))
예제 #2
0
    mean_temp = numpy.mean(temp)
    var_temp = numpy.var(temp)
    mean_hum = numpy.mean(hum)
    var_hum = numpy.var(hum)
    lin_model = stats.linregress(measured_seconds, co2)
    slope = lin_model[0]
    intercept = lin_model[1]
    r_squared = lin_model[2] * lin_model[2]
    slope_err = lin_model[4]
    return [
        mean_temp, var_temp, mean_hum, var_hum, slope, intercept, r_squared,
        slope_err
    ]


sender.start()  # starts sender in a concurrent thread

try:
    while True:
        for addr in range(1,
                          15):  # address 0 is reserved for flushing with air
            gpio.set_addr(0)  # set flushing address
            sleep(60)  # flush for 60 seconds
            gpio.reset()  # stop flushing

            gpio.set_addr(addr)  # start measuring wait 60 seconds, 240 measure
            writer.save(measure(30),
                        origin="RaspberryPi Kammer Nr. " + str(addr))
            writer.flush()  # close the file in order to "feed" sender
            gpio.reset()
except KeyboardInterrupt:
"""Creates an example writer and sender using threads."""
from time import sleep
from bayeosgatewayclient import BayEOSWriter, BayEOSSender
import logging

PATH = '/tmp/bayeos-device/'
NAME = 'Python-Thread-WithLogging'
URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

writer = BayEOSWriter(PATH,max_time=10,log_level=logging.DEBUG)
writer.save_msg('Writer was started.')

sender = BayEOSSender(PATH, NAME, URL,backup_path='/dev/shm/bayeos-device')
sender.start()

while True:
    writer.save([2.1, 3, 20.5])
    sleep(5)
        start_new_thread(hum.append, (sht21.read_humidity(),))
        start_new_thread(co2.append, (mcp3424.read_voltage(1),))
        measured_seconds.append(time())
        sleep(start_time + i - time() + 1) # to keep in time
    mean_temp = numpy.mean(temp)
    var_temp = numpy.var(temp)
    mean_hum = numpy.mean(hum)
    var_hum = numpy.var(hum)
    lin_model = stats.linregress(measured_seconds, co2)
    slope = lin_model[0]
    intercept = lin_model[1]
    r_squared = lin_model[2]*lin_model[2]
    slope_err = lin_model[4]
    return [mean_temp, var_temp, mean_hum, var_hum, slope, intercept, r_squared, slope_err]

sender.start() # starts sender in a concurrent thread

try:
    while True:
        for addr in range(1, 15):   # address 0 is reserved for flushing with air
            gpio.set_addr(0)        # set flushing address
            sleep(60)              # flush for 60 seconds
            gpio.reset()            # stop flushing
    
            gpio.set_addr(addr)     # start measuring wait 60 seconds, 240 measure
            writer.save(measure(30), origin="RaspberryPi Kammer Nr. " + str(addr))
            writer.flush()          # close the file in order to "feed" sender
            gpio.reset()
except KeyboardInterrupt:
    print 'Stopped measurement loop.'
finally: