Fix installing requirements
This commit is contained in:
+19
-18
@@ -1,4 +1,5 @@
|
|||||||
from builtins import staticmethod
|
from builtins import staticmethod
|
||||||
|
|
||||||
from mqtt import MqttMessage
|
from mqtt import MqttMessage
|
||||||
from workers.base import BaseWorker
|
from workers.base import BaseWorker
|
||||||
|
|
||||||
@@ -12,26 +13,25 @@ STATE_MANUAL = 'manual'
|
|||||||
|
|
||||||
class ThermostatWorker(BaseWorker):
|
class ThermostatWorker(BaseWorker):
|
||||||
class ModesMapper():
|
class ModesMapper():
|
||||||
from eq3bt import Mode
|
def __init__(self):
|
||||||
|
from eq3bt import Mode
|
||||||
|
|
||||||
MAPPED_MODES = {
|
self._mapped_modes = {
|
||||||
Mode.Closed: 'off',
|
Mode.Closed: 'off',
|
||||||
Mode.Open: 'on',
|
Mode.Open: 'on',
|
||||||
Mode.Auto: 'auto',
|
Mode.Auto: 'auto',
|
||||||
Mode.Manual: STATE_MANUAL,
|
Mode.Manual: STATE_MANUAL,
|
||||||
Mode.Away: STATE_AWAY,
|
Mode.Away: STATE_AWAY,
|
||||||
Mode.Boost: STATE_BOOST,
|
Mode.Boost: STATE_BOOST,
|
||||||
}
|
}
|
||||||
|
|
||||||
REVERSED_MODES = {v: k for k, v in MAPPED_MODES.items()}
|
self._reverse_modes = {v: k for k, v in self._mapped_modes.items()}
|
||||||
|
|
||||||
@classmethod
|
def get_mapping(self, mode):
|
||||||
def get_mapping(cls, mode):
|
return self._mapped_modes[mode]
|
||||||
return cls.MAPPED_MODES[mode]
|
|
||||||
|
|
||||||
@classmethod
|
def get_reverse_mapping(self, mode):
|
||||||
def get_reverse_mapping(cls, mode):
|
return self._reverse_modes[mode]
|
||||||
return cls.REVERSED_MODES[mode]
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def away_mode_on_off(mode):
|
def away_mode_on_off(mode):
|
||||||
@@ -54,6 +54,7 @@ class ThermostatWorker(BaseWorker):
|
|||||||
for name, mac in self.devices.items():
|
for name, mac in self.devices.items():
|
||||||
self.devices[name] = Thermostat(mac)
|
self.devices[name] = Thermostat(mac)
|
||||||
|
|
||||||
|
self._modes_mapper = self.ModesMapper()
|
||||||
|
|
||||||
def status_update(self):
|
def status_update(self):
|
||||||
ret = []
|
ret = []
|
||||||
@@ -72,7 +73,7 @@ class ThermostatWorker(BaseWorker):
|
|||||||
|
|
||||||
# It needs to be on separate if because first if can change method
|
# It needs to be on separate if because first if can change method
|
||||||
if method == "mode":
|
if method == "mode":
|
||||||
value = ModesMapper.get_reverse_mapping(value)
|
value = self._modes_mapper.get_reverse_mapping(value)
|
||||||
elif method == "target_temperature":
|
elif method == "target_temperature":
|
||||||
value = float(value)
|
value = float(value)
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@ class ThermostatWorker(BaseWorker):
|
|||||||
for attr in monitoredAttrs:
|
for attr in monitoredAttrs:
|
||||||
ret.append(MqttMessage(topic=self.format_topic(name, attr), payload=getattr(thermostat, attr)))
|
ret.append(MqttMessage(topic=self.format_topic(name, attr), payload=getattr(thermostat, attr)))
|
||||||
|
|
||||||
ret.append(MqttMessage(topic=self.format_topic(name, 'mode'), payload=self.ModesMapper.get_mapping(thermostat.mode)))
|
ret.append(MqttMessage(topic=self.format_topic(name, 'mode'), payload=self._modes_mapper.get_mapping(thermostat.mode)))
|
||||||
ret.append(MqttMessage(topic=self.format_topic(name, 'away'), payload=self.ModesMapper.away_mode_on_off(thermostat.mode)))
|
ret.append(MqttMessage(topic=self.format_topic(name, 'away'), payload=self.ModesMapper.away_mode_on_off(thermostat.mode)))
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|||||||
+2
-1
@@ -28,11 +28,12 @@ class WorkersManager:
|
|||||||
for (worker_name, worker_config) in config.items():
|
for (worker_name, worker_config) in config.items():
|
||||||
module_obj = importlib.import_module("workers.%s" % worker_name)
|
module_obj = importlib.import_module("workers.%s" % worker_name)
|
||||||
klass = getattr(module_obj, "%sWorker" % worker_name.title())
|
klass = getattr(module_obj, "%sWorker" % worker_name.title())
|
||||||
worker_obj = klass(**worker_config['args'])
|
|
||||||
|
|
||||||
if module_obj.REQUIREMENTS is not None:
|
if module_obj.REQUIREMENTS is not None:
|
||||||
cls._pip_install_helper(module_obj.REQUIREMENTS)
|
cls._pip_install_helper(module_obj.REQUIREMENTS)
|
||||||
|
|
||||||
|
worker_obj = klass(**worker_config['args'])
|
||||||
|
|
||||||
if 'update_interval' in worker_config:
|
if 'update_interval' in worker_config:
|
||||||
_LOGGER.debug("Added: %s with %d seconds interval" % (worker_name, worker_config['update_interval']))
|
_LOGGER.debug("Added: %s with %d seconds interval" % (worker_name, worker_config['update_interval']))
|
||||||
_WORKERS_QUEUE.put(cls.Command(worker_obj.status_update, []))
|
_WORKERS_QUEUE.put(cls.Command(worker_obj.status_update, []))
|
||||||
|
|||||||
Reference in New Issue
Block a user