Splitting into devices in Home Assistant
How to group boneIO ESP outputs and inputs into separate Home Assistant devices in ESPHome Device Builder, for example one per circuit.
By default a boneIO ESP controller is one device in Home Assistant with all its
outputs and inputs. ESPHome can split it into sub-devices (devices), for
example one per output together with the input that drives it. Each sub-device
gets its own area (room) and its own page in Home Assistant, and the device list
shows it as connected through the controller.
Firmware from boneio.eu/esp does not do this — you set up the split yourself in a configuration taken over in ESPHome Device Builder.
Requirements
- The controller taken over in ESPHome Device Builder — see Connecting to boneIO ESP.
- ESPHome 2025.7 or newer.
Step 1: define the devices
Add a devices list to the esphome: section. Leave the rest of the section
as it is.
esphome:
name: '${name}'
# ... rest of the section unchanged
devices:
- id: out_01_device
name: Out01
- id: out_02_device
name: Out02id is the name used in YAML, name is the device name in Home Assistant. You
can rename the device in Home Assistant later.
Step 2: assign the entities
Add device_id to the output and the input that belong to the device:
light:
- platform: binary
name: 'Light 01'
output: out_01
id: light_01
device_id: out_01_device
binary_sensor:
- platform: gpio
name: 'IN_01'
id: in_01
device_id: out_01_device
pin:
# ... unchangedEntities without device_id stay on the main device. Then upload the
configuration with Install.
Do not change entity names (name) when you add device_id. Home
Assistant recognises a moved entity by its name and keeps its entity_id,
history and automations. An entity with a new name or with name: None shows
up as a new one, and automations that used the old one stop working.
Home Assistant shows the entity with the device name in front, for example "Out01 Light 01". When you rename the device in Home Assistant to "Living room lamp", the entity becomes "Living room lamp Light 01".
What to put in one device
With local control on,
input IN_01 toggles output 1, IN_02 output 2 and so on. Such pairs are
usually in the same room, so put them in one device. On Cover and Cover Mix,
assign both inputs of a cover — up and down — to that cover's device.
A button that drives something other than the output with the same number goes to the device it drives, or stays on the main device.
Areas (optional)
The simplest way to set the area is in Home Assistant: open the sub-device and pick an area. You can also set it in YAML:
esphome:
areas:
- id: living_room
name: Living room
devices:
- id: out_01_device
name: Out01
area_id: living_roomModbus Integration with ESPHome Packages
Learn how to easily integrate Modbus devices like heat pumps or heat recovery ventilators with Home Assistant using pre-made ESPHome packages for boneIO.
Firmware Installation and Reset
Learn how to install or reset the firmware on your boneIO ESP controller in a few simple steps using the web installer.