Skip to content

Conversation

@damacus
Copy link

@damacus damacus commented Jul 22, 2025

The ESP-IDF framework is smaller than the arduino framework, so has a
few features missing. But we now fit in memory again on ESPHome
2025.7.0+

Additionally:

  • Add lefthook
  • Add yamllint hook
  • Lint files. We found a few bugs
  • Add Taskfile for common tasks (run, compile logs)

Signed-off-by: Dan Webb dan.webb@damacus.io

Install logs here

INFO ESPHome 2025.7.2 INFO Reading configuration /config/unity-livingroom.yaml... WARNING GPIO2 is a strapping PIN and should only be used for I/O with care. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins WARNING GPIO9 is a strapping PIN and should only be used for I/O with care. Attaching external pullup/down resistors to strapping pins can cause unexpected failures. See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins INFO Starting log output from 192.168.1.70 using esphome API INFO Successfully resolved unity-office @ 192.168.1.70 in 0.000s INFO Successfully connected to unity-office @ 192.168.1.70 in 0.127s INFO Successful handshake with unity-office @ 192.168.1.70 in 0.056s [11:40:11][I][app:164]: ESPHome version 2025.7.2 compiled on Jul 22 2025, 11:35:45 [11:40:11][I][app:166]: Project LoopOn.Unity version 1.2.17 [11:40:11][C][wifi:613]: WiFi: [11:40:11][C][wifi:434]: Local MAC: C0:4E:30:B9:9C:BC [11:40:11][C][wifi:439]: SSID: 'ironstone-3'[redacted] [11:40:11][C][wifi:442]: IP Address: 192.168.1.70 [11:40:11][C][wifi:446]: BSSID: 9C:05:D6:E7:AF:ED[redacted] [11:40:11][C][wifi:446]: Hostname: 'unity-office' [11:40:11][C][wifi:446]: Signal strength: -69 dB ▂▄▆█ [11:40:11][C][wifi:455]: Channel: 1 [11:40:11][C][wifi:455]: Subnet: 255.255.255.0 [11:40:11][C][wifi:455]: Gateway: 192.168.1.254 [11:40:11][C][wifi:455]: DNS1: 192.168.1.254 [11:40:11][C][wifi:455]: DNS2: 0.0.0.0 [11:40:11][C][logger:246]: Logger: [11:40:11][C][logger:246]: Max Level: DEBUG [11:40:11][C][logger:246]: Initial Level: DEBUG [11:40:11][C][logger:252]: Log Baud Rate: 115200 [11:40:11][C][logger:252]: Hardware UART: USB_SERIAL_JTAG [11:40:11][C][logger:259]: Task Log Buffer Size: 768 [11:40:11][C][i2c.idf:083]: I2C Bus: [11:40:11][C][i2c.idf:084]: SDA Pin: GPIO5 [11:40:11][C][i2c.idf:084]: SCL Pin: GPIO6 [11:40:11][C][i2c.idf:084]: Frequency: 50000 Hz [11:40:11][C][i2c.idf:094]: Recovery: bus successfully recovered [11:40:11][C][uart.idf:155]: UART Bus 0: [11:40:11][C][uart.idf:156]: TX Pin: GPIO21 [11:40:11][C][uart.idf:157]: RX Pin: GPIO20 [11:40:11][C][uart.idf:159]: RX Buffer Size: 256 [11:40:11][C][uart.idf:161]: Baud Rate: 256000 baud [11:40:11][C][uart.idf:161]: Data Bits: 8 [11:40:11][C][uart.idf:161]: Parity: NONE [11:40:11][C][uart.idf:161]: Stop bits: 1 [11:40:11][C][esp32_rmt_led_strip:268]: ESP32 RMT LED Strip: [11:40:11][C][esp32_rmt_led_strip:268]: Pin: 2 [11:40:11][C][esp32_rmt_led_strip:272]: RMT Symbols: 96 [11:40:11][C][esp32_rmt_led_strip:297]: RGB Order: GRB [11:40:11][C][esp32_rmt_led_strip:297]: Max refresh rate: 0 [11:40:11][C][esp32_rmt_led_strip:297]: Number of LEDs: 1 [11:40:11][C][template.text_sensor:020]: Template Sensor 'Unity Config Version' [11:40:11][C][template.text_sensor:020]: Icon: 'mdi:tag' [11:40:11][C][gpio.binary_sensor:052]: GPIO Binary Sensor 'Unity Button' [11:40:11][C][gpio.binary_sensor:053]: Pin: GPIO9 [11:40:11][C][gpio.binary_sensor:055]: Mode: interrupt [11:40:11][C][gpio.binary_sensor:072]: Interrupt Type: ANY_EDGE [11:40:11][C][template.number:050]: Template Number 'Unity Human Distance Range' [11:40:11][C][template.number:050]: Icon: 'mdi:arrow-left-right' [11:40:11][C][template.number:050]: Unit of Measurement: 'm' [11:40:11][C][template.number:051]: Optimistic: YES [11:40:11][C][template.number:052]: Update Interval: never [11:40:11][C][template.number:050]: Template Number 'Unity Human Clear Delay' [11:40:11][C][template.number:050]: Icon: 'mdi:timer' [11:40:11][C][template.number:050]: Unit of Measurement: 's' [11:40:11][C][template.number:051]: Optimistic: YES [11:40:11][C][template.number:052]: Update Interval: never [11:40:11][C][template.number:050]: Template Number 'Unity Moving Human Sensitivity Threshold' [11:40:11][C][template.number:050]: Icon: 'mdi:car-cruise-control' [11:40:11][C][template.number:050]: Unit of Measurement: '%' [11:40:11][C][template.number:051]: Optimistic: YES [11:40:11][C][template.number:052]: Update Interval: never [11:40:11][C][template.number:050]: Template Number 'Unity Still Human Sensitivity Threshold' [11:40:11][C][template.number:050]: Icon: 'mdi:car-cruise-control' [11:40:11][C][template.number:050]: Unit of Measurement: '%' [11:40:11][C][template.number:051]: Optimistic: YES [11:40:11][C][template.number:052]: Update Interval: never [11:40:11][C][template.number:050]: Template Number 'Unity Temperature Offset' [11:40:11][C][template.number:050]: Icon: 'mdi:thermometer' [11:40:11][C][template.number:050]: Unit of Measurement: '°C' [11:40:11][C][template.number:051]: Optimistic: YES [11:40:11][C][template.number:052]: Update Interval: never [11:40:11][C][template.number:050]: Template Number 'Unity Humidity Offset' [11:40:11][C][template.number:050]: Icon: 'mdi:water-percent' [11:40:11][C][template.number:050]: Unit of Measurement: '%' [11:40:11][C][template.number:051]: Optimistic: YES [11:40:11][C][template.number:052]: Update Interval: never [11:40:11][C][template.number:050]: Template Number 'Unity Illuminance Offset' [11:40:11][C][template.number:050]: Icon: 'mdi:brightness-5' [11:40:11][C][template.number:050]: Unit of Measurement: 'lx' [11:40:12][C][light:092]: Light 'Unity Light' [11:40:12][C][light:094]: Default Transition Length: 1.0s [11:40:12][C][light:094]: Gamma Correct: 2.80 [11:40:12][C][ld2410:015]: LD2410: [11:40:12][C][ld2410:017]: HasTargetSensor 'Unity Has Human Target' [11:40:12][C][ld2410:017]: Device Class: 'occupancy' [11:40:12][C][ld2410:018]: MovingSensor 'Unity Has Moving Human Target' [11:40:12][C][ld2410:018]: Device Class: 'motion' [11:40:12][C][ld2410:019]: StillSensor 'Unity Has Still Human Target' [11:40:12][C][ld2410:019]: Device Class: 'occupancy' [11:40:12][C][ld2410:022]: Moving Distance 'Unity Moving Human Distance' [11:40:12][C][ld2410:022]: State Class: '' [11:40:12][C][ld2410:022]: Unit of Measurement: 'cm' [11:40:12][C][ld2410:022]: Accuracy Decimals: 0 [11:40:12][C][ld2410:022]: Device Class: 'distance' [11:40:12][C][ld2410:023]: Still Distance 'Unity Still Human Distance' [11:40:12][C][ld2410:023]: State Class: '' [11:40:12][C][ld2410:023]: Unit of Measurement: 'cm' [11:40:12][C][ld2410:023]: Accuracy Decimals: 0 [11:40:12][C][ld2410:023]: Device Class: 'distance' [11:40:12][C][ld2410:024]: Moving Energy 'Unity Moving Human Energy' [11:40:12][C][ld2410:024]: State Class: '' [11:40:12][C][ld2410:024]: Unit of Measurement: '%' [11:40:12][C][ld2410:024]: Accuracy Decimals: 0 [11:40:12][C][ld2410:024]: Device Class: 'energy' [11:40:12][C][ld2410:025]: Still Energy 'Unity Still Human Energy' [11:40:12][C][ld2410:025]: State Class: '' [11:40:12][C][ld2410:025]: Unit of Measurement: '%' [11:40:12][C][ld2410:025]: Accuracy Decimals: 0 [11:40:12][C][ld2410:025]: Device Class: 'energy' [11:40:12][C][ld2410:026]: Detection Distance 'Unity Human Detection Distance' [11:40:12][C][ld2410:026]: State Class: '' [11:40:12][C][ld2410:026]: Unit of Measurement: 'cm' [11:40:12][C][ld2410:026]: Accuracy Decimals: 0 [11:40:12][C][ld2410:026]: Device Class: 'distance' [11:40:12][C][ld2410:031]: Firmware Version : 2.5.353616 [11:40:12][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is OFF [11:40:12][D][sensor:104]: 'Unity Moving Human Energy': Sending state 0.00000 % with 0 decimals of accuracy [11:40:12][C][internal_temperature:108]: Internal Temperature Sensor 'Unity Internal Temperature' [11:40:12][C][internal_temperature:108]: State Class: 'measurement' [11:40:12][C][internal_temperature:108]: Unit of Measurement: '°C' [11:40:12][C][internal_temperature:108]: Accuracy Decimals: 1 [11:40:12][C][internal_temperature:108]: Device Class: 'temperature' [11:40:12][C][internal_temperature:108]: Icon: 'mdi:thermometer' [11:40:12][C][hdc1080:031]: HDC1080: [11:40:12][C][hdc1080:032]: Address: 0x40 [11:40:12][C][hdc1080:036]: Update Interval: 12.0s [11:40:12][C][hdc1080:037]: Temperature 'Unity Temperature' [11:40:12][C][hdc1080:037]: State Class: 'measurement' [11:40:12][C][hdc1080:037]: Unit of Measurement: '°C' [11:40:12][C][hdc1080:037]: Accuracy Decimals: 1 [11:40:12][C][hdc1080:037]: Device Class: 'temperature' [11:40:12][C][hdc1080:038]: Humidity 'Unity Humidity' [11:40:12][C][hdc1080:038]: State Class: 'measurement' [11:40:12][C][hdc1080:038]: Unit of Measurement: '%' [11:40:12][C][hdc1080:038]: Accuracy Decimals: 0 [11:40:12][C][hdc1080:038]: Device Class: 'humidity' [11:40:12][C][restart.button:017]: Restart Button 'Unity Restart' [11:40:12][C][restart.button:017]: Icon: 'mdi:restart' [11:40:12][C][factory_reset.button:011]: Factory Reset Button 'Unity Factory Reset' [11:40:12][C][factory_reset.button:011]: Icon: 'mdi:restart-alert' [11:40:12][C][bh1750.sensor:118]: BH1750 'Unity Illuminance' [11:40:12][C][bh1750.sensor:118]: State Class: 'measurement' [11:40:12][C][bh1750.sensor:118]: Unit of Measurement: 'lx' [11:40:12][C][bh1750.sensor:118]: Accuracy Decimals: 1 [11:40:12][C][bh1750.sensor:118]: Device Class: 'illuminance' [11:40:12][C][bh1750.sensor:119]: Address: 0x23 [11:40:12][C][bh1750.sensor:124]: Update Interval: 60.0s [11:40:12][C][esp32_ble:524]: Bluetooth stack is not enabled [11:40:12][C][esp32_ble_server:195]: ESP32 BLE Server: [11:40:12][C][esp32_improv.component:275]: ESP32 Improv: [11:40:12][C][esp32_improv.component:280]: Status Indicator: 'YES' [11:40:12][C][captive_portal:099]: Captive Portal: [11:40:12][C][esphome.ota:073]: Over-The-Air updates: [11:40:12][C][esphome.ota:073]: Address: unity-office.local:3232 [11:40:12][C][esphome.ota:073]: Version: 2 [11:40:12][C][safe_mode:018]: Safe Mode: [11:40:12][C][safe_mode:019]: Boot considered successful after 60 seconds [11:40:12][C][safe_mode:019]: Invoke after 10 boot attempts [11:40:12][C][safe_mode:019]: Remain for 300 seconds [11:40:12][C][web_server.ota:224]: Web Server OTA [11:40:12][C][api:207]: API Server: [11:40:12][C][api:207]: Address: unity-office.local:6053 [11:40:12][C][api:212]: Using noise encryption: YES [11:40:12][C][improv_serial:032]: Improv Serial: [11:40:12][C][wifi_info:010]: IP Address 'Unity IP Address' [11:40:12][C][wifi_info:010]: Icon: 'mdi:wan' [11:40:12][C][wifi_signal.sensor:010]: WiFi Signal 'Unity WiFi Signal' [11:40:12][C][wifi_signal.sensor:010]: State Class: 'measurement' [11:40:12][C][wifi_signal.sensor:010]: Unit of Measurement: 'dBm' [11:40:12][C][wifi_signal.sensor:010]: Accuracy Decimals: 0 [11:40:12][C][wifi_signal.sensor:010]: Device Class: 'signal_strength' [11:40:12][C][mdns:122]: mDNS: [11:40:12][C][mdns:122]: Hostname: unity-office [11:40:13][D][sensor:104]: 'Unity Moving Human Distance': Sending state 53.00000 cm with 0 decimals of accuracy [11:40:13][D][sensor:104]: 'Unity Still Human Distance': Sending state 53.00000 cm with 0 decimals of accuracy [11:40:13][D][sensor:104]: 'Unity Human Detection Distance': Sending state 31.00000 cm with 0 decimals of accuracy [11:40:14][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is ON [11:40:14][D][sensor:104]: 'Unity Moving Human Distance': Sending state 150.00000 cm with 0 decimals of accuracy [11:40:14][D][sensor:104]: 'Unity Moving Human Energy': Sending state 28.00000 % with 0 decimals of accuracy [11:40:14][D][sensor:104]: 'Unity Still Human Distance': Sending state 150.00000 cm with 0 decimals of accuracy [11:40:14][D][sensor:104]: 'Unity Human Detection Distance': Sending state 68.00000 cm with 0 decimals of accuracy [11:40:15][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is OFF [11:40:15][D][sensor:104]: 'Unity Moving Human Energy': Sending state 0.00000 % with 0 decimals of accuracy [11:40:15][D][sensor:104]: 'Unity Human Detection Distance': Sending state 116.00000 cm with 0 decimals of accuracy [11:40:16][D][sensor:104]: 'Unity Human Detection Distance': Sending state 127.00000 cm with 0 decimals of accuracy [11:40:16][D][bh1750.sensor:159]: 'Unity Illuminance': Illuminance=16.1lx [11:40:16][D][sensor:104]: 'Unity Illuminance': Sending state 16.07283 lx with 1 decimals of accuracy [11:40:18][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is ON [11:40:18][D][sensor:104]: 'Unity Moving Human Distance': Sending state 70.00000 cm with 0 decimals of accuracy [11:40:18][D][sensor:104]: 'Unity Moving Human Energy': Sending state 97.00000 % with 0 decimals of accuracy [11:40:19][D][sensor:104]: 'Unity Moving Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:19][D][sensor:104]: 'Unity Moving Human Energy': Sending state 72.00000 % with 0 decimals of accuracy [11:40:19][D][sensor:104]: 'Unity Still Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:19][D][sensor:104]: 'Unity Human Detection Distance': Sending state 53.00000 cm with 0 decimals of accuracy [11:40:20][D][sensor:104]: 'Unity Moving Human Distance': Sending state 62.00000 cm with 0 decimals of accuracy [11:40:20][D][sensor:104]: 'Unity Moving Human Energy': Sending state 100.00000 % with 0 decimals of accuracy [11:40:20][D][sensor:104]: 'Unity Still Human Distance': Sending state 59.00000 cm with 0 decimals of accuracy [11:40:20][D][sensor:104]: 'Unity Human Detection Distance': Sending state 37.00000 cm with 0 decimals of accuracy [11:40:21][D][sensor:104]: 'Unity Moving Human Distance': Sending state 54.00000 cm with 0 decimals of accuracy [11:40:21][D][sensor:104]: 'Unity Moving Human Energy': Sending state 92.00000 % with 0 decimals of accuracy [11:40:21][D][sensor:104]: 'Unity Still Human Distance': Sending state 45.00000 cm with 0 decimals of accuracy [11:40:21][D][sensor:104]: 'Unity Human Detection Distance': Sending state 0.00000 cm with 0 decimals of accuracy [11:40:22][D][hdc1080:069]: Got temperature=41.7°C humidity=29.7% [11:40:22][D][sensor:104]: 'Unity Moving Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:22][D][sensor:104]: 'Unity Moving Human Energy': Sending state 100.00000 % with 0 decimals of accuracy [11:40:22][D][sensor:104]: 'Unity Still Human Distance': Sending state 69.00000 cm with 0 decimals of accuracy [11:40:23][D][sensor:104]: 'Unity Internal Temperature': Sending state 54.80000 °C with 1 decimals of accuracy [11:40:23][D][sensor:104]: 'Unity Moving Human Distance': Sending state 56.00000 cm with 0 decimals of accuracy [11:40:23][D][sensor:104]: 'Unity Moving Human Energy': Sending state 68.00000 % with 0 decimals of accuracy [11:40:23][D][sensor:104]: 'Unity Still Human Distance': Sending state 75.00000 cm with 0 decimals of accuracy [11:40:25][D][sensor:104]: 'Unity Moving Human Distance': Sending state 60.00000 cm with 0 decimals of accuracy [11:40:25][D][sensor:104]: 'Unity Moving Human Energy': Sending state 72.00000 % with 0 decimals of accuracy [11:40:25][D][sensor:104]: 'Unity Still Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:26][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is OFF [11:40:26][D][sensor:104]: 'Unity Moving Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:26][D][sensor:104]: 'Unity Moving Human Energy': Sending state 0.00000 % with 0 decimals of accuracy [11:40:26][D][sensor:104]: 'Unity Still Human Distance': Sending state 195.00000 cm with 0 decimals of accuracy [11:40:26][D][sensor:104]: 'Unity Human Detection Distance': Sending state 102.00000 cm with 0 decimals of accuracy [11:40:26][D][sensor:104]: 'Unity WiFi Signal': Sending state -69.00000 dBm with 0 decimals of accuracy [11:40:27][D][sensor:104]: 'Unity Moving Human Distance': Sending state 68.00000 cm with 0 decimals of accuracy [11:40:27][D][sensor:104]: 'Unity Still Human Distance': Sending state 68.00000 cm with 0 decimals of accuracy [11:40:27][D][sensor:104]: 'Unity Human Detection Distance': Sending state 140.00000 cm with 0 decimals of accuracy [11:40:28][D][sensor:104]: 'Unity Moving Human Distance': Sending state 150.00000 cm with 0 decimals of accuracy [11:40:28][D][sensor:104]: 'Unity Moving Human Energy': Sending state 22.00000 % with 0 decimals of accuracy [11:40:28][D][sensor:104]: 'Unity Still Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:28][D][sensor:104]: 'Unity Human Detection Distance': Sending state 54.00000 cm with 0 decimals of accuracy [11:40:29][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is ON [11:40:29][D][sensor:104]: 'Unity Moving Human Distance': Sending state 72.00000 cm with 0 decimals of accuracy [11:40:29][D][sensor:104]: 'Unity Moving Human Energy': Sending state 91.00000 % with 0 decimals of accuracy [11:40:29][D][sensor:104]: 'Unity Human Detection Distance': Sending state 0.00000 cm with 0 decimals of accuracy [11:40:30][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is OFF [11:40:30][D][sensor:104]: 'Unity Moving Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:30][D][sensor:104]: 'Unity Moving Human Energy': Sending state 0.00000 % with 0 decimals of accuracy [11:40:31][D][binary_sensor:026]: 'Unity Has Moving Human Target': New state is ON [11:40:31][D][sensor:104]: 'Unity Moving Human Energy': Sending state 99.00000 % with 0 decimals of accuracy [11:40:31][D][sensor:104]: 'Unity Still Human Distance': Sending state 62.00000 cm with 0 decimals of accuracy [11:40:31][D][sensor:104]: 'Unity Human Detection Distance': Sending state 44.00000 cm with 0 decimals of accuracy [11:40:32][D][sensor:104]: 'Unity Moving Human Distance': Sending state 53.00000 cm with 0 decimals of accuracy [11:40:32][D][sensor:104]: 'Unity Moving Human Energy': Sending state 52.00000 % with 0 decimals of accuracy [11:40:32][D][sensor:104]: 'Unity Still Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:32][D][sensor:104]: 'Unity Human Detection Distance': Sending state 35.00000 cm with 0 decimals of accuracy [11:40:33][D][sensor:104]: 'Unity Moving Human Distance': Sending state 30.00000 cm with 0 decimals of accuracy [11:40:33][D][sensor:104]: 'Unity Moving Human Energy': Sending state 81.00000 % with 0 decimals of accuracy [11:40:34][D][sensor:104]: 'Unity Moving Human Distance': Sending state 65.00000 cm with 0 decimals of accuracy [11:40:34][D][sensor:104]: 'Unity Moving Human Energy': Sending state 100.00000 % with 0 decimals of accuracy [11:40:34][D][sensor:104]: 'Unity Human Detection Distance': Sending state 33.00000 cm with 0 decimals of accuracy [11:40:34][D][hdc1080:069]: Got temperature=41.8°C humidity=29.7% [11:40:35][D][sensor:104]: 'Unity Moving Human Distance': Sending state 71.00000 cm with 0 decimals of accuracy [11:40:35][D][sensor:104]: 'Unity Still Human Distance': Sending state 58.00000 cm with 0 decimals of accuracy [11:40:35][D][sensor:104]: 'Unity Human Detection Distance': Sending state 38.00000 cm with 0 decimals of accuracy

@damacus
Copy link
Author

damacus commented Jul 22, 2025

Fixes #34

The ESP-IDF framework is smaller than the arduino framework, so has a
few features missing. But we now fit in memory again on ESPHome
2025.7.0+

Additionally:

- Add lefthook
- Add yamllint hook
- Lint files. We found a few bugs
- Add Taskfile for common tasks (run, compile logs)

Signed-off-by: Dan Webb <dan.webb@damacus.io>
@damacus damacus force-pushed the ESP-IDF-framework branch from 0c8a5e1 to 635fc29 Compare July 22, 2025 10:16
@damacus
Copy link
Author

damacus commented Jul 22, 2025

Related esphome/esphome#9555

@smeisner
Copy link

I cannot approve this PR, but I can confirm this branch works perfectly for me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants