From 08db63a36f11c5b8d75e5c7edb13205c1cd1b86c Mon Sep 17 00:00:00 2001 From: pszafer Date: Mon, 10 Mar 2025 09:40:33 +0100 Subject: [PATCH 1/8] note about dev version --- boneio-dimmer_8ch-v0_4.yaml | 387 ++++++++++++++++++ ....yaml => dev-boneio-32x10_lights_v0_9.yaml | 97 ++++- dimmer-dev1.yaml | 308 ++++++++++++++ dimmer-dev2.yaml | 289 +++++++++++++ 4 files changed, 1064 insertions(+), 17 deletions(-) create mode 100644 boneio-dimmer_8ch-v0_4.yaml rename boneio-32x10_lights_v0_9.yaml => dev-boneio-32x10_lights_v0_9.yaml (86%) create mode 100644 dimmer-dev1.yaml create mode 100644 dimmer-dev2.yaml diff --git a/boneio-dimmer_8ch-v0_4.yaml b/boneio-dimmer_8ch-v0_4.yaml new file mode 100644 index 0000000..1dc3a42 --- /dev/null +++ b/boneio-dimmer_8ch-v0_4.yaml @@ -0,0 +1,387 @@ +substitutions: + name: boneio-dr-8ch-04 + friendly_name: 'BoneIO Dimmer LED' + serial_prefix: 'dim' #Don't change it. + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: true + project: + name: boneio.dimmer-led + version: '0.4' + +esp32: + board: esp32-s3-devkitc-1 + +ethernet: + id: eth + type: W5500 + clk_pin: GPIO12 + mosi_pin: GPIO14 + miso_pin: GPIO13 + cs_pin: GPIO39 + interrupt_pin: GPIO21 + reset_pin: GPIO38 + +external_components: + - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 + components: [lm75] + +i2c: + sda: GPIO11 + scl: GPIO10 + scan: True + frequency: 400kHz + +uart: + id: uart_pin8_9 + rx_pin: GPIO8 + tx_pin: GPIO9 + baud_rate: 9600 + stop_bits: 1 + +output: + - platform: ledc + pin: GPIO4 + frequency: 1000Hz + inverted: false + id: chl01 + - platform: ledc + pin: GPIO5 + frequency: 1000Hz + inverted: false + id: chl02 + - platform: ledc + pin: GPIO6 + frequency: 1000Hz + inverted: false + id: chl03 + - platform: ledc + pin: GPIO7 + frequency: 1000Hz + inverted: false + id: chl04 + + - platform: ledc + pin: GPIO15 + frequency: 1000Hz + inverted: false + id: chr01 + - platform: ledc + pin: GPIO16 + frequency: 1000Hz + inverted: false + id: chr02 + - platform: ledc + pin: GPIO17 + frequency: 1000Hz + inverted: false + id: chr03 + - platform: ledc + pin: GPIO18 + frequency: 1000Hz + inverted: false + id: chr04 + + ##CAN gpio1 - tx, gpio2 rx + +modbus: + send_wait_time: 200ms + uart_id: uart_pin8_9 + id: boneio_modbus + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.5.0 + files: [ + 'devices/serial_no.yaml', + # 'devices/dimmer_i2c.yaml', + # 'devices/dimmer_ina219.yaml', + # 'boards/dimmer_output.yaml', + ] + +# dashboard_import: +# package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest +# import_full_config: true + +pcf8574: + - id: 'pcf_inputs' + address: 0x38 + +logger: +api: + reboot_timeout: 0s +ota: + - platform: esphome + +web_server: + port: 80 + local: true + +text_sensor: + - platform: version + name: 'boneio-dimmer- Version' + icon: mdi:cube-outline + entity_category: diagnostic + - platform: ethernet_info + ip_address: + entity_category: diagnostic + name: boneio-dimmer IP + - platform: template + name: 'Hostname' + id: hostname + entity_category: diagnostic + lambda: |- + return id(eth).get_use_address(); + update_interval: 5min + +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 + - platform: template + name: CAN Bus Button + id: can_bus_button + +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 + +sensor: + - platform: lm75 + 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: max9611 + shunt_resistance: 0.005 ohm + gain: '1X' + voltage: + name: CHL Voltage + current: + name: CHLCurrent + power: + name: CHL Watts + temperature: + name: CHL Temperature + address: 0x70 + update_interval: 10s + + - platform: max9611 + shunt_resistance: 0.005 ohm + gain: '1X' + voltage: + name: CHR Voltage + current: + name: CHR Current + power: + name: CHR Watts + temperature: + name: CHR Temperature + address: 0x73 + update_interval: 10s + - platform: modbus_controller + modbus_controller_id: sht20 + name: 'Temperature' + register_type: read + address: 1 + unit_of_measurement: '°C' + device_class: 'temperature' + state_class: 'measurement' + value_type: S_WORD + accuracy_decimals: 2 + filters: + - multiply: 0.1 + - platform: modbus_controller + modbus_controller_id: sht20 + name: 'Humidity' + register_type: read + address: 2 + unit_of_measurement: '%' + device_class: 'humidity' + state_class: 'measurement' + value_type: S_WORD + accuracy_decimals: 2 + filters: + - multiply: 0.1 + +switch: + - platform: gpio + id: buzzer + name: 'Buzzer' + pin: + number: GPIO42 + mode: + output: true + inverted: true + +modbus_controller: + - id: sht20 + address: 62 + modbus_id: boneio_modbus + setup_priority: -10 + update_interval: 20s + +canbus: + - platform: esp32_can + tx_pin: GPIO01 + rx_pin: GPIO02 + can_id: 4 + bit_rate: 50kbps + on_frame: + - can_id: 5 + then: + - lambda: |- + if(x.size() > 0) { + switch(x[0]) { + case 0x12: // button release + id(can_bus_button).publish_state(false); + break; + case 0x11: // button press + id(can_bus_button).publish_state(true); + break; + } + } +button: + - platform: template + name: 'CAN Sensor ON' + on_press: + - logger.log: Button Pressed + - canbus.send: [0x11, 0x22, 0x33] + - platform: template + name: 'CAN Sensor OFF' + on_press: + - logger.log: Button Pressed + - canbus.send: [0x12, 0x22, 0x33] diff --git a/boneio-32x10_lights_v0_9.yaml b/dev-boneio-32x10_lights_v0_9.yaml similarity index 86% rename from boneio-32x10_lights_v0_9.yaml rename to dev-boneio-32x10_lights_v0_9.yaml index b37c9b8..7fd6623 100644 --- a/boneio-32x10_lights_v0_9.yaml +++ b/dev-boneio-32x10_lights_v0_9.yaml @@ -9,7 +9,7 @@ esphome: name_add_mac_suffix: true project: name: boneio.32x10-lights - version: '0.9' + version: 'dev0.9' esp32: board: nodemcu-32s @@ -63,6 +63,9 @@ api: reboot_timeout: 0s ota: - platform: esphome + - platform: http_request + name: Firmware Update + source: https://boneio.eu/esp/ web_server: port: 80 @@ -646,25 +649,85 @@ binary_sensor: mode: input: true inverted: true + - platform: template + name: CAN Bus Button + id: can_bus_button ###################### ### MODBUS SECTION ### ###################### # UNCOMMENT BELOW TO USE MODBUS -# uart: -# id: uart_pin14_15 -# rx_pin: GPIO14 -# tx_pin: GPIO15 -# baud_rate: 9600 -# stop_bits: 1 +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: + 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 +modbus_controller: + - id: sht20 + address: 62 + modbus_id: boneio_modbus + setup_priority: -10 + update_interval: 20s +sensor: + - platform: modbus_controller + modbus_controller_id: sht20 + name: 'Temperature' + register_type: read + address: 1 + unit_of_measurement: '°C' + device_class: 'temperature' + state_class: 'measurement' + value_type: S_WORD + accuracy_decimals: 2 + filters: + - multiply: 0.1 + - platform: modbus_controller + modbus_controller_id: sht20 + name: 'Humidity' + register_type: read + address: 2 + unit_of_measurement: '%' + device_class: 'humidity' + state_class: 'measurement' + value_type: S_WORD + accuracy_decimals: 2 + filters: + - multiply: 0.1 + +canbus: + - platform: esp32_can + tx_pin: GPIO05 + rx_pin: GPIO04 + can_id: 5 + bit_rate: 50kbps + on_frame: + - can_id: 4 + then: + - lambda: |- + if(x.size() > 0) { + switch(x[0]) { + case 0x12: // button release + id(can_bus_button).publish_state(false); + break; + case 0x11: // button press + id(can_bus_button).publish_state(true); + break; + } + } +button: + - platform: template + name: 'CAN Sensor ON' + on_press: + - logger.log: Button Pressed + - canbus.send: [0x11, 0x22, 0x33] + - platform: template + name: 'CAN Sensor OFF' + on_press: + - logger.log: Button Pressed + - canbus.send: [0x12, 0x22, 0x33] diff --git a/dimmer-dev1.yaml b/dimmer-dev1.yaml new file mode 100644 index 0000000..2a6acfe --- /dev/null +++ b/dimmer-dev1.yaml @@ -0,0 +1,308 @@ +substitutions: + name: boneio-dev01 + friendly_name: 'BoneIO Dimmer dev0.1' + serial_prefix: 'dim' #Don't change it. + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: false + project: + name: boneio.dimmer-led + version: 'dev0.1' + +esp32: + board: esp32-s3-devkitc-1 + + +ethernet: + id: eth + type: W5500 + clk_pin: GPIO14 + mosi_pin: GPIO12 + miso_pin: GPIO13 + cs_pin: GPIO21 + interrupt_pin: GPIO38 + reset_pin: GPIO39 + + # Enable fallback hotspot (captive portal) in case wifi connection fails + +external_components: + - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 + components: [lm75] + +i2c: + sda: GPIO10 + scl: GPIO11 + scan: True + frequency: 400kHz + +uart: + id: uart_pin + rx_pin: GPIO48 + tx_pin: GPIO47 + baud_rate: 9600 + stop_bits: 1 + +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 gpio1 - tx, gpio2 rx + +# modbus: +# send_wait_time: 200ms +# uart_id: uart_pin8_9 +# id: boneio_modbus + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.5.0 + files: [ + 'devices/serial_no.yaml', + # 'devices/dimmer_i2c.yaml', + #'devices/dimmer_ina219.yaml', + ] + +# dashboard_import: +# package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest +# import_full_config: true + +pcf8574: + - id: 'pcf_inputs' + address: 0x38 + +logger: +api: + reboot_timeout: 0s +ota: + - platform: esphome + +web_server: + port: 80 + 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 + +sensor: + - platform: lm75 + 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: max9611 + shunt_resistance: 0.005 ohm + gain: '1X' + voltage: + name: CHL Voltage + current: + name: CHLCurrent + power: + name: CHL Watts + temperature: + name: CHL Temperature + address: 0x70 + update_interval: 10s + + - platform: max9611 + shunt_resistance: 0.005 ohm + gain: '1X' + voltage: + name: CHR Voltage + current: + name: CHR Current + power: + name: CHR Watts + temperature: + name: CHR Temperature + address: 0x73 + update_interval: 10s +switch: + - platform: gpio + id: buzzer + name: 'Buzzer' + pin: + number: GPIO42 + 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/dimmer-dev2.yaml b/dimmer-dev2.yaml new file mode 100644 index 0000000..d2de43b --- /dev/null +++ b/dimmer-dev2.yaml @@ -0,0 +1,289 @@ +substitutions: + name: boneio-dev02 + friendly_name: 'BoneIO Dimmer dev0.2' + serial_prefix: 'dim' #Don't change it. + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: false + project: + name: boneio.dimmer-led + version: 'dev0.2' + +esp32: + board: esp32-s3-devkitc-1 + + +ethernet: + id: eth + type: W5500 + clk_pin: GPIO12 + mosi_pin: GPIO39 + miso_pin: GPIO38 + cs_pin: GPIO13 + interrupt_pin: GPIO2 + reset_pin: GPIO1 + # Enable fallback hotspot (captive portal) in case wifi connection fails + +external_components: + - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 + components: [lm75] + +i2c: + sda: GPIO10 + scl: GPIO11 + scan: True + frequency: 400kHz + +uart: + id: uart_pin + rx_pin: GPIO14 + tx_pin: GPIO21 + baud_rate: 9600 + stop_bits: 1 + +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 gpio1 - tx, gpio2 rx + +# modbus: +# send_wait_time: 200ms +# uart_id: uart_pin8_9 +# id: boneio_modbus + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.5.0 + files: [ + 'devices/serial_no.yaml', + # 'devices/dimmer_i2c.yaml', + ] + +# dashboard_import: +# package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest +# import_full_config: true + +pcf8574: + - id: 'pcf_inputs' + address: 0x38 + +logger: +api: + reboot_timeout: 0s +ota: + - platform: esphome + +web_server: + port: 80 + 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: lm75 + 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 + +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 From ebbcc61699ce619cb6e34ccd1a66b5a99cba7a97 Mon Sep 17 00:00:00 2001 From: pszafer Date: Tue, 17 Jun 2025 14:35:44 +0200 Subject: [PATCH 2/8] Dimmer gen2 dev0_4 --- .vscode/settings.json | 3 + boneio-dimmer_g2_8ch-dev0_4.yaml | 302 ++++++++++++++++++ configuration/.gitignore | 5 + .../dimmer-dev2.yaml | 27 +- create_firmware.py | 4 +- 5 files changed, 326 insertions(+), 15 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 boneio-dimmer_g2_8ch-dev0_4.yaml create mode 100644 configuration/.gitignore rename dimmer-dev2.yaml => configuration/dimmer-dev2.yaml (94%) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ff5300e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.languageServer": "None" +} \ No newline at end of file diff --git a/boneio-dimmer_g2_8ch-dev0_4.yaml b/boneio-dimmer_g2_8ch-dev0_4.yaml new file mode 100644 index 0000000..04d30bc --- /dev/null +++ b/boneio-dimmer_g2_8ch-dev0_4.yaml @@ -0,0 +1,302 @@ +substitutions: + name: boneio-dr-gen2-8ch-dev04 + friendly_name: 'BoneIO Dimmer dev0.4' + serial_prefix: 'dim' #Don't change it. + firmware_manifest: 'https://boneio.eu/esp/boneio-dr-gen2-8ch-dev04.json' +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: false + project: + name: boneio.dimmer-led-gen2 + version: 'dev0.4' + +esp32: + board: esp32-s3-devkitc-1 + +ethernet: + id: eth + type: W5500 + clk_pin: GPIO12 + mosi_pin: GPIO39 + miso_pin: GPIO38 + cs_pin: GPIO13 + interrupt_pin: GPIO2 + reset_pin: GPIO1 + # Enable fallback hotspot (captive portal) in case wifi connection fails + +external_components: + - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 + components: [lm75] + +i2c: + sda: GPIO10 + scl: GPIO11 + scan: True + frequency: 400kHz + +uart: + id: boneio_uart + rx_pin: GPIO21 + tx_pin: GPIO14 + baud_rate: 9600 + stop_bits: 1 + +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 gpio1 - tx, gpio2 rx + +modbus: + send_wait_time: 200ms + uart_id: boneio_uart + id: boneio_modbus + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.6.0 + files: [ + 'devices/serial_no.yaml', + # 'devices/dimmer_i2c.yaml', + ] + boneiopackages: + url: https://github.com/boneIO-eu/esphome_packages + ref: main + refresh: 1min + files: + - path: sdm630/package.yaml + +dashboard_import: + package_import_url: github://boneIO-eu/esphome/boneio-dimmer_g2_8ch-dev0_4.yaml@latest + import_full_config: true + +pcf8574: + - id: 'pcf_inputs' + address: 0x38 + +logger: + hardware_uart: UART0 +api: + reboot_timeout: 0s +ota: + - platform: esphome + - platform: http_request + +update: + - id: update_std + platform: http_request + name: Firmware Update + source: ${firmware_manifest} + +web_server: + port: 80 + 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: lm75 + 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 + +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 + diff --git a/configuration/.gitignore b/configuration/.gitignore new file mode 100644 index 0000000..d8b4157 --- /dev/null +++ b/configuration/.gitignore @@ -0,0 +1,5 @@ +# Gitignore settings for ESPHome +# This is an example and may include too much for your use-case. +# You can modify this file to suit your needs. +/.esphome/ +/secrets.yaml diff --git a/dimmer-dev2.yaml b/configuration/dimmer-dev2.yaml similarity index 94% rename from dimmer-dev2.yaml rename to configuration/dimmer-dev2.yaml index d2de43b..87ee982 100644 --- a/dimmer-dev2.yaml +++ b/configuration/dimmer-dev2.yaml @@ -37,7 +37,7 @@ i2c: frequency: 400kHz uart: - id: uart_pin + id: boneio_uart rx_pin: GPIO14 tx_pin: GPIO21 baud_rate: 9600 @@ -88,19 +88,19 @@ output: ##CAN gpio1 - tx, gpio2 rx -# modbus: -# send_wait_time: 200ms -# uart_id: uart_pin8_9 -# id: boneio_modbus +modbus: + send_wait_time: 200ms + uart_id: boneio_uart + id: boneio_modbus packages: - internals_packages: - url: https://github.com/boneIO-eu/esphome - ref: v1.5.0 - files: [ - 'devices/serial_no.yaml', - # 'devices/dimmer_i2c.yaml', - ] + boneio_packages: + url: "https://github.com/boneIO-eu/esphome_packages" + refresh: 1min + files: + - path: "sdm630.yaml" + vars: + device_name: "MySDM" # dashboard_import: # package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest @@ -111,6 +111,7 @@ pcf8574: address: 0x38 logger: + hardware_uart: UART0 api: reboot_timeout: 0s ota: @@ -286,4 +287,4 @@ binary_sensor: mode: input: true inverted: true - \ No newline at end of file + diff --git a/create_firmware.py b/create_firmware.py index 216d699..09948a8 100644 --- a/create_firmware.py +++ b/create_firmware.py @@ -1,10 +1,10 @@ #!/usr/bin/python -import subprocess import glob +import json import os import re -import json import shutil +import subprocess from pathlib import Path home = str(Path.home()) From c2f43e827a0f489af5f481e581704245532b3445 Mon Sep 17 00:00:00 2001 From: pszafer Date: Wed, 18 Jun 2025 08:52:59 +0200 Subject: [PATCH 3/8] add serial_no id --- devices/serial_no.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/serial_no.yaml b/devices/serial_no.yaml index eab5887..bdc51a0 100644 --- a/devices/serial_no.yaml +++ b/devices/serial_no.yaml @@ -1,6 +1,7 @@ text_sensor: - platform: template name: 'Serial No.' + id: serial_no lambda: |- std::string mac = get_mac_address(); return to_string("${serial_prefix}") + mac.erase(0, mac.length()/2); From 719a94d5fd45907fd7e36cb9927e37d77bf6f2e4 Mon Sep 17 00:00:00 2001 From: pszafer Date: Wed, 18 Jun 2025 08:53:11 +0200 Subject: [PATCH 4/8] fix fw creation --- create_firmware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create_firmware.py b/create_firmware.py index 09948a8..69499cf 100644 --- a/create_firmware.py +++ b/create_firmware.py @@ -21,7 +21,7 @@ firmware_destination = "../website/public/esp/firmware" def json_pattern(firmware_name): return { "name": "ESPHome", - "version": "2024.10.1", + "version": "2025.5.1", "home_assistant_domain": "esphome", "funding_url": "https://esphome.io/guides/supporters.html", "new_install_prompt_erase": False, From 509a1fe7c21b033dcce9904811f33c8203a652a3 Mon Sep 17 00:00:00 2001 From: pszafer Date: Wed, 18 Jun 2025 11:25:39 +0200 Subject: [PATCH 5/8] dimmer gen2 with can and v0_9 with can --- boneio-dimmer_g2_8ch-dev0_4.yaml | 85 +++++++++++++++++++++++++------ dev-boneio-32x10_lights_v0_9.yaml | 8 +-- 2 files changed, 75 insertions(+), 18 deletions(-) diff --git a/boneio-dimmer_g2_8ch-dev0_4.yaml b/boneio-dimmer_g2_8ch-dev0_4.yaml index 04d30bc..f2d81c2 100644 --- a/boneio-dimmer_g2_8ch-dev0_4.yaml +++ b/boneio-dimmer_g2_8ch-dev0_4.yaml @@ -1,15 +1,27 @@ substitutions: name: boneio-dr-gen2-8ch-dev04 friendly_name: 'BoneIO Dimmer dev0.4' - serial_prefix: 'dim' #Don't change it. + serial_prefix: 'dim2' #Don't change it. firmware_manifest: 'https://boneio.eu/esp/boneio-dr-gen2-8ch-dev04.json' esphome: name: '${name}' friendly_name: '${friendly_name}' - name_add_mac_suffix: false + name_add_mac_suffix: true project: name: boneio.dimmer-led-gen2 version: 'dev0.4' + 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 @@ -17,13 +29,13 @@ esp32: ethernet: id: eth type: W5500 - clk_pin: GPIO12 + clk_pin: GPIO13 mosi_pin: GPIO39 miso_pin: GPIO38 - cs_pin: GPIO13 + cs_pin: GPIO12 interrupt_pin: GPIO2 reset_pin: GPIO1 - # Enable fallback hotspot (captive portal) in case wifi connection fails + clock_speed: 25MHz external_components: - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 @@ -85,17 +97,18 @@ output: inverted: false id: chr04 - ##CAN gpio1 - tx, gpio2 rx + + ##CAN gpio48 - tx, gpio47 rx, gpio35 stb modbus: - send_wait_time: 200ms + send_wait_time: 80ms uart_id: boneio_uart id: boneio_modbus packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.6.0 + ref: v1.6.1 files: [ 'devices/serial_no.yaml', # 'devices/dimmer_i2c.yaml', @@ -115,22 +128,27 @@ pcf8574: - id: 'pcf_inputs' address: 0x38 +# http_request: +# timeout: 7s +# verify_ssl: false logger: hardware_uart: UART0 api: reboot_timeout: 0s ota: - platform: esphome - - platform: http_request + # - platform: http_request -update: - - id: update_std - platform: http_request - name: Firmware Update - source: ${firmware_manifest} +# update: +# - id: update_std +# platform: http_request +# name: boneIO FW Update +# update_interval: 3 minutes +# source: ${firmware_manifest} web_server: port: 80 + version: 3 local: true @@ -220,6 +238,7 @@ switch: inverted: false binary_sensor: + - platform: gpio name: 'IN_01' id: in_01 @@ -299,4 +318,40 @@ binary_sensor: mode: input: true inverted: true - + - platform: template + name: CAN Bus Button + id: can_bus_button + + +canbus: + - platform: esp32_can + tx_pin: GPIO48 + rx_pin: GPIO47 + can_id: 4 + bit_rate: 50kbps + on_frame: + - can_id: 5 + then: + - lambda: |- + if(x.size() > 0) { + switch(x[0]) { + case 0x12: // button release + id(can_bus_button).publish_state(false); + break; + case 0x11: // button press + id(can_bus_button).publish_state(true); + break; + } + } + +button: + - platform: template + name: 'CAN Sensor ON' + on_press: + - logger.log: Button Pressed + - canbus.send: [0x11, 0x22, 0x33] + - platform: template + name: 'CAN Sensor OFF' + on_press: + - logger.log: Button Pressed + - canbus.send: [0x12, 0x22, 0x33] \ No newline at end of file diff --git a/dev-boneio-32x10_lights_v0_9.yaml b/dev-boneio-32x10_lights_v0_9.yaml index 7fd6623..df20e38 100644 --- a/dev-boneio-32x10_lights_v0_9.yaml +++ b/dev-boneio-32x10_lights_v0_9.yaml @@ -61,11 +61,13 @@ packages: logger: api: reboot_timeout: 0s +# http_request: +# verify_ssl: false ota: - platform: esphome - - platform: http_request - name: Firmware Update - source: https://boneio.eu/esp/ + # - platform: http_request + # name: Firmware Update + # source: https://boneio.eu/esp/ web_server: port: 80 From 85b38bf32cb00f5c5b76e3c67df984e16a2f9c91 Mon Sep 17 00:00:00 2001 From: pszafer Date: Tue, 24 Jun 2025 20:36:33 +0200 Subject: [PATCH 6/8] fix to main --- boneio-dimmer_g2_8ch-dev0_4.yaml | 78 +++++++++++++++++++------------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/boneio-dimmer_g2_8ch-dev0_4.yaml b/boneio-dimmer_g2_8ch-dev0_4.yaml index f2d81c2..c208211 100644 --- a/boneio-dimmer_g2_8ch-dev0_4.yaml +++ b/boneio-dimmer_g2_8ch-dev0_4.yaml @@ -121,7 +121,7 @@ packages: - path: sdm630/package.yaml dashboard_import: - package_import_url: github://boneIO-eu/esphome/boneio-dimmer_g2_8ch-dev0_4.yaml@latest + package_import_url: github://boneIO-eu/esphome/boneio-dimmer_g2_8ch-dev0_4.yaml@main import_full_config: true pcf8574: @@ -236,6 +236,20 @@ switch: mode: output: true inverted: false + - platform: gpio + id: can_bus_switch + name: 'CAN Bus Switch' + pin: + number: GPIO35 + mode: + output: true + inverted: false + - platform: gpio + name: "CAN RX" + pin: GPIO47 + - platform: gpio + name: "CAN TX" + pin: GPIO48 binary_sensor: @@ -323,35 +337,35 @@ binary_sensor: id: can_bus_button -canbus: - - platform: esp32_can - tx_pin: GPIO48 - rx_pin: GPIO47 - can_id: 4 - bit_rate: 50kbps - on_frame: - - can_id: 5 - then: - - lambda: |- - if(x.size() > 0) { - switch(x[0]) { - case 0x12: // button release - id(can_bus_button).publish_state(false); - break; - case 0x11: // button press - id(can_bus_button).publish_state(true); - break; - } - } +# canbus: +# - platform: esp32_can +# tx_pin: GPIO48 +# rx_pin: GPIO47 +# can_id: 4 +# bit_rate: 50kbps +# on_frame: +# - can_id: 5 +# then: +# - lambda: |- +# if(x.size() > 0) { +# switch(x[0]) { +# case 0x12: // button release +# id(can_bus_button).publish_state(false); +# break; +# case 0x11: // button press +# id(can_bus_button).publish_state(true); +# break; +# } +# } -button: - - platform: template - name: 'CAN Sensor ON' - on_press: - - logger.log: Button Pressed - - canbus.send: [0x11, 0x22, 0x33] - - platform: template - name: 'CAN Sensor OFF' - on_press: - - logger.log: Button Pressed - - canbus.send: [0x12, 0x22, 0x33] \ No newline at end of file +# button: +# - platform: template +# name: 'CAN Sensor ON' +# on_press: +# - logger.log: Button Pressed +# - canbus.send: [0x11, 0x22, 0x33] +# - platform: template +# name: 'CAN Sensor OFF' +# on_press: +# - logger.log: Button Pressed +# - canbus.send: [0x12, 0x22, 0x33] \ No newline at end of file From c1e24bd26f09cadc72062cf884fdb41b5d41858e Mon Sep 17 00:00:00 2001 From: pszafer Date: Tue, 24 Jun 2025 20:47:08 +0200 Subject: [PATCH 7/8] fix sdm path --- boneio-dimmer_g2_8ch-dev0_4.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boneio-dimmer_g2_8ch-dev0_4.yaml b/boneio-dimmer_g2_8ch-dev0_4.yaml index c208211..f938ae7 100644 --- a/boneio-dimmer_g2_8ch-dev0_4.yaml +++ b/boneio-dimmer_g2_8ch-dev0_4.yaml @@ -118,7 +118,7 @@ packages: ref: main refresh: 1min files: - - path: sdm630/package.yaml + - path: sdm630.yaml dashboard_import: package_import_url: github://boneIO-eu/esphome/boneio-dimmer_g2_8ch-dev0_4.yaml@main From 0d1676a53f999fe4349bbea363497cfaf4ed78da Mon Sep 17 00:00:00 2001 From: "Rysiek Labus (SQ9MDD)" Date: Thu, 17 Jul 2025 20:56:31 +0200 Subject: [PATCH 8/8] Update serial_no.yaml --- devices/serial_no.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/serial_no.yaml b/devices/serial_no.yaml index bdc51a0..8c1dff8 100644 --- a/devices/serial_no.yaml +++ b/devices/serial_no.yaml @@ -4,7 +4,7 @@ text_sensor: id: serial_no lambda: |- std::string mac = get_mac_address(); - return to_string("${serial_prefix}") + mac.erase(0, mac.length()/2); + return std::string("${serial_prefix}") + mac.substr(mac.length()/2); icon: mdi:expansion-card-variant entity_category: diagnostic update_interval: 60min