Passed
Push — master ( 45eeb8...f9538b )
by Dave
01:00
created

backend.fcmsensors.SensorService.readtemperature()   A

Complexity

Conditions 4

Size

Total Lines 15
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 13
nop 1
dl 0
loc 15
rs 9.75
c 0
b 0
f 0
1
2
import backend.fcmutils as utils
3
import backend.fcmservice
4
from backend.fcmcache import CacheKeys
5
from domain.sensors import Sensor, SensorValue
6
from messaging.sensormessages import SensorValueSchema
7
from helpers.temperaturehelper import readtemperature
8
9
class SensorService(backend.fcmservice.BaseService):
10
    def __init__(self, config, cache):
11
        super().__init__(config, cache)
12
        self.sensor = Sensor('controller', 'DHT22', 'controller')
13
14
    def knownsensors(self):
15
        dknownsensors = self.cache.gethashset(CacheKeys.knownsensors)
16
        if dknownsensors is not None and dknownsensors:
17
            return utils.deserializelist_withschema(SensorValueSchema(), list(dknownsensors.values()))
18
        return None
19
20
    def addknownsensor(self, sensorvalue):
21
        val = utils.jsonserialize(SensorValueSchema(), sensorvalue)
22
        self.cache.putinhashset(CacheKeys.knownsensors, sensorvalue.sensorid, val)
23
24
    def readtemperature(self):
25
        temperature_reading = humidity_reading = None
26
        try:
27
            sensor_humid, sensor_temp = readtemperature()
28
            if sensor_temp is not None:
29
                temperature_reading = SensorValue('fullcycletemp', sensor_temp, 'temperature')
30
                temperature_reading.sensor = self.sensor
31
            if sensor_humid is not None:
32
                humidity_reading = SensorValue('fullcyclehumid', sensor_humid, 'humidity')
33
                humidity_reading.sensor = self.sensor
34
        except BaseException as ex:
35
            #self.logexception(ex)
36
            #todo: reenable
37
            pass
38
        return temperature_reading, humidity_reading
39