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])
except:
level = NotAvailable
levelsensor = GaugeSensor(gauge.id + "-level") levelsensor = GaugeSensor(gauge.id + "-level")
levelsensor.name = u"Level" levelsensor.name = u"Level"
# TODO levelsensor.unit = levelsensor.unit = u"cm"
levelsensor.forecast = forecast levelsensor.forecast = forecast
lastvalue = GaugeMeasure() lastvalue = GaugeMeasure()
lastvalue.level = level lastvalue.level = level
lastvalue.date = lastdate lastvalue.date = lastdate
# TODO lastvalue.alarm = lastvalue.alarm = self.alarmlevel[img]
levelsensor.lastvalue = lastvalue levelsensor.lastvalue = lastvalue
levelsensor.history = NotLoaded levelsensor.history = NotLoaded
levelsensor.gaugeid = gauge.id levelsensor.gaugeid = gauge.id
sensors.append(levelsensor) sensors.append(levelsensor)
except:
pass
try: try:
flow = float(data[4]) flow = float(data[4])
except:
flow = NotAvailable
flowsensor = GaugeSensor(gauge.id + "-flow") flowsensor = GaugeSensor(gauge.id + "-flow")
flowsensor.name = u"Flow" flowsensor.name = u"Flow"
# TODO flowsensor.unit = flowsensor.unit = u"m3/s"
flowsensor.forecast = forecast flowsensor.forecast = forecast
lastvalue = GaugeMeasure() lastvalue = GaugeMeasure()
lastvalue.level = flow lastvalue.level = flow
lastvalue.date = lastdate lastvalue.date = lastdate
# TODO lastvalue.alarm = lastvalue.alarm = self.alarmlevel[img]
flowsensor.lastvalue = lastvalue flowsensor.lastvalue = lastvalue
flowsensor.history = NotLoaded flowsensor.history = NotLoaded
flowsensor.gaugeid = gauge.id flowsensor.gaugeid = gauge.id
sensors.append(flowsensor) sensors.append(flowsensor)
except:
pass
gauge.sensors = sensors gauge.sensors = sensors