Skip to content
Snippets Groups Projects
Commit 2beec020 authored by jkerdreu's avatar jkerdreu
Browse files

Added LampToggle and grr, the linter :(


git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2954 b32b6428-25c9-4566-ad07-03861ab6144f
parent dcc2905b
Branches
No related tags found
No related merge requests found
import logging
from xaal.schemas import devices
from xaal.lib import tools
from .bindings import funct
import logging
from functools import partial
logger = logging.getLogger(__name__)
class KNXDev:
def __init__(self, gw, cfg):
# print(extract_classname(self))
......@@ -44,6 +44,8 @@ class KNXDev:
# =============================================================================
# PowerRelay / Lamp ..
# =============================================================================
class OnOffMixin:
def setup_onoff(self, state_attribute):
cmd = self.cfg.get('cmd', None)
......@@ -56,11 +58,13 @@ class OnOffMixin:
self.bind_attribute(state_attribute, state, funct[mod], '1')
self.dev.info = "KNX %s" % cmd or state
class PowerRelay(KNXDev, OnOffMixin):
def setup(self):
self.dev = devices.powerrelay(self.addr)
self.setup_onoff(self.dev.get_attribute("power"))
class PowerRelayToggle(KNXDev, OnOffMixin):
def setup(self):
self.dev = devices.powerrelay_toggle(self.addr)
......@@ -69,11 +73,22 @@ class PowerRelayToggle(KNXDev,OnOffMixin):
if toggle:
self.dev.add_method('toggle', self.write(toggle, '1', 1))
class Lamp(KNXDev, OnOffMixin):
def setup(self):
self.dev = devices.lamp(self.addr)
self.setup_onoff(self.dev.get_attribute("light"))
class LampToggle(KNXDev, OnOffMixin):
def setup(self):
self.dev = devices.lamp_toggle(self.addr)
self.setup_onoff(self.dev.get_attribute("light"))
toggle = self.cfg.get('toggle', None)
if toggle:
self.dev.add_method('toggle', self.write(toggle, '1', 1))
class Switch(KNXDev):
def setup(self):
self.dev = devices.switch(self.addr)
......@@ -82,6 +97,7 @@ 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)
......@@ -109,7 +125,6 @@ class ShutterPosition(KNXDev):
self.dev.add_method('position', self.write(position, '1', 1))
# =============================================================================
# Sensors
# =============================================================================
......@@ -134,6 +149,7 @@ class PowerMeter(KNXDev):
self.dev.del_attribute(self.dev.get_attribute('energy'))
self.dev.info = "KNX %s" % (power or energy)
class Thermometer(KNXDev):
def setup(self):
self.dev = devices.thermometer(self.addr)
......@@ -144,6 +160,7 @@ class Thermometer(KNXDev):
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)
......@@ -154,6 +171,7 @@ class Hygrometer(KNXDev):
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)
......@@ -164,6 +182,7 @@ class CO2Meter(KNXDev):
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)
......@@ -174,6 +193,7 @@ class Luxmeter(KNXDev):
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)
......@@ -184,6 +204,7 @@ class Lightgauge(KNXDev):
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)
......@@ -191,4 +212,3 @@ class Motion(KNXDev):
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