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

The `bh1750` sensor platform allows you to read the ambient light level in Lux from a [BH1750FVI sensor](https://www.mouser.com/ds/2/348/bh1750fvi-e-186247.pdf) connected via [I2c](https://en.wikipedia.org/wiki/I²C) bus (SDA, SCL pins). It allows you to use all the resolution modes of the sensor described in its datasheet.

Tested devices:

- [Raspberry Pi](https://www.raspberrypi.org/)

## Configuration

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

```yaml
# 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`.

```yaml
# 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:

```bash
# 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:

```bash
# 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:

```bash
/usr/sbin/i2cdetect -y 1
```

It will output a table like this:

```text
     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).
