I did installed roode 1.5.4. on esphome 2026.02.4.
but, I did not working.
I got 2 error.
vl53l1x is marked FAILED: unspecified.
roode is marked FAILED: unspecified.
I using esp32-c3 (seeed_xiao_esp32c3).
how can i fix it?
this is full log
INFO ESPHome 2026.2.4
INFO Reading configuration /config/esphome/warehouse-counter.yaml...
INFO Starting log output from warehouse-counter.local using esphome API
INFO Successfully resolved warehouse-counter.local in 0.264s
INFO Successfully connected to warehouse-counter @ 192.168.0.x in 0.030s
INFO Successful handshake with warehouse-counter @ 192.168.0.x in 0.085s
[23:28:15.442][I][app:215]: ESPHome version 2026.2.4 compiled on 2026-03-07 22:51:14 +0900
[23:28:15.444][I][app:222]: ESP32 Chip: ESP32-C3 rev0.4, 1 core(s)
[23:28:15.445][C][logger:237]: Logger:
[23:28:15.445][C][logger:237]: Max Level: DEBUG
[23:28:15.445][C][logger:237]: Initial Level: DEBUG
[23:28:15.461][C][logger:244]: Log Baud Rate: 115200
[23:28:15.461][C][logger:244]: Hardware UART: USB_SERIAL_JTAG
[23:28:15.462][C][logger:254]: Task Log Buffer Size: 768 bytes
[23:28:15.467][C][i2c.idf:093]: I2C Bus:
[23:28:15.470][C][i2c.idf:094]: SDA Pin: GPIO6
[23:28:15.470][C][i2c.idf:094]: SCL Pin: GPIO7
[23:28:15.470][C][i2c.idf:094]: Frequency: 400000 Hz
[23:28:15.470][C][i2c.idf:104]: Recovery: bus successfully recovered
[23:28:15.471][C][i2c.idf:114]: Results from bus scan:
[23:28:15.490][C][i2c.idf:120]: Found device at address 0x29
[23:28:15.490][C][uptime.sensor:017]: Uptime Sensor 'Uptime Sensor'
[23:28:15.490][C][uptime.sensor:017]: State Class: 'total_increasing'
[23:28:15.490][C][uptime.sensor:017]: Unit of Measurement: 's'
[23:28:15.490][C][uptime.sensor:017]: Accuracy Decimals: 0
[23:28:15.491][C][uptime.sensor:163]: Device Class: 'duration'
[23:28:15.511][C][uptime.sensor:157]: Icon: 'mdi:timer-outline'
[23:28:15.511][C][uptime.sensor:033]: Type: Seconds
[23:28:15.512][C][template.text_sensor:017]: Template Sensor 'warehouse-counter Uptime Human Readable'
[23:28:15.513][C][template.text_sensor:157]: Icon: 'mdi:clock-start'
[23:28:15.513][C][VL53L1X:007]: VL53L1X:
[23:28:15.513][C][VL53L1X:008]: Address: 0x29
[23:28:15.522][E][component:255]: vl53l1x is marked FAILED: unspecified
[23:28:15.523][C][restart.button:014]: Restart Button 'warehouse-counter Restart'
[23:28:15.523][C][restart.button:157]: Icon: 'mdi:restart'
[23:28:15.536][C][status:016]: Status Binary Sensor 'warehouse-counter API Status'
[23:28:15.536][C][status:163]: Device Class: 'connectivity'
[23:28:15.536][C][Roode:006]: Roode:
[23:28:15.540][C][Roode:007]: Sample size: 2
[23:28:15.540][C][Roode:486]: Update Interval: 0.000s
[23:28:15.541][C][Zone:007]: Entry
[23:28:15.543][C][Zone:008]: ROI: { width: 4, height: 8, center: 150 }
[23:28:15.544][C][Zone:009]: Threshold: { min: 0mm (0%), max: 13880mm (85%), idle: 16330mm }
[23:28:15.544][C][Zone:007]: Exit
[23:28:15.547][C][Zone:008]: ROI: { width: 4, height: 8, center: 247 }
[23:28:15.547][C][Zone:009]: Threshold: { min: 0mm (0%), max: 0mm (85%), idle: 0mm }
[23:28:15.548][E][component:255]: roode is marked FAILED: unspecified
[23:28:15.580][C][captive_portal:134]: Captive Portal:
[23:28:15.580][C][wifi:1450]: WiFi:
[23:28:15.580][C][wifi:1450]: Local MAC: xx:xx:xx:xx:xx:xx
[23:28:15.580][C][wifi:1450]: Connected: YES
[23:28:15.581][C][wifi:1202]: IP Address: 192.168.0.x
[23:28:15.604][C][wifi:1213]: SSID: [redacted]
[23:28:15.604][C][wifi:1213]: BSSID: [redacted]
[23:28:15.604][C][wifi:1213]: Hostname: 'warehouse-counter'
[23:28:15.604][C][wifi:1213]: Signal strength: -44 dB ▂▄▆█
[23:28:15.604][C][wifi:1213]: Channel: 3
[23:28:15.604][C][wifi:1213]: Subnet: 255.255.255.0
[23:28:15.604][C][wifi:1213]: Gateway: 192.168.0.1
[23:28:15.604][C][wifi:1213]: DNS1: 168.126.63.1
[23:28:15.604][C][wifi:1213]: DNS2: 168.126.63.2
[23:28:15.604][C][web_server:424]: Web Server:
[23:28:15.604][C][web_server:424]: Address: warehouse-counter.local:80
[23:28:15.605][C][esphome.ota:075]: Over-The-Air updates:
[23:28:15.605][C][esphome.ota:075]: Address: warehouse-counter.local:3232
[23:28:15.605][C][esphome.ota:075]: Version: 2
[23:28:15.605][C][esphome.ota:082]: Password configured
[23:28:15.605][C][safe_mode:022]: Safe Mode:
[23:28:15.605][C][safe_mode:022]: Successful after: 60s
[23:28:15.605][C][safe_mode:022]: Invoke after: 10 attempts
[23:28:15.605][C][safe_mode:022]: Duration: 300s
[23:28:15.606][C][safe_mode:039]: Bootloader rollback: support unknown
[23:28:15.611][C][web_server.ota:238]: Web Server OTA
[23:28:15.623][C][api:237]: Server:
[23:28:15.623][C][api:237]: Address: warehouse-counter.local:6053
[23:28:15.623][C][api:237]: Listen backlog: 4
[23:28:15.623][C][api:237]: Max connections: 8
[23:28:15.624][C][api:244]: Noise encryption: YES
[23:28:15.628][C][wifi_signal.sensor:017]: WiFi Signal 'warehouse-counter RSSI'
[23:28:15.628][C][wifi_signal.sensor:017]: State Class: 'measurement'
[23:28:15.628][C][wifi_signal.sensor:017]: Unit of Measurement: 'dBm'
[23:28:15.628][C][wifi_signal.sensor:017]: Accuracy Decimals: 0
[23:28:15.640][C][wifi_signal.sensor:163]: Device Class: 'signal_strength'
[23:28:15.640][C][mdns:177]: mDNS:
[23:28:15.640][C][mdns:177]: Hostname: warehouse-counter
and this is my yaml config.
substitutions:
devicename: warehouse-counter
friendly_name: $devicename
external_components:
- source: github://Lyr3x/Roode
refresh: always
esphome:
name: $devicename
esp32:
board: seeed_xiao_esp32c3
framework:
type: arduino
logger:
level: DEBUG
Enable Home Assistant API
api:
encryption:
key: "xxx"
services:
- service: recalibrate
then:
- lambda: "id(roode_platform)->recalibration();"
ota:
- platform: esphome
password: "xxx"
- platform: web_server
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Warehouse-Counter"
password: ""
captive_portal:
web_server:
port: 80
version: 3
i2c:
sda: GPIO6
scl: GPIO7
scan: true
vl53l1x:
calibration:
ranging: auto
roode:
id: roode_platform
sampling: 2
roi: { height: 12, width: 4 }
detection_thresholds:
max: 85%
zones:
invert: false
entry:
roi: auto
exit:
roi: auto
button:
- platform: restart
name: $friendly_name Restart
entity_category: config
- platform: template
name: $friendly_name Recalibrate
on_press:
- lambda: id(roode_platform)->recalibration();
entity_category: config
number:
- platform: roode
people_counter:
id: counter
name: $friendly_name people counter
binary_sensor:
- platform: status
name: $friendly_name API Status
- platform: roode
presence_sensor:
name: $friendly_name presence
sensor:
-
platform: roode
id: roode_sensors
distance_entry:
name: $friendly_name distance zone 0
filters:
- delta: 100
distance_exit:
name: $friendly_name distance zone 1
filters:
- delta: 100
max_threshold_entry:
name: $friendly_name max zone 0
max_threshold_exit:
name: $friendly_name max zone 1
min_threshold_entry:
name: $friendly_name min zone 0
min_threshold_exit:
name: $friendly_name min zone 1
roi_height_entry:
name: $friendly_name ROI height zone 0
roi_width_entry:
name: $friendly_name ROI width zone 0
roi_height_exit:
name: $friendly_name ROI height zone 1
roi_width_exit:
name: $friendly_name ROI width zone 1
-
platform: wifi_signal
name: $friendly_name RSSI
update_interval: 60s
-
platform: uptime
name: Uptime Sensor
id: uptime_sensor
update_interval: 60s
internal: true
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? String(days) + "d " : "") +
(hours ? String(hours) + "h " : "") +
(minutes ? String(minutes) + "m " : "") +
(String(seconds) + "s")
).c_str();
text_sensor:
- platform: roode
version:
name: $friendly_name version
- platform: roode
entry_exit_event:
name: $friendly_name last direction
- platform: template
name: $friendly_name Uptime Human Readable
id: uptime_human
icon: mdi:clock-start
I did installed roode 1.5.4. on esphome 2026.02.4.
but, I did not working.
I got 2 error.
vl53l1x is marked FAILED: unspecified.
roode is marked FAILED: unspecified.
I using esp32-c3 (seeed_xiao_esp32c3).
how can i fix it?
this is full log
INFO ESPHome 2026.2.4
INFO Reading configuration /config/esphome/warehouse-counter.yaml...
INFO Starting log output from warehouse-counter.local using esphome API
INFO Successfully resolved warehouse-counter.local in 0.264s
INFO Successfully connected to warehouse-counter @ 192.168.0.x in 0.030s
INFO Successful handshake with warehouse-counter @ 192.168.0.x in 0.085s
[23:28:15.442][I][app:215]: ESPHome version 2026.2.4 compiled on 2026-03-07 22:51:14 +0900
[23:28:15.444][I][app:222]: ESP32 Chip: ESP32-C3 rev0.4, 1 core(s)
[23:28:15.445][C][logger:237]: Logger:
[23:28:15.445][C][logger:237]: Max Level: DEBUG
[23:28:15.445][C][logger:237]: Initial Level: DEBUG
[23:28:15.461][C][logger:244]: Log Baud Rate: 115200
[23:28:15.461][C][logger:244]: Hardware UART: USB_SERIAL_JTAG
[23:28:15.462][C][logger:254]: Task Log Buffer Size: 768 bytes
[23:28:15.467][C][i2c.idf:093]: I2C Bus:
[23:28:15.470][C][i2c.idf:094]: SDA Pin: GPIO6
[23:28:15.470][C][i2c.idf:094]: SCL Pin: GPIO7
[23:28:15.470][C][i2c.idf:094]: Frequency: 400000 Hz
[23:28:15.470][C][i2c.idf:104]: Recovery: bus successfully recovered
[23:28:15.471][C][i2c.idf:114]: Results from bus scan:
[23:28:15.490][C][i2c.idf:120]: Found device at address 0x29
[23:28:15.490][C][uptime.sensor:017]: Uptime Sensor 'Uptime Sensor'
[23:28:15.490][C][uptime.sensor:017]: State Class: 'total_increasing'
[23:28:15.490][C][uptime.sensor:017]: Unit of Measurement: 's'
[23:28:15.490][C][uptime.sensor:017]: Accuracy Decimals: 0
[23:28:15.491][C][uptime.sensor:163]: Device Class: 'duration'
[23:28:15.511][C][uptime.sensor:157]: Icon: 'mdi:timer-outline'
[23:28:15.511][C][uptime.sensor:033]: Type: Seconds
[23:28:15.512][C][template.text_sensor:017]: Template Sensor 'warehouse-counter Uptime Human Readable'
[23:28:15.513][C][template.text_sensor:157]: Icon: 'mdi:clock-start'
[23:28:15.513][C][VL53L1X:007]: VL53L1X:
[23:28:15.513][C][VL53L1X:008]: Address: 0x29
[23:28:15.522][E][component:255]: vl53l1x is marked FAILED: unspecified
[23:28:15.523][C][restart.button:014]: Restart Button 'warehouse-counter Restart'
[23:28:15.523][C][restart.button:157]: Icon: 'mdi:restart'
[23:28:15.536][C][status:016]: Status Binary Sensor 'warehouse-counter API Status'
[23:28:15.536][C][status:163]: Device Class: 'connectivity'
[23:28:15.536][C][Roode:006]: Roode:
[23:28:15.540][C][Roode:007]: Sample size: 2
[23:28:15.540][C][Roode:486]: Update Interval: 0.000s
[23:28:15.541][C][Zone:007]: Entry
[23:28:15.543][C][Zone:008]: ROI: { width: 4, height: 8, center: 150 }
[23:28:15.544][C][Zone:009]: Threshold: { min: 0mm (0%), max: 13880mm (85%), idle: 16330mm }
[23:28:15.544][C][Zone:007]: Exit
[23:28:15.547][C][Zone:008]: ROI: { width: 4, height: 8, center: 247 }
[23:28:15.547][C][Zone:009]: Threshold: { min: 0mm (0%), max: 0mm (85%), idle: 0mm }
[23:28:15.548][E][component:255]: roode is marked FAILED: unspecified
[23:28:15.580][C][captive_portal:134]: Captive Portal:
[23:28:15.580][C][wifi:1450]: WiFi:
[23:28:15.580][C][wifi:1450]: Local MAC: xx:xx:xx:xx:xx:xx
[23:28:15.580][C][wifi:1450]: Connected: YES
[23:28:15.581][C][wifi:1202]: IP Address: 192.168.0.x
[23:28:15.604][C][wifi:1213]: SSID: [redacted]
[23:28:15.604][C][wifi:1213]: BSSID: [redacted]
[23:28:15.604][C][wifi:1213]: Hostname: 'warehouse-counter'
[23:28:15.604][C][wifi:1213]: Signal strength: -44 dB ▂▄▆█
[23:28:15.604][C][wifi:1213]: Channel: 3
[23:28:15.604][C][wifi:1213]: Subnet: 255.255.255.0
[23:28:15.604][C][wifi:1213]: Gateway: 192.168.0.1
[23:28:15.604][C][wifi:1213]: DNS1: 168.126.63.1
[23:28:15.604][C][wifi:1213]: DNS2: 168.126.63.2
[23:28:15.604][C][web_server:424]: Web Server:
[23:28:15.604][C][web_server:424]: Address: warehouse-counter.local:80
[23:28:15.605][C][esphome.ota:075]: Over-The-Air updates:
[23:28:15.605][C][esphome.ota:075]: Address: warehouse-counter.local:3232
[23:28:15.605][C][esphome.ota:075]: Version: 2
[23:28:15.605][C][esphome.ota:082]: Password configured
[23:28:15.605][C][safe_mode:022]: Safe Mode:
[23:28:15.605][C][safe_mode:022]: Successful after: 60s
[23:28:15.605][C][safe_mode:022]: Invoke after: 10 attempts
[23:28:15.605][C][safe_mode:022]: Duration: 300s
[23:28:15.606][C][safe_mode:039]: Bootloader rollback: support unknown
[23:28:15.611][C][web_server.ota:238]: Web Server OTA
[23:28:15.623][C][api:237]: Server:
[23:28:15.623][C][api:237]: Address: warehouse-counter.local:6053
[23:28:15.623][C][api:237]: Listen backlog: 4
[23:28:15.623][C][api:237]: Max connections: 8
[23:28:15.624][C][api:244]: Noise encryption: YES
[23:28:15.628][C][wifi_signal.sensor:017]: WiFi Signal 'warehouse-counter RSSI'
[23:28:15.628][C][wifi_signal.sensor:017]: State Class: 'measurement'
[23:28:15.628][C][wifi_signal.sensor:017]: Unit of Measurement: 'dBm'
[23:28:15.628][C][wifi_signal.sensor:017]: Accuracy Decimals: 0
[23:28:15.640][C][wifi_signal.sensor:163]: Device Class: 'signal_strength'
[23:28:15.640][C][mdns:177]: mDNS:
[23:28:15.640][C][mdns:177]: Hostname: warehouse-counter
and this is my yaml config.
substitutions:
devicename: warehouse-counter
friendly_name: $devicename
external_components:
refresh: always
esphome:
name: $devicename
esp32:
board: seeed_xiao_esp32c3
framework:
type: arduino
logger:
level: DEBUG
Enable Home Assistant API
api:
encryption:
key: "xxx"
services:
- service: recalibrate
then:
- lambda: "id(roode_platform)->recalibration();"
ota:
password: "xxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Warehouse-Counter"
password: ""
captive_portal:
web_server:
port: 80
version: 3
i2c:
sda: GPIO6
scl: GPIO7
scan: true
vl53l1x:
calibration:
ranging: auto
roode:
id: roode_platform
sampling: 2
roi: { height: 12, width: 4 }
detection_thresholds:
max: 85%
zones:
invert: false
entry:
roi: auto
exit:
roi: auto
button:
name: $friendly_name Restart
entity_category: config
name: $friendly_name Recalibrate
on_press:
entity_category: config
number:
people_counter:
id: counter
name: $friendly_name people counter
binary_sensor:
name: $friendly_name API Status
presence_sensor:
name: $friendly_name presence
sensor:
platform: roode
id: roode_sensors
distance_entry:
name: $friendly_name distance zone 0
filters:
- delta: 100
distance_exit:
name: $friendly_name distance zone 1
filters:
- delta: 100
max_threshold_entry:
name: $friendly_name max zone 0
max_threshold_exit:
name: $friendly_name max zone 1
min_threshold_entry:
name: $friendly_name min zone 0
min_threshold_exit:
name: $friendly_name min zone 1
roi_height_entry:
name: $friendly_name ROI height zone 0
roi_width_entry:
name: $friendly_name ROI width zone 0
roi_height_exit:
name: $friendly_name ROI height zone 1
roi_width_exit:
name: $friendly_name ROI width zone 1
platform: wifi_signal
name: $friendly_name RSSI
update_interval: 60s
platform: uptime
name: Uptime Sensor
id: uptime_sensor
update_interval: 60s
internal: true
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? String(days) + "d " : "") +
(hours ? String(hours) + "h " : "") +
(minutes ? String(minutes) + "m " : "") +
(String(seconds) + "s")
).c_str();
text_sensor:
version:
name: $friendly_name version
entry_exit_event:
name: $friendly_name last direction
name: $friendly_name Uptime Human Readable
id: uptime_human
icon: mdi:clock-start