From 105aab57639ce0181a6efbbd7e72146a141db383 Mon Sep 17 00:00:00 2001 From: pszafer Date: Thu, 8 Jan 2026 16:02:24 +0100 Subject: [PATCH 1/7] add boneio esp gen2 test config --- dev-boneio-gen2-32x10_lights_v0_1.yaml | 1008 ++++++++++++++++++++++++ 1 file changed, 1008 insertions(+) create mode 100644 dev-boneio-gen2-32x10_lights_v0_1.yaml diff --git a/dev-boneio-gen2-32x10_lights_v0_1.yaml b/dev-boneio-gen2-32x10_lights_v0_1.yaml new file mode 100644 index 0000000..b3093b0 --- /dev/null +++ b/dev-boneio-gen2-32x10_lights_v0_1.yaml @@ -0,0 +1,1008 @@ +substitutions: + name: boneio-gen2-32-l-01 + friendly_name: 'BoneIO ESP Gen2 32x10 Lights' + serial_prefix: 'esp2' #Don't change it. + firmware_manifest: 'https://boneio.eu/fwesp/boneio-gen2-32x10_lights.json' + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: true + project: + name: boneio.32x10-lights-gen2 + version: '0.1' + on_boot: + priority: -100 + then: + - delay: 5s + - if: + condition: + lambda: 'return id(serial_no) != nullptr;' + then: + - component.update: serial_no + - logger.log: "Serial No updated on boot" + else: + - logger.log: "Serial No component not found" + +esp32: + board: esp32-s3-devkitc-1 + framework: + type: esp-idf + +ethernet: + id: eth + type: W5500 + clk_pin: GPIO13 + mosi_pin: GPIO39 + miso_pin: GPIO38 + cs_pin: GPIO12 + interrupt_pin: GPIO2 + reset_pin: GPIO1 + clock_speed: 25MHz + use_address: 192.168.50.215 + +i2c: + sda: GPIO10 + scl: GPIO11 + id: i2c_bus + scan: True + frequency: 400kHz + +mcp23017: + - id: 'mcp_inputs_1to16' #do 1-16 + i2c_id: i2c_bus + address: 0x20 + - id: 'mcp_inputs_17to32' #do 17-32 + i2c_id: i2c_bus + address: 0x21 + - id: 'mcp_left' + address: 0x23 + i2c_id: i2c_bus + - id: 'mcp_right' + address: 0x24 + i2c_id: i2c_bus + +one_wire: + - platform: ds2484 + i2c_id: i2c_bus + address: 0x18 + +gp8403: + id: gp8403_dac + i2c_id: i2c_bus + address: 0x58 + voltage: 10V + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.7.1 + files: [ + 'devices/serial_no.yaml' + ] + +# [14:08:47.835][C][i2c.idf:117]: Found device at address 0x18 - ds2484 +#----[14:08:47.841][C][i2c.idf:117]: Found device at address 0x20 - mcp_inputs_1to16 +#---14:08:47.846][C][i2c.idf:117]: Found device at address 0x21 - mcp_inputs_15to28 +# [14:08:47.852][C][i2c.idf:117]: Found device at address 0x23 - output left +# [14:08:47.855][C][i2c.idf:117]: Found device at address 0x24 - output right +#---- [14:08:47.860][C][i2c.idf:117]: Found device at address 0x40 - ina226 +#---- [14:08:47.866][C][i2c.idf:117]: Found device at address 0x48 - lm75b +# [14:08:47.871][C][i2c.idf:117]: Found device at address 0x58 - gp8403 - wyjscia analogowe +# GPIO8 WS2812 + + +dashboard_import: + package_import_url: github://boneIO-eu/esphome/dev-boneio-gen2-32x10_lights_v0_1.yaml@main + import_full_config: true + +logger: + hardware_uart: UART0 + +api: + reboot_timeout: 0s + +ota: + - platform: esphome + - platform: web_server + +web_server: + port: 80 + local: true + version: 3 + +time: + - platform: homeassistant + timezone: Europe/Warsaw + id: homeassistant_time + +debug: + update_interval: 15s + +sensor: + - platform: debug + free: + name: "Heap Free" + block: + name: "Heap Max Block" + loop_time: + name: "Loop Time" + - platform: lm75b + id: boneIO_temp + name: 'Temperature' + update_interval: 30s + entity_category: diagnostic + on_value_range: + - above: 70.0 + then: + - switch.turn_on: buzzer + - below: 70.0 + then: + - switch.turn_off: buzzer + - platform: ina226 + address: 0x40 + adc_time: + voltage: 140us + current: 332us + current: + name: "INA226 Current" + power: + name: "INA226 Power" + bus_voltage: + name: "INA226 Bus Voltage" + shunt_voltage: + name: "INA226 Shunt Voltage" + +switch: + - platform: gpio + id: buzzer + name: 'Buzzer' + pin: + number: GPIO9 + mode: + output: true + inverted: false + - platform: gpio + id: can_bus_switch + name: 'CAN Bus Switch' + pin: + number: GPIO35 + mode: + output: true + inverted: false + +output: + - platform: gpio + id: out_01 + pin: + mcp23xxx: mcp_left + number: 0 + mode: + output: true + inverted: true + - platform: gpio + id: out_02 + pin: + mcp23xxx: mcp_left + number: 1 + mode: + output: true + inverted: true + - platform: gpio + id: out_03 + pin: + mcp23xxx: mcp_left + number: 2 + mode: + output: true + inverted: true + - platform: gpio + id: out_04 + pin: + mcp23xxx: mcp_left + number: 3 + mode: + output: true + inverted: true + - platform: gpio + id: out_05 + pin: + mcp23xxx: mcp_left + number: 4 + mode: + output: true + inverted: true + - platform: gpio + id: out_06 + pin: + mcp23xxx: mcp_left + number: 5 + mode: + output: true + inverted: true + - platform: gpio + id: out_07 + pin: + mcp23xxx: mcp_left + number: 6 + mode: + output: true + inverted: true + - platform: gpio + id: out_08 + pin: + mcp23xxx: mcp_left + number: 7 + mode: + output: true + inverted: true + - platform: gpio + id: out_09 + pin: + mcp23xxx: mcp_left + number: 8 + mode: + output: true + inverted: true + - platform: gpio + id: out_10 + pin: + mcp23xxx: mcp_left + number: 9 + mode: + output: true + inverted: true + - platform: gpio + id: out_11 + pin: + mcp23xxx: mcp_left + number: 10 + mode: + output: true + inverted: true + - platform: gpio + id: out_12 + pin: + mcp23xxx: mcp_left + number: 11 + mode: + output: true + inverted: true + - platform: gpio + id: out_13 + pin: + mcp23xxx: mcp_left + number: 12 + mode: + output: true + inverted: true + - platform: gpio + id: out_14 + pin: + mcp23xxx: mcp_left + number: 13 + mode: + output: true + inverted: true + - platform: gpio + id: out_15 + pin: + mcp23xxx: mcp_left + number: 14 + mode: + output: true + inverted: true + - platform: gpio + id: out_16 + pin: + mcp23xxx: mcp_left + number: 15 + mode: + output: true + inverted: true + - platform: gpio + id: out_17 + pin: + mcp23xxx: mcp_right + number: 0 + mode: + output: true + inverted: true + - platform: gpio + id: out_18 + pin: + mcp23xxx: mcp_right + number: 1 + mode: + output: true + inverted: true + - platform: gpio + id: out_19 + pin: + mcp23xxx: mcp_right + number: 2 + mode: + output: true + inverted: true + - platform: gpio + id: out_20 + pin: + mcp23xxx: mcp_right + number: 3 + mode: + output: true + inverted: true + - platform: gpio + id: out_21 + pin: + mcp23xxx: mcp_right + number: 4 + mode: + output: true + inverted: true + - platform: gpio + id: out_22 + pin: + mcp23xxx: mcp_right + number: 5 + mode: + output: true + inverted: true + - platform: gpio + id: out_23 + pin: + mcp23xxx: mcp_right + number: 6 + mode: + output: true + inverted: true + - platform: gpio + id: out_24 + pin: + mcp23xxx: mcp_right + number: 7 + mode: + output: true + inverted: true + - platform: gpio + id: out_25 + pin: + mcp23xxx: mcp_right + number: 8 + mode: + output: true + inverted: true + - platform: gpio + id: out_26 + pin: + mcp23xxx: mcp_right + number: 9 + mode: + output: true + inverted: true + - platform: gpio + id: out_27 + pin: + mcp23xxx: mcp_right + number: 10 + mode: + output: true + inverted: true + - platform: gpio + id: out_28 + pin: + mcp23xxx: mcp_right + number: 11 + mode: + output: true + inverted: true + - platform: gpio + id: out_29 + pin: + mcp23xxx: mcp_right + number: 12 + mode: + output: true + inverted: true + - platform: gpio + id: out_30 + pin: + mcp23xxx: mcp_right + number: 13 + mode: + output: true + inverted: true + - platform: gpio + id: out_31 + pin: + mcp23xxx: mcp_right + number: 14 + mode: + output: true + inverted: true + - platform: gpio + id: out_32 + pin: + mcp23xxx: mcp_right + number: 15 + mode: + output: true + inverted: true + - platform: gp8403 + gp8403_id: gp8403_dac + id: dac_output_1 + channel: 0 + - platform: gp8403 + gp8403_id: gp8403_dac + id: dac_output_2 + channel: 1 + +light: + - platform: binary + name: 'Light 01' + output: out_01 + id: light_01 + - platform: binary + name: 'Light 02' + output: out_02 + id: light_02 + - platform: binary + name: 'Light 03' + output: out_03 + id: light_03 + - platform: binary + name: 'Light 04' + output: out_04 + id: light_04 + - platform: binary + name: 'Light 05' + output: out_05 + id: light_05 + - platform: binary + name: 'Light 06' + output: out_06 + id: light_06 + - platform: binary + name: 'Light 07' + output: out_07 + id: light_07 + - platform: binary + name: 'Light 08' + output: out_08 + id: light_08 + - platform: binary + name: 'Light 09' + output: out_09 + id: light_09 + - platform: binary + name: 'Light 10' + output: out_10 + id: light_10 + - platform: binary + name: 'Light 11' + output: out_11 + id: light_11 + - platform: binary + name: 'Light 12' + output: out_12 + id: light_12 + - platform: binary + name: 'Light 13' + output: out_13 + id: light_13 + - platform: binary + name: 'Light 14' + output: out_14 + id: light_14 + - platform: binary + name: 'Light 15' + output: out_15 + id: light_15 + - platform: binary + name: 'Light 16' + output: out_16 + id: light_16 + - platform: binary + name: 'Light 17' + output: out_17 + id: light_17 + - platform: binary + name: 'Light 18' + output: out_18 + id: light_18 + - platform: binary + name: 'Light 19' + output: out_19 + id: light_19 + - platform: binary + name: 'Light 20' + output: out_20 + id: light_20 + - platform: binary + name: 'Light 21' + output: out_21 + id: light_21 + - platform: binary + name: 'Light 22' + output: out_22 + id: light_22 + - platform: binary + name: 'Light 23' + output: out_23 + id: light_23 + - platform: binary + name: 'Light 24' + output: out_24 + id: light_24 + - platform: binary + name: 'Light 25' + output: out_25 + id: light_25 + - platform: binary + name: 'Light 26' + output: out_26 + id: light_26 + - platform: binary + name: 'Light 27' + output: out_27 + id: light_27 + - platform: binary + name: 'Light 28' + output: out_28 + id: light_28 + - platform: binary + name: 'Light 29' + output: out_29 + id: light_29 + - platform: binary + name: 'Light 30' + output: out_30 + id: light_30 + - platform: binary + name: 'Light 31' + output: out_31 + id: light_31 + - platform: binary + name: 'Light 32' + output: out_32 + id: light_32 + +binary_sensor: + - platform: gpio + name: 'IN_01' + id: in_01 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_01 + + - platform: gpio + name: 'IN_02' + id: in_02 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_02 + + - platform: gpio + name: 'IN_03' + id: in_03 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_03 + + - platform: gpio + name: 'IN_04' + id: in_04 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_04 + + - platform: gpio + name: 'IN_05' + id: in_05 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_05 + + - platform: gpio + name: 'IN_06' + id: in_06 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_06 + + - platform: gpio + name: 'IN_07' + id: in_07 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_07 + + - platform: gpio + name: 'IN_08' + id: in_08 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 7 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_08 + + - platform: gpio + name: 'IN_09' + id: in_09 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_09 + + - platform: gpio + name: 'IN_10' + id: in_10 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_10 + + - platform: gpio + name: 'IN_11' + id: in_11 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_11 + + - platform: gpio + name: 'IN_12' + id: in_12 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_12 + + - platform: gpio + name: 'IN_13' + id: in_13 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_13 + + - platform: gpio + name: 'IN_14' + id: in_14 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_14 + + - platform: gpio + name: 'IN_15' + id: in_15 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_15 + + - platform: gpio + name: 'IN_16' + id: in_16 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 15 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_16 + + - platform: gpio + name: 'IN_17' + id: in_17 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_17 + + - platform: gpio + name: 'IN_18' + id: in_18 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_18 + + - platform: gpio + name: 'IN_19' + id: in_19 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_19 + + - platform: gpio + name: 'IN_20' + id: in_20 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_20 + + - platform: gpio + name: 'IN_21' + id: in_21 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_21 + + - platform: gpio + name: 'IN_22' + id: in_22 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_22 + + - platform: gpio + name: 'IN_23' + id: in_23 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_23 + + - platform: gpio + name: 'IN_24' + id: in_24 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 7 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_24 + + - platform: gpio + name: 'IN_25' + id: in_25 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_25 + + - platform: gpio + name: 'IN_26' + id: in_26 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_26 + + - platform: gpio + name: 'IN_27' + id: in_27 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_27 + + - platform: gpio + name: 'IN_28' + id: in_28 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_28 + + - platform: gpio + name: 'IN_29' + id: in_29 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_29 + + - platform: gpio + name: 'IN_30' + id: in_30 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_30 + + - platform: gpio + name: 'IN_31' + id: in_31 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_31 + + - platform: gpio + name: 'IN_32' + id: in_32 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 15 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_32 + +###################### +### MODBUS SECTION ### +###################### +# UNCOMMENT BELOW TO USE MODBUS +# uart: +# id: uart_pin14_15 +# rx_pin: GPIO14 +# tx_pin: GPIO15 +# baud_rate: 9600 +# stop_bits: 1 + +# modbus: +# send_wait_time: 200ms +# uart_id: uart_pin14_15 +# id: boneio_modbus + +# modbus_controller: +# - id: YOURDEVICE ID +# address: 0x09 +# modbus_id: mod_bus +# setup_priority: -10 +# update_interval: 60s From f59ea698fbe709a441cc61028eef3db9919d5223 Mon Sep 17 00:00:00 2001 From: pszafer Date: Thu, 8 Jan 2026 16:30:20 +0100 Subject: [PATCH 2/7] add status LED configuration to 32x10 lights dev config --- dev-boneio-gen2-32x10_lights_v0_1.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dev-boneio-gen2-32x10_lights_v0_1.yaml b/dev-boneio-gen2-32x10_lights_v0_1.yaml index b3093b0..010dbb3 100644 --- a/dev-boneio-gen2-32x10_lights_v0_1.yaml +++ b/dev-boneio-gen2-32x10_lights_v0_1.yaml @@ -438,6 +438,13 @@ output: channel: 1 light: + - platform: esp32_rmt_led_strip + id: status_led + name: "Status LED" + rgb_order: GRB + pin: GPIO8 + num_leds: 1 + chipset: WS2812 - platform: binary name: 'Light 01' output: out_01 From b1acfffe8c70050a8446009ae4ef351701287985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Zieli=C5=84ski?= Date: Sat, 24 Jan 2026 18:00:45 +0100 Subject: [PATCH 3/7] Rename dallas to dallas_temp --- devices_v0_7-v0_9/one_wire.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/devices_v0_7-v0_9/one_wire.yaml b/devices_v0_7-v0_9/one_wire.yaml index 38b0c23..890ec69 100644 --- a/devices_v0_7-v0_9/one_wire.yaml +++ b/devices_v0_7-v0_9/one_wire.yaml @@ -2,14 +2,14 @@ one_wire: - platform: gpio pin: GPIO32 # sensor: -# - platform: dallas +# - platform: dallas_temp # address: 0x283c01d607d4df28 # name: "Dallas Sensor 1" # -# - platform: dallas +# - platform: dallas_temp # address: 0xdfe67a061e64ff28 # name: "Dallas Sensor 2" # -# - platform: dallas +# - platform: dallas_temp # address: 0xa7a89f071e64ff28 # name: "Dallas Sensor 3" From 914762dd6fcf25f57f95c7376d5856e929d57d1f Mon Sep 17 00:00:00 2001 From: pszafer Date: Mon, 26 Jan 2026 08:36:08 +0100 Subject: [PATCH 4/7] attempt to autodeploy esphome firmware --- .github/workflows/build-firmware.yml | 194 +++++++++++++++++++++++++++ create_firmware.py | 18 ++- 2 files changed, 207 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/build-firmware.yml diff --git a/.github/workflows/build-firmware.yml b/.github/workflows/build-firmware.yml new file mode 100644 index 0000000..a1aef88 --- /dev/null +++ b/.github/workflows/build-firmware.yml @@ -0,0 +1,194 @@ +name: Build ESPHome Firmware + +on: + push: + tags: + - 'v*' + workflow_dispatch: + inputs: + version: + description: 'Version tag (e.g., 2026.1.2)' + required: true + default: '2026.1.2' + +env: + ESPHOME_VERSION: "2024.12.4" + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - yaml_file: boneio-dimmer_gen2_2rgbw-v0_1.yaml + chip_family: ESP32-S3 + - yaml_file: boneio-dimmer_gen2_8ch-v0_1.yaml + chip_family: ESP32-S3 + - yaml_file: boneio-32x10_lights_v0_7.yaml + chip_family: ESP32 + - yaml_file: boneio-32x10_switches_v0_7.yaml + chip_family: ESP32 + - yaml_file: boneio-24x16_switches_v0_7.yaml + chip_family: ESP32 + - yaml_file: boneio-cover_v0_7.yaml + chip_family: ESP32 + - yaml_file: boneio-cover_mix_lights_v0_7.yaml + chip_family: ESP32 + - yaml_file: boneio-cover_mix_switches_v0_7.yaml + chip_family: ESP32 + - yaml_file: boneio-8x10A_gen2_lights-v0_1.yaml + chip_family: ESP32-S3 + - yaml_file: boneio-mosfet48_lights_v0_7.yaml + chip_family: ESP32 + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install ESPHome + run: pip install esphome==${{ env.ESPHOME_VERSION }} + + - name: Build firmware + run: esphome compile ${{ matrix.yaml_file }} + + - name: Get firmware name from YAML + id: get_name + run: | + NAME=$(grep -m1 'name:' ${{ matrix.yaml_file }} | sed 's/.*name:\s*//' | tr -d ' ') + echo "firmware_name=$NAME" >> $GITHUB_OUTPUT + echo "chip_family=${{ matrix.chip_family }}" >> $GITHUB_OUTPUT + + - name: Copy firmware to output + run: | + mkdir -p output + FIRMWARE_NAME="${{ steps.get_name.outputs.firmware_name }}" + cp .esphome/build/${FIRMWARE_NAME}/.pioenvs/${FIRMWARE_NAME}/firmware.factory.bin output/${FIRMWARE_NAME}.bin + + - name: Upload firmware artifact + uses: actions/upload-artifact@v4 + with: + name: firmware-${{ steps.get_name.outputs.firmware_name }} + path: output/*.bin + + - name: Upload chip family info + run: echo "${{ matrix.chip_family }}" > output/${{ steps.get_name.outputs.firmware_name }}.chip + + - name: Upload chip info artifact + uses: actions/upload-artifact@v4 + with: + name: chip-${{ steps.get_name.outputs.firmware_name }} + path: output/*.chip + + deploy: + needs: build + runs-on: ubuntu-latest + permissions: + contents: write + pages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Download firmware artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + pattern: firmware-* + merge-multiple: true + + - name: Download chip info artifacts + uses: actions/download-artifact@v4 + with: + path: chip-info + pattern: chip-* + merge-multiple: true + + - name: Get version + id: version + run: | + if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then + echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT + else + echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT + fi + + - name: Prepare GitHub Pages content + run: | + mkdir -p gh-pages/firmware + cp artifacts/*.bin gh-pages/firmware/ + + # Generate manifest JSON files for ESP Web Tools + for bin in gh-pages/firmware/*.bin; do + FIRMWARE_NAME=$(basename "$bin" .bin) + CHIP_FAMILY="ESP32" + if [ -f "chip-info/${FIRMWARE_NAME}.chip" ]; then + CHIP_FAMILY=$(cat "chip-info/${FIRMWARE_NAME}.chip") + elif [[ "$FIRMWARE_NAME" == *"gen2"* ]]; then + CHIP_FAMILY="ESP32-S3" + fi + + cat > gh-pages/${FIRMWARE_NAME}.json << EOF + { + "name": "boneIO ESPHome", + "version": "${{ steps.version.outputs.version }}", + "home_assistant_domain": "esphome", + "funding_url": "https://esphome.io/guides/supporters.html", + "new_install_prompt_erase": false, + "builds": [ + { + "chipFamily": "${CHIP_FAMILY}", + "parts": [ + { + "path": "firmware/${FIRMWARE_NAME}.bin", + "offset": 0 + } + ] + } + ] + } + EOF + done + + # Create version file + echo "${{ steps.version.outputs.version }}" > gh-pages/version.txt + + # Create index with firmware list + cat > gh-pages/index.html << 'EOF' + + + boneIO Firmware + +

boneIO ESPHome Firmware

+
    + EOF + for bin in gh-pages/firmware/*.bin; do + NAME=$(basename "$bin" .bin) + echo "
  • ${NAME}
  • " >> gh-pages/index.html + done + cat >> gh-pages/index.html << 'EOF' +
+ + + EOF + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./gh-pages + force_orphan: true + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ steps.version.outputs.version }} + name: Firmware v${{ steps.version.outputs.version }} + files: artifacts/*.bin + generate_release_notes: true diff --git a/create_firmware.py b/create_firmware.py index 1857521..07554a9 100644 --- a/create_firmware.py +++ b/create_firmware.py @@ -32,15 +32,23 @@ exclude_files = [ ] include_files = [ - "boneio-8x10A_gen2_lights-v0_1.yaml", - # "boneio-dimmer_gen2_2rgbw-v0_1.yaml", + # "boneio-8x10A_gen2_lights-v0_1.yaml", + "boneio-dimmer_gen2_2rgbw-v0_1.yaml", + "boneio-dimmer_gen2_8ch-v0_1" ] +GITHUB_PAGES_URL = "https://boneio-eu.github.io/esphome" +FIRMWARE_VERSION = "2026.1.2" + + def json_pattern(firmware_name, chip_family="ESP32"): + # GitHub Pages supports CORS - works with ESP Web Tools + firmware_path = f"{GITHUB_PAGES_URL}/firmware/{firmware_name}.bin" + return { "name": "ESPHome", - "version": "2025.11.2", + "version": FIRMWARE_VERSION, "home_assistant_domain": "esphome", "funding_url": "https://esphome.io/guides/supporters.html", "new_install_prompt_erase": False, @@ -49,7 +57,7 @@ def json_pattern(firmware_name, chip_family="ESP32"): "chipFamily": chip_family, "parts": [ { - "path": f"/fwesp/firmware/{firmware_name}.bin", + "path": firmware_path, "offset": 0, } ], @@ -84,7 +92,7 @@ for file in glob.glob("*.yaml"): print("No file found.") break firmware_path = f"{cwd}/.esphome/build/{filename}/.pioenvs/{filename}/firmware.factory.bin" - cmd = f'docker run --rm -p 6052:6052 -v "{cwd}":/config -it ghcr.io/esphome/esphome compile {file}' + cmd = f'docker run --rm -p 6053:6052 -v "{cwd}":/config -it ghcr.io/esphome/esphome compile {file}' print(cmd) result = subprocess.run( cmd, From 07d5b661c2c7e8b2f7740cc6807fe536aaae5dea Mon Sep 17 00:00:00 2001 From: pszafer Date: Mon, 26 Jan 2026 08:44:11 +0100 Subject: [PATCH 5/7] fix building fw --- .github/workflows/build-firmware.yml | 40 +++++++++++++++------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-firmware.yml b/.github/workflows/build-firmware.yml index a1aef88..40cacaa 100644 --- a/.github/workflows/build-firmware.yml +++ b/.github/workflows/build-firmware.yml @@ -12,7 +12,7 @@ on: default: '2026.1.2' env: - ESPHOME_VERSION: "2024.12.4" + ESPHOME_VERSION: "2026.1.2" jobs: build: @@ -20,26 +20,28 @@ jobs: strategy: matrix: include: - - yaml_file: boneio-dimmer_gen2_2rgbw-v0_1.yaml - chip_family: ESP32-S3 + # Testing with single firmware first - yaml_file: boneio-dimmer_gen2_8ch-v0_1.yaml chip_family: ESP32-S3 - - yaml_file: boneio-32x10_lights_v0_7.yaml - chip_family: ESP32 - - yaml_file: boneio-32x10_switches_v0_7.yaml - chip_family: ESP32 - - yaml_file: boneio-24x16_switches_v0_7.yaml - chip_family: ESP32 - - yaml_file: boneio-cover_v0_7.yaml - chip_family: ESP32 - - yaml_file: boneio-cover_mix_lights_v0_7.yaml - chip_family: ESP32 - - yaml_file: boneio-cover_mix_switches_v0_7.yaml - chip_family: ESP32 - - yaml_file: boneio-8x10A_gen2_lights-v0_1.yaml - chip_family: ESP32-S3 - - yaml_file: boneio-mosfet48_lights_v0_7.yaml - chip_family: ESP32 + # Uncomment below after testing: + # - yaml_file: boneio-dimmer_gen2_2rgbw-v0_1.yaml + # chip_family: ESP32-S3 + # - yaml_file: boneio-32x10_lights_v0_7.yaml + # chip_family: ESP32 + # - yaml_file: boneio-32x10_switches_v0_7.yaml + # chip_family: ESP32 + # - yaml_file: boneio-24x16_switches_v0_7.yaml + # chip_family: ESP32 + # - yaml_file: boneio-cover_v0_7.yaml + # chip_family: ESP32 + # - yaml_file: boneio-cover_mix_lights_v0_7.yaml + # chip_family: ESP32 + # - yaml_file: boneio-cover_mix_switches_v0_7.yaml + # chip_family: ESP32 + # - yaml_file: boneio-8x10A_gen2_lights-v0_1.yaml + # chip_family: ESP32-S3 + # - yaml_file: boneio-mosfet48_lights_v0_7.yaml + # chip_family: ESP32 steps: - name: Checkout repository From fbbd0802e09d56e4a23d7abc4eb8afd66408cc51 Mon Sep 17 00:00:00 2001 From: pszafer Date: Mon, 26 Jan 2026 14:34:29 +0100 Subject: [PATCH 6/7] rename packages to packages-v1.7.2 --- .github/workflows/build-firmware.yml | 108 ++------ boneio-24x16_switches_v0_5-v0_6.yaml | 2 +- boneio-24x16_switches_v0_7.yaml | 2 +- boneio-32x10_lights_v0_5-v0_6.yaml | 2 +- boneio-32x10_lights_v0_7.yaml | 2 +- boneio-32x10_switches_v0_4.yaml | 2 +- boneio-32x10_switches_v0_5-v0_6.yaml | 2 +- boneio-32x10_switches_v0_7.yaml | 2 +- boneio-8x10A_gen2_lights-v0_1.yaml | 2 +- boneio-cover_mix_lights_v0_5-v0_6.yaml | 2 +- boneio-cover_mix_lights_v0_7.yaml | 2 +- boneio-cover_mix_switches_v0_5-v0_6.yaml | 2 +- boneio-cover_mix_switches_v0_7.yaml | 2 +- boneio-cover_v0_5-v0_6.yaml | 2 +- boneio-cover_v0_7.yaml | 2 +- boneio-dimmer_2rgbw-v0_3.yaml | 2 +- boneio-dimmer_4cct-v0_3.yaml | 2 +- boneio-dimmer_8ch-v0_3.yaml | 2 +- boneio-dimmer_8ch-v0_4.yaml | 2 +- boneio-dimmer_gen2_2rgbw-v0_1.yaml | 2 +- boneio-dimmer_gen2_4cct-v0_1.yaml | 2 +- boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml | 2 +- boneio-dimmer_gen2_8ch-dev0_4.yaml | 315 ++++++++++++++++++++++- boneio-dimmer_gen2_8ch-v0_1.yaml | 2 +- boneio-mosfet48_lights_v0_7.yaml | 2 +- boneio-mosfet48_switches_v0_7.yaml | 2 +- dev-boneio-32x10_lights_v0_9.yaml | 2 +- dev-boneio-8x10A-adc.yaml | 2 +- dev-boneio-gen2-32x10_lights_v0_1.yaml | 2 +- dev-boneio-ps01.yaml | 2 +- dimmer-dev1.yaml | 2 +- dimmer_gen2_can.yaml | 2 +- 32 files changed, 362 insertions(+), 121 deletions(-) mode change 120000 => 100644 boneio-dimmer_gen2_8ch-dev0_4.yaml diff --git a/.github/workflows/build-firmware.yml b/.github/workflows/build-firmware.yml index 40cacaa..324880a 100644 --- a/.github/workflows/build-firmware.yml +++ b/.github/workflows/build-firmware.yml @@ -11,9 +11,6 @@ on: required: true default: '2026.1.2' -env: - ESPHOME_VERSION: "2026.1.2" - jobs: build: runs-on: ubuntu-latest @@ -22,69 +19,34 @@ jobs: include: # Testing with single firmware first - yaml_file: boneio-dimmer_gen2_8ch-v0_1.yaml - chip_family: ESP32-S3 # Uncomment below after testing: # - yaml_file: boneio-dimmer_gen2_2rgbw-v0_1.yaml - # chip_family: ESP32-S3 # - yaml_file: boneio-32x10_lights_v0_7.yaml - # chip_family: ESP32 # - yaml_file: boneio-32x10_switches_v0_7.yaml - # chip_family: ESP32 # - yaml_file: boneio-24x16_switches_v0_7.yaml - # chip_family: ESP32 # - yaml_file: boneio-cover_v0_7.yaml - # chip_family: ESP32 # - yaml_file: boneio-cover_mix_lights_v0_7.yaml - # chip_family: ESP32 # - yaml_file: boneio-cover_mix_switches_v0_7.yaml - # chip_family: ESP32 # - yaml_file: boneio-8x10A_gen2_lights-v0_1.yaml - # chip_family: ESP32-S3 # - yaml_file: boneio-mosfet48_lights_v0_7.yaml - # chip_family: ESP32 steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Install ESPHome - run: pip install esphome==${{ env.ESPHOME_VERSION }} - - name: Build firmware - run: esphome compile ${{ matrix.yaml_file }} - - - name: Get firmware name from YAML - id: get_name - run: | - NAME=$(grep -m1 'name:' ${{ matrix.yaml_file }} | sed 's/.*name:\s*//' | tr -d ' ') - echo "firmware_name=$NAME" >> $GITHUB_OUTPUT - echo "chip_family=${{ matrix.chip_family }}" >> $GITHUB_OUTPUT - - - name: Copy firmware to output - run: | - mkdir -p output - FIRMWARE_NAME="${{ steps.get_name.outputs.firmware_name }}" - cp .esphome/build/${FIRMWARE_NAME}/.pioenvs/${FIRMWARE_NAME}/firmware.factory.bin output/${FIRMWARE_NAME}.bin + uses: esphome/build-action@v4 + id: esphome-build + with: + yaml-file: ${{ matrix.yaml_file }} + version: latest + complete-manifest: true - name: Upload firmware artifact uses: actions/upload-artifact@v4 with: - name: firmware-${{ steps.get_name.outputs.firmware_name }} - path: output/*.bin - - - name: Upload chip family info - run: echo "${{ matrix.chip_family }}" > output/${{ steps.get_name.outputs.firmware_name }}.chip - - - name: Upload chip info artifact - uses: actions/upload-artifact@v4 - with: - name: chip-${{ steps.get_name.outputs.firmware_name }} - path: output/*.chip + name: firmware-${{ steps.esphome-build.outputs.original-name }} + path: ${{ steps.esphome-build.outputs.name }} deploy: needs: build @@ -95,9 +57,6 @@ jobs: id-token: write steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Download firmware artifacts uses: actions/download-artifact@v4 with: @@ -105,13 +64,6 @@ jobs: pattern: firmware-* merge-multiple: true - - name: Download chip info artifacts - uses: actions/download-artifact@v4 - with: - path: chip-info - pattern: chip-* - merge-multiple: true - - name: Get version id: version run: | @@ -124,38 +76,14 @@ jobs: - name: Prepare GitHub Pages content run: | mkdir -p gh-pages/firmware - cp artifacts/*.bin gh-pages/firmware/ - # Generate manifest JSON files for ESP Web Tools - for bin in gh-pages/firmware/*.bin; do - FIRMWARE_NAME=$(basename "$bin" .bin) - CHIP_FAMILY="ESP32" - if [ -f "chip-info/${FIRMWARE_NAME}.chip" ]; then - CHIP_FAMILY=$(cat "chip-info/${FIRMWARE_NAME}.chip") - elif [[ "$FIRMWARE_NAME" == *"gen2"* ]]; then - CHIP_FAMILY="ESP32-S3" - fi - - cat > gh-pages/${FIRMWARE_NAME}.json << EOF - { - "name": "boneIO ESPHome", - "version": "${{ steps.version.outputs.version }}", - "home_assistant_domain": "esphome", - "funding_url": "https://esphome.io/guides/supporters.html", - "new_install_prompt_erase": false, - "builds": [ - { - "chipFamily": "${CHIP_FAMILY}", - "parts": [ - { - "path": "firmware/${FIRMWARE_NAME}.bin", - "offset": 0 - } - ] - } - ] - } - EOF + # esphome/build-action outputs: name/, name/manifest.json, name/*.bin + for dir in artifacts/*/; do + NAME=$(basename "$dir") + # Copy firmware binary + cp "$dir"*.bin gh-pages/firmware/ + # Copy manifest and rename to firmware name + cp "$dir"manifest.json gh-pages/${NAME}.json done # Create version file @@ -170,8 +98,8 @@ jobs:

boneIO ESPHome Firmware

    EOF - for bin in gh-pages/firmware/*.bin; do - NAME=$(basename "$bin" .bin) + for json in gh-pages/*.json; do + NAME=$(basename "$json" .json) echo "
  • ${NAME}
  • " >> gh-pages/index.html done cat >> gh-pages/index.html << 'EOF' @@ -192,5 +120,5 @@ jobs: with: tag_name: v${{ steps.version.outputs.version }} name: Firmware v${{ steps.version.outputs.version }} - files: artifacts/*.bin + files: gh-pages/firmware/*.bin generate_release_notes: true diff --git a/boneio-24x16_switches_v0_5-v0_6.yaml b/boneio-24x16_switches_v0_5-v0_6.yaml index 64eab0f..79d85d3 100644 --- a/boneio-24x16_switches_v0_5-v0_6.yaml +++ b/boneio-24x16_switches_v0_5-v0_6.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-24x16_switches_v0_7.yaml b/boneio-24x16_switches_v0_7.yaml index 76b8c0a..aaa39b6 100644 --- a/boneio-24x16_switches_v0_7.yaml +++ b/boneio-24x16_switches_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-32x10_lights_v0_5-v0_6.yaml b/boneio-32x10_lights_v0_5-v0_6.yaml index d183aea..779f4bd 100644 --- a/boneio-32x10_lights_v0_5-v0_6.yaml +++ b/boneio-32x10_lights_v0_5-v0_6.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-32x10_lights_v0_7.yaml b/boneio-32x10_lights_v0_7.yaml index 7faf6e6..40b0cda 100644 --- a/boneio-32x10_lights_v0_7.yaml +++ b/boneio-32x10_lights_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-32x10_switches_v0_4.yaml b/boneio-32x10_switches_v0_4.yaml index 0adbf82..cd6eb1c 100644 --- a/boneio-32x10_switches_v0_4.yaml +++ b/boneio-32x10_switches_v0_4.yaml @@ -35,7 +35,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', 'devices_v0_4/display.yaml', diff --git a/boneio-32x10_switches_v0_5-v0_6.yaml b/boneio-32x10_switches_v0_5-v0_6.yaml index fe3d9f6..8f4a29c 100644 --- a/boneio-32x10_switches_v0_5-v0_6.yaml +++ b/boneio-32x10_switches_v0_5-v0_6.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-32x10_switches_v0_7.yaml b/boneio-32x10_switches_v0_7.yaml index 29e4dfc..799a74d 100644 --- a/boneio-32x10_switches_v0_7.yaml +++ b/boneio-32x10_switches_v0_7.yaml @@ -40,7 +40,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-8x10A_gen2_lights-v0_1.yaml b/boneio-8x10A_gen2_lights-v0_1.yaml index 7ac2e15..f733975 100644 --- a/boneio-8x10A_gen2_lights-v0_1.yaml +++ b/boneio-8x10A_gen2_lights-v0_1.yaml @@ -98,7 +98,7 @@ output: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', ] diff --git a/boneio-cover_mix_lights_v0_5-v0_6.yaml b/boneio-cover_mix_lights_v0_5-v0_6.yaml index 5aaeefa..114550e 100644 --- a/boneio-cover_mix_lights_v0_5-v0_6.yaml +++ b/boneio-cover_mix_lights_v0_5-v0_6.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-cover_mix_lights_v0_7.yaml b/boneio-cover_mix_lights_v0_7.yaml index 822b354..ed67817 100644 --- a/boneio-cover_mix_lights_v0_7.yaml +++ b/boneio-cover_mix_lights_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-cover_mix_switches_v0_5-v0_6.yaml b/boneio-cover_mix_switches_v0_5-v0_6.yaml index 234c2c9..5f31ecc 100644 --- a/boneio-cover_mix_switches_v0_5-v0_6.yaml +++ b/boneio-cover_mix_switches_v0_5-v0_6.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-cover_mix_switches_v0_7.yaml b/boneio-cover_mix_switches_v0_7.yaml index 274762d..b82c168 100644 --- a/boneio-cover_mix_switches_v0_7.yaml +++ b/boneio-cover_mix_switches_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-cover_v0_5-v0_6.yaml b/boneio-cover_v0_5-v0_6.yaml index 9b84d87..a5bd7c3 100644 --- a/boneio-cover_v0_5-v0_6.yaml +++ b/boneio-cover_v0_5-v0_6.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-cover_v0_7.yaml b/boneio-cover_v0_7.yaml index c7a4b07..8d9f644 100644 --- a/boneio-cover_v0_7.yaml +++ b/boneio-cover_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-dimmer_2rgbw-v0_3.yaml b/boneio-dimmer_2rgbw-v0_3.yaml index f76685f..5ab2eda 100644 --- a/boneio-dimmer_2rgbw-v0_3.yaml +++ b/boneio-dimmer_2rgbw-v0_3.yaml @@ -23,7 +23,7 @@ external_components: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', diff --git a/boneio-dimmer_4cct-v0_3.yaml b/boneio-dimmer_4cct-v0_3.yaml index ade97c4..97e448f 100644 --- a/boneio-dimmer_4cct-v0_3.yaml +++ b/boneio-dimmer_4cct-v0_3.yaml @@ -23,7 +23,7 @@ external_components: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', diff --git a/boneio-dimmer_8ch-v0_3.yaml b/boneio-dimmer_8ch-v0_3.yaml index df60a4a..fb3b47a 100644 --- a/boneio-dimmer_8ch-v0_3.yaml +++ b/boneio-dimmer_8ch-v0_3.yaml @@ -23,7 +23,7 @@ external_components: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', diff --git a/boneio-dimmer_8ch-v0_4.yaml b/boneio-dimmer_8ch-v0_4.yaml index ee17ae2..cde44fe 100644 --- a/boneio-dimmer_8ch-v0_4.yaml +++ b/boneio-dimmer_8ch-v0_4.yaml @@ -96,7 +96,7 @@ modbus: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', # 'devices/dimmer_i2c.yaml', diff --git a/boneio-dimmer_gen2_2rgbw-v0_1.yaml b/boneio-dimmer_gen2_2rgbw-v0_1.yaml index 9a08b7d..48181ce 100644 --- a/boneio-dimmer_gen2_2rgbw-v0_1.yaml +++ b/boneio-dimmer_gen2_2rgbw-v0_1.yaml @@ -106,7 +106,7 @@ output: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', ] diff --git a/boneio-dimmer_gen2_4cct-v0_1.yaml b/boneio-dimmer_gen2_4cct-v0_1.yaml index 10e0a14..ed49f96 100644 --- a/boneio-dimmer_gen2_4cct-v0_1.yaml +++ b/boneio-dimmer_gen2_4cct-v0_1.yaml @@ -106,7 +106,7 @@ output: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', ] diff --git a/boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml b/boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml index 69ccd60..698b5af 100644 --- a/boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml +++ b/boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml @@ -110,7 +110,7 @@ modbus: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', # 'devices/dimmer_i2c.yaml', diff --git a/boneio-dimmer_gen2_8ch-dev0_4.yaml b/boneio-dimmer_gen2_8ch-dev0_4.yaml deleted file mode 120000 index 2f3312c..0000000 --- a/boneio-dimmer_gen2_8ch-dev0_4.yaml +++ /dev/null @@ -1 +0,0 @@ -boneio-dimmer_gen2_8ch-v0_1.yaml \ No newline at end of file diff --git a/boneio-dimmer_gen2_8ch-dev0_4.yaml b/boneio-dimmer_gen2_8ch-dev0_4.yaml new file mode 100644 index 0000000..d245615 --- /dev/null +++ b/boneio-dimmer_gen2_8ch-dev0_4.yaml @@ -0,0 +1,314 @@ +substitutions: + name: boneio-dr-gen2-8ch-01 + friendly_name: 'BoneIO Dimmer Gen2' + serial_prefix: 'dim2' #Don't change it. + firmware_manifest: 'https://boneio.eu/fwesp/boneio-dr-gen2-8ch-01.json' +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: true + project: + name: boneio.dimmer-led-gen2 + version: '0.1' + on_boot: + priority: -100 + then: + - delay: 5s + - if: + condition: + lambda: 'return id(serial_no) != nullptr;' + then: + - component.update: serial_no + - logger.log: "Serial No updated on boot" + else: + - logger.log: "Serial No component not found" + +esp32: + board: esp32-s3-devkitc-1 + framework: + type: esp-idf + +ethernet: + id: eth + type: W5500 + clk_pin: GPIO13 + mosi_pin: GPIO39 + miso_pin: GPIO38 + cs_pin: GPIO12 + interrupt_pin: GPIO2 + reset_pin: GPIO1 + clock_speed: 25MHz + +i2c: + sda: GPIO10 + scl: GPIO11 + scan: True + frequency: 400kHz + + + +output: + - platform: ledc + pin: GPIO18 + frequency: 1000Hz + inverted: false + id: chl01 + - platform: ledc + pin: GPIO17 + frequency: 1000Hz + inverted: false + id: chl02 + - platform: ledc + pin: GPIO16 + frequency: 1000Hz + inverted: false + id: chl03 + - platform: ledc + pin: GPIO15 + frequency: 1000Hz + inverted: false + id: chl04 + + - platform: ledc + pin: GPIO7 + frequency: 1000Hz + inverted: false + id: chr01 + - platform: ledc + pin: GPIO6 + frequency: 1000Hz + inverted: false + id: chr02 + - platform: ledc + pin: GPIO5 + frequency: 1000Hz + inverted: false + id: chr03 + - platform: ledc + pin: GPIO4 + frequency: 1000Hz + inverted: false + id: chr04 + + +# CAN gpio48 - tx, gpio47 rx, gpio35 stb +# uart: +# id: boneio_uart +# rx_pin: GPIO21 +# tx_pin: GPIO14 +# baud_rate: 9600 +# stop_bits: 1 +# modbus: +# send_wait_time: 80ms +# uart_id: boneio_uart +# id: boneio_modbus + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: packages-v1.7.2 + files: [ + 'devices/serial_no.yaml', + ] + # boneiopackages: + # url: https://github.com/boneIO-eu/esphome_packages + # ref: main + # refresh: 1min + # files: + # - path: sdm630.yaml + +dashboard_import: + package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_8ch-v0_1.yaml@main + import_full_config: true + +pcf8574: + - id: 'pcf_inputs' + address: 0x38 + +logger: + hardware_uart: UART0 +api: + reboot_timeout: 0s +ota: + - platform: esphome + - platform: web_server + +web_server: + port: 80 + version: 3 + local: true + + +light: + - platform: monochromatic + output: chl01 + name: 'CHL 01' + id: chl_01 + default_transition_length: 2s + gamma_correct: 0 + - platform: monochromatic + output: chl02 + name: 'CHL 02' + id: chl_02 + default_transition_length: 2s + gamma_correct: 0 + - platform: monochromatic + output: chl03 + name: 'CHL 03' + id: chl_03 + default_transition_length: 2s + gamma_correct: 0 + - platform: monochromatic + output: chl04 + name: 'CHL 04' + id: chl_04 + default_transition_length: 2s + gamma_correct: 0 + + - platform: monochromatic + output: chr01 + name: 'CHR 01' + id: chr_01 + default_transition_length: 2s + gamma_correct: 0 + - platform: monochromatic + output: chr02 + name: 'CHR 02' + id: chr_02 + default_transition_length: 2s + gamma_correct: 0 + - platform: monochromatic + output: chr03 + name: 'CHR 03' + id: chr_03 + default_transition_length: 2s + gamma_correct: 0 + - platform: monochromatic + output: chr04 + name: 'CHR 04' + id: chr_04 + default_transition_length: 2s + gamma_correct: 0 + +debug: + update_interval: 15s + +sensor: + - platform: debug + free: + name: "Heap Free" + block: + name: "Heap Max Block" + loop_time: + name: "Loop Time" + - platform: lm75b + id: boneIO_temp + name: 'Temperature' + update_interval: 30s + entity_category: diagnostic + on_value_range: + - above: 70.0 + then: + - switch.turn_on: buzzer + - below: 70.0 + then: + - switch.turn_off: buzzer + +switch: + - platform: gpio + id: buzzer + name: 'Buzzer' + pin: + number: GPIO9 + mode: + output: true + inverted: false + - platform: gpio + id: can_bus_switch + name: 'CAN Bus Switch' + pin: + number: GPIO35 + mode: + output: true + inverted: false + +binary_sensor: + - platform: gpio + name: 'IN_01' + id: in_01 + pin: + pcf8574: pcf_inputs + number: 0 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_02' + id: in_02 + pin: + pcf8574: pcf_inputs + number: 1 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_03' + id: in_03 + pin: + pcf8574: pcf_inputs + number: 2 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_04' + id: in_04 + pin: + pcf8574: pcf_inputs + number: 3 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_05' + id: in_05 + pin: + pcf8574: pcf_inputs + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_06' + id: in_06 + pin: + pcf8574: pcf_inputs + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_07' + id: in_07 + pin: + pcf8574: pcf_inputs + number: 6 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_08' + id: in_08 + pin: + pcf8574: pcf_inputs + number: 7 + mode: + input: true + inverted: true \ No newline at end of file diff --git a/boneio-dimmer_gen2_8ch-v0_1.yaml b/boneio-dimmer_gen2_8ch-v0_1.yaml index 0ce0071..d245615 100644 --- a/boneio-dimmer_gen2_8ch-v0_1.yaml +++ b/boneio-dimmer_gen2_8ch-v0_1.yaml @@ -106,7 +106,7 @@ output: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', ] diff --git a/boneio-mosfet48_lights_v0_7.yaml b/boneio-mosfet48_lights_v0_7.yaml index c9ba97f..aecb4aa 100644 --- a/boneio-mosfet48_lights_v0_7.yaml +++ b/boneio-mosfet48_lights_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/boneio-mosfet48_switches_v0_7.yaml b/boneio-mosfet48_switches_v0_7.yaml index e4f8abd..05efdb2 100644 --- a/boneio-mosfet48_switches_v0_7.yaml +++ b/boneio-mosfet48_switches_v0_7.yaml @@ -34,7 +34,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/dev-boneio-32x10_lights_v0_9.yaml b/dev-boneio-32x10_lights_v0_9.yaml index fc8b368..ced4ce2 100644 --- a/dev-boneio-32x10_lights_v0_9.yaml +++ b/dev-boneio-32x10_lights_v0_9.yaml @@ -30,7 +30,7 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', diff --git a/dev-boneio-8x10A-adc.yaml b/dev-boneio-8x10A-adc.yaml index 831bd95..2cf4eb6 100644 --- a/dev-boneio-8x10A-adc.yaml +++ b/dev-boneio-8x10A-adc.yaml @@ -71,7 +71,7 @@ modbus: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', ] diff --git a/dev-boneio-gen2-32x10_lights_v0_1.yaml b/dev-boneio-gen2-32x10_lights_v0_1.yaml index 010dbb3..2e93f99 100644 --- a/dev-boneio-gen2-32x10_lights_v0_1.yaml +++ b/dev-boneio-gen2-32x10_lights_v0_1.yaml @@ -76,7 +76,7 @@ gp8403: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml' ] diff --git a/dev-boneio-ps01.yaml b/dev-boneio-ps01.yaml index de3740c..1bdba4f 100644 --- a/dev-boneio-ps01.yaml +++ b/dev-boneio-ps01.yaml @@ -71,7 +71,7 @@ ld2412: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', ] diff --git a/dimmer-dev1.yaml b/dimmer-dev1.yaml index 67496f6..e655669 100644 --- a/dimmer-dev1.yaml +++ b/dimmer-dev1.yaml @@ -97,7 +97,7 @@ output: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [ 'devices/serial_no.yaml', # 'devices/dimmer_i2c.yaml', diff --git a/dimmer_gen2_can.yaml b/dimmer_gen2_can.yaml index bd81ee6..2cb5121 100644 --- a/dimmer_gen2_can.yaml +++ b/dimmer_gen2_can.yaml @@ -110,7 +110,7 @@ output: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.7.1 + ref: packages-v1.7.2 files: [devices/serial_no.yaml] dashboard_import: From ef8bc33eb58725c0e486fa1b06fb237ebfec0dad Mon Sep 17 00:00:00 2001 From: pszafer Date: Mon, 26 Jan 2026 14:37:20 +0100 Subject: [PATCH 7/7] Add symlink for backward compatibility --- boneio-8x10A_gen2-v0_1.yaml | 1 + 1 file changed, 1 insertion(+) create mode 120000 boneio-8x10A_gen2-v0_1.yaml diff --git a/boneio-8x10A_gen2-v0_1.yaml b/boneio-8x10A_gen2-v0_1.yaml new file mode 120000 index 0000000..a9464be --- /dev/null +++ b/boneio-8x10A_gen2-v0_1.yaml @@ -0,0 +1 @@ +boneio-8x10A_gen2_lights-v0_1.yaml \ No newline at end of file