Get alarm level

And list gauges without data
This commit is contained in:
Florent 2013-01-10 14:46:29 +01:00
commit c3c06a0e6f

View file

@ -21,14 +21,20 @@ from datetime import datetime, date, time
from weboob.tools.browser import BasePage from weboob.tools.browser import BasePage
from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor
from weboob.capabilities.base import NotAvailable, NotLoaded from weboob.capabilities.base import NotAvailable, NotLoaded
from weboob.capabilities.base import NotAvailable
__all__ = ['ListPage', 'HistoryPage'] __all__ = ['ListPage', 'HistoryPage']
class ListPage(BasePage): class ListPage(BasePage):
alarmlevel = {"as1.gif": u"Alarmstufe 1", "as2.gif": u"Alarmstufe 2", \
"as3.gif": u"Alarmstufe 3", "as4.gig": u"Alarmstufe 4", \
"qua_grau.gif": u"No alarm function", "p_gruen.gif": u"", \
"qua_weiss.gif": u"no data"}
def get_rivers_list(self): def get_rivers_list(self):
for pegel in self.document.getroot().xpath(".//a[@onmouseout='pegelaus()']"): for pegel in self.document.getroot().xpath(".//a[@onmouseout='pegelaus()']"):
div = pegel.getparent()
img = div.find('.//img').attrib['src'].split('/')[1]
data = pegel.attrib['onmouseover'].strip('pegelein(').strip(')').replace(",'", ",").split("',") data = pegel.attrib['onmouseover'].strip('pegelein(').strip(')').replace(",'", ",").split("',")
gauge = Gauge(int(data[7])) gauge = Gauge(int(data[7]))
gauge.name = unicode(data[0].strip("'")) gauge.name = unicode(data[0].strip("'"))
@ -55,36 +61,37 @@ class ListPage(BasePage):
try: try:
level = float(data[3]) level = float(data[3])
levelsensor = GaugeSensor(gauge.id + "-level")
levelsensor.name = u"Level"
# TODO levelsensor.unit =
levelsensor.forecast = forecast
lastvalue = GaugeMeasure()
lastvalue.level = level
lastvalue.date = lastdate
# TODO lastvalue.alarm =
levelsensor.lastvalue = lastvalue
levelsensor.history = NotLoaded
levelsensor.gaugeid = gauge.id
sensors.append(levelsensor)
except: except:
pass level = NotAvailable
levelsensor = GaugeSensor(gauge.id + "-level")
levelsensor.name = u"Level"
levelsensor.unit = u"cm"
levelsensor.forecast = forecast
lastvalue = GaugeMeasure()
lastvalue.level = level
lastvalue.date = lastdate
lastvalue.alarm = self.alarmlevel[img]
levelsensor.lastvalue = lastvalue
levelsensor.history = NotLoaded
levelsensor.gaugeid = gauge.id
sensors.append(levelsensor)
try: try:
flow = float(data[4]) flow = float(data[4])
flowsensor = GaugeSensor(gauge.id + "-flow")
flowsensor.name = u"Flow"
# TODO flowsensor.unit =
flowsensor.forecast = forecast
lastvalue = GaugeMeasure()
lastvalue.level = flow
lastvalue.date = lastdate
# TODO lastvalue.alarm =
flowsensor.lastvalue = lastvalue
flowsensor.history = NotLoaded
flowsensor.gaugeid = gauge.id
sensors.append(flowsensor)
except: except:
pass flow = NotAvailable
flowsensor = GaugeSensor(gauge.id + "-flow")
flowsensor.name = u"Flow"
flowsensor.unit = u"m3/s"
flowsensor.forecast = forecast
lastvalue = GaugeMeasure()
lastvalue.level = flow
lastvalue.date = lastdate
lastvalue.alarm = self.alarmlevel[img]
flowsensor.lastvalue = lastvalue
flowsensor.history = NotLoaded
flowsensor.gaugeid = gauge.id
sensors.append(flowsensor)
gauge.sensors = sensors gauge.sensors = sensors