예제 #1
0
def setup_device(device):
    rrd = RRD(device.id, 'device')
    sources = []
    sources.append({'name': 'interior_temp'})
    sources.append({'name': 'exterior_temp'})
    rrd.create(sources)

    return
예제 #2
0
def delete_grainbin(grainbin):

    rrd = RRD(grainbin.device_id, 'grainbin',
              service_number=grainbin.bus_number)
    rrd.remove()

    db_session.query(Grainbin).filter_by(id=grainbin.id).delete()
    db_session.commit()
    return
예제 #3
0
def setup_grainbin(grainbin):

    rrd = RRD(grainbin.device_id, 'grainbin',
              service_number=grainbin.bus_number)

    sources = []
    for sensor in grainbin.sensors:
        sources.append({'name': sensor.id})
    rrd.create(sources)
    return
예제 #4
0
def delete_device(device):
    address = Config.get('services', 'client_address')
    port = Config.get('services', 'client_port')
    address = "tcp://" + address + ":" + port

    socket = zmq.Context().socket(zmq.REQ)
    socket.setsockopt(zmq.LINGER, 0)
    socket.connect(address)

    message = ['00000000', 'control', 'remove', device.id]
    mdp_request(socket, 'device', message, 1)

    rrd = RRD(device.id, 'device')
    rrd.remove(remove_folder=True)

    db_session.query(Device).filter_by(id=device.id).delete()
    db_session.commit()

    return
예제 #5
0
def _device_chart():

    if request.method == 'POST':
        device_id = request.json['id']
        date_range = request.json['date']

        names = []
        names.append({'name': 'interior_temp'})
        names.append({'name': 'exterior_temp'})

        rrd = RRD(device_id, 'device')

        data = rrd.retrieve(names, date_range)

        if not data:
            return "Error fetching data!"

        ykeys = ['interior_temp', 'exterior_temp']
        labels = ['Interior', 'Exterior']

        return jsonify(data=data, ykeys=ykeys, labels=labels)

    return "Success!"
예제 #6
0
def _grainbin_chart():

    if request.method == 'POST':
        grainbin_id = request.json['id']
        date_range = request.json['date']
        grainbin = db_session.query(Grainbin).filter_by(id=grainbin_id).first()
        names = []
        ykeys = []
        labels = []
        for sensor in grainbin.sensors:
            names.append({'name': sensor.id})
            ykeys.append(sensor.id)
            labels.append(sensor.id)

        rrd = RRD(grainbin.device_id, 'grainbin', grainbin.bus_number)

        data = rrd.retrieve(names, date_range)

        if not data:
            return "Error fetching data!"

        return jsonify(data=data, ykeys=ykeys, labels=labels)

    return "Success!"