diff --git a/modules/base_plugins/dummy_temp/__init__.py b/modules/base_plugins/dummy_temp/__init__.py index 9ef3a94..c5f0478 100644 --- a/modules/base_plugins/dummy_temp/__init__.py +++ b/modules/base_plugins/dummy_temp/__init__.py @@ -1,53 +1,78 @@ # -*- 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") - - @cbpi.action("My Custom Action") - def my_action(self): - 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" + """ + 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): ''' 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: ''' - - - - - - - - -