Example #1
0
class LightBulbAdapter(object):

    CMD_SWITCH_LIGHT_ON = 0x01
    CMD_SWITCH_LIGHT_OFF = 0x02

    CMD_READ_LIGHT_BULB_STATE = 0x09  # byte value
    CMD_READ_ILLUMINANCE = 0x0A  # long value (Lux)

    def __init__(self, bus=1, i2c_addr=0x04):
        self._adapter = Adapter(bus=bus, i2c_addr=i2c_addr)

    def switch_on(self):
        return self._adapter.write_byte(self.CMD_SWITCH_LIGHT_ON)

    def switch_off(self):
        return self._adapter.write_byte(self.CMD_SWITCH_LIGHT_OFF)

    @property
    def state(self):
        state = self._adapter.read_byte(self.CMD_READ_LIGHT_BULB_STATE)
        if state == 1:
            return "on"
        elif state == 0:
            return "off"
        else:
            return None

    @property
    def illuminance(self):
        return self._adapter.read_int32(self.CMD_READ_ILLUMINANCE)
Example #2
0
class WeatherstationAdapter(object):

    CMD_READ_TEMPERATURE_1 = 0x01  # float value (Celsius)
    CMD_READ_TEMPERATURE_2 = 0x02  # float value (Celsius)
    CMD_READ_PRESSURE = 0x03  # long value (Pascal)
    CMD_READ_HUMIDITY = 0x04  # float value (Percentage)
    CMD_READ_ALTITUDE = 0x05  # long value (Meters)
    CMD_READ_ILLUMINANCE = 0x06  # long value (Lux)
    CMD_READ_COLOR_TEMPERATURE = 0x07  # long value (Kelvin)
    CMD_READ_COLOR_ILLUMINANCE = 0x08  # long value (Lux)

    def __init__(self, bus=1, i2c_addr=0x05):
        self._adapter = Adapter(bus=bus, i2c_addr=i2c_addr)

    @property
    def pressure(self):
        return self._adapter.read_int32(self.CMD_READ_PRESSURE)

    @property
    def altitude(self):
        return self._adapter.read_int32(self.CMD_READ_ALTITUDE)

    @property
    def illuminance(self):
        return self._adapter.read_int32(self.CMD_READ_ILLUMINANCE)

    @property
    def humidity(self):
        return self._adapter.read_float(self.CMD_READ_HUMIDITY)

    @property
    def temperature_1(self):
        return self._adapter.read_float(self.CMD_READ_TEMPERATURE_1)

    @property
    def temperature_2(self):
        return self._adapter.read_float(self.CMD_READ_TEMPERATURE_2)

    @property
    def color_temperature(self):
        return self._adapter.read_int32(self.CMD_READ_COLOR_TEMPERATURE)

    @property
    def color_illuminance(self):
        return self._adapter.read_int32(self.CMD_READ_COLOR_ILLUMINANCE)