#!/usr/bin/env python # -*- coding:utf-8 -*- # xapek.org, 2010 import asyncore from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from ebus.web import model from ebus import EbusReader #db_engine = create_engine('sqlite:///:memory:', echo=True) db_engine = create_engine("postgresql://yvesf:iii@10.2.2.13:5432/yvesf", echo=True) session = sessionmaker(bind=db_engine)() def insert(ebus_packet): try: if len(ebus_packet.values()) > 0: for name,value in ebus_packet.values(): sensor = session.query().filter(name=name).first() if not sensor: sensor = model.Sensor(name) session.add(sensor) m_value = model.Value(sensor, value) session.add(m_value) print m_value session.commit() except Exception,e: try: print "Failed to insert %s -- reason %s" % (ebus_packet.name(), e) except Exception,e: print e reader = EbusReader() reader.handle_ebus = insert reader.debug = False asyncore.loop()