瀏覽代碼

Merge branch 'dummy-sensor-improvements'

pull/258/head
Juan Pablo Giménez 5 年之前
父節點
當前提交
b63d83c692
共有 1 個文件被更改,包括 52 次插入27 次删除
  1. +52
    -27
      modules/base_plugins/dummy_temp/__init__.py

+ 52
- 27
modules/base_plugins/dummy_temp/__init__.py 查看文件

@@ -1,53 +1,78 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""
Dummy sensors
"""
import subprocess import subprocess
import time import time


from modules import cbpi, socketio 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 from modules.core.props import Property




@cbpi.sensor @cbpi.sensor
class DummyTempSensor(SensorActive): 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): def stop(self):
"""
stop sensor
"""
SensorActive.stop(self) SensorActive.stop(self)


def execute(self): def execute(self):
''' '''
Active sensor has to handle his own loop Active sensor has to handle his own loop
:return:
:return:
''' '''
while self.is_running() is True: 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) self.sleep(5)


@classmethod @classmethod
def init_global(cls): def init_global(cls):
''' '''
Called one at the startup for all sensors Called one at the startup for all sensors
:return:
:return:
''' '''










Loading…
取消
儲存