Procházet zdrojové kódy

Merge branch 'dummy-sensor-improvements'

pull/258/head
Juan Pablo Giménez před 5 roky
rodič
revize
b63d83c692
1 změnil soubory, kde provedl 52 přidání a 27 odebrání
  1. +52
    -27
      modules/base_plugins/dummy_temp/__init__.py

+ 52
- 27
modules/base_plugins/dummy_temp/__init__.py Zobrazit soubor

@@ -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:
'''










Načítá se…
Zrušit
Uložit