Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,27 @@ The SEN6x port is on the same I2C bus as the other connectors: **SCL on GPIO0**,

## Add to ESPHome Device Builder

The SEN65 takes two components in your device config: the I2C bus it talks on, and the <a href="https://esphome.io/components/sensor/sen6x/" target="_blank" rel="noreferrer nofollow noopener">SEN6x</a> component that reads it. If another module already added the I2C component, skip steps 3 and 4, the SEN65 shares the same bus.
The SEN65 needs three components in your device config: the **Accessory Power Rail** that powers the breakout, the I2C bus the sensor talks on, and the <a href="https://esphome.io/components/sensor/sen6x/" target="_blank" rel="noreferrer nofollow noopener">SEN6x</a> component that reads it. If another module already added the I2C component, skip steps 4 and 5, the SEN65 shares the same bus.

1. Open your starter kit device in Device Builder and click **Edit**.
2. Navigate to the **Components** section and click **Add Component**.
3. Select the **I2C** component. Set **SCL to pin 0** and **SDA to pin 1**, and turn on the pullup toggle for both pins. (1)
2. Navigate to the **Components** section and check that **Accessory Power Rail** is in the list. The breakout and everything plugged into it get their power from that rail, so without it the SEN65 never answers on the I2C bus. (1)
{ .annotate }

1. Projects you created from the Apollo ESPHome Starter Kit board already include the rail. If yours is missing it, [add the Accessory Power Rail](/products/ESPHome-Starter-Kit/learning-the-basics/core-components.md#add-component) first.

3. Click **Add Component**.
4. Select the **I2C** component. Set **SCL to pin 0** and **SDA to pin 1**, and turn on the pullup toggle for both pins. (1)
{ .annotate }

1. New to I2C? [What is I2C?](/products/ESPHome-Starter-Kit/learning-the-basics/what-is-i2c.md) explains the bus, addresses, and pullups in beginner terms.

4. Click **Add**. Device Builder inserts the I2C bus into your YAML.
5. Click **Add Component** again and select the SEN6x component. It sits on the I2C bus at address `0x6B`.
6. Toggle on the SEN65's readings: **Temperature**, **Humidity**, **VOC**, **NOX**, **PM 1 0**, **PM 2 5**, **PM 4 0**, and **PM 10 0**. (1)
5. Click **Add**. Device Builder inserts the I2C bus into your YAML.
6. Click **Add Component** again and select the SEN6x component. It sits on the I2C bus at address `0x6B`.
7. Toggle on the SEN65's readings: **Temperature**, **Humidity**, **VOC Index**, **NOX Index**, **PM 1 0**, **PM 2 5**, **PM 4 0**, and **PM 10 0**. (1)
{ .annotate }

1. You'll also see **CO2** and **Formaldehyde** in the list. The SEN65 doesn't measure those, they belong to other SEN6x models, so leave them off. And you don't have to turn everything on, toggle only the readings you want.

7. Expand **VOC** and **NOX** with the arrow next to each and rename them to `VOC Index` and `NOx Index`. Both report a relative index rather than an absolute amount, so the entity names should say so.
8. Click **Add**, then flash the device. The SEN65's readings show up alongside your other entities.

![](/assets/esphome-device-builder-add-sen6x-component.gif)
Expand Down Expand Up @@ -72,9 +76,9 @@ Want a single air quality number on top of the individual readings? Add the AQI
name: "Temperature"
humidity:
name: "Humidity"
voc:
voc_index:
name: "VOC Index"
nox:
nox_index:
name: "NOx Index"

- platform: aqi
Expand Down Expand Up @@ -219,9 +223,9 @@ Apollo's [AIR-1](/products/air1/introduction.md) exposes its offsets as number e
name: "Humidity"
filters:
- lambda: return x - id(sen65_humidity_offset).state;
voc:
voc_index:
name: "VOC Index"
nox:
nox_index:
name: "NOx Index"

number:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ ESPHome Device Builder ships an **Add Component** flow that knows the pin layout
id: rgb_leds
chipset: WS2812
num_leds: 10
rgb_order: GRB
channel_colors: GRB
rmt_symbols: 48

output:
Expand All @@ -85,7 +85,7 @@ ESPHome Device Builder ships an **Add Component** flow that knows the pin layout
| `light.id: rgb_leds` | Internal handle you can reference from automations and lambdas elsewhere in the config. |
| `light.chipset: WS2812` | Which addressable LED protocol to use. WS2812 is the most common, sometimes also called NeoPixel. |
| `light.num_leds: 10` | The number of LEDs on the RGB & Buzzer module. |
| `light.rgb_order: GRB` | Color channel order. WS2812 LEDs receive color data in green-red-blue order, so this makes sure red looks red and not green. |
| `light.channel_colors: GRB` | Color channel order. WS2812 LEDs receive color data in green-red-blue order, so this makes sure red looks red and not green. |
| `light.rmt_symbols: 48` | Low-level RMT setting needed on the ESP32-C6. Leave it at 48. |
| **Piezo buzzer** | |
| `output.platform: ledc` | PWM output for driving the buzzer. PWM is how digital pins create audio tones on a piezo. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ The AIR-1 knows nothing about the strip until you tell it how many LEDs there ar
name: "Bed LED"
pin: GPIO7
chipset: WS2812
rgb_order: grb
channel_colors: GRB
num_leds: 60
default_transition_length: 0s
effects:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ light:
default_transition_length: 0s
chipset: WS2812
num_leds: 1
rgb_order: grb
channel_colors: GRB
effects:
- pulse:
name: "Slow Pulse"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ light:
default_transition_length: 0s
chipset: WS2812
num_leds: 1
rgb_order: grb
channel_colors: GRB
effects:
- pulse:
name: "Slow Pulse"
Expand Down Expand Up @@ -235,7 +235,7 @@ sensor:
filters:
- lambda: return x - id(sen55_humidity_offset).state;
accuracy_decimals: 1
voc:
voc_index:
name: "SEN55 VOC"
id: sen55_voc

Expand All @@ -247,7 +247,7 @@ sensor:
gating_max_duration_minutes: 180
std_initial: 50
gain_factor: 230
nox:
nox_index:
name: "SEN55 NOX"
id: sen55_nox
acceleration_mode: low
Expand Down
2 changes: 1 addition & 1 deletion docs/products/dev1/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ light:
default_transition_length: 0s
chipset: WS2812
num_leds: 1
rgb_order: grb
channel_colors: GRB
effects:
- pulse:
name: "Slow Pulse"
Expand Down
2 changes: 1 addition & 1 deletion docs/products/dev2/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ light:
default_transition_length: 0s
chipset: WS2812
num_leds: 1
rgb_order: grb
channel_colors: GRB
effects:
- pulse:
name: "Slow Pulse"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ The MSR-2 knows nothing about the strip until you tell it how many LEDs there ar
name: "Bed LED"
pin: GPIO7
chipset: WS2812
rgb_order: grb
channel_colors: GRB
num_leds: 60
default_transition_length: 0s
effects:
Expand Down
Loading