Пример #1
0
async def async_setup_platform(hass,
                               config,
                               async_add_entities,
                               discovery_info=None):
    """Setup the VL53L1X ToF Sensor from ST."""
    #import smbus  # pylint: disable=import-error
    from VL53L1X2 import VL53L1X  # pylint: disable=import-error

    name = config.get(CONF_NAME)
    bus_number = config.get(CONF_I2C_BUS)
    i2c_address = config.get(CONF_I2C_ADDRESS)
    unit = LENGTH_MILLIMETERS
    # range = config.get(CONF_RANGE)
    xshut = config.get(CONF_XSHUT)

    # pulse XSHUT port and keep it HIGH
    rpi_gpio.setup_output(xshut)
    rpi_gpio.write_output(xshut, 0)
    time.sleep(0.01)
    rpi_gpio.write_output(xshut, 1)
    time.sleep(0.01)

    sensor = await hass.async_add_job(partial(VL53L1X, bus_number))

    dev = [VL53L1XSensor(sensor, name, unit, i2c_address)]

    async_add_entities(dev, True)
Пример #2
0
def setup_platform(hass, config, add_devices, discovery_info=None):
    """Setup the VL53L1X ToF Sensor from ST."""
    import smbus  # pylint: disable=import-error
    from VL53L1X2 import VL53L1X  # pylint: disable=import-error

    rpi_gpio.setup_output(DEFAULT_XSHUT)

    rpi_gpio.write_output(DEFAULT_XSHUT, 0)
    time.sleep(0.01)
    rpi_gpio.write_output(DEFAULT_XSHUT, 1)
    time.sleep(0.01)

    sensor_id = 1111

    tof = VL53L1X()
    tof.open()  # Initialise the i2c bus and configure the sensor
    tof.add_sensor(sensor_id, DEFAULT_I2C_ADDRESS)  # add a VL53L1X device
    tof.start_ranging(
        sensor_id,
        2)  # Start ranging, 1 = Short Range, 2 = Medium Range, 3 = Long Range

    for _ in range(0, 3):
        distance_mm = tof.get_distance(sensor_id)  # Grab the range in mm
        _LOGGER.warning("Time: {}\tVL53L1X: {} mm".format(
            datetime.utcnow().strftime("%S.%f"), distance_mm))
        time.sleep(0.01)

    tof.stop_ranging(sensor_id)
    add_devices([TofSensor()])
Пример #3
0
 def turn_on(self, **kwargs):
     """Turn the device on."""
     rpi_gpio.write_output(self._port, 0 if self._invert_logic else 1)
     self._state = True
     self.schedule_update_ha_state()
     sleep(self._timeout)  # Time in seconds.
     self.turn_off(**kwargs)
Пример #4
0
 def _trigger(self):
     """Trigger the cover."""
     #rpi_gpio.write_output(self._relay_pin, self._invert_relay)
     rpi_gpio.write_output(self._relay_pin, 1 if self._invert_relay else 0)
     sleep(self._relay_time)
     #rpi_gpio.write_output(self._relay_pin, not self._invert_relay)
     rpi_gpio.write_output(self._relay_pin, 0 if self._invert_relay else 1)
Пример #5
0
 def __init__(self, name, port, invert_logic):
     """Initialize the pin."""
     self._name = name or DEVICE_DEFAULT_NAME
     self._port = port
     self._invert_logic = invert_logic
     self._state = False
     rpi_gpio.setup_output(self._port)
     rpi_gpio.write_output(self._port, 1 if self._invert_logic else 0)
Пример #6
0
 def __init__(self, name, port, invert_logic):
     """Initialize the pin."""
     self._name = name or DEVICE_DEFAULT_NAME
     self._port = port
     self._invert_logic = invert_logic
     self._state = False
     rpi_gpio.setup_output(self._port)
     rpi_gpio.write_output(self._port, 1 if self._invert_logic else 0)
Пример #7
0
 def __init__(self, name, relay_pin, state_pin):
     """Initialize the garage door."""
     self._name = name
     self._state = False
     self._relay_pin = relay_pin
     self._state_pin = state_pin
     rpi_gpio.setup_output(self._relay_pin)
     rpi_gpio.setup_input(self._state_pin, 'UP')
     rpi_gpio.write_output(self._relay_pin, True)
Пример #8
0
 def __init__(self, name, relay_pin, state_pin, state_pull_mode,
              relay_time):
     """Initialize the cover."""
     self._name = name
     self._state = False
     self._relay_pin = relay_pin
     self._state_pin = state_pin
     self._state_pull_mode = state_pull_mode
     self._relay_time = relay_time
     rpi_gpio.setup_output(self._relay_pin)
     rpi_gpio.setup_input(self._state_pin, self._state_pull_mode)
     rpi_gpio.write_output(self._relay_pin, True)
Пример #9
0
 def __init__(self, name, relay_pin, state_pin, state_pull_mode,
              relay_time, invert_state, invert_relay):
     """Initialize the cover."""
     self._name = name
     self._state = False
     self._relay_pin = relay_pin
     self._state_pin = state_pin
     self._state_pull_mode = state_pull_mode
     self._relay_time = relay_time
     self._invert_state = invert_state
     self._invert_relay = invert_relay
     rpi_gpio.setup_output(self._relay_pin)
     rpi_gpio.setup_input(self._state_pin, self._state_pull_mode)
     rpi_gpio.write_output(self._relay_pin, 0 if self._invert_relay else 1)
Пример #10
0
 def turn_off(self):
     """Turn the device off."""
     rpi_gpio.write_output(self._port, 1 if self._invert_logic else 0)
     self._state = False
     self.update_ha_state()
Пример #11
0
 def turn_on(self):
     """Turn the device on."""
     rpi_gpio.write_output(self._port, 0 if self._invert_logic else 1)
     self._state = True
     self.update_ha_state()
Пример #12
0
 def _trigger(self):
     """Trigger the cover."""
     rpi_gpio.write_output(self._relay_pin, self._invert_relay)
     sleep(self._relay_time)
     rpi_gpio.write_output(self._relay_pin, not self._invert_relay)
Пример #13
0
 def turn_off(self):
     """Turn the device off."""
     rpi_gpio.write_output(self._port, 1 if self._invert_logic else 0)
     self._state = False
     self.schedule_update_ha_state()
Пример #14
0
 def turn_on(self):
     """Turn the device on."""
     rpi_gpio.write_output(self._port, 0 if self._invert_logic else 1)
     self._state = True
     self.schedule_update_ha_state()
Пример #15
0
def init_tof_0(xshut, sensor):
    """XSHUT port LOW resets the device."""
    sensor.open()
    rpi_gpio.setup_output(xshut)
    rpi_gpio.write_output(xshut, 0)
Пример #16
0
def init_tof_1(xshut):
    """XSHUT port HIGH enables the device."""
    rpi_gpio.setup_output(xshut)
    rpi_gpio.write_output(xshut, 1)
Пример #17
0
 def _trigger(self):
     """Trigger the cover."""
     rpi_gpio.write_output(self._relay_pin, 1 if self._invert_relay else 0)
     sleep(self._relay_time)
     rpi_gpio.write_output(self._relay_pin, 0 if self._invert_relay else 1)
Пример #18
0
def init_tof_0(xshut, sensor):
    """XSHUT port LOW resets the device."""
    sensor.open()
    rpi_gpio.setup_output(xshut)
    rpi_gpio.write_output(xshut, 0)
Пример #19
0
 def _trigger(self):
     """Trigger the cover."""
     rpi_gpio.write_output(self._relay_pin, self._invert_relay)
     sleep(self._relay_time)
     rpi_gpio.write_output(self._relay_pin, not self._invert_relay)
Пример #20
0
 def _trigger(self):
     """Trigger the cover."""
     rpi_gpio.write_output(self._relay_pin, False)
     sleep(self._relay_time)
     rpi_gpio.write_output(self._relay_pin, True)
Пример #21
0
 def _trigger(self):
     """Trigger the door."""
     rpi_gpio.write_output(self._relay_pin, False)
     sleep(0.2)
     rpi_gpio.write_output(self._relay_pin, True)
Пример #22
0
def init_tof_1(xshut):
    """XSHUT port HIGH enables the device."""
    rpi_gpio.setup_output(xshut)
    rpi_gpio.write_output(xshut, 1)