Skip to content
Snippets Groups Projects
Commit 605e1cc6 authored by jkerdreu's avatar jkerdreu
Browse files

Backport bunch of devices from ENSIBS



git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@2248 b32b6428-25c9-4566-ad07-03861ab6144f
parent 84fd920d
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,6 @@ class KNXDev:
self.dev = None
self.setup()
def setup(self):
logger.warn("Please define setup() in this device")
......@@ -82,7 +81,34 @@ class Switch(KNXDev):
self.bind_attribute(self.dev.get_attribute('position'),state,funct['bool'],'1')
self.dev.info = "KNX %s" % state
class Shutter(KNXDev):
def setup(self):
self.dev = devices.shutter(self.addr)
up_down = self.cfg.get('updown_cmd',None)
stop = self.cfg.get('stop_cmd',None)
if up_down:
self.dev.add_method('up',self.write(up_down,'1',0))
self.dev.add_method('down',self.write(up_down,'1',1))
if stop:
self.dev.add_method('stop',self.write(stop,'1',1))
class Shutter_position(KNXDev):
def setup(self):
self.dev = devices.shutter_position(self.addr)
up_down = self.cfg.get('updown_cmd',None)
stop = self.cfg.get('stop_cmd',None)
position = self.cfg.get('position_cmd',None)
if up_down:
self.dev.add_method('up',self.write(up_down,'1',0))
self.dev.add_method('down',self.write(up_down,'1',1))
if stop:
self.dev.add_method('stop',self.write(stop,'1',1))
if position:
self.dev.add_method('position',self.write(position,'1',1))
# =============================================================================
# Sensors
# =============================================================================
......@@ -90,15 +116,78 @@ class PowerMeter(KNXDev):
def setup(self):
self.dev = devices.powermeter(self.addr)
self.dev.unsupported_attributes = ['devices']
self.dev.del_attribute(self.dev.get_attribute('devices'))
power = self.cfg.get('power',None)
p_dpt = self.cfg.get('power_dpt','9')
p_mod = self.cfg.get('power_mod','set')
if power:
self.bind_attribute(self.dev.get_attribute('power'),power,funct[p_mod],p_dpt)
else:
self.dev.del_attribute(self.dev.get_attribute('power'))
energy = self.cfg.get('energy',None)
e_dpt = self.cfg.get('energy_dpt','9')
e_dpt = self.cfg.get('energy_dpt','13')
e_mod = self.cfg.get('energy_mod','set')
if energy:
self.bind_attribute(self.dev.get_attribute('energy'),energy,funct[e_mod],e_dpt)
else:
self.dev.del_attribute(self.dev.get_attribute('energy'))
self.dev.info = "KNX %s" % (power or energy)
\ No newline at end of file
class Thermometer(KNXDev):
def setup(self):
self.dev = devices.thermometer(self.addr)
temperature = self.cfg.get('temperature',None)
t_dpt = self.cfg.get('temperature_dpt','9')
t_mod = self.cfg.get('temperature_mod','set')
if temperature:
self.bind_attribute(self.dev.get_attribute('temperature'),temperature,funct[t_mod],t_dpt)
self.dev.info = "KNX %s" % temperature
class Hygrometer(KNXDev):
def setup(self):
self.dev = devices.hygrometer(self.addr)
humidity = self.cfg.get('humidity',None)
h_dpt = self.cfg.get('humidity_dpt','5.001')
h_mod = self.cfg.get('humidity_mod','round')
if humidity:
self.bind_attribute(self.dev.get_attribute('humidity'),humidity,funct[h_mod],h_dpt)
self.dev.info = "KNX %s" % humidity
class CO2Meter(KNXDev):
def setup(self):
self.dev = devices.co2meter(self.addr)
co2 = self.cfg.get('co2',None)
c_dpt = self.cfg.get('co2_dpt','9')
c_mod = self.cfg.get('co2_mod','round')
if co2:
self.bind_attribute(self.dev.get_attribute('co2'),co2,funct[c_mod],c_dpt)
self.dev.info = "KNX %s" % co2
class Luxmeter(KNXDev):
def setup(self):
self.dev = devices.luxmeter(self.addr)
illuminance = self.cfg.get('illuminance',None)
l_dpt = self.cfg.get('illuminance_dpt','7')
l_mod = self.cfg.get('illuminance_mod','set')
if illuminance:
self.bind_attribute(self.dev.get_attribute('illuminance'),illuminance,funct[l_mod],l_dpt)
self.dev.info = "KNX %s" % illuminance
class Lightgauge(KNXDev):
def setup(self):
self.dev = devices.lightgauge(self.addr)
brightness = self.cfg.get('brightness',None)
b_dpt = self.cfg.get('brightness_dpt','5.001')
b_mod = self.cfg.get('brightness_mod','round')
if brightness:
self.bind_attribute(self.dev.get_attribute('brightness'),brightness,funct[b_mod],b_dpt)
self.dev.info = "KNX %s" % brightness
class Motion(KNXDev):
def setup(self):
self.dev = devices.motion(self.addr)
state = self.cfg.get('state',None)
if state:
self.bind_attribute(self.dev.get_attribute('presence'),state,funct['bool'],'1')
self.dev.info = "KNX %s" % state
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment