Example #1
0
                                'sender_sleep_time':'5',
                                'bayeosgateway_user':'******',
                                'bayeosgateway_pw':'import',
                                'absolute_time':'True',
                                'remove':'True',
                                'backup_path':'none',
                                'rx_led_pins':''})

cp.read("/etc/nrf24-router.conf")

OriginTemplate=cp.get("nrf24","OriginTemplate")
PATH = cp.get("Overall","path")
BACKUPPATH = cp.get('Sender','backup_path')
if(BACKUPPATH=='none'):
    BACKUPPATH=None;
writer = BayEOSWriter(PATH,cp.getint('Writer','max_chunk'),cp.getint('Writer','max_time'))


sender = BayEOSSender(PATH,cp.get('Overall','name'),cp.get('Sender','url'),
                      cp.get('Sender','bayeosgateway_pw'),cp.get('Sender','bayeosgateway_user'),
                      cp.getboolean('Sender','absolute_time'),cp.getboolean('Sender','remove'),
                      BACKUPPATH)
sender.start()

pipes=[]
for p in re.split(' *, *',cp.get('nrf24','pipes')):
    l=[]
    for i in range(1,6):
        l.append(int(p[i*2:(i+1)*2],16))
    pipes.append(l)
"""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)
"""Reads BayEOS options from a config file."""

from bayeosgatewayclient import BayEOSWriter, BayEOSSender, bayeos_confparser

config = bayeos_confparser('config')
print config

writer = BayEOSWriter(path=config['path'], max_chunk=config['max_chunk'])
sender = BayEOSSender(path=config['path'])
Example #4
0
"""Creates an example writer and sender using threads."""
from time import sleep
from bayeosgatewayclient import BayEOSWriter, BayEOSSender
import logging
import tempfile
from os import path

PATH = path.join(tempfile.gettempdir(), 'bayeos-device')
BACKUP_PATH = path.join(tempfile.gettempdir(), 'bayeos-device-backup')
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=BACKUP_PATH,
                      log_level=logging.DEBUG)
sender.start()

nr = 0
while True:
    writer.save([nr, 3, 20.5])
    #writer.flush()
    nr += 1
    sleep(5)
Example #5
0
"""Creates an example writer."""
import tempfile
from time import sleep
from os import path
from bayeosgatewayclient import BayEOSWriter

PATH = path.join(tempfile.gettempdir(), 'bayeos-device1')
writer = BayEOSWriter(PATH)

writer.save_msg('Writer was started.', origin='Python-Writer-Example')

while True:
    #writer.save_msg('Writer was started.', origin='Python-Writer-Example')
    print 'adding frame\n'
    writer.save(values=[1, 2, 3],
                value_type=0x41,
                origin='Python-Writer-Example',
                routed=True)
    writer.save(values=[2.1, 3, 20.5], value_type=0x02, offset=2)

    writer.save(values={"c1": 1.2, "xx": 1.7}, value_type=0x61)
    # Channel Offset, Integer values:
    #writer.save(values=[2.1, 3, 20.5], value_type=0x02, offset=2, origin='Python-Writer-Example')

    # Channel Indices:
    #writer.save(values=[[1,2.1], [2,3], [3,20.5]], value_type=0x41, origin='Python-Writer-Example')
    #writer.save(values={0: 0, 1: 1, 2: 2, 3: 3, 4: 4}, value_type=0x41, origin='Python-Writer-Example')

    # Error Message
    #writer.save_msg("error message", error=True, origin='Python-Writer-Example')
Example #6
0
from sht21 import SHT21
from mcp3424 import MCP3424
from gpio import GPIO

# gpio pins
ADDR_PINS = [11, 12, 13, 15, 16, 18]  # GPIO 17, 18, 27, 22, 23, 24
DATA_PIN = 24  # GPIO 8
EN_PIN = 26  # GPIO 7

# configuration for BayEOSWriter and BayEOSSender
PATH = '/tmp/raspberrypi/'
NAME = 'RaspberryPi'
URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

# instantiate objects of BayEOSWriter and BayEOSSender
writer = BayEOSWriter(PATH)
sender = BayEOSSender(PATH, NAME, URL)

# initialize GPIO Board on Raspberry Pi
gpio = GPIO(ADDR_PINS, EN_PIN, DATA_PIN)

# initialize I2C Bus with sensors
try:
    i2c = I2C()
    sht21 = SHT21(1)
    mcp3424 = MCP3424(i2c.get_smbus())
except IOError as err:
    sys.stderr.write(
        'I2C Connection Error: ' + str(err) +
        '. This must be run as root. Did you use the right device number?')
from sht21 import SHT21
from mcp3424 import MCP3424
from gpio import GPIO

# gpio pins
ADDR_PINS = [11, 12, 13, 15, 16, 18]  # GPIO 17, 18, 27, 22, 23, 24
DATA_PIN = 24  # GPIO 8
EN_PIN = 26  # GPIO 7

# configuration for BayEOSWriter and BayEOSSender
PATH = '/tmp/raspberrypi/'
NAME = 'RaspberryPi'
URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

# instantiate objects of BayEOSWriter and BayEOSSender
writer = BayEOSWriter(PATH)
sender = BayEOSSender(PATH, NAME, URL)

# initialize GPIO Board on Raspberry Pi
gpio = GPIO(ADDR_PINS, EN_PIN, DATA_PIN)

# initialize I2C Bus with sensors
try:
    i2c = I2C()
    sht21 = SHT21(1)
    mcp3424 = MCP3424(i2c.get_smbus())
except IOError as err:
    sys.stderr.write('I2C Connection Error: ' + str(err) + '. This must be run as root. Did you use the right device number?')

# measurement method
def measure(seconds=10):
"""Creates an example writer and sender using threads."""
from time import sleep
from bayeosgatewayclient import BayEOSWriter, BayEOSSender
import tempfile
from os import path

PATH = path.join(tempfile.gettempdir(),'bayeos-device') 
writer = BayEOSWriter(PATH)

NAME = 'Python-Thread-Example2'
URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

writer = BayEOSWriter(PATH)
writer.save_msg('Writer was started.')

sender = BayEOSSender(PATH, NAME, URL)
sender.start()

while True:
    writer.save(values={"c1":1.2,"xx":1.7},value_type=0x61)     
    sleep(5)
Example #9
0
#!/usr/bin/python
# -*- coding: utf-8 -*-

import baySerial
from bayeosgatewayclient import BayEOSWriter, BayEOSSender
import tempfile
from os import path
from threading import Thread, Lock
from time import sleep

PATH = path.join(tempfile.gettempdir(), 'bayeos-device')
writer = BayEOSWriter(PATH)

NAME = 'BayEOSSerial-Thread-Example'
URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

writer = BayEOSWriter(PATH)
writer.save_msg('Writer was started.')

sender = BayEOSSender(PATH, NAME, URL)
sender.start()

ser = baySerial.BaySerial()
ser.begin('/dev/ttyUSB0', 9600)

lock = Lock()


def handleSerial():
    while True:
        frame = ser.getFrame()
Example #10
0
"""Creates an example writer and flushes it before max chunk size is reached."""

from time import sleep
from bayeosgatewayclient import BayEOSWriter

PATH = '/tmp/bayeos-device1/'
writer = BayEOSWriter(PATH, max_chunk=1000)
writer.save_msg('Writer was started.', origin='Python-Writer-Flush-Example')
flush = 0

while True:
    #print 'adding frame\n'
    writer.save(values=[2.1, 3, 20.5],
                value_type=0x02,
                offset=2,
                origin='Python-Writer-Flush-Example')
    flush += 1
    if flush % 5 == 0:  # flush writer every 5 seconds
        writer.save_msg('Writer was flushed.',
                        origin='Python-Writer-Flush-Example')
        writer.flush()
        print 'flushed writer'
        flush = 0
    sleep(1)
"""Creates an example writer and sender using threads."""
from time import sleep
from bayeosgatewayclient import BayEOSWriter, BayEOSSender
import tempfile
from os import path

PATH = path.join(tempfile.gettempdir(), 'bayeos-device')
writer = BayEOSWriter(PATH)

NAME = 'Python-Thread-Example2'
URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

writer = BayEOSWriter(PATH)
writer.save_msg('Writer was started.')

sender = BayEOSSender(PATH, NAME, URL)
sender.start()

while True:
    writer.save(values={"c1": 1.2, "xx": 1.7}, value_type=0x61)
    sleep(5)
    #writer.flush()
Example #12
0
from bayeosgatewayclient import BayEOSWriter, BayEOSSender
from time import sleep
from os import path
import tempfile
import psutil

PATH = path.join(tempfile.gettempdir(),'bayeos') 
NAME = 'MyFirstBoard'
URL = 'http://localhost/gateway/frame/saveFlat'

writer = BayEOSWriter(PATH)
writer.save_msg('Writer was started.')

sender = BayEOSSender(PATH, NAME, URL)
sender.start() 	

while True:
    print 'Adding frame'
    writer.save(psutil.cpu_percent(percpu=True))
    sleep(5)
Example #13
0
import psutil
import logging
import tempfile
import logging
import os

from bayeosdevice.device import DeviceController
from bayeosdevice.item import ItemDict
from bayeosgatewayclient import BayEOSWriter, BayEOSSender

NAME = 'MyDevice'
PATH = os.path.join(tempfile.gettempdir(), NAME)
GW = 'http://localhost/gateway/frame/saveFlat'

# Transport
writer = BayEOSWriter(PATH)
sender = BayEOSSender(PATH, NAME, GW)
sender.start()

# Web Interface
values = ItemDict({"cpu1": None, "cpu2": None})
units = {"^cpu": '%', "\w+time$": 'secs'}
actions = ItemDict({"sleep_time": 10, "run": True})
con = DeviceController(values, actions, units, template="custom.html")
con.start()


# Stop handler
def sigterm_handler(_signo, _stack_frame):
    logging.info("Stopping device")
    if con is not None:
#  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))
"""Creates an example writer and sender using threads."""
from time import sleep
from bayeosgatewayclient import BayEOSWriter, BayEOSSender, BayEOSFrame
import logging
import tempfile
from os import path

PATH = path.join(tempfile.gettempdir(),'bayeos-device')
BACKUP_PATH =  path.join(tempfile.gettempdir(),'bayeos-device-backup')
NAME = 'Python-SampleFrames'

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=BACKUP_PATH)
sender.start()

while True:
    data_frame_simple = BayEOSFrame.factory(0x1)
    data_frame_simple.create(values=(1, 5, 4), value_type=0x22)  # Data Type Integer
    writer.save_frame(data_frame_simple.frame)
    routed_origin_frame = BayEOSFrame.factory(0xd)
    routed_origin_frame.create(origin="RoutedOrigin", nested_frame=data_frame_simple.frame)
    writer.save_frame(routed_origin_frame.frame)
    sleep(2)
    
    # in the second try - checksum frames are send
    # first direct - second nested in routed origin frame
    data_frame_simple = BayEOSFrame.factory(0x1)
"""Creates an example writer."""

from time import sleep
from bayeosgatewayclient import BayEOSWriter

PATH = '/tmp/bayeos-device1/'
writer = BayEOSWriter(PATH)

writer.save_msg('Writer was started.', origin='Python-Writer-Example')
 
while True:
    #writer.save_msg('Writer was started.', origin='Python-Writer-Example')
    #print 'adding frame\n'
    writer.save(values=[1,2,3], value_type=0x41, origin='Python-Writer-Example')
    writer.save(values=[2.1, 3, 20.5], value_type=0x02, offset=2)
     
    # Channel Offset, Integer values:
    #writer.save(values=[2.1, 3, 20.5], value_type=0x02, offset=2, origin='Python-Writer-Example')
     
    # Channel Indices:
    #writer.save(values=[[1,2.1], [2,3], [3,20.5]], value_type=0x41, origin='Python-Writer-Example')
    #writer.save(values={0: 0, 1: 1, 2: 2, 3: 3, 4: 4}, value_type=0x41, origin='Python-Writer-Example')
     
    # Error Message
    #writer.save_msg("error message", error=True, origin='Python-Writer-Example')
     
    # Error Message
    #writer.save_msg("error message", error=True, origin='Python-Writer-Example')
    sleep(1)
from bayeosgatewayclient import BayEOSWriter, BayEOSSender, bayeos_argparser

# Fetch input arguments
args = bayeos_argparser('This is the text to appear on the command line.')

WRITER_SLEEP = float(args.writer_sleep)
MAX_CHUNK = float(args.max_chunk)

NAME = args.name + '-WS' + str(WRITER_SLEEP) + '-M' + str(MAX_CHUNK)
PATH = args.path + '/' + NAME + '/'
if args.url:
    URL = args.url
else:
    URL = 'http://bayconf.bayceer.uni-bayreuth.de/gateway/frame/saveFlat'

print 'name to appear in Gateway is', NAME
print 'max-chunk is', MAX_CHUNK, 'byte'
print 'writer sleep time is', WRITER_SLEEP, 'sec'
print 'path to store writer files is', PATH

# init writer and sender
writer = BayEOSWriter(PATH, MAX_CHUNK)
writer.save_msg('Writer was started.')

sender = BayEOSSender(PATH, NAME, URL, 'import', 'import')
sender.start()

# start measurement
while True:
    writer.save([time()], value_type=0x21)
    sleep(WRITER_SLEEP)