From 5d70fd2386ec3a4077ab3da8f85ba1623fdc2463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Gim=C3=A9nez?= Date: Sat, 8 Aug 2020 17:25:29 -0300 Subject: [PATCH] add settings to simulate a real sensor... --- modules/base_plugins/dummy_temp/__init__.py | 38 +++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/modules/base_plugins/dummy_temp/__init__.py b/modules/base_plugins/dummy_temp/__init__.py index 2ed3f47..221fd90 100644 --- a/modules/base_plugins/dummy_temp/__init__.py +++ b/modules/base_plugins/dummy_temp/__init__.py @@ -12,17 +12,23 @@ from modules.core.props import Property class DummyTempSensor(SensorActive): temp = Property.Number("Temperature", configurable=True, default_value=5, description="Dummy Temperature as decimal value") + inc = Property.Number("Auto increase", configurable=True, default_value=0.5, description="Dummy Temperature increase as decimal value") + max_temp = Property.Number("Max temperature", configurable=True, default_value='100', description="Dummy Max. Temperature as decimal value") + min_temp = Property.Number("Min temperature", configurable=True, default_value='0', description="Dummy Min. Temperature as decimal value") + current_temp = None @cbpi.action("My Custom Action") def my_action(self): - print "HELLO WORLD" + print("HELLO WORLD") pass - def get_unit(self): - ''' - :return: Unit of the sensor as string. Should not be longer than 3 characters - ''' - return "°C" if self.get_config_parameter("unit", "C") == "C" else "°F" + @cbpi.action("Reset") + def reset(self): + self.current_temp = None + + @cbpi.action("Toogle Up/Down") + def toogle(self): + self.inc *= -1 def stop(self): SensorActive.stop(self) @@ -30,24 +36,20 @@ class DummyTempSensor(SensorActive): def execute(self): ''' Active sensor has to handle his own loop - :return: + :return: ''' while self.is_running() is True: - self.data_received(self.temp) + if not self.current_temp: + self.current_temp = self.temp + self.data_received(self.current_temp) + new_temp = float(self.current_temp) + float(self.inc) + if float(self.min_temp) <= new_temp <= float(self.max_temp): + self.current_temp = '%.2f' % new_temp self.sleep(5) @classmethod def init_global(cls): ''' Called one at the startup for all sensors - :return: + :return: ''' - - - - - - - - -