diff options
Diffstat (limited to 'bin/ebus_app.py')
-rwxr-xr-x | bin/ebus_app.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/ebus_app.py b/bin/ebus_app.py new file mode 100755 index 0000000..9d6cf6a --- /dev/null +++ b/bin/ebus_app.py @@ -0,0 +1,38 @@ +#!/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() |