예제 #1
0
    def test_sensorvalue_serialization(self):
        '''on windows the deserialization seems to lose the fractions of seconds
        so this test is only for seconds'''
        sch = SensorValueSchema()
        sensorvalue = SensorValue('testid', '99.9', 'temperature')
        sensorvalue.sensor = Sensor('testid', 'temperature', 'controller')
        sensortime = sensorvalue.sensortime
        jsensor = sch.dumps(sensorvalue).data

        #rehydrate sensor
        resensor = SensorValueSchema().loads(jsensor).data
        self.assertTrue(isinstance(resensor, SensorValue))
        self.assertTrue(resensor.sensortime.day == sensortime.day)
        self.assertTrue(resensor.sensortime.hour == sensortime.hour)
        self.assertTrue(resensor.sensortime.minute == sensortime.minute)
        self.assertTrue(resensor.sensortime.second == sensortime.second)
        self.assertTrue(isinstance(resensor.sensor, Sensor))
        self.assertTrue(resensor.sensorid == resensor.sensor.sensorid)
예제 #2
0
 def store_picture_cache(self, file_name):
     if os.path.isfile(file_name):
         with open(file_name, 'rb') as photofile:
             picdata = photofile.read()
         reading = SensorValue('fullcyclecamera', base64.b64encode(picdata), 'camera')
         #reading.sensor = self.sensor
         #self.sendsensor(reading)
         message = self.createmessageenvelope()
         sensorjson = message.jsonserialize(SensorValueSchema(), reading)
         self.tryputcache(CacheKeys.camera, sensorjson)
예제 #3
0
 def readtemperature(self):
     try:
         sensor_humid, sensor_temp = readtemperature()
         if sensor_temp is not None:
             reading = SensorValue('fullcycletemp', sensor_temp, 'temperature')
             reading.sensor = self.sensor
             self.sendsensor(reading)
         if sensor_humid is not None:
             reading = SensorValue('fullcyclehumid', sensor_humid, 'humidity')
             reading.sensor = self.sensor
             self.sendsensor(reading)
         return sensor_humid, sensor_temp
     except BaseException as ex:
         self.logexception(ex)
     return None, None
예제 #4
0
 def readtemperature(self):
     temperature_reading = humidity_reading = None
     try:
         sensor_humid, sensor_temp = readtemperature()
         if sensor_temp is not None:
             temperature_reading = SensorValue('fullcycletemp', sensor_temp,
                                               'temperature')
             temperature_reading.sensor = self.sensor
         if sensor_humid is not None:
             humidity_reading = SensorValue('fullcyclehumid', sensor_humid,
                                            'humidity')
             humidity_reading.sensor = self.sensor
     except BaseException:  # as ex:
         #self.logexception(ex)
         #todo: reenable
         pass
     return temperature_reading, humidity_reading
예제 #5
0
 def make_sensorvalue(self, data):
     '''reconstitute sensorvalue'''
     return SensorValue(**data)
예제 #6
0
 def make_sensorvalue(self, data):
     '''reconstitute sensorvalue'''
     entity = SensorValue(sensorid=data['sensorid'],
                          value=data['value'],
                          valuetype=data['valuetype'])
     return entity