From a6ed3f7c9e46b2876a52a943afb447aa3152a9dc 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 1/2] add settings to simulate a real sensor... --- modules/base_plugins/dummy_temp/__init__.py | 39 ++++++++++----------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/modules/base_plugins/dummy_temp/__init__.py b/modules/base_plugins/dummy_temp/__init__.py index 9ef3a94..3c89cfb 100644 --- a/modules/base_plugins/dummy_temp/__init__.py +++ b/modules/base_plugins/dummy_temp/__init__.py @@ -12,17 +12,18 @@ 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") - pass + @cbpi.action("Reset") + def reset(self): + self.current_temp = None - 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("Toogle Up/Down") + def toogle(self): + self.inc *= -1 def stop(self): SensorActive.stop(self) @@ -30,24 +31,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: ''' - - - - - - - - - From eb1c5af1a51dec4b8c63653616ebfb022938c29c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Gim=C3=A9nez?= Date: Sat, 8 Aug 2020 17:30:38 -0300 Subject: [PATCH 2/2] lint --- modules/base_plugins/dummy_temp/__init__.py | 42 +++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/modules/base_plugins/dummy_temp/__init__.py b/modules/base_plugins/dummy_temp/__init__.py index 3c89cfb..c5f0478 100644 --- a/modules/base_plugins/dummy_temp/__init__.py +++ b/modules/base_plugins/dummy_temp/__init__.py @@ -1,31 +1,59 @@ # -*- coding: utf-8 -*- +""" +Dummy sensors +""" import subprocess import time from modules import cbpi, socketio -from modules.core.hardware import SensorActive -from modules import cbpi +from modules.core.hardware import SensorActive from modules.core.props import Property @cbpi.sensor 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") + """ + Dummy temperature sensor + """ + 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("Reset") def reset(self): + """ + reset to default temp + """ self.current_temp = None @cbpi.action("Toogle Up/Down") def toogle(self): + """ + toogle inc from up/down + """ self.inc *= -1 def stop(self): + """ + stop sensor + """ SensorActive.stop(self) def execute(self):