dependabot-preview[bot] dcd633cf66
Bump remark-lint-no-shell-dollars from 2.0.0 to 2.0.1 (#13639)
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2020-06-01 15:33:05 +02:00

4.1 KiB

title, description, ha_category, ha_release, ha_iot_class, ha_domain
title description ha_category ha_release ha_iot_class ha_domain
BH1750 Instructions on how to integrate a BH1750 light sensor into Home Assistant.
DIY
0.48 Local Push bh1750

The bh1750 sensor platform allows you to read the ambient light level in Lux from a BH1750FVI sensor connected via I2c bus (SDA, SCL pins). It allows you to use all the resolution modes of the sensor described in its datasheet.

Tested devices:

Configuration

To use your BH1750 sensor in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
sensor:
  - platform: bh1750

{% configuration %} name: description: Name of the sensor. required: false default: BH1750 Light Sensor type: string i2c_address: description: I2c address of the sensor. It is 0x23 or 0x5C. required: false default: 0x23 type: string i2c_bus: description: I2c bus where the sensor is. required: false default: 1, for Raspberry Pi 2 and 3. type: integer operation_mode: description: Working mode for the sensor. required: false default: continuous_high_res_mode_1 type: string sensitivity: description: The sensitivity of the sensor can be a value between 31 and 254. required: false default: 69 type: integer measurement_delay_ms: description: Delay time in ms for waiting the sensor to get the measure. required: false default: 120 type: integer multiplier: description: Correction coefficient to multiply the measured light level. Value between 0.1 and 10. required: false default: 1 type: integer {% endconfiguration %}

Full Examples

If you want to specify the resolution mode of the digital sensor or need to change the default I2c address (which is 0x23), add more details to the configuration.yaml file.

The sensor can work with resolutions of 0.5 lx (high res mode 1), 1 lx (high res mode 2) or 4 lx (low res mode), and make measurements continuously or one time each call. To set any of these operation modes, select one of these combinations: continuous_low_res_mode, continuous_high_res_mode_2, continuous_high_res_mode_1, one_time_high_res_mode_1, one_time_high_res_mode_2, one_time_low_res_mode.

# Example of customized configuration.yaml entry
sensor:
  - platform: bh1750
    name: Ambient light
    i2c_address: 0x5C
    operation_mode: one_time_high_res_mode_1
    sensitivity: 60
    measurement_delay_ms: 200
    scan_interval: 25

Directions for installing smbus support on Raspberry Pi

Enable I2c interface with the Raspberry Pi configuration utility:

# pi user environment: Enable i2c interface
sudo raspi-config

Select Interfacing options->I2C choose <Yes> and hit Enter, then go to Finish and you'll be prompted to reboot.

Install dependencies for use the smbus-cffi module and enable your homeassistant user to join the i2c group:

# pi user environment: Install i2c dependencies and utilities
sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev

# pi user environment: Add homeassistant user to the i2c group
sudo addgroup homeassistant i2c

# pi user environment: Reboot Raspberry Pi to apply changes
sudo reboot

Check the i2c address of the sensor

After installing i2c-tools, a new utility is available to scan the addresses of the connected sensors:

/usr/sbin/i2cdetect -y 1

It will output a table like this:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- UU -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

So you can see the sensor address what you are looking for is 0x23 (there are more i2c sensors in that Raspberry Pi).