├── dimmer_gen2_emc.yaml ├── .vscode └── settings.json ├── boneio-dimmer_gen2_8ch-dev0_4.yaml ├── devices_v0_4 ├── time.yaml ├── i2c.yaml ├── pcf.yaml ├── lm75b.yaml ├── ina219.yaml └── display.yaml ├── devices ├── dimmer_i2c.yaml ├── buzzer.yaml ├── serial_no.yaml ├── dimmer_outputs.yaml └── dimmer_ina219.yaml ├── devices_v0_5-v0_6 ├── time.yaml ├── i2c.yaml ├── one_wire.yaml ├── lm75b.yaml ├── pcf_with_mcp.yaml ├── pcf.yaml ├── ina219.yaml └── display.yaml ├── devices_v0_7 ├── i2c.yaml └── display.yaml ├── devices_v0_9 ├── i2c.yaml └── display.yaml ├── configuration ├── .gitignore └── dimmer-dev2.yaml ├── boards ├── output │ ├── out01_02.yaml │ ├── out03_04.yaml │ ├── out05_06.yaml │ ├── out07_08.yaml │ ├── out15_16.yaml │ ├── out17_18.yaml │ ├── out19_20.yaml │ ├── out21_22.yaml │ ├── out23_24.yaml │ ├── out25_26.yaml │ ├── out27_28.yaml │ ├── out29_30.yaml │ ├── out31_32.yaml │ ├── out09_10.yaml │ ├── out11_12.yaml │ └── out13_14.yaml ├── cover │ ├── out07_08.yaml │ ├── out17_18.yaml │ ├── out19_20.yaml │ ├── out21_22.yaml │ ├── out23_24.yaml │ ├── out01_02.yaml │ ├── out03_04.yaml │ ├── out05_06.yaml │ ├── out09_10.yaml │ ├── out11_12.yaml │ ├── out13_14.yaml │ ├── out15_16.yaml │ ├── out25_26.yaml │ ├── out27_28.yaml │ ├── out29_30.yaml │ └── out31_32.yaml ├── dimmer_output.yaml ├── 24x16_output.yaml └── mosfet48_output.yaml ├── devices_v0_7-v0_9 ├── one_wire.yaml ├── lm75b.yaml ├── pcf_with_mcp.yaml ├── pcf.yaml ├── ina219.yaml └── pcf_mosfet.yaml ├── README.md ├── .gitignore ├── create_firmware.py ├── boneio-dimmer_4cct-v0_3.yaml ├── dev-boneio-ps01.yaml ├── boneio-dimmer_2rgbw-v0_3.yaml ├── dimmer_gen2_can.yaml ├── boneio-dimmer_gen2_2rgbw-v0_1.yaml ├── boneio-dimmer_gen2_4cct-v0_1.yaml ├── boneio-8x10A_gen2_lights-v0_1.yaml ├── dimmer-dev1.yaml ├── boneio-dimmer_gen2_8ch-v0_1.yaml ├── dev-boneio-8x10A-adc.yaml ├── boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml ├── boneio-dimmer_8ch-v0_4.yaml ├── boneio-24x16_switches_v0_7.yaml ├── boneio-24x16_switches_v0_5-v0_6.yaml ├── boneio-dimmer_8ch-v0_3.yaml └── boneio-32x10_lights_v0_7.yaml /dimmer_gen2_emc.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.languageServer": "None" 3 | } -------------------------------------------------------------------------------- /boneio-dimmer_gen2_8ch-dev0_4.yaml: -------------------------------------------------------------------------------- 1 | boneio-dimmer_gen2_8ch-v0_1.yaml -------------------------------------------------------------------------------- /devices_v0_4/time.yaml: -------------------------------------------------------------------------------- 1 | time: 2 | - platform: ds1307 3 | id: ds1307_time -------------------------------------------------------------------------------- /devices/dimmer_i2c.yaml: -------------------------------------------------------------------------------- 1 | i2c: 2 | sda: GPIO4 3 | scl: GPIO5 4 | scan: True 5 | frequency: 400kHz 6 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/time.yaml: -------------------------------------------------------------------------------- 1 | time: 2 | - platform: ds1307 3 | id: ds1307_time 4 | address: 0x68 5 | i2c_id: bus_a 6 | -------------------------------------------------------------------------------- /devices_v0_4/i2c.yaml: -------------------------------------------------------------------------------- 1 | i2c: 2 | - id: i2c_bus 3 | sda: GPIO14 4 | scl: GPIO15 5 | scan: True 6 | frequency: 400kHz 7 | -------------------------------------------------------------------------------- /devices_v0_7/i2c.yaml: -------------------------------------------------------------------------------- 1 | i2c: 2 | - id: i2c_bus 3 | sda: GPIO17 4 | scl: GPIO33 5 | scan: True 6 | frequency: 400kHz 7 | -------------------------------------------------------------------------------- /devices_v0_9/i2c.yaml: -------------------------------------------------------------------------------- 1 | i2c: 2 | - id: i2c_bus 3 | sda: GPIO16 4 | scl: GPIO33 5 | scan: True 6 | frequency: 400kHz 7 | -------------------------------------------------------------------------------- /devices/buzzer.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: buzzer 4 | name: 'Buzzer' 5 | pin: 6 | number: GPIO2 7 | mode: 8 | output: true 9 | inverted: false 10 | -------------------------------------------------------------------------------- /configuration/.gitignore: -------------------------------------------------------------------------------- 1 | # Gitignore settings for ESPHome 2 | # This is an example and may include too much for your use-case. 3 | # You can modify this file to suit your needs. 4 | /.esphome/ 5 | /secrets.yaml 6 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/i2c.yaml: -------------------------------------------------------------------------------- 1 | i2c: 2 | - id: bus_a 3 | sda: GPIO14 4 | scl: GPIO15 5 | scan: True 6 | frequency: 400kHz 7 | - id: bus_b 8 | sda: GPIO17 9 | scl: GPIO33 10 | scan: True 11 | frequency: 400kHz 12 | -------------------------------------------------------------------------------- /devices_v0_4/pcf.yaml: -------------------------------------------------------------------------------- 1 | pcf8574: 2 | - id: 'pcf_right' 3 | address: 0x20 4 | pcf8575: true 5 | - id: 'pcf_left' 6 | address: 0x21 7 | pcf8575: true 8 | - id: 'pcf_inputs_1to16' 9 | address: 0x26 10 | pcf8575: true 11 | - id: 'pcf_inputs_17to32' 12 | address: 0x27 13 | pcf8575: true 14 | -------------------------------------------------------------------------------- /devices/serial_no.yaml: -------------------------------------------------------------------------------- 1 | text_sensor: 2 | - platform: template 3 | name: 'Serial No.' 4 | id: serial_no 5 | lambda: |- 6 | std::string mac = get_mac_address(); 7 | return std::string("${serial_prefix}") + mac.substr(mac.length()/2); 8 | icon: mdi:expansion-card-variant 9 | entity_category: diagnostic 10 | update_interval: 60min 11 | -------------------------------------------------------------------------------- /boards/output/out01_02.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_01 4 | pin: 5 | pcf8574: pcf_left 6 | number: 15 7 | mode: 8 | output: true 9 | inverted: true 10 | - platform: gpio 11 | id: out_02 12 | pin: 13 | pcf8574: pcf_left 14 | number: 14 15 | mode: 16 | output: true 17 | inverted: true 18 | -------------------------------------------------------------------------------- /boards/output/out03_04.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_03 4 | pin: 5 | pcf8574: pcf_left 6 | number: 13 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_04 13 | pin: 14 | pcf8574: pcf_left 15 | number: 12 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out05_06.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_05 4 | pin: 5 | pcf8574: pcf_left 6 | number: 11 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_06 13 | pin: 14 | pcf8574: pcf_left 15 | number: 10 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out07_08.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_07 4 | pin: 5 | pcf8574: pcf_left 6 | number: 9 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_08 13 | pin: 14 | pcf8574: pcf_left 15 | number: 8 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out15_16.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_15 4 | pin: 5 | pcf8574: pcf_right 6 | number: 9 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_16 13 | pin: 14 | pcf8574: pcf_right 15 | number: 8 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out17_18.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_17 4 | pin: 5 | pcf8574: pcf_left 6 | number: 0 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_18 13 | pin: 14 | pcf8574: pcf_left 15 | number: 1 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out19_20.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_19 4 | pin: 5 | pcf8574: pcf_left 6 | number: 2 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_20 13 | pin: 14 | pcf8574: pcf_left 15 | number: 3 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out21_22.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_21 4 | pin: 5 | pcf8574: pcf_left 6 | number: 4 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_22 13 | pin: 14 | pcf8574: pcf_left 15 | number: 5 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out23_24.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_23 4 | pin: 5 | pcf8574: pcf_left 6 | number: 6 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_24 13 | pin: 14 | pcf8574: pcf_left 15 | number: 7 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out25_26.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_25 4 | pin: 5 | pcf8574: pcf_right 6 | number: 0 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_26 13 | pin: 14 | pcf8574: pcf_right 15 | number: 1 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out27_28.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_27 4 | pin: 5 | pcf8574: pcf_right 6 | number: 2 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_28 13 | pin: 14 | pcf8574: pcf_right 15 | number: 3 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out29_30.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_29 4 | pin: 5 | pcf8574: pcf_right 6 | number: 4 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_30 13 | pin: 14 | pcf8574: pcf_right 15 | number: 5 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out31_32.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_31 4 | pin: 5 | pcf8574: pcf_right 6 | number: 6 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_32 13 | pin: 14 | pcf8574: pcf_right 15 | number: 7 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out09_10.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_09 4 | pin: 5 | pcf8574: pcf_right 6 | number: 15 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_10 13 | pin: 14 | pcf8574: pcf_right 15 | number: 14 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out11_12.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_11 4 | pin: 5 | pcf8574: pcf_right 6 | number: 13 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_12 13 | pin: 14 | pcf8574: pcf_right 15 | number: 12 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /boards/output/out13_14.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_13 4 | pin: 5 | pcf8574: pcf_right 6 | number: 11 7 | mode: 8 | output: true 9 | inverted: true 10 | 11 | - platform: gpio 12 | id: out_14 13 | pin: 14 | pcf8574: pcf_right 15 | number: 10 16 | mode: 17 | output: true 18 | inverted: true 19 | -------------------------------------------------------------------------------- /devices_v0_7-v0_9/one_wire.yaml: -------------------------------------------------------------------------------- 1 | one_wire: 2 | - platform: gpio 3 | pin: GPIO32 4 | # sensor: 5 | # - platform: dallas 6 | # address: 0x283c01d607d4df28 7 | # name: "Dallas Sensor 1" 8 | # 9 | # - platform: dallas 10 | # address: 0xdfe67a061e64ff28 11 | # name: "Dallas Sensor 2" 12 | # 13 | # - platform: dallas 14 | # address: 0xa7a89f071e64ff28 15 | # name: "Dallas Sensor 3" 16 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/one_wire.yaml: -------------------------------------------------------------------------------- 1 | one_wire: 2 | - platform: gpio 3 | pin: GPIO32 4 | 5 | # sensor: 6 | # - platform: dallas 7 | # address: 0x283c01d607d4df28 8 | # name: "Dallas Sensor 1" 9 | # 10 | # - platform: dallas 11 | # address: 0xdfe67a061e64ff28 12 | # name: "Dallas Sensor 2" 13 | # 14 | # - platform: dallas 15 | # address: 0xa7a89f071e64ff28 16 | # name: "Dallas Sensor 3" 17 | -------------------------------------------------------------------------------- /devices_v0_4/lm75b.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x48 output lm75b temp 2 | #LM75B 3 | external_components: 4 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 5 | components: [lm75] 6 | 7 | sensor: 8 | # Lower board temperature 9 | - platform: lm75 10 | id: boneIO_temp 11 | name: 'LM75B Temperature' 12 | update_interval: 30s 13 | -------------------------------------------------------------------------------- /devices_v0_7-v0_9/lm75b.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x48 output lm75b temp 2 | #LM75B 3 | external_components: 4 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 5 | components: [lm75] 6 | 7 | sensor: 8 | # Lower board temperature 9 | - platform: lm75 10 | id: boneIO_temp 11 | name: 'LM75B Temperature' 12 | update_interval: 30s 13 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/lm75b.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x48 output lm75b temp 2 | #LM75B 3 | external_components: 4 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 5 | components: [lm75] 6 | 7 | sensor: 8 | # Lower board temperature 9 | - platform: lm75 10 | id: boneIO_temp 11 | name: 'LM75B Temperature' 12 | update_interval: 30s 13 | i2c_id: bus_b 14 | -------------------------------------------------------------------------------- /devices_v0_7-v0_9/pcf_with_mcp.yaml: -------------------------------------------------------------------------------- 1 | pcf8574: 2 | - id: 'pcf_inputs_1to14' 3 | i2c_id: i2c_bus 4 | address: 0x20 5 | pcf8575: true 6 | - id: 'pcf_inputs_15to28' 7 | i2c_id: i2c_bus 8 | address: 0x21 9 | pcf8575: true 10 | - id: 'pcf_inputs_28to35_menu' 11 | i2c_id: i2c_bus 12 | address: 0x22 13 | pcf8575: false 14 | mcp23017: 15 | - id: 'mcp_left' 16 | address: 0x23 17 | - id: 'mcp_right' 18 | address: 0x24 19 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/pcf_with_mcp.yaml: -------------------------------------------------------------------------------- 1 | pcf8574: 2 | - id: 'pcf_inputs_1to14' 3 | i2c_id: bus_a 4 | address: 0x20 5 | pcf8575: true 6 | - id: 'pcf_inputs_15to28' 7 | i2c_id: bus_a 8 | address: 0x21 9 | pcf8575: true 10 | - id: 'pcf_inputs_28to35_menu' 11 | i2c_id: bus_a 12 | address: 0x22 13 | pcf8575: false 14 | mcp23017: 15 | - id: 'mcp_left' 16 | address: 0x21 17 | i2c_id: bus_b 18 | - id: 'mcp_right' 19 | address: 0x20 20 | i2c_id: bus_b 21 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/pcf.yaml: -------------------------------------------------------------------------------- 1 | pcf8574: 2 | - id: 'pcf_inputs_1to14' 3 | i2c_id: bus_a 4 | address: 0x20 5 | pcf8575: true 6 | - id: 'pcf_inputs_15to28' 7 | i2c_id: bus_a 8 | address: 0x21 9 | pcf8575: true 10 | - id: 'pcf_inputs_28to35_menu' 11 | i2c_id: bus_a 12 | address: 0x22 13 | pcf8575: false 14 | - id: 'pcf_left' 15 | address: 0x21 16 | pcf8575: true 17 | i2c_id: bus_b 18 | - id: 'pcf_right' 19 | address: 0x20 20 | pcf8575: true 21 | i2c_id: bus_b 22 | -------------------------------------------------------------------------------- /devices_v0_7-v0_9/pcf.yaml: -------------------------------------------------------------------------------- 1 | pcf8574: 2 | - id: 'pcf_inputs_1to14' 3 | i2c_id: i2c_bus 4 | address: 0x20 5 | pcf8575: true 6 | - id: 'pcf_inputs_15to28' 7 | i2c_id: i2c_bus 8 | address: 0x21 9 | pcf8575: true 10 | - id: 'pcf_inputs_28to35_menu' 11 | i2c_id: i2c_bus 12 | address: 0x22 13 | pcf8575: false 14 | - id: 'pcf_left' 15 | address: 0x23 16 | pcf8575: true 17 | i2c_id: i2c_bus 18 | - id: 'pcf_right' 19 | address: 0x24 20 | pcf8575: true 21 | i2c_id: i2c_bus 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # esphome 2 | 3 | BoneIO ESP Esphome configuration and custom components repo 4 | 5 | Old instructions: Look for branch with yout input board version to download current software. 6 | 7 | These are source codes for Esphome software installed on boneIO devices. 8 | 9 | To install it via USB-C cable go to https://boneio.eu/esp and choose board you'd like to install. 10 | 11 | To install it through network, copy file you'd like to use from root directory and paste it in your esphome dashboard. 12 | Set boneio name as visible 13 | -------------------------------------------------------------------------------- /devices_v0_4/ina219.yaml: -------------------------------------------------------------------------------- 1 | sensor: 2 | # Module power consmption 3 | - platform: ina219 4 | address: 0x40 5 | shunt_resistance: 0.1 ohm 6 | current: 7 | id: ina_current 8 | name: 'INA219 Current' 9 | power: 10 | id: ina_power 11 | name: 'INA219 Power' 12 | bus_voltage: 13 | id: ina_bus_voltage 14 | name: 'INA219 Bus Voltage' 15 | shunt_voltage: 16 | id: ina_shunt_voltage 17 | name: 'INA219 Shunt Voltage' 18 | max_voltage: 32.0V 19 | max_current: 3.2A 20 | update_interval: 30s 21 | -------------------------------------------------------------------------------- /devices_v0_7-v0_9/ina219.yaml: -------------------------------------------------------------------------------- 1 | sensor: 2 | # Module power consmption 3 | - platform: ina219 4 | address: 0x40 5 | shunt_resistance: 0.1 ohm 6 | current: 7 | id: ina_current 8 | name: 'INA219 Current' 9 | power: 10 | id: ina_power 11 | name: 'INA219 Power' 12 | bus_voltage: 13 | id: ina_bus_voltage 14 | name: 'INA219 Bus Voltage' 15 | shunt_voltage: 16 | id: ina_shunt_voltage 17 | name: 'INA219 Shunt Voltage' 18 | max_voltage: 32.0V 19 | max_current: 3.2A 20 | update_interval: 30s 21 | -------------------------------------------------------------------------------- /boards/cover/out07_08.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_04_out07 4 | pin: 5 | pcf8574: pcf_left 6 | number: 9 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_04 [cover_open_04_out07, cover_close_04_out08] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_04_out08 16 | pin: 17 | pcf8574: pcf_left 18 | number: 8 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_04 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out17_18.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_09_out17 4 | pin: 5 | pcf8574: pcf_left 6 | number: 0 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_09 [cover_open_09_out17, cover_close_09_out18] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_09_out18 16 | pin: 17 | pcf8574: pcf_left 18 | number: 1 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_09 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out19_20.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_10_out19 4 | pin: 5 | pcf8574: pcf_left 6 | number: 2 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_10 [cover_open_10_out19, cover_close_10_out20] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_10_out20 16 | pin: 17 | pcf8574: pcf_left 18 | number: 3 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_10 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out21_22.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_11_out21 4 | pin: 5 | pcf8574: pcf_left 6 | number: 4 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_11 [cover_open_11_out21, cover_close_11_out22] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_11_out22 16 | pin: 17 | pcf8574: pcf_left 18 | number: 5 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_11 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out23_24.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_12_out23 4 | pin: 5 | pcf8574: pcf_left 6 | number: 6 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_12 [cover_open_12_out23, cover_close_12_out24] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_12_out24 16 | pin: 17 | pcf8574: pcf_left 18 | number: 7 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_12 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /devices_v0_7-v0_9/pcf_mosfet.yaml: -------------------------------------------------------------------------------- 1 | pcf8574: 2 | - id: 'pcf_inputs_1to14' 3 | i2c_id: i2c_bus 4 | address: 0x20 5 | pcf8575: true 6 | - id: 'pcf_inputs_15to28' 7 | i2c_id: i2c_bus 8 | address: 0x21 9 | pcf8575: true 10 | - id: 'pcf_inputs_28to35_menu' 11 | i2c_id: i2c_bus 12 | address: 0x22 13 | pcf8575: false 14 | - id: 'pcf_left' 15 | address: 0x23 16 | pcf8575: true 17 | i2c_id: i2c_bus 18 | - id: 'pcf_middle' 19 | address: 0x24 20 | pcf8575: true 21 | i2c_id: i2c_bus 22 | - id: 'pcf_right' 23 | address: 0x25 24 | pcf8575: true 25 | i2c_id: i2c_bus 26 | -------------------------------------------------------------------------------- /boards/cover/out01_02.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_01_out01 4 | pin: 5 | pcf8574: pcf_left 6 | number: 15 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_01 [cover_open_01_out01, cover_close_01_out02] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_01_out02 16 | pin: 17 | pcf8574: pcf_left 18 | number: 14 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_01 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out03_04.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_02_out03 4 | pin: 5 | pcf8574: pcf_left 6 | number: 13 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_02 [cover_open_02_out03, cover_close_02_out04] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_02_out04 16 | pin: 17 | pcf8574: pcf_left 18 | number: 12 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_02 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out05_06.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_03_out05 4 | pin: 5 | pcf8574: pcf_left 6 | number: 11 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_03 [cover_open_03_out05, cover_close_03_out06] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_03_out06 16 | pin: 17 | pcf8574: pcf_left 18 | number: 10 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_03 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out09_10.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_05_out09 4 | pin: 5 | pcf8574: pcf_right 6 | number: 15 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_05 [cover_open_05_out09, cover_close_05_out10] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_05_out10 16 | pin: 17 | pcf8574: pcf_right 18 | number: 14 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_05 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out11_12.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_06_out11 4 | pin: 5 | pcf8574: pcf_right 6 | number: 13 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_06 [cover_open_06_out11, cover_close_06_out12] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_06_out12 16 | pin: 17 | pcf8574: pcf_right 18 | number: 12 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_06 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out13_14.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_07_out13 4 | pin: 5 | pcf8574: pcf_right 6 | number: 11 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_07 [cover_open_07_out13, cover_close_07_out14] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_07_out14 16 | pin: 17 | pcf8574: pcf_right 18 | number: 10 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_07 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out15_16.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_08_out15 4 | pin: 5 | pcf8574: pcf_right 6 | number: 9 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_08 [cover_open_08_out15, cover_close_08_out16] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_08_out16 16 | pin: 17 | pcf8574: pcf_right 18 | number: 8 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_08 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out25_26.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_13_out25 4 | pin: 5 | pcf8574: pcf_right 6 | number: 0 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_13 [cover_open_13_out25, cover_close_13_out26] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_13_out26 16 | pin: 17 | pcf8574: pcf_right 18 | number: 1 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_13 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out27_28.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_14_out27 4 | pin: 5 | pcf8574: pcf_right 6 | number: 2 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_14 [cover_open_14_out27, cover_close_14_out28] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_14_out28 16 | pin: 17 | pcf8574: pcf_right 18 | number: 3 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_14 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out29_30.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_15_out29 4 | pin: 5 | pcf8574: pcf_right 6 | number: 4 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_15 [cover_open_15_out29, cover_close_15_out30] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_15_out30 16 | pin: 17 | pcf8574: pcf_right 18 | number: 5 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_15 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /boards/cover/out31_32.yaml: -------------------------------------------------------------------------------- 1 | switch: 2 | - platform: gpio 3 | id: cover_open_16_out31 4 | pin: 5 | pcf8574: pcf_right 6 | number: 6 7 | mode: 8 | output: true 9 | inverted: true 10 | interlock: &cover_interlock_16 [cover_open_16_out31, cover_close_16_out32] 11 | interlock_wait_time: 5ms 12 | restore_mode: always off 13 | 14 | - platform: gpio 15 | id: cover_close_16_out32 16 | pin: 17 | pcf8574: pcf_right 18 | number: 7 19 | mode: 20 | output: true 21 | inverted: true 22 | interlock: *cover_interlock_16 23 | restore_mode: always off 24 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/ina219.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x26 input pcf io 2 | #i2c address: 0x27 input pcf io 3 | #i2c address: 0x40 input ina219 power 4 | #i2c address: 0x68 input rtc ds1307 5 | sensor: 6 | # Module power consmption 7 | - platform: ina219 8 | address: 0x40 9 | i2c_id: bus_a 10 | shunt_resistance: 0.1 ohm 11 | current: 12 | id: ina_current 13 | name: 'INA219 Current' 14 | power: 15 | id: ina_power 16 | name: 'INA219 Power' 17 | bus_voltage: 18 | id: ina_bus_voltage 19 | name: 'INA219 Bus Voltage' 20 | shunt_voltage: 21 | id: ina_shunt_voltage 22 | name: 'INA219 Shunt Voltage' 23 | max_voltage: 32.0V 24 | max_current: 3.2A 25 | update_interval: 30s 26 | -------------------------------------------------------------------------------- /boards/dimmer_output.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: ledc 3 | pin: 33 4 | frequency: 1000Hz 5 | inverted: false 6 | id: chl01 7 | - platform: ledc 8 | pin: 32 9 | frequency: 1000Hz 10 | inverted: false 11 | id: chl02 12 | - platform: ledc 13 | pin: 12 14 | frequency: 1000Hz 15 | inverted: false 16 | id: chl03 17 | - platform: ledc 18 | pin: 14 19 | frequency: 1000Hz 20 | inverted: false 21 | id: chl04 22 | 23 | - platform: ledc 24 | pin: 13 25 | frequency: 1000Hz 26 | inverted: false 27 | id: chr01 28 | - platform: ledc 29 | pin: 15 30 | frequency: 1000Hz 31 | inverted: false 32 | id: chr02 33 | - platform: ledc 34 | pin: 2 35 | frequency: 1000Hz 36 | inverted: false 37 | id: chr03 38 | - platform: ledc 39 | pin: 17 40 | frequency: 1000Hz 41 | inverted: false 42 | id: chr04 43 | -------------------------------------------------------------------------------- /devices/dimmer_outputs.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: ledc 3 | pin: 33 4 | frequency: 1000Hz 5 | inverted: false 6 | id: chl01 7 | - platform: ledc 8 | pin: 32 9 | frequency: 1000Hz 10 | inverted: false 11 | id: chl02 12 | - platform: ledc 13 | pin: 12 14 | frequency: 1000Hz 15 | inverted: false 16 | id: chl03 17 | - platform: ledc 18 | pin: 14 19 | frequency: 1000Hz 20 | inverted: false 21 | id: chl04 22 | 23 | - platform: ledc 24 | pin: 13 25 | frequency: 1000Hz 26 | inverted: false 27 | id: chr01 28 | - platform: ledc 29 | pin: 15 30 | frequency: 1000Hz 31 | inverted: false 32 | id: chr02 33 | - platform: ledc 34 | pin: 2 35 | frequency: 1000Hz 36 | inverted: false 37 | id: chr03 38 | - platform: ledc 39 | pin: 17 40 | frequency: 1000Hz 41 | inverted: false 42 | id: chr04 43 | -------------------------------------------------------------------------------- /devices/dimmer_ina219.yaml: -------------------------------------------------------------------------------- 1 | sensor: 2 | - platform: ina219 3 | address: 0x40 4 | shunt_resistance: 0.005 ohm 5 | bus_voltage: 6 | name: 'VDDL Supply' 7 | entity_category: diagnostic 8 | power: 9 | name: 'VDDL Power' 10 | entity_category: diagnostic 11 | current: 12 | name: 'VDDL Current' 13 | entity_category: diagnostic 14 | shunt_voltage: 15 | name: 'VDDL Shunt Voltage' 16 | entity_category: diagnostic 17 | max_voltage: 32V 18 | max_current: 10A 19 | update_interval: 5s 20 | - platform: ina219 21 | address: 0x41 22 | shunt_resistance: 0.005 ohm 23 | bus_voltage: 24 | name: 'VDDR Supply' 25 | entity_category: diagnostic 26 | power: 27 | name: 'VDDR Power' 28 | entity_category: diagnostic 29 | current: 30 | name: 'VDDR Current' 31 | entity_category: diagnostic 32 | shunt_voltage: 33 | name: 'VDDR Shunt Voltage' 34 | entity_category: diagnostic 35 | max_voltage: 32V 36 | max_current: 10A 37 | update_interval: 5s 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | .esphome/ 132 | -------------------------------------------------------------------------------- /create_firmware.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import glob 3 | import json 4 | import os 5 | import re 6 | import shutil 7 | import subprocess 8 | from pathlib import Path 9 | 10 | home = str(Path.home()) 11 | 12 | 13 | cwd = os.getcwd() 14 | 15 | 16 | pattern = r"name:\s*(\S+)" 17 | json_destination = "../website2/public/fwesp" 18 | firmware_destination = "../website2/public/fwesp/firmware" 19 | firmware_destination2 = "../esphome_uploader/firmware" 20 | 21 | # Lista plików do wykluczenia z przetwarzania 22 | exclude_files = [ 23 | "dimmer_gen2_can.yaml", 24 | "dimmer_gen2_emc.yaml", 25 | "dev-boneio-32x10_lights_v0_9.yaml" 26 | "boneio-mosfet48_lights_v0_7.yaml", 27 | "boneio-mosfet48_switches_v0_7.yaml" 28 | "boneio-8x10A_v0_1.yaml" 29 | "boneio-dimmer_gen2_8ch-dev0_4.yaml" 30 | 31 | # Dodaj tutaj kolejne pliki do wykluczenia 32 | ] 33 | 34 | include_files = [ 35 | "boneio-8x10A_gen2_lights-v0_1.yaml", 36 | # "boneio-dimmer_gen2_2rgbw-v0_1.yaml", 37 | ] 38 | 39 | 40 | def json_pattern(firmware_name, chip_family="ESP32"): 41 | return { 42 | "name": "ESPHome", 43 | "version": "2025.11.2", 44 | "home_assistant_domain": "esphome", 45 | "funding_url": "https://esphome.io/guides/supporters.html", 46 | "new_install_prompt_erase": False, 47 | "builds": [ 48 | { 49 | "chipFamily": chip_family, 50 | "parts": [ 51 | { 52 | "path": f"/fwesp/firmware/{firmware_name}.bin", 53 | "offset": 0, 54 | } 55 | ], 56 | } 57 | ], 58 | } 59 | 60 | 61 | def get_boneio_name(file): 62 | with open(file) as f: 63 | next(f) 64 | name = next(f) 65 | match = re.search(pattern, name) 66 | if match: 67 | extracted_text = match.group(1) 68 | return extracted_text 69 | return None 70 | 71 | 72 | for file in glob.glob("*.yaml"): 73 | # Pomiń pliki z listy wykluczeń 74 | if file in exclude_files: 75 | print(f"Skipping excluded file: {file}") 76 | continue 77 | if file not in include_files: 78 | print(f"Skipping file: {file}") 79 | continue 80 | 81 | filename = get_boneio_name(file) 82 | chip_family = "ESP32-S3" if "gen2" in filename else "ESP32" 83 | if not filename: 84 | print("No file found.") 85 | break 86 | firmware_path = f"{cwd}/.esphome/build/{filename}/.pioenvs/{filename}/firmware.factory.bin" 87 | cmd = f'docker run --rm -p 6052:6052 -v "{cwd}":/config -it ghcr.io/esphome/esphome compile {file}' 88 | print(cmd) 89 | result = subprocess.run( 90 | cmd, 91 | shell=True, 92 | ) 93 | if result.returncode != 0: 94 | print("Process failed, breaking.") 95 | break 96 | shutil.copyfile(firmware_path, f"{firmware_destination}/{filename}.bin") 97 | shutil.copyfile(firmware_path, f"{firmware_destination2}/{filename}.bin") 98 | 99 | with open( 100 | f"{json_destination}/{filename}.json", "w", encoding="utf-8" 101 | ) as f: 102 | print(f"Creating JSON file: {json_destination}/{filename}.json") 103 | json.dump( 104 | json_pattern(firmware_name=filename, chip_family=chip_family), 105 | f, 106 | ensure_ascii=False, 107 | indent=4, 108 | ) 109 | -------------------------------------------------------------------------------- /boards/24x16_output.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_01 4 | pin: 5 | mcp23xxx: mcp_left 6 | number: 8 7 | mode: 8 | output: true 9 | inverted: false 10 | 11 | - platform: gpio 12 | id: out_02 13 | pin: 14 | mcp23xxx: mcp_left 15 | number: 9 16 | mode: 17 | output: true 18 | inverted: false 19 | 20 | - platform: gpio 21 | id: out_03 22 | pin: 23 | mcp23xxx: mcp_left 24 | number: 10 25 | mode: 26 | output: true 27 | inverted: false 28 | 29 | - platform: gpio 30 | id: out_04 31 | pin: 32 | mcp23xxx: mcp_left 33 | number: 11 34 | mode: 35 | output: true 36 | inverted: false 37 | 38 | - platform: gpio 39 | id: out_05 40 | pin: 41 | mcp23xxx: mcp_left 42 | number: 12 43 | mode: 44 | output: true 45 | inverted: false 46 | 47 | - platform: gpio 48 | id: out_06 49 | pin: 50 | mcp23xxx: mcp_left 51 | number: 13 52 | mode: 53 | output: true 54 | inverted: false 55 | 56 | - platform: gpio 57 | id: out_07 58 | pin: 59 | mcp23xxx: mcp_left 60 | number: 14 61 | mode: 62 | output: true 63 | inverted: false 64 | 65 | - platform: gpio 66 | id: out_08 67 | pin: 68 | mcp23xxx: mcp_left 69 | number: 15 70 | mode: 71 | output: true 72 | inverted: false 73 | 74 | - platform: gpio 75 | id: out_09 76 | pin: 77 | mcp23xxx: mcp_right 78 | number: 8 79 | mode: 80 | output: true 81 | inverted: false 82 | 83 | - platform: gpio 84 | id: out_10 85 | pin: 86 | mcp23xxx: mcp_right 87 | number: 9 88 | mode: 89 | output: true 90 | inverted: false 91 | 92 | - platform: gpio 93 | id: out_11 94 | pin: 95 | mcp23xxx: mcp_right 96 | number: 10 97 | mode: 98 | output: true 99 | inverted: false 100 | 101 | - platform: gpio 102 | id: out_12 103 | pin: 104 | mcp23xxx: mcp_right 105 | number: 11 106 | mode: 107 | output: true 108 | inverted: false 109 | 110 | - platform: gpio 111 | id: out_13 112 | pin: 113 | mcp23xxx: mcp_left 114 | number: 7 115 | mode: 116 | output: true 117 | inverted: false 118 | 119 | - platform: gpio 120 | id: out_14 121 | pin: 122 | mcp23xxx: mcp_left 123 | number: 6 124 | mode: 125 | output: true 126 | inverted: false 127 | 128 | - platform: gpio 129 | id: out_15 130 | pin: 131 | mcp23xxx: mcp_left 132 | number: 5 133 | mode: 134 | output: true 135 | inverted: false 136 | 137 | - platform: gpio 138 | id: out_16 139 | pin: 140 | mcp23xxx: mcp_left 141 | number: 4 142 | mode: 143 | output: true 144 | inverted: false 145 | 146 | - platform: gpio 147 | id: out_17 148 | pin: 149 | mcp23xxx: mcp_left 150 | number: 3 151 | mode: 152 | output: true 153 | inverted: false 154 | 155 | - platform: gpio 156 | id: out_18 157 | pin: 158 | mcp23xxx: mcp_left 159 | number: 2 160 | mode: 161 | output: true 162 | inverted: false 163 | 164 | - platform: gpio 165 | id: out_19 166 | pin: 167 | mcp23xxx: mcp_left 168 | number: 1 169 | mode: 170 | output: true 171 | inverted: false 172 | 173 | - platform: gpio 174 | id: out_20 175 | pin: 176 | mcp23xxx: mcp_left 177 | number: 0 178 | mode: 179 | output: true 180 | inverted: false 181 | 182 | - platform: gpio 183 | id: out_21 184 | pin: 185 | mcp23xxx: mcp_right 186 | number: 12 187 | mode: 188 | output: true 189 | inverted: false 190 | 191 | - platform: gpio 192 | id: out_22 193 | pin: 194 | mcp23xxx: mcp_right 195 | number: 13 196 | mode: 197 | output: true 198 | inverted: false 199 | 200 | - platform: gpio 201 | id: out_23 202 | pin: 203 | mcp23xxx: mcp_right 204 | number: 14 205 | mode: 206 | output: true 207 | inverted: false 208 | 209 | - platform: gpio 210 | id: out_24 211 | pin: 212 | mcp23xxx: mcp_right 213 | number: 15 214 | mode: 215 | output: true 216 | inverted: false 217 | -------------------------------------------------------------------------------- /boneio-dimmer_4cct-v0_3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-4cct-03 3 | friendly_name: 'BoneIO Dimmer LED' 4 | serial_prefix: 'dim' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led 12 | version: '0.3' 13 | 14 | esp32: 15 | board: esp32dev 16 | framework: 17 | type: esp-idf 18 | 19 | external_components: 20 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 21 | components: [lm75] 22 | 23 | packages: 24 | internals_packages: 25 | url: https://github.com/boneIO-eu/esphome 26 | ref: v1.7.1 27 | files: 28 | [ 29 | 'devices/serial_no.yaml', 30 | 'devices/dimmer_i2c.yaml', 31 | 'devices/dimmer_ina219.yaml', 32 | 'boards/dimmer_output.yaml', 33 | ] 34 | 35 | ethernet: 36 | id: eth 37 | type: LAN8720 38 | mdc_pin: GPIO23 39 | mdio_pin: GPIO18 40 | clk: 41 | pin: GPIO0 42 | mode: CLK_EXT_IN 43 | phy_addr: 1 44 | power_pin: GPIO16 45 | 46 | dashboard_import: 47 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_4cct-v0_3.yaml@latest 48 | import_full_config: true 49 | 50 | pcf8574: 51 | - id: 'pcf_inputs' 52 | address: 0x38 53 | 54 | logger: 55 | api: 56 | reboot_timeout: 0s 57 | ota: 58 | - platform: esphome 59 | - platform: web_server 60 | 61 | web_server: 62 | port: 80 63 | local: true 64 | 65 | text_sensor: 66 | - platform: version 67 | name: 'boneio-dimmer- Version' 68 | icon: mdi:cube-outline 69 | entity_category: diagnostic 70 | - platform: ethernet_info 71 | ip_address: 72 | entity_category: diagnostic 73 | name: boneio-dimmer IP 74 | - platform: template 75 | name: 'Hostname' 76 | id: hostname 77 | entity_category: diagnostic 78 | lambda: |- 79 | return std::string(id(eth).get_use_address()); 80 | update_interval: 5min 81 | 82 | binary_sensor: 83 | - platform: gpio 84 | name: 'IN_01' 85 | pin: 86 | pcf8574: pcf_inputs 87 | number: 1 88 | mode: 89 | input: true 90 | inverted: true 91 | - platform: gpio 92 | name: 'IN_02' 93 | pin: 94 | pcf8574: pcf_inputs 95 | number: 2 96 | mode: 97 | input: true 98 | inverted: true 99 | - platform: gpio 100 | name: 'IN_03' 101 | pin: 102 | pcf8574: pcf_inputs 103 | number: 3 104 | mode: 105 | input: true 106 | inverted: true 107 | - platform: gpio 108 | name: 'IN_04' 109 | pin: 110 | pcf8574: pcf_inputs 111 | number: 4 112 | mode: 113 | input: true 114 | inverted: true 115 | - platform: gpio 116 | name: 'IN_05' 117 | pin: 118 | number: 36 119 | mode: 120 | input: true 121 | inverted: true 122 | - platform: gpio 123 | name: 'IN_06' 124 | pin: 125 | number: 39 126 | mode: 127 | input: true 128 | inverted: true 129 | - platform: gpio 130 | name: 'IN_07' 131 | pin: 132 | number: 34 133 | mode: 134 | input: true 135 | inverted: true 136 | - platform: gpio 137 | name: 'IN_08' 138 | pin: 139 | number: 35 140 | mode: 141 | input: true 142 | inverted: true 143 | 144 | light: 145 | - platform: cwww 146 | name: 'CHL_01_02' 147 | cold_white: chl01 148 | warm_white: chl02 149 | cold_white_color_temperature: 6536 K 150 | warm_white_color_temperature: 2000 K 151 | - platform: cwww 152 | name: 'CHL_03_04' 153 | cold_white: chl03 154 | warm_white: chl04 155 | cold_white_color_temperature: 6536 K 156 | warm_white_color_temperature: 2000 K 157 | 158 | - platform: cwww 159 | name: 'CHR_01_02' 160 | cold_white: chr01 161 | warm_white: chr02 162 | cold_white_color_temperature: 6536 K 163 | warm_white_color_temperature: 2000 K 164 | 165 | - platform: cwww 166 | name: 'CHR_03_04' 167 | cold_white: chr03 168 | warm_white: chr04 169 | cold_white_color_temperature: 6536 K 170 | warm_white_color_temperature: 2000 K 171 | 172 | sensor: 173 | - platform: lm75 174 | id: boneIO_temp 175 | name: 'Temperature' 176 | update_interval: 30s 177 | entity_category: diagnostic 178 | on_value_range: 179 | - above: 70.0 180 | then: 181 | - switch.turn_on: buzzer 182 | - below: 70.0 183 | then: 184 | - switch.turn_off: buzzer 185 | 186 | switch: 187 | - platform: gpio 188 | id: buzzer 189 | name: 'Buzzer' 190 | pin: 191 | pcf8574: pcf_inputs 192 | number: 0 193 | mode: 194 | output: true 195 | inverted: true 196 | -------------------------------------------------------------------------------- /dev-boneio-ps01.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-ps-01 3 | friendly_name: 'BoneIO PS-01 Czujnik Obecności' 4 | serial_prefix: 'ps01' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/esp/boneio-ps-01.json' # URL manifestu 6 | 7 | esphome: 8 | name: '${name}' 9 | friendly_name: '${friendly_name}' 10 | name_add_mac_suffix: true 11 | project: 12 | name: boneio.presence-sensor-ps01 13 | version: 'dev0.1' # Przykładowa wersja 14 | on_boot: 15 | priority: -100 16 | then: 17 | - delay: 5s 18 | - if: 19 | condition: 20 | lambda: 'return id(serial_no) != nullptr;' 21 | then: 22 | - component.update: serial_no 23 | - logger.log: "Serial No updated on boot" 24 | else: 25 | - logger.log: "Serial No component not found" 26 | 27 | esp32: 28 | variant: esp32s3 29 | flash_size: 16MB 30 | framework: 31 | type: esp-idf 32 | psram: 33 | mode: octal 34 | speed: 80MHz 35 | # --- NOWA SEKCJA: WiFi --- 36 | wifi: 37 | ssid: "TwojeSSID" 38 | password: "TwojeHaslo" 39 | 40 | # Tryb AP do pierwszej konfiguracji 41 | ap: 42 | ssid: "PS-01 Sensor Setup" 43 | password: "boneio-setup" 44 | 45 | captive_portal: 46 | 47 | 48 | i2c: 49 | id: i2c_bus # Dodano ID dla czujników 50 | sda: GPIO10 51 | scl: GPIO11 52 | scan: True 53 | frequency: 400kHz 54 | 55 | # --- ZAKTUALIZOWANY UART (dla radaru) --- 56 | uart: 57 | - id: radar_uart 58 | tx_pin: GPIO21 # ESP TX -> Radar RX 59 | rx_pin: GPIO14 # ESP RX -> Radar TX 60 | baud_rate: 115200 # Standard dla LD2412 61 | - id: boneio_uart 62 | rx_pin: GPIO47 # CAN RX wg tabeli (dla CAN Bus) 63 | tx_pin: GPIO48 # CAN TX wg tabeli (dla CAN Bus) 64 | baud_rate: 9600 65 | stop_bits: 1 66 | 67 | # --- NOWA SEKCJA: Radar LD2412 --- 68 | ld2412: 69 | uart_id: radar_uart 70 | 71 | packages: 72 | internals_packages: 73 | url: https://github.com/boneIO-eu/esphome 74 | ref: v1.7.1 75 | files: [ 76 | 'devices/serial_no.yaml', 77 | ] 78 | 79 | dashboard_import: 80 | package_import_url: github://boneIO-eu/esphome/boneio-ps-01-presence-sensor.yaml@main # Zgadywany URL 81 | import_full_config: true 82 | 83 | # --- USUNIĘTY pcf8574 --- 84 | 85 | logger: 86 | hardware_uart: UART0 87 | api: 88 | reboot_timeout: 0s 89 | ota: 90 | - platform: esphome 91 | - platform: web_server 92 | 93 | web_server: 94 | port: 80 95 | version: 3 96 | local: true 97 | 98 | # --- USUNIĘTE 'output' i 'light' --- 99 | 100 | debug: 101 | update_interval: 15s 102 | 103 | sensor: 104 | - platform: lm75b 105 | id: boneIO_temp 106 | name: 'Temperature' 107 | update_interval: 30s 108 | entity_category: diagnostic 109 | on_value_range: 110 | - above: 70.0 111 | then: 112 | - switch.turn_on: buzzer 113 | - below: 70.0 114 | then: 115 | - switch.turn_off: buzzer 116 | - platform: debug 117 | free: 118 | name: "Heap Free" 119 | block: 120 | name: "Heap Max Block" 121 | 122 | # --- NOWA SEKCJA: Czujniki I2C --- 123 | - platform: sht4x 124 | i2c_id: i2c_bus 125 | address: 0x44 # Z tabeli 126 | temperature: 127 | name: "Temperatura" 128 | humidity: 129 | name: "Wilgotność" 130 | update_interval: 15s 131 | 132 | - platform: veml7700 133 | address: 0x10 134 | update_interval: 60s 135 | 136 | # short variant of sensor definition: 137 | ambient_light: "Ambient light" 138 | # longer variant of sensor definition: 139 | actual_gain: 140 | name: "Actual gain" 141 | 142 | # Czujniki dla radaru LD2412 (dystans, energia) 143 | # zostaną dodane automatycznie przez komponent 'ld2412' 144 | 145 | switch: 146 | - platform: gpio 147 | id: buzzer 148 | name: 'Buzzer' 149 | pin: 150 | number: GPIO12 # Zaktualizowany pin 151 | mode: output 152 | inverted: false 153 | 154 | - platform: gpio 155 | id: can_stb 156 | name: 'CAN STB' 157 | pin: 158 | number: GPIO13 # Zaktualizowany pin 159 | mode: output 160 | inverted: false 161 | 162 | # --- NOWA SEKCJA: Przełączniki --- 163 | - platform: gpio 164 | id: led_status 165 | name: 'LED Status' 166 | pin: 167 | number: GPIO1 # Zaktualizowany pin 168 | mode: output 169 | inverted: false 170 | 171 | - platform: gpio 172 | id: relay_1 173 | name: 'Przekaźnik 1' 174 | pin: 175 | number: GPIO18 # Z tabeli 176 | mode: output 177 | inverted: false 178 | 179 | - platform: gpio 180 | id: relay_2 181 | name: 'Przekaźnik 2' 182 | pin: 183 | number: GPIO17 # Z tabeli 184 | mode: output 185 | inverted: false 186 | 187 | 188 | binary_sensor: 189 | - platform: gpio 190 | name: 'Obecność (Pin OUT)' 191 | pin: 192 | number: GPIO41 # RADAR_OUT 193 | mode: input 194 | device_class: presence -------------------------------------------------------------------------------- /boneio-dimmer_2rgbw-v0_3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-rgbw-03 3 | friendly_name: 'BoneIO Dimmer LED' 4 | serial_prefix: 'dim' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led 12 | version: '0.3' 13 | 14 | esp32: 15 | board: esp32dev 16 | framework: 17 | type: esp-idf 18 | 19 | external_components: 20 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 21 | components: [lm75] 22 | 23 | packages: 24 | internals_packages: 25 | url: https://github.com/boneIO-eu/esphome 26 | ref: v1.7.1 27 | files: 28 | [ 29 | 'devices/serial_no.yaml', 30 | 'devices/dimmer_i2c.yaml', 31 | 'devices/dimmer_ina219.yaml', 32 | 'boards/dimmer_output.yaml', 33 | ] 34 | 35 | ethernet: 36 | id: eth 37 | type: LAN8720 38 | mdc_pin: GPIO23 39 | mdio_pin: GPIO18 40 | clk: 41 | pin: GPIO0 42 | mode: CLK_EXT_IN 43 | phy_addr: 1 44 | power_pin: GPIO16 45 | 46 | dashboard_import: 47 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_2rgbw-v0_3.yaml@latest 48 | import_full_config: true 49 | 50 | pcf8574: 51 | - id: 'pcf_inputs' 52 | address: 0x38 53 | 54 | logger: 55 | api: 56 | reboot_timeout: 0s 57 | ota: 58 | - platform: esphome 59 | - platform: web_server 60 | 61 | web_server: 62 | port: 80 63 | local: true 64 | 65 | text_sensor: 66 | - platform: version 67 | name: 'boneio-dimmer- Version' 68 | icon: mdi:cube-outline 69 | entity_category: diagnostic 70 | - platform: ethernet_info 71 | ip_address: 72 | entity_category: diagnostic 73 | name: boneio-dimmer IP 74 | - platform: template 75 | name: 'Hostname' 76 | id: hostname 77 | entity_category: diagnostic 78 | lambda: |- 79 | return std::string(id(eth).get_use_address()); 80 | update_interval: 5min 81 | 82 | binary_sensor: 83 | - platform: gpio 84 | name: 'IN_01' 85 | pin: 86 | pcf8574: pcf_inputs 87 | number: 1 88 | mode: 89 | input: true 90 | inverted: true 91 | on_multi_click: 92 | - timing: # double click 93 | - ON for at most 1s 94 | - OFF for at most 0.5s 95 | - ON for at most 1s 96 | - OFF for at least 0.2s 97 | then: 98 | - light.toggle: rgbw_l 99 | - logger.log: 'Double Click' 100 | - timing: # single click 101 | - ON for at most 1s 102 | - OFF for at least 0.5s 103 | then: 104 | - light.toggle: rgbw_l 105 | - logger.log: 'Single Click' 106 | - timing: # long click 107 | - ON for at least 1.4s 108 | then: 109 | - light.toggle: rgbw_r 110 | - logger.log: 'Long Click' 111 | - platform: gpio 112 | name: 'IN_02' 113 | pin: 114 | pcf8574: pcf_inputs 115 | number: 2 116 | mode: 117 | input: true 118 | inverted: true 119 | - platform: gpio 120 | name: 'IN_03' 121 | pin: 122 | pcf8574: pcf_inputs 123 | number: 3 124 | mode: 125 | input: true 126 | inverted: true 127 | - platform: gpio 128 | name: 'IN_04' 129 | pin: 130 | pcf8574: pcf_inputs 131 | number: 4 132 | mode: 133 | input: true 134 | inverted: true 135 | - platform: gpio 136 | name: 'IN_05' 137 | pin: 138 | number: 36 139 | mode: 140 | input: true 141 | inverted: true 142 | - platform: gpio 143 | name: 'IN_06' 144 | pin: 145 | number: 39 146 | mode: 147 | input: true 148 | inverted: true 149 | - platform: gpio 150 | name: 'IN_07' 151 | pin: 152 | number: 34 153 | mode: 154 | input: true 155 | inverted: true 156 | - platform: gpio 157 | name: 'IN_08' 158 | pin: 159 | number: 35 160 | mode: 161 | input: true 162 | inverted: true 163 | 164 | light: 165 | - platform: rgbw 166 | id: rgbw_l 167 | name: 'RGBW L' 168 | red: chl01 169 | green: chl02 170 | blue: chl03 171 | white: chl04 172 | default_transition_length: 2s 173 | gamma_correct: 0 174 | - platform: rgbw 175 | id: rgbw_r 176 | name: 'RGBW R' 177 | red: chr01 178 | green: chr02 179 | blue: chr03 180 | white: chr04 181 | default_transition_length: 2s 182 | gamma_correct: 0 183 | 184 | sensor: 185 | - platform: lm75 186 | id: boneIO_temp 187 | name: 'Temperature' 188 | update_interval: 30s 189 | entity_category: diagnostic 190 | on_value_range: 191 | - above: 70.0 192 | then: 193 | - switch.turn_on: buzzer 194 | - below: 70.0 195 | then: 196 | - switch.turn_off: buzzer 197 | 198 | switch: 199 | - platform: gpio 200 | id: buzzer 201 | name: 'Buzzer' 202 | pin: 203 | pcf8574: pcf_inputs 204 | number: 0 205 | mode: 206 | output: true 207 | inverted: true 208 | -------------------------------------------------------------------------------- /devices_v0_9/display.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x3C input oled 2 | sensor: 3 | - platform: uptime 4 | id: wt32_uptime_seconds 5 | update_interval: 60s 6 | entity_category: diagnostic 7 | on_raw_value: 8 | then: 9 | - text_sensor.template.publish: 10 | id: wt32_uptime 11 | state: !lambda |- 12 | int seconds = round(id(wt32_uptime_seconds).raw_state); 13 | int days = seconds / (24 * 3600); 14 | seconds = seconds % (24 * 3600); 15 | int hours = seconds / 3600; 16 | seconds = seconds % 3600; 17 | int minutes = seconds / 60; 18 | return ( 19 | (days ? to_string(days) + "d " : "") + 20 | (hours ? to_string(hours) + "h " : "") + 21 | (to_string(minutes) + "m") 22 | ).c_str(); 23 | 24 | text_sensor: 25 | - platform: template 26 | name: Uptime 27 | id: wt32_uptime 28 | entity_category: diagnostic 29 | icon: mdi:clock-start 30 | - platform: template 31 | name: 'IP Address' 32 | id: ip_address 33 | entity_category: diagnostic 34 | icon: 'mdi:ip-network' 35 | lambda: |- 36 | return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str(); 37 | update_interval: 60s 38 | 39 | script: 40 | - id: screensaver_script 41 | # screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked 42 | mode: restart 43 | then: 44 | # set the time after which the screensaver will be activated 45 | - delay: 30s 46 | - display.page.show: screensaver 47 | - component.update: oled_display 48 | 49 | esphome: 50 | on_boot: 51 | priority: 0 52 | then: 53 | - display.page.show: first_page 54 | - component.update: ip_address 55 | - component.update: oled_display 56 | - script.execute: screensaver_script 57 | 58 | binary_sensor: 59 | - platform: gpio 60 | entity_category: config 61 | id: boneIO_button 62 | pin: 63 | number: GPIO34 64 | mode: 65 | input: true 66 | inverted: true 67 | on_press: 68 | then: 69 | # woke up when on the screensaver, as well do not include the logo page and screensaver in a loop when pushing a button 70 | - if: 71 | condition: 72 | # on the last page go to the first page skipping the screensaver and logo page 73 | display.is_displaying_page: last_page 74 | then: 75 | - display.page.show: first_page 76 | - component.update: oled_display 77 | else: 78 | - if: 79 | condition: 80 | # on the screensaver, show the logo for a while and display the first page 81 | display.is_displaying_page: screensaver 82 | then: 83 | - display.page.show: first_page 84 | - component.update: oled_display 85 | else: 86 | # not the last page and screensaver go to the next page 87 | - display.page.show_next: oled_display 88 | - component.update: oled_display 89 | # restart screensaver script 90 | - script.execute: screensaver_script 91 | 92 | display: 93 | - platform: ssd1306_i2c 94 | id: oled_display 95 | model: 'SH1106 128x64' 96 | address: 0x3C 97 | contrast: 0.5 98 | pages: 99 | - id: first_page 100 | lambda: |- 101 | it.rectangle(0, 0, 126, 15); 102 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 103 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:"); 104 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str()); 105 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:"); 106 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); 107 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:"); 108 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state); 109 | # additional pages should be defined between the first and last page 110 | - id: last_page 111 | lambda: |- 112 | it.rectangle(0, 0, 126, 15); 113 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 114 | it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:"); 115 | it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); 116 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:"); 117 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); 118 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:"); 119 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); 120 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); 121 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); 122 | - id: screensaver 123 | lambda: |- 124 | it.fill(COLOR_OFF); 125 | 126 | font: 127 | - file: 'gfonts://Ubuntu' 128 | id: size_10 129 | size: 10 130 | -------------------------------------------------------------------------------- /devices_v0_4/display.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x3C input oled 2 | sensor: 3 | - platform: uptime 4 | id: wt32_uptime_seconds 5 | update_interval: 60s 6 | entity_category: diagnostic 7 | on_raw_value: 8 | then: 9 | - text_sensor.template.publish: 10 | id: wt32_uptime 11 | state: !lambda |- 12 | int seconds = round(id(wt32_uptime_seconds).raw_state); 13 | int days = seconds / (24 * 3600); 14 | seconds = seconds % (24 * 3600); 15 | int hours = seconds / 3600; 16 | seconds = seconds % 3600; 17 | int minutes = seconds / 60; 18 | return ( 19 | (days ? to_string(days) + "d " : "") + 20 | (hours ? to_string(hours) + "h " : "") + 21 | (to_string(minutes) + "m") 22 | ).c_str(); 23 | 24 | text_sensor: 25 | - platform: template 26 | name: Uptime 27 | id: wt32_uptime 28 | entity_category: diagnostic 29 | icon: mdi:clock-start 30 | - platform: template 31 | name: 'IP Address' 32 | id: ip_address 33 | entity_category: diagnostic 34 | icon: 'mdi:ip-network' 35 | lambda: |- 36 | return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str(); 37 | update_interval: 60s 38 | 39 | script: 40 | - id: screensaver_script 41 | # screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked 42 | mode: restart 43 | then: 44 | # set the time after which the screensaver will be activated 45 | - delay: 30s 46 | - display.page.show: screensaver 47 | - component.update: oled_display 48 | 49 | esphome: 50 | on_boot: 51 | priority: 0 52 | then: 53 | - display.page.show: first_page 54 | - component.update: ip_address 55 | - component.update: oled_display 56 | - script.execute: screensaver_script 57 | 58 | binary_sensor: 59 | - platform: gpio 60 | entity_category: config 61 | id: boneIO_button 62 | pin: 63 | number: GPIO4 64 | mode: 65 | input: true 66 | pullup: true 67 | inverted: true 68 | on_press: 69 | then: 70 | # woke up when on the screensaver, as well do not include the logo page and screensaver in a loop when pushing a button 71 | - if: 72 | condition: 73 | # on the last page go to the first page skipping the screensaver and logo page 74 | display.is_displaying_page: last_page 75 | then: 76 | - display.page.show: first_page 77 | - component.update: oled_display 78 | else: 79 | - if: 80 | condition: 81 | # on the screensaver, show the logo for a while and display the first page 82 | display.is_displaying_page: screensaver 83 | then: 84 | - display.page.show: first_page 85 | - component.update: oled_display 86 | else: 87 | # not the last page and screensaver go to the next page 88 | - display.page.show_next: oled_display 89 | - component.update: oled_display 90 | # restart screensaver script 91 | - script.execute: screensaver_script 92 | 93 | display: 94 | - platform: ssd1306_i2c 95 | id: oled_display 96 | model: "SH1106 128x64" 97 | address: 0x3C 98 | contrast: 0.5 99 | pages: 100 | - id: first_page 101 | lambda: |- 102 | it.rectangle(0, 0, 126, 15); 103 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 104 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:"); 105 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str()); 106 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:"); 107 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); 108 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:"); 109 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state); 110 | # additional pages should be defined between the first and last page 111 | - id: last_page 112 | lambda: |- 113 | it.rectangle(0, 0, 126, 15); 114 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 115 | it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:"); 116 | it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); 117 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:"); 118 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); 119 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:"); 120 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); 121 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); 122 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); 123 | - id: screensaver 124 | lambda: |- 125 | it.fill(COLOR_OFF); 126 | 127 | font: 128 | - file: 'gfonts://Ubuntu' 129 | id: size_10 130 | size: 10 131 | 132 | -------------------------------------------------------------------------------- /devices_v0_7/display.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x3C input oled 2 | sensor: 3 | - platform: uptime 4 | id: wt32_uptime_seconds 5 | update_interval: 60s 6 | entity_category: diagnostic 7 | on_raw_value: 8 | then: 9 | - text_sensor.template.publish: 10 | id: wt32_uptime 11 | state: !lambda |- 12 | int seconds = round(id(wt32_uptime_seconds).raw_state); 13 | int days = seconds / (24 * 3600); 14 | seconds = seconds % (24 * 3600); 15 | int hours = seconds / 3600; 16 | seconds = seconds % 3600; 17 | int minutes = seconds / 60; 18 | return ( 19 | (days ? to_string(days) + "d " : "") + 20 | (hours ? to_string(hours) + "h " : "") + 21 | (to_string(minutes) + "m") 22 | ).c_str(); 23 | 24 | text_sensor: 25 | - platform: template 26 | name: Uptime 27 | id: wt32_uptime 28 | entity_category: diagnostic 29 | icon: mdi:clock-start 30 | - platform: template 31 | name: 'IP Address' 32 | id: ip_address 33 | entity_category: diagnostic 34 | icon: 'mdi:ip-network' 35 | lambda: |- 36 | return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str(); 37 | update_interval: 60s 38 | 39 | script: 40 | - id: screensaver_script 41 | # screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked 42 | mode: restart 43 | then: 44 | # set the time after which the screensaver will be activated 45 | - delay: 30s 46 | - display.page.show: screensaver 47 | - component.update: oled_display 48 | 49 | esphome: 50 | on_boot: 51 | priority: 0 52 | then: 53 | - display.page.show: first_page 54 | - component.update: ip_address 55 | - component.update: oled_display 56 | - script.execute: screensaver_script 57 | 58 | binary_sensor: 59 | - platform: gpio 60 | entity_category: config 61 | id: boneIO_button 62 | pin: 63 | pcf8574: pcf_inputs_28to35_menu 64 | number: 7 65 | mode: 66 | input: true 67 | inverted: true 68 | on_press: 69 | then: 70 | # woke up when on the screensaver, as well do not include the logo page and screensaver in a loop when pushing a button 71 | - if: 72 | condition: 73 | # on the last page go to the first page skipping the screensaver and logo page 74 | display.is_displaying_page: last_page 75 | then: 76 | - display.page.show: first_page 77 | - component.update: oled_display 78 | else: 79 | - if: 80 | condition: 81 | # on the screensaver, show the logo for a while and display the first page 82 | display.is_displaying_page: screensaver 83 | then: 84 | - display.page.show: first_page 85 | - component.update: oled_display 86 | else: 87 | # not the last page and screensaver go to the next page 88 | - display.page.show_next: oled_display 89 | - component.update: oled_display 90 | # restart screensaver script 91 | - script.execute: screensaver_script 92 | 93 | display: 94 | - platform: ssd1306_i2c 95 | id: oled_display 96 | model: 'SH1106 128x64' 97 | address: 0x3C 98 | contrast: 0.5 99 | pages: 100 | - id: first_page 101 | lambda: |- 102 | it.rectangle(0, 0, 126, 15); 103 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 104 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:"); 105 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str()); 106 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:"); 107 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); 108 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:"); 109 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state); 110 | # additional pages should be defined between the first and last page 111 | - id: last_page 112 | lambda: |- 113 | it.rectangle(0, 0, 126, 15); 114 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 115 | it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:"); 116 | it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); 117 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:"); 118 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); 119 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:"); 120 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); 121 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); 122 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); 123 | - id: screensaver 124 | lambda: |- 125 | it.fill(COLOR_OFF); 126 | 127 | font: 128 | - file: 'gfonts://Ubuntu' 129 | id: size_10 130 | size: 10 131 | -------------------------------------------------------------------------------- /devices_v0_5-v0_6/display.yaml: -------------------------------------------------------------------------------- 1 | #i2c address: 0x3C input oled 2 | sensor: 3 | - platform: uptime 4 | id: wt32_uptime_seconds 5 | update_interval: 60s 6 | entity_category: diagnostic 7 | on_raw_value: 8 | then: 9 | - text_sensor.template.publish: 10 | id: wt32_uptime 11 | state: !lambda |- 12 | int seconds = round(id(wt32_uptime_seconds).raw_state); 13 | int days = seconds / (24 * 3600); 14 | seconds = seconds % (24 * 3600); 15 | int hours = seconds / 3600; 16 | seconds = seconds % 3600; 17 | int minutes = seconds / 60; 18 | return ( 19 | (days ? to_string(days) + "d " : "") + 20 | (hours ? to_string(hours) + "h " : "") + 21 | (to_string(minutes) + "m") 22 | ).c_str(); 23 | 24 | text_sensor: 25 | - platform: template 26 | name: Uptime 27 | id: wt32_uptime 28 | entity_category: diagnostic 29 | icon: mdi:clock-start 30 | - platform: template 31 | name: 'IP Address' 32 | id: ip_address 33 | entity_category: diagnostic 34 | icon: 'mdi:ip-network' 35 | lambda: |- 36 | return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str(); 37 | update_interval: 60s 38 | 39 | script: 40 | - id: screensaver_script 41 | # screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked 42 | mode: restart 43 | then: 44 | # set the time after which the screensaver will be activated 45 | - delay: 30s 46 | - display.page.show: screensaver 47 | - component.update: oled_display 48 | 49 | esphome: 50 | on_boot: 51 | priority: 0 52 | then: 53 | - display.page.show: first_page 54 | - component.update: ip_address 55 | - component.update: oled_display 56 | - script.execute: screensaver_script 57 | 58 | binary_sensor: 59 | - platform: gpio 60 | entity_category: config 61 | id: boneIO_button 62 | pin: 63 | pcf8574: pcf_inputs_28to35_menu 64 | number: 7 65 | mode: 66 | input: true 67 | inverted: true 68 | on_press: 69 | then: 70 | # woke up when on the screensaver, as well do not include the logo page and screensaver in a loop when pushing a button 71 | - if: 72 | condition: 73 | # on the last page go to the first page skipping the screensaver and logo page 74 | display.is_displaying_page: last_page 75 | then: 76 | - display.page.show: first_page 77 | - component.update: oled_display 78 | else: 79 | - if: 80 | condition: 81 | # on the screensaver, show the logo for a while and display the first page 82 | display.is_displaying_page: screensaver 83 | then: 84 | - display.page.show: first_page 85 | - component.update: oled_display 86 | else: 87 | # not the last page and screensaver go to the next page 88 | - display.page.show_next: oled_display 89 | - component.update: oled_display 90 | # restart screensaver script 91 | - script.execute: screensaver_script 92 | 93 | display: 94 | - platform: ssd1306_i2c 95 | id: oled_display 96 | model: 'SH1106 128x64' 97 | address: 0x3C 98 | i2c_id: bus_b 99 | contrast: 0.5 100 | pages: 101 | - id: first_page 102 | lambda: |- 103 | it.rectangle(0, 0, 126, 15); 104 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 105 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:"); 106 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str()); 107 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:"); 108 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); 109 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:"); 110 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state); 111 | # additional pages should be defined between the first and last page 112 | - id: last_page 113 | lambda: |- 114 | it.rectangle(0, 0, 126, 15); 115 | it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); 116 | it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:"); 117 | it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); 118 | it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:"); 119 | it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); 120 | it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:"); 121 | it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); 122 | it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); 123 | it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); 124 | - id: screensaver 125 | lambda: |- 126 | it.fill(COLOR_OFF); 127 | 128 | font: 129 | - file: 'gfonts://Ubuntu' 130 | id: size_10 131 | size: 10 132 | -------------------------------------------------------------------------------- /dimmer_gen2_can.yaml: -------------------------------------------------------------------------------- 1 | #CAN 2 | substitutions: 3 | name: boneio-dr-gen2-8ch-dev04-3328f7 4 | friendly_name: BoneIO Dimmer dev0.4 3328f7 5 | serial_prefix: dim2 #Don't change it. 6 | firmware_manifest: https://boneio.eu/esp/boneio-dr-gen2-8ch-dev04.json 7 | esphome: 8 | name: ${name} 9 | friendly_name: ${friendly_name} 10 | name_add_mac_suffix: false 11 | project: 12 | name: boneio.dimmer-led-gen2 13 | version: dev0.4 14 | on_boot: 15 | priority: -100 16 | then: 17 | - delay: 5s 18 | - if: 19 | condition: 20 | lambda: return id(serial_no) != nullptr; 21 | then: 22 | - component.update: serial_no 23 | - logger.log: Serial No updated on boot 24 | else: 25 | - logger.log: Serial No component not found 26 | 27 | external_components: 28 | - source: github://mrk-its/esphome-canopen 29 | 30 | esp32: 31 | board: esp32-s3-devkitc-1 32 | framework: 33 | type: esp-idf 34 | 35 | 36 | ethernet: 37 | id: eth 38 | type: W5500 39 | clk_pin: GPIO13 40 | mosi_pin: GPIO39 41 | miso_pin: GPIO38 42 | cs_pin: GPIO12 43 | interrupt_pin: GPIO2 44 | reset_pin: GPIO1 45 | clock_speed: 25MHz 46 | # use_address: 192.168.13.107 47 | use_address: 192.168.50.173 48 | 49 | 50 | i2c: 51 | sda: GPIO10 52 | scl: GPIO11 53 | scan: true 54 | frequency: 400kHz 55 | 56 | uart: 57 | id: boneio_uart 58 | rx_pin: GPIO21 59 | tx_pin: GPIO14 60 | baud_rate: 9600 61 | stop_bits: 1 62 | 63 | output: 64 | - platform: ledc 65 | pin: GPIO18 66 | frequency: 1000Hz 67 | inverted: false 68 | id: chl01 69 | - platform: ledc 70 | pin: GPIO17 71 | frequency: 1000Hz 72 | inverted: false 73 | id: chl02 74 | - platform: ledc 75 | pin: GPIO16 76 | frequency: 1000Hz 77 | inverted: false 78 | id: chl03 79 | - platform: ledc 80 | pin: GPIO15 81 | frequency: 1000Hz 82 | inverted: false 83 | id: chl04 84 | 85 | - platform: ledc 86 | pin: GPIO7 87 | frequency: 1000Hz 88 | inverted: false 89 | id: chr01 90 | - platform: ledc 91 | pin: GPIO6 92 | frequency: 1000Hz 93 | inverted: false 94 | id: chr02 95 | - platform: ledc 96 | pin: GPIO5 97 | frequency: 1000Hz 98 | inverted: false 99 | id: chr03 100 | - platform: ledc 101 | pin: GPIO4 102 | frequency: 1000Hz 103 | inverted: false 104 | id: chr04 105 | 106 | 107 | ##CAN gpio48 - tx, gpio47 rx, gpio35 stb 108 | 109 | 110 | packages: 111 | internals_packages: 112 | url: https://github.com/boneIO-eu/esphome 113 | ref: v1.7.1 114 | files: [devices/serial_no.yaml] 115 | 116 | dashboard_import: 117 | package_import_url: 118 | github://boneIO-eu/esphome/boneio-dimmer_g2_8ch-dev0_4.yaml@main 119 | import_full_config: true 120 | 121 | pcf8574: 122 | - id: pcf_inputs 123 | address: 0x38 124 | 125 | # http_request: 126 | # timeout: 7s 127 | # verify_ssl: false 128 | logger: 129 | hardware_uart: UART0 130 | api: 131 | reboot_timeout: 0s 132 | ota: 133 | - platform: esphome 134 | - platform: web_server 135 | 136 | 137 | web_server: 138 | port: 80 139 | version: 3 140 | local: true 141 | 142 | 143 | switch: 144 | - platform: gpio 145 | id: buzzer 146 | name: Buzzer 147 | pin: 148 | number: GPIO9 149 | mode: 150 | output: true 151 | inverted: false 152 | - platform: gpio 153 | id: can_bus_switch 154 | name: CAN Bus Switch 155 | pin: 156 | number: GPIO3 157 | mode: 158 | output: true 159 | inverted: false 160 | - platform: template 161 | id: master 162 | name: master 163 | optimistic: true 164 | on_turn_on: 165 | then: 166 | - delay: 0ms 167 | - lambda: id(can_open).send_entity_cmd(0x2, 1, (uint8_t)1); 168 | on_turn_off: 169 | then: 170 | - delay: 0ms 171 | - lambda: id(can_open).send_entity_cmd(0x2, 1, (uint8_t)0); 172 | 173 | binary_sensor: 174 | 175 | - platform: gpio 176 | name: IN_01 177 | id: in_01 178 | pin: 179 | pcf8574: pcf_inputs 180 | number: 0 181 | mode: 182 | input: true 183 | inverted: true 184 | 185 | - platform: gpio 186 | name: IN_02 187 | id: in_02 188 | pin: 189 | pcf8574: pcf_inputs 190 | number: 1 191 | mode: 192 | input: true 193 | inverted: true 194 | 195 | - platform: gpio 196 | name: IN_03 197 | id: in_03 198 | pin: 199 | pcf8574: pcf_inputs 200 | number: 2 201 | mode: 202 | input: true 203 | inverted: true 204 | 205 | - platform: gpio 206 | name: IN_04 207 | id: in_04 208 | pin: 209 | pcf8574: pcf_inputs 210 | number: 3 211 | mode: 212 | input: true 213 | inverted: true 214 | 215 | - platform: gpio 216 | name: IN_05 217 | id: in_05 218 | pin: 219 | pcf8574: pcf_inputs 220 | number: 4 221 | mode: 222 | input: true 223 | inverted: true 224 | 225 | - platform: gpio 226 | name: IN_06 227 | id: in_06 228 | pin: 229 | pcf8574: pcf_inputs 230 | number: 5 231 | mode: 232 | input: true 233 | inverted: true 234 | 235 | - platform: gpio 236 | name: IN_07 237 | id: in_07 238 | pin: 239 | pcf8574: pcf_inputs 240 | number: 6 241 | mode: 242 | input: true 243 | inverted: true 244 | 245 | - platform: gpio 246 | name: IN_08 247 | id: in_08 248 | pin: 249 | pcf8574: pcf_inputs 250 | number: 7 251 | mode: 252 | input: true 253 | inverted: true 254 | - platform: template 255 | name: CAN Bus Button 256 | id: can_bus_button 257 | 258 | canbus: 259 | - platform: esp32_can 260 | id: can_bus 261 | tx_pin: GPIO48 262 | rx_pin: GPIO47 263 | can_id: 1 264 | bit_rate: 50kbps 265 | 266 | 267 | # button: 268 | # - platform: template 269 | # name: 'CAN Sensor ON' 270 | # on_press: 271 | # - logger.log: Button Pressed 272 | # - canbus.send: [0x11, 0x22, 0x33] 273 | # - platform: template 274 | # name: 'CAN Sensor OFF' 275 | # on_press: 276 | # - logger.log: Button Pressed 277 | # - canbus.send: [0x12, 0x22, 0x33] 278 | 279 | canopen: 280 | id: can_open 281 | canbus_id: can_bus 282 | entities: [] 283 | node_id: 1 284 | 285 | -------------------------------------------------------------------------------- /boneio-dimmer_gen2_2rgbw-v0_1.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-gen2-2rgbw-01 3 | friendly_name: 'BoneIO Dimmer Gen2' 4 | serial_prefix: 'dim2' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/fwesp/boneio-dr-gen2-2rgbw-01.json' 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led-gen2 12 | version: '0.1' 13 | on_boot: 14 | priority: -100 15 | then: 16 | - delay: 5s 17 | - if: 18 | condition: 19 | lambda: 'return id(serial_no) != nullptr;' 20 | then: 21 | - component.update: serial_no 22 | - logger.log: "Serial No updated on boot" 23 | else: 24 | - logger.log: "Serial No component not found" 25 | 26 | esp32: 27 | board: esp32-s3-devkitc-1 28 | framework: 29 | type: esp-idf 30 | 31 | ethernet: 32 | id: eth 33 | type: W5500 34 | clk_pin: GPIO13 35 | mosi_pin: GPIO39 36 | miso_pin: GPIO38 37 | cs_pin: GPIO12 38 | interrupt_pin: GPIO2 39 | reset_pin: GPIO1 40 | clock_speed: 25MHz 41 | 42 | i2c: 43 | sda: GPIO10 44 | scl: GPIO11 45 | scan: True 46 | frequency: 400kHz 47 | 48 | 49 | 50 | output: 51 | - platform: ledc 52 | pin: GPIO18 53 | frequency: 1000Hz 54 | inverted: false 55 | id: chl01 56 | - platform: ledc 57 | pin: GPIO17 58 | frequency: 1000Hz 59 | inverted: false 60 | id: chl02 61 | - platform: ledc 62 | pin: GPIO16 63 | frequency: 1000Hz 64 | inverted: false 65 | id: chl03 66 | - platform: ledc 67 | pin: GPIO15 68 | frequency: 1000Hz 69 | inverted: false 70 | id: chl04 71 | 72 | - platform: ledc 73 | pin: GPIO7 74 | frequency: 1000Hz 75 | inverted: false 76 | id: chr01 77 | - platform: ledc 78 | pin: GPIO6 79 | frequency: 1000Hz 80 | inverted: false 81 | id: chr02 82 | - platform: ledc 83 | pin: GPIO5 84 | frequency: 1000Hz 85 | inverted: false 86 | id: chr03 87 | - platform: ledc 88 | pin: GPIO4 89 | frequency: 1000Hz 90 | inverted: false 91 | id: chr04 92 | 93 | 94 | # CAN gpio48 - tx, gpio47 rx, gpio35 stb 95 | # uart: 96 | # id: boneio_uart 97 | # rx_pin: GPIO21 98 | # tx_pin: GPIO14 99 | # baud_rate: 9600 100 | # stop_bits: 1 101 | # modbus: 102 | # send_wait_time: 80ms 103 | # uart_id: boneio_uart 104 | # id: boneio_modbus 105 | 106 | packages: 107 | internals_packages: 108 | url: https://github.com/boneIO-eu/esphome 109 | ref: v1.7.1 110 | files: [ 111 | 'devices/serial_no.yaml', 112 | ] 113 | # boneiopackages: 114 | # url: https://github.com/boneIO-eu/esphome_packages 115 | # ref: main 116 | # refresh: 1min 117 | # files: 118 | # - path: sdm630.yaml 119 | 120 | dashboard_import: 121 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_2rgbw-v0_1.yaml@main 122 | import_full_config: true 123 | 124 | pcf8574: 125 | - id: 'pcf_inputs' 126 | address: 0x38 127 | 128 | logger: 129 | hardware_uart: UART0 130 | api: 131 | reboot_timeout: 0s 132 | ota: 133 | - platform: esphome 134 | - platform: web_server 135 | 136 | web_server: 137 | port: 80 138 | version: 3 139 | local: true 140 | 141 | 142 | light: 143 | - platform: rgbw 144 | id: rgbw_l 145 | name: 'RGBW L' 146 | red: chl01 147 | green: chl02 148 | blue: chl03 149 | white: chl04 150 | default_transition_length: 2s 151 | gamma_correct: 0 152 | - platform: rgbw 153 | id: rgbw_r 154 | name: 'RGBW R' 155 | red: chr01 156 | green: chr02 157 | blue: chr03 158 | white: chr04 159 | default_transition_length: 2s 160 | gamma_correct: 0 161 | 162 | debug: 163 | update_interval: 15s 164 | 165 | sensor: 166 | - platform: debug 167 | free: 168 | name: "Heap Free" 169 | block: 170 | name: "Heap Max Block" 171 | loop_time: 172 | name: "Loop Time" 173 | - platform: lm75b 174 | id: boneIO_temp 175 | name: 'Temperature' 176 | update_interval: 30s 177 | entity_category: diagnostic 178 | on_value_range: 179 | - above: 70.0 180 | then: 181 | - switch.turn_on: buzzer 182 | - below: 70.0 183 | then: 184 | - switch.turn_off: buzzer 185 | 186 | switch: 187 | - platform: gpio 188 | id: buzzer 189 | name: 'Buzzer' 190 | pin: 191 | number: GPIO9 192 | mode: 193 | output: true 194 | inverted: false 195 | - platform: gpio 196 | id: can_bus_switch 197 | name: 'CAN Bus Switch' 198 | pin: 199 | number: GPIO35 200 | mode: 201 | output: true 202 | inverted: false 203 | 204 | binary_sensor: 205 | - platform: gpio 206 | name: 'IN_01' 207 | id: in_01 208 | pin: 209 | pcf8574: pcf_inputs 210 | number: 0 211 | mode: 212 | input: true 213 | inverted: true 214 | 215 | - platform: gpio 216 | name: 'IN_02' 217 | id: in_02 218 | pin: 219 | pcf8574: pcf_inputs 220 | number: 1 221 | mode: 222 | input: true 223 | inverted: true 224 | 225 | - platform: gpio 226 | name: 'IN_03' 227 | id: in_03 228 | pin: 229 | pcf8574: pcf_inputs 230 | number: 2 231 | mode: 232 | input: true 233 | inverted: true 234 | 235 | - platform: gpio 236 | name: 'IN_04' 237 | id: in_04 238 | pin: 239 | pcf8574: pcf_inputs 240 | number: 3 241 | mode: 242 | input: true 243 | inverted: true 244 | 245 | - platform: gpio 246 | name: 'IN_05' 247 | id: in_05 248 | pin: 249 | pcf8574: pcf_inputs 250 | number: 4 251 | mode: 252 | input: true 253 | inverted: true 254 | 255 | - platform: gpio 256 | name: 'IN_06' 257 | id: in_06 258 | pin: 259 | pcf8574: pcf_inputs 260 | number: 5 261 | mode: 262 | input: true 263 | inverted: true 264 | 265 | - platform: gpio 266 | name: 'IN_07' 267 | id: in_07 268 | pin: 269 | pcf8574: pcf_inputs 270 | number: 6 271 | mode: 272 | input: true 273 | inverted: true 274 | 275 | - platform: gpio 276 | name: 'IN_08' 277 | id: in_08 278 | pin: 279 | pcf8574: pcf_inputs 280 | number: 7 281 | mode: 282 | input: true 283 | inverted: true -------------------------------------------------------------------------------- /configuration/dimmer-dev2.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dev02 3 | friendly_name: 'BoneIO Dimmer dev0.2' 4 | serial_prefix: 'dim' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: false 10 | project: 11 | name: boneio.dimmer-led 12 | version: 'dev0.2' 13 | 14 | esp32: 15 | board: esp32-s3-devkitc-1 16 | 17 | 18 | ethernet: 19 | id: eth 20 | type: W5500 21 | clk_pin: GPIO12 22 | mosi_pin: GPIO39 23 | miso_pin: GPIO38 24 | cs_pin: GPIO13 25 | interrupt_pin: GPIO2 26 | reset_pin: GPIO1 27 | # Enable fallback hotspot (captive portal) in case wifi connection fails 28 | 29 | external_components: 30 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 31 | components: [lm75] 32 | 33 | i2c: 34 | sda: GPIO10 35 | scl: GPIO11 36 | scan: True 37 | frequency: 400kHz 38 | 39 | uart: 40 | id: boneio_uart 41 | rx_pin: GPIO14 42 | tx_pin: GPIO21 43 | baud_rate: 9600 44 | stop_bits: 1 45 | 46 | output: 47 | - platform: ledc 48 | pin: GPIO18 49 | frequency: 1000Hz 50 | inverted: false 51 | id: chl01 52 | - platform: ledc 53 | pin: GPIO17 54 | frequency: 1000Hz 55 | inverted: false 56 | id: chl02 57 | - platform: ledc 58 | pin: GPIO16 59 | frequency: 1000Hz 60 | inverted: false 61 | id: chl03 62 | - platform: ledc 63 | pin: GPIO15 64 | frequency: 1000Hz 65 | inverted: false 66 | id: chl04 67 | 68 | - platform: ledc 69 | pin: GPIO7 70 | frequency: 1000Hz 71 | inverted: false 72 | id: chr01 73 | - platform: ledc 74 | pin: GPIO6 75 | frequency: 1000Hz 76 | inverted: false 77 | id: chr02 78 | - platform: ledc 79 | pin: GPIO5 80 | frequency: 1000Hz 81 | inverted: false 82 | id: chr03 83 | - platform: ledc 84 | pin: GPIO4 85 | frequency: 1000Hz 86 | inverted: false 87 | id: chr04 88 | 89 | ##CAN gpio1 - tx, gpio2 rx 90 | 91 | modbus: 92 | send_wait_time: 200ms 93 | uart_id: boneio_uart 94 | id: boneio_modbus 95 | 96 | packages: 97 | boneio_packages: 98 | url: "https://github.com/boneIO-eu/esphome_packages" 99 | refresh: 1min 100 | files: 101 | - path: "sdm630.yaml" 102 | vars: 103 | device_name: "MySDM" 104 | 105 | # dashboard_import: 106 | # package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest 107 | # import_full_config: true 108 | 109 | pcf8574: 110 | - id: 'pcf_inputs' 111 | address: 0x38 112 | 113 | logger: 114 | hardware_uart: UART0 115 | api: 116 | reboot_timeout: 0s 117 | ota: 118 | - platform: esphome 119 | - platform: web_server 120 | 121 | web_server: 122 | port: 80 123 | local: true 124 | 125 | 126 | light: 127 | - platform: monochromatic 128 | output: chl01 129 | name: 'CHL 01' 130 | id: chl_01 131 | default_transition_length: 2s 132 | gamma_correct: 0 133 | - platform: monochromatic 134 | output: chl02 135 | name: 'CHL 02' 136 | id: chl_02 137 | default_transition_length: 2s 138 | gamma_correct: 0 139 | - platform: monochromatic 140 | output: chl03 141 | name: 'CHL 03' 142 | id: chl_03 143 | default_transition_length: 2s 144 | gamma_correct: 0 145 | - platform: monochromatic 146 | output: chl04 147 | name: 'CHL 04' 148 | id: chl_04 149 | default_transition_length: 2s 150 | gamma_correct: 0 151 | 152 | - platform: monochromatic 153 | output: chr01 154 | name: 'CHR 01' 155 | id: chr_01 156 | default_transition_length: 2s 157 | gamma_correct: 0 158 | - platform: monochromatic 159 | output: chr02 160 | name: 'CHR 02' 161 | id: chr_02 162 | default_transition_length: 2s 163 | gamma_correct: 0 164 | - platform: monochromatic 165 | output: chr03 166 | name: 'CHR 03' 167 | id: chr_03 168 | default_transition_length: 2s 169 | gamma_correct: 0 170 | - platform: monochromatic 171 | output: chr04 172 | name: 'CHR 04' 173 | id: chr_04 174 | default_transition_length: 2s 175 | gamma_correct: 0 176 | 177 | debug: 178 | update_interval: 15s 179 | 180 | sensor: 181 | - platform: debug 182 | free: 183 | name: "Heap Free" 184 | block: 185 | name: "Heap Max Block" 186 | loop_time: 187 | name: "Loop Time" 188 | - platform: lm75 189 | id: boneIO_temp 190 | name: 'Temperature' 191 | update_interval: 30s 192 | entity_category: diagnostic 193 | on_value_range: 194 | - above: 70.0 195 | then: 196 | - switch.turn_on: buzzer 197 | - below: 70.0 198 | then: 199 | - switch.turn_off: buzzer 200 | 201 | switch: 202 | - platform: gpio 203 | id: buzzer 204 | name: 'Buzzer' 205 | pin: 206 | number: GPIO9 207 | mode: 208 | output: true 209 | inverted: false 210 | 211 | binary_sensor: 212 | - platform: gpio 213 | name: 'IN_01' 214 | id: in_01 215 | pin: 216 | pcf8574: pcf_inputs 217 | number: 0 218 | mode: 219 | input: true 220 | inverted: true 221 | 222 | - platform: gpio 223 | name: 'IN_02' 224 | id: in_02 225 | pin: 226 | pcf8574: pcf_inputs 227 | number: 1 228 | mode: 229 | input: true 230 | inverted: true 231 | 232 | - platform: gpio 233 | name: 'IN_03' 234 | id: in_03 235 | pin: 236 | pcf8574: pcf_inputs 237 | number: 2 238 | mode: 239 | input: true 240 | inverted: true 241 | 242 | - platform: gpio 243 | name: 'IN_04' 244 | id: in_04 245 | pin: 246 | pcf8574: pcf_inputs 247 | number: 3 248 | mode: 249 | input: true 250 | inverted: true 251 | 252 | - platform: gpio 253 | name: 'IN_05' 254 | id: in_05 255 | pin: 256 | pcf8574: pcf_inputs 257 | number: 4 258 | mode: 259 | input: true 260 | inverted: true 261 | 262 | - platform: gpio 263 | name: 'IN_06' 264 | id: in_06 265 | pin: 266 | pcf8574: pcf_inputs 267 | number: 5 268 | mode: 269 | input: true 270 | inverted: true 271 | 272 | - platform: gpio 273 | name: 'IN_07' 274 | id: in_07 275 | pin: 276 | pcf8574: pcf_inputs 277 | number: 6 278 | mode: 279 | input: true 280 | inverted: true 281 | 282 | - platform: gpio 283 | name: 'IN_08' 284 | id: in_08 285 | pin: 286 | pcf8574: pcf_inputs 287 | number: 7 288 | mode: 289 | input: true 290 | inverted: true 291 | 292 | -------------------------------------------------------------------------------- /boneio-dimmer_gen2_4cct-v0_1.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-gen2-4cct-01 3 | friendly_name: 'BoneIO Dimmer Gen2' 4 | serial_prefix: 'dim2' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/fwesp/boneio-dr-gen2-4cct-01.json' 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led-gen2 12 | version: '0.1' 13 | on_boot: 14 | priority: -100 15 | then: 16 | - delay: 5s 17 | - if: 18 | condition: 19 | lambda: 'return id(serial_no) != nullptr;' 20 | then: 21 | - component.update: serial_no 22 | - logger.log: "Serial No updated on boot" 23 | else: 24 | - logger.log: "Serial No component not found" 25 | 26 | esp32: 27 | board: esp32-s3-devkitc-1 28 | framework: 29 | type: esp-idf 30 | 31 | ethernet: 32 | id: eth 33 | type: W5500 34 | clk_pin: GPIO13 35 | mosi_pin: GPIO39 36 | miso_pin: GPIO38 37 | cs_pin: GPIO12 38 | interrupt_pin: GPIO2 39 | reset_pin: GPIO1 40 | clock_speed: 25MHz 41 | 42 | i2c: 43 | sda: GPIO10 44 | scl: GPIO11 45 | scan: True 46 | frequency: 400kHz 47 | 48 | 49 | 50 | output: 51 | - platform: ledc 52 | pin: GPIO18 53 | frequency: 1000Hz 54 | inverted: false 55 | id: chl01 56 | - platform: ledc 57 | pin: GPIO17 58 | frequency: 1000Hz 59 | inverted: false 60 | id: chl02 61 | - platform: ledc 62 | pin: GPIO16 63 | frequency: 1000Hz 64 | inverted: false 65 | id: chl03 66 | - platform: ledc 67 | pin: GPIO15 68 | frequency: 1000Hz 69 | inverted: false 70 | id: chl04 71 | 72 | - platform: ledc 73 | pin: GPIO7 74 | frequency: 1000Hz 75 | inverted: false 76 | id: chr01 77 | - platform: ledc 78 | pin: GPIO6 79 | frequency: 1000Hz 80 | inverted: false 81 | id: chr02 82 | - platform: ledc 83 | pin: GPIO5 84 | frequency: 1000Hz 85 | inverted: false 86 | id: chr03 87 | - platform: ledc 88 | pin: GPIO4 89 | frequency: 1000Hz 90 | inverted: false 91 | id: chr04 92 | 93 | 94 | # CAN gpio48 - tx, gpio47 rx, gpio35 stb 95 | # uart: 96 | # id: boneio_uart 97 | # rx_pin: GPIO21 98 | # tx_pin: GPIO14 99 | # baud_rate: 9600 100 | # stop_bits: 1 101 | # modbus: 102 | # send_wait_time: 80ms 103 | # uart_id: boneio_uart 104 | # id: boneio_modbus 105 | 106 | packages: 107 | internals_packages: 108 | url: https://github.com/boneIO-eu/esphome 109 | ref: v1.7.1 110 | files: [ 111 | 'devices/serial_no.yaml', 112 | ] 113 | # boneiopackages: 114 | # url: https://github.com/boneIO-eu/esphome_packages 115 | # ref: main 116 | # refresh: 1min 117 | # files: 118 | # - path: sdm630.yaml 119 | 120 | dashboard_import: 121 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_4cct-v0_1.yaml@main 122 | import_full_config: true 123 | 124 | pcf8574: 125 | - id: 'pcf_inputs' 126 | address: 0x38 127 | 128 | logger: 129 | hardware_uart: UART0 130 | api: 131 | reboot_timeout: 0s 132 | ota: 133 | - platform: esphome 134 | - platform: web_server 135 | 136 | web_server: 137 | port: 80 138 | version: 3 139 | local: true 140 | 141 | 142 | light: 143 | - platform: cwww 144 | name: 'CHL_01_02' 145 | cold_white: chl01 146 | warm_white: chl02 147 | cold_white_color_temperature: 6536 K 148 | warm_white_color_temperature: 2000 K 149 | - platform: cwww 150 | name: 'CHL_03_04' 151 | cold_white: chl03 152 | warm_white: chl04 153 | cold_white_color_temperature: 6536 K 154 | warm_white_color_temperature: 2000 K 155 | 156 | - platform: cwww 157 | name: 'CHR_01_02' 158 | cold_white: chr01 159 | warm_white: chr02 160 | cold_white_color_temperature: 6536 K 161 | warm_white_color_temperature: 2000 K 162 | 163 | - platform: cwww 164 | name: 'CHR_03_04' 165 | cold_white: chr03 166 | warm_white: chr04 167 | cold_white_color_temperature: 6536 K 168 | warm_white_color_temperature: 2000 K 169 | 170 | debug: 171 | update_interval: 15s 172 | 173 | sensor: 174 | - platform: debug 175 | free: 176 | name: "Heap Free" 177 | block: 178 | name: "Heap Max Block" 179 | loop_time: 180 | name: "Loop Time" 181 | - platform: lm75b 182 | id: boneIO_temp 183 | name: 'Temperature' 184 | update_interval: 30s 185 | entity_category: diagnostic 186 | on_value_range: 187 | - above: 70.0 188 | then: 189 | - switch.turn_on: buzzer 190 | - below: 70.0 191 | then: 192 | - switch.turn_off: buzzer 193 | 194 | switch: 195 | - platform: gpio 196 | id: buzzer 197 | name: 'Buzzer' 198 | pin: 199 | number: GPIO9 200 | mode: 201 | output: true 202 | inverted: false 203 | - platform: gpio 204 | id: can_bus_switch 205 | name: 'CAN Bus Switch' 206 | pin: 207 | number: GPIO35 208 | mode: 209 | output: true 210 | inverted: false 211 | 212 | binary_sensor: 213 | - platform: gpio 214 | name: 'IN_01' 215 | id: in_01 216 | pin: 217 | pcf8574: pcf_inputs 218 | number: 0 219 | mode: 220 | input: true 221 | inverted: true 222 | 223 | - platform: gpio 224 | name: 'IN_02' 225 | id: in_02 226 | pin: 227 | pcf8574: pcf_inputs 228 | number: 1 229 | mode: 230 | input: true 231 | inverted: true 232 | 233 | - platform: gpio 234 | name: 'IN_03' 235 | id: in_03 236 | pin: 237 | pcf8574: pcf_inputs 238 | number: 2 239 | mode: 240 | input: true 241 | inverted: true 242 | 243 | - platform: gpio 244 | name: 'IN_04' 245 | id: in_04 246 | pin: 247 | pcf8574: pcf_inputs 248 | number: 3 249 | mode: 250 | input: true 251 | inverted: true 252 | 253 | - platform: gpio 254 | name: 'IN_05' 255 | id: in_05 256 | pin: 257 | pcf8574: pcf_inputs 258 | number: 4 259 | mode: 260 | input: true 261 | inverted: true 262 | 263 | - platform: gpio 264 | name: 'IN_06' 265 | id: in_06 266 | pin: 267 | pcf8574: pcf_inputs 268 | number: 5 269 | mode: 270 | input: true 271 | inverted: true 272 | 273 | - platform: gpio 274 | name: 'IN_07' 275 | id: in_07 276 | pin: 277 | pcf8574: pcf_inputs 278 | number: 6 279 | mode: 280 | input: true 281 | inverted: true 282 | 283 | - platform: gpio 284 | name: 'IN_08' 285 | id: in_08 286 | pin: 287 | pcf8574: pcf_inputs 288 | number: 7 289 | mode: 290 | input: true 291 | inverted: true -------------------------------------------------------------------------------- /boneio-8x10A_gen2_lights-v0_1.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-8x10a-gen2-01 3 | friendly_name: 'boneIO ESP 8x10A Gen2' 4 | serial_prefix: 'esp8' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/fwesp/boneio-8x10a-gen2-01.json' 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.8x10a-gen2 12 | version: '0.1' 13 | on_boot: 14 | priority: -100 15 | then: 16 | - delay: 5s 17 | - if: 18 | condition: 19 | lambda: 'return id(serial_no) != nullptr;' 20 | then: 21 | - component.update: serial_no 22 | - logger.log: "Serial No updated on boot" 23 | else: 24 | - logger.log: "Serial No component not found" 25 | 26 | esp32: 27 | board: esp32-s3-devkitc-1 28 | framework: 29 | type: esp-idf 30 | 31 | ethernet: 32 | id: eth 33 | type: W5500 34 | clk_pin: GPIO13 35 | mosi_pin: GPIO39 36 | miso_pin: GPIO38 37 | cs_pin: GPIO12 38 | interrupt_pin: GPIO2 39 | reset_pin: GPIO1 40 | clock_speed: 25MHz 41 | 42 | i2c: 43 | sda: GPIO10 44 | scl: GPIO11 45 | scan: True 46 | frequency: 400kHz 47 | 48 | 49 | 50 | output: 51 | - platform: gpio 52 | pin: GPIO18 53 | inverted: false 54 | id: out_01 55 | - platform: gpio 56 | pin: GPIO17 57 | inverted: false 58 | id: out_02 59 | - platform: gpio 60 | pin: GPIO16 61 | inverted: false 62 | id: out_03 63 | - platform: gpio 64 | pin: GPIO15 65 | inverted: false 66 | id: out_04 67 | 68 | - platform: gpio 69 | pin: GPIO7 70 | inverted: false 71 | id: out_05 72 | - platform: gpio 73 | pin: GPIO6 74 | inverted: false 75 | id: out_06 76 | - platform: gpio 77 | pin: GPIO5 78 | inverted: false 79 | id: out_07 80 | - platform: gpio 81 | pin: GPIO4 82 | inverted: false 83 | id: out_08 84 | 85 | 86 | # CAN gpio48 - tx, gpio47 rx, gpio35 stb 87 | # uart: 88 | # id: boneio_uart 89 | # rx_pin: GPIO21 90 | # tx_pin: GPIO14 91 | # baud_rate: 9600 92 | # stop_bits: 1 93 | # modbus: 94 | # send_wait_time: 80ms 95 | # uart_id: boneio_uart 96 | # id: boneio_modbus 97 | 98 | packages: 99 | internals_packages: 100 | url: https://github.com/boneIO-eu/esphome 101 | ref: v1.7.1 102 | files: [ 103 | 'devices/serial_no.yaml', 104 | ] 105 | # boneiopackages: 106 | # url: https://github.com/boneIO-eu/esphome_packages 107 | # ref: main 108 | # refresh: 1min 109 | # files: 110 | # - path: sdm630.yaml 111 | 112 | dashboard_import: 113 | package_import_url: github://boneIO-eu/esphome/boneio-8x10A_gen2-v0_1.yaml@latest 114 | import_full_config: true 115 | 116 | pcf8574: 117 | - id: 'pcf_inputs' 118 | address: 0x38 119 | 120 | logger: 121 | hardware_uart: UART0 122 | api: 123 | reboot_timeout: 0s 124 | ota: 125 | - platform: esphome 126 | - platform: web_server 127 | 128 | web_server: 129 | port: 80 130 | version: 3 131 | local: true 132 | 133 | 134 | light: 135 | - platform: binary 136 | output: out_01 137 | name: 'OUT 01' 138 | id: light_01 139 | - platform: binary 140 | output: out_02 141 | name: 'OUT 02' 142 | id: light_02 143 | - platform: binary 144 | output: out_03 145 | name: 'OUT 03' 146 | id: light_03 147 | - platform: binary 148 | output: out_04 149 | name: 'OUT 04' 150 | id: light_04 151 | - platform: binary 152 | output: out_05 153 | name: 'OUT 05' 154 | id: light_05 155 | - platform: binary 156 | output: out_06 157 | name: 'OUT 06' 158 | id: light_06 159 | - platform: binary 160 | output: out_07 161 | name: 'OUT 07' 162 | id: light_07 163 | - platform: binary 164 | output: out_08 165 | name: 'OUT 08' 166 | id: light_08 167 | 168 | debug: 169 | update_interval: 15s 170 | 171 | sensor: 172 | - platform: lm75b 173 | id: boneIO_temp 174 | name: 'Temperature' 175 | update_interval: 30s 176 | entity_category: diagnostic 177 | on_value_range: 178 | - above: 70.0 179 | then: 180 | - switch.turn_on: buzzer 181 | - below: 70.0 182 | then: 183 | - switch.turn_off: buzzer 184 | 185 | switch: 186 | - platform: gpio 187 | id: buzzer 188 | name: 'Buzzer' 189 | pin: 190 | number: GPIO9 191 | mode: 192 | output: true 193 | inverted: false 194 | - platform: gpio 195 | id: can_bus_switch 196 | name: 'CAN Bus Switch' 197 | pin: 198 | number: GPIO35 199 | mode: 200 | output: true 201 | inverted: false 202 | 203 | binary_sensor: 204 | - platform: gpio 205 | name: 'IN_01' 206 | id: in_01 207 | pin: 208 | pcf8574: pcf_inputs 209 | number: 0 210 | mode: 211 | input: true 212 | inverted: true 213 | on_press: 214 | then: 215 | - light.toggle: light_01 216 | 217 | - platform: gpio 218 | name: 'IN_02' 219 | id: in_02 220 | pin: 221 | pcf8574: pcf_inputs 222 | number: 1 223 | mode: 224 | input: true 225 | inverted: true 226 | on_press: 227 | then: 228 | - light.toggle: light_02 229 | 230 | - platform: gpio 231 | name: 'IN_03' 232 | id: in_03 233 | pin: 234 | pcf8574: pcf_inputs 235 | number: 2 236 | mode: 237 | input: true 238 | inverted: true 239 | on_press: 240 | then: 241 | - light.toggle: light_03 242 | 243 | - platform: gpio 244 | name: 'IN_04' 245 | id: in_04 246 | pin: 247 | pcf8574: pcf_inputs 248 | number: 3 249 | mode: 250 | input: true 251 | inverted: true 252 | on_press: 253 | then: 254 | - light.toggle: light_04 255 | 256 | - platform: gpio 257 | name: 'IN_05' 258 | id: in_05 259 | pin: 260 | pcf8574: pcf_inputs 261 | number: 4 262 | mode: 263 | input: true 264 | inverted: true 265 | on_press: 266 | then: 267 | - light.toggle: light_05 268 | 269 | - platform: gpio 270 | name: 'IN_06' 271 | id: in_06 272 | pin: 273 | pcf8574: pcf_inputs 274 | number: 5 275 | mode: 276 | input: true 277 | inverted: true 278 | on_press: 279 | then: 280 | - light.toggle: light_06 281 | 282 | - platform: gpio 283 | name: 'IN_07' 284 | id: in_07 285 | pin: 286 | pcf8574: pcf_inputs 287 | number: 6 288 | mode: 289 | input: true 290 | inverted: true 291 | on_press: 292 | then: 293 | - light.toggle: light_07 294 | 295 | - platform: gpio 296 | name: 'IN_08' 297 | id: in_08 298 | pin: 299 | pcf8574: pcf_inputs 300 | number: 7 301 | mode: 302 | input: true 303 | inverted: true 304 | on_press: 305 | then: 306 | - light.toggle: light_08 -------------------------------------------------------------------------------- /dimmer-dev1.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dev01 3 | friendly_name: 'BoneIO Dimmer dev0.1' 4 | serial_prefix: 'dim' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: false 10 | project: 11 | name: boneio.dimmer-led 12 | version: 'dev0.1' 13 | 14 | esp32: 15 | board: esp32-s3-devkitc-1 16 | 17 | 18 | ethernet: 19 | id: eth 20 | type: W5500 21 | clk_pin: GPIO14 22 | mosi_pin: GPIO12 23 | miso_pin: GPIO13 24 | cs_pin: GPIO21 25 | interrupt_pin: GPIO38 26 | reset_pin: GPIO39 27 | 28 | # Enable fallback hotspot (captive portal) in case wifi connection fails 29 | 30 | external_components: 31 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 32 | components: [lm75] 33 | 34 | i2c: 35 | sda: GPIO10 36 | scl: GPIO11 37 | scan: True 38 | frequency: 400kHz 39 | 40 | uart: 41 | id: uart_pin 42 | rx_pin: GPIO48 43 | tx_pin: GPIO47 44 | baud_rate: 9600 45 | stop_bits: 1 46 | 47 | output: 48 | - platform: ledc 49 | pin: GPIO18 50 | frequency: 1000Hz 51 | inverted: false 52 | id: chl01 53 | - platform: ledc 54 | pin: GPIO17 55 | frequency: 1000Hz 56 | inverted: false 57 | id: chl02 58 | - platform: ledc 59 | pin: GPIO16 60 | frequency: 1000Hz 61 | inverted: false 62 | id: chl03 63 | - platform: ledc 64 | pin: GPIO15 65 | frequency: 1000Hz 66 | inverted: false 67 | id: chl04 68 | 69 | - platform: ledc 70 | pin: GPIO7 71 | frequency: 1000Hz 72 | inverted: false 73 | id: chr01 74 | - platform: ledc 75 | pin: GPIO6 76 | frequency: 1000Hz 77 | inverted: false 78 | id: chr02 79 | - platform: ledc 80 | pin: GPIO5 81 | frequency: 1000Hz 82 | inverted: false 83 | id: chr03 84 | - platform: ledc 85 | pin: GPIO4 86 | frequency: 1000Hz 87 | inverted: false 88 | id: chr04 89 | 90 | ##CAN gpio1 - tx, gpio2 rx 91 | 92 | # modbus: 93 | # send_wait_time: 200ms 94 | # uart_id: uart_pin8_9 95 | # id: boneio_modbus 96 | 97 | packages: 98 | internals_packages: 99 | url: https://github.com/boneIO-eu/esphome 100 | ref: v1.7.1 101 | files: [ 102 | 'devices/serial_no.yaml', 103 | # 'devices/dimmer_i2c.yaml', 104 | #'devices/dimmer_ina219.yaml', 105 | ] 106 | 107 | # dashboard_import: 108 | # package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest 109 | # import_full_config: true 110 | 111 | pcf8574: 112 | - id: 'pcf_inputs' 113 | address: 0x38 114 | 115 | logger: 116 | api: 117 | reboot_timeout: 0s 118 | ota: 119 | - platform: esphome 120 | - platform: web_server 121 | 122 | web_server: 123 | port: 80 124 | local: true 125 | 126 | 127 | light: 128 | - platform: monochromatic 129 | output: chl01 130 | name: 'CHL 01' 131 | id: chl_01 132 | default_transition_length: 2s 133 | gamma_correct: 0 134 | - platform: monochromatic 135 | output: chl02 136 | name: 'CHL 02' 137 | id: chl_02 138 | default_transition_length: 2s 139 | gamma_correct: 0 140 | - platform: monochromatic 141 | output: chl03 142 | name: 'CHL 03' 143 | id: chl_03 144 | default_transition_length: 2s 145 | gamma_correct: 0 146 | - platform: monochromatic 147 | output: chl04 148 | name: 'CHL 04' 149 | id: chl_04 150 | default_transition_length: 2s 151 | gamma_correct: 0 152 | 153 | - platform: monochromatic 154 | output: chr01 155 | name: 'CHR 01' 156 | id: chr_01 157 | default_transition_length: 2s 158 | gamma_correct: 0 159 | - platform: monochromatic 160 | output: chr02 161 | name: 'CHR 02' 162 | id: chr_02 163 | default_transition_length: 2s 164 | gamma_correct: 0 165 | - platform: monochromatic 166 | output: chr03 167 | name: 'CHR 03' 168 | id: chr_03 169 | default_transition_length: 2s 170 | gamma_correct: 0 171 | - platform: monochromatic 172 | output: chr04 173 | name: 'CHR 04' 174 | id: chr_04 175 | default_transition_length: 2s 176 | gamma_correct: 0 177 | 178 | sensor: 179 | - platform: lm75 180 | id: boneIO_temp 181 | name: 'Temperature' 182 | update_interval: 30s 183 | entity_category: diagnostic 184 | on_value_range: 185 | - above: 70.0 186 | then: 187 | - switch.turn_on: buzzer 188 | - below: 70.0 189 | then: 190 | - switch.turn_off: buzzer 191 | 192 | - platform: max9611 193 | shunt_resistance: 0.005 ohm 194 | gain: '1X' 195 | voltage: 196 | name: CHL Voltage 197 | current: 198 | name: CHLCurrent 199 | power: 200 | name: CHL Watts 201 | temperature: 202 | name: CHL Temperature 203 | address: 0x70 204 | update_interval: 10s 205 | 206 | - platform: max9611 207 | shunt_resistance: 0.005 ohm 208 | gain: '1X' 209 | voltage: 210 | name: CHR Voltage 211 | current: 212 | name: CHR Current 213 | power: 214 | name: CHR Watts 215 | temperature: 216 | name: CHR Temperature 217 | address: 0x73 218 | update_interval: 10s 219 | switch: 220 | - platform: gpio 221 | id: buzzer 222 | name: 'Buzzer' 223 | pin: 224 | number: GPIO42 225 | mode: 226 | output: true 227 | inverted: false 228 | 229 | binary_sensor: 230 | - platform: gpio 231 | name: 'IN_01' 232 | id: in_01 233 | pin: 234 | pcf8574: pcf_inputs 235 | number: 0 236 | mode: 237 | input: true 238 | inverted: true 239 | 240 | - platform: gpio 241 | name: 'IN_02' 242 | id: in_02 243 | pin: 244 | pcf8574: pcf_inputs 245 | number: 1 246 | mode: 247 | input: true 248 | inverted: true 249 | 250 | - platform: gpio 251 | name: 'IN_03' 252 | id: in_03 253 | pin: 254 | pcf8574: pcf_inputs 255 | number: 2 256 | mode: 257 | input: true 258 | inverted: true 259 | 260 | - platform: gpio 261 | name: 'IN_04' 262 | id: in_04 263 | pin: 264 | pcf8574: pcf_inputs 265 | number: 3 266 | mode: 267 | input: true 268 | inverted: true 269 | 270 | - platform: gpio 271 | name: 'IN_05' 272 | id: in_05 273 | pin: 274 | pcf8574: pcf_inputs 275 | number: 4 276 | mode: 277 | input: true 278 | inverted: true 279 | 280 | - platform: gpio 281 | name: 'IN_06' 282 | id: in_06 283 | pin: 284 | pcf8574: pcf_inputs 285 | number: 5 286 | mode: 287 | input: true 288 | inverted: true 289 | 290 | - platform: gpio 291 | name: 'IN_07' 292 | id: in_07 293 | pin: 294 | pcf8574: pcf_inputs 295 | number: 6 296 | mode: 297 | input: true 298 | inverted: true 299 | 300 | - platform: gpio 301 | name: 'IN_08' 302 | id: in_08 303 | pin: 304 | pcf8574: pcf_inputs 305 | number: 7 306 | mode: 307 | input: true 308 | inverted: true 309 | -------------------------------------------------------------------------------- /boneio-dimmer_gen2_8ch-v0_1.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-gen2-8ch-01 3 | friendly_name: 'BoneIO Dimmer Gen2' 4 | serial_prefix: 'dim2' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/fwesp/boneio-dr-gen2-8ch-01.json' 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led-gen2 12 | version: '0.1' 13 | on_boot: 14 | priority: -100 15 | then: 16 | - delay: 5s 17 | - if: 18 | condition: 19 | lambda: 'return id(serial_no) != nullptr;' 20 | then: 21 | - component.update: serial_no 22 | - logger.log: "Serial No updated on boot" 23 | else: 24 | - logger.log: "Serial No component not found" 25 | 26 | esp32: 27 | board: esp32-s3-devkitc-1 28 | framework: 29 | type: esp-idf 30 | 31 | ethernet: 32 | id: eth 33 | type: W5500 34 | clk_pin: GPIO13 35 | mosi_pin: GPIO39 36 | miso_pin: GPIO38 37 | cs_pin: GPIO12 38 | interrupt_pin: GPIO2 39 | reset_pin: GPIO1 40 | clock_speed: 25MHz 41 | 42 | i2c: 43 | sda: GPIO10 44 | scl: GPIO11 45 | scan: True 46 | frequency: 400kHz 47 | 48 | 49 | 50 | output: 51 | - platform: ledc 52 | pin: GPIO18 53 | frequency: 1000Hz 54 | inverted: false 55 | id: chl01 56 | - platform: ledc 57 | pin: GPIO17 58 | frequency: 1000Hz 59 | inverted: false 60 | id: chl02 61 | - platform: ledc 62 | pin: GPIO16 63 | frequency: 1000Hz 64 | inverted: false 65 | id: chl03 66 | - platform: ledc 67 | pin: GPIO15 68 | frequency: 1000Hz 69 | inverted: false 70 | id: chl04 71 | 72 | - platform: ledc 73 | pin: GPIO7 74 | frequency: 1000Hz 75 | inverted: false 76 | id: chr01 77 | - platform: ledc 78 | pin: GPIO6 79 | frequency: 1000Hz 80 | inverted: false 81 | id: chr02 82 | - platform: ledc 83 | pin: GPIO5 84 | frequency: 1000Hz 85 | inverted: false 86 | id: chr03 87 | - platform: ledc 88 | pin: GPIO4 89 | frequency: 1000Hz 90 | inverted: false 91 | id: chr04 92 | 93 | 94 | # CAN gpio48 - tx, gpio47 rx, gpio35 stb 95 | # uart: 96 | # id: boneio_uart 97 | # rx_pin: GPIO21 98 | # tx_pin: GPIO14 99 | # baud_rate: 9600 100 | # stop_bits: 1 101 | # modbus: 102 | # send_wait_time: 80ms 103 | # uart_id: boneio_uart 104 | # id: boneio_modbus 105 | 106 | packages: 107 | internals_packages: 108 | url: https://github.com/boneIO-eu/esphome 109 | ref: v1.7.1 110 | files: [ 111 | 'devices/serial_no.yaml', 112 | ] 113 | # boneiopackages: 114 | # url: https://github.com/boneIO-eu/esphome_packages 115 | # ref: main 116 | # refresh: 1min 117 | # files: 118 | # - path: sdm630.yaml 119 | 120 | dashboard_import: 121 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_8ch-v0_1.yaml@main 122 | import_full_config: true 123 | 124 | pcf8574: 125 | - id: 'pcf_inputs' 126 | address: 0x38 127 | 128 | logger: 129 | hardware_uart: UART0 130 | api: 131 | reboot_timeout: 0s 132 | ota: 133 | - platform: esphome 134 | - platform: web_server 135 | 136 | web_server: 137 | port: 80 138 | version: 3 139 | local: true 140 | 141 | 142 | light: 143 | - platform: monochromatic 144 | output: chl01 145 | name: 'CHL 01' 146 | id: chl_01 147 | default_transition_length: 2s 148 | gamma_correct: 0 149 | - platform: monochromatic 150 | output: chl02 151 | name: 'CHL 02' 152 | id: chl_02 153 | default_transition_length: 2s 154 | gamma_correct: 0 155 | - platform: monochromatic 156 | output: chl03 157 | name: 'CHL 03' 158 | id: chl_03 159 | default_transition_length: 2s 160 | gamma_correct: 0 161 | - platform: monochromatic 162 | output: chl04 163 | name: 'CHL 04' 164 | id: chl_04 165 | default_transition_length: 2s 166 | gamma_correct: 0 167 | 168 | - platform: monochromatic 169 | output: chr01 170 | name: 'CHR 01' 171 | id: chr_01 172 | default_transition_length: 2s 173 | gamma_correct: 0 174 | - platform: monochromatic 175 | output: chr02 176 | name: 'CHR 02' 177 | id: chr_02 178 | default_transition_length: 2s 179 | gamma_correct: 0 180 | - platform: monochromatic 181 | output: chr03 182 | name: 'CHR 03' 183 | id: chr_03 184 | default_transition_length: 2s 185 | gamma_correct: 0 186 | - platform: monochromatic 187 | output: chr04 188 | name: 'CHR 04' 189 | id: chr_04 190 | default_transition_length: 2s 191 | gamma_correct: 0 192 | 193 | debug: 194 | update_interval: 15s 195 | 196 | sensor: 197 | - platform: debug 198 | free: 199 | name: "Heap Free" 200 | block: 201 | name: "Heap Max Block" 202 | loop_time: 203 | name: "Loop Time" 204 | - platform: lm75b 205 | id: boneIO_temp 206 | name: 'Temperature' 207 | update_interval: 30s 208 | entity_category: diagnostic 209 | on_value_range: 210 | - above: 70.0 211 | then: 212 | - switch.turn_on: buzzer 213 | - below: 70.0 214 | then: 215 | - switch.turn_off: buzzer 216 | 217 | switch: 218 | - platform: gpio 219 | id: buzzer 220 | name: 'Buzzer' 221 | pin: 222 | number: GPIO9 223 | mode: 224 | output: true 225 | inverted: false 226 | - platform: gpio 227 | id: can_bus_switch 228 | name: 'CAN Bus Switch' 229 | pin: 230 | number: GPIO35 231 | mode: 232 | output: true 233 | inverted: false 234 | 235 | binary_sensor: 236 | - platform: gpio 237 | name: 'IN_01' 238 | id: in_01 239 | pin: 240 | pcf8574: pcf_inputs 241 | number: 0 242 | mode: 243 | input: true 244 | inverted: true 245 | 246 | - platform: gpio 247 | name: 'IN_02' 248 | id: in_02 249 | pin: 250 | pcf8574: pcf_inputs 251 | number: 1 252 | mode: 253 | input: true 254 | inverted: true 255 | 256 | - platform: gpio 257 | name: 'IN_03' 258 | id: in_03 259 | pin: 260 | pcf8574: pcf_inputs 261 | number: 2 262 | mode: 263 | input: true 264 | inverted: true 265 | 266 | - platform: gpio 267 | name: 'IN_04' 268 | id: in_04 269 | pin: 270 | pcf8574: pcf_inputs 271 | number: 3 272 | mode: 273 | input: true 274 | inverted: true 275 | 276 | - platform: gpio 277 | name: 'IN_05' 278 | id: in_05 279 | pin: 280 | pcf8574: pcf_inputs 281 | number: 4 282 | mode: 283 | input: true 284 | inverted: true 285 | 286 | - platform: gpio 287 | name: 'IN_06' 288 | id: in_06 289 | pin: 290 | pcf8574: pcf_inputs 291 | number: 5 292 | mode: 293 | input: true 294 | inverted: true 295 | 296 | - platform: gpio 297 | name: 'IN_07' 298 | id: in_07 299 | pin: 300 | pcf8574: pcf_inputs 301 | number: 6 302 | mode: 303 | input: true 304 | inverted: true 305 | 306 | - platform: gpio 307 | name: 'IN_08' 308 | id: in_08 309 | pin: 310 | pcf8574: pcf_inputs 311 | number: 7 312 | mode: 313 | input: true 314 | inverted: true -------------------------------------------------------------------------------- /dev-boneio-8x10A-adc.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-8x10a-cover-dev01 3 | friendly_name: 'BoneIO Relay 8x10A dev0.1' 4 | serial_prefix: 'dim2' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/esp/boneio-relay-8x10a-cover-dev0.3.json' 6 | 7 | esphome: 8 | name: '${name}' 9 | friendly_name: '${friendly_name}' 10 | name_add_mac_suffix: true 11 | project: 12 | name: boneio.relay-8x10a-cover 13 | version: 'dev0.3' 14 | on_boot: 15 | priority: -100 16 | then: 17 | - delay: 5s 18 | - if: 19 | condition: 20 | lambda: 'return id(serial_no) != nullptr;' 21 | then: 22 | - component.update: serial_no 23 | - logger.log: "Serial No updated on boot" 24 | else: 25 | - logger.log: "Serial No component not found" 26 | 27 | esp32: 28 | board: esp32-s3-devkitc-1 29 | framework: 30 | type: esp-idf 31 | 32 | ethernet: 33 | id: eth 34 | type: W5500 35 | clk_pin: GPIO13 36 | mosi_pin: GPIO39 37 | miso_pin: GPIO38 38 | cs_pin: GPIO12 39 | interrupt_pin: GPIO2 40 | reset_pin: GPIO1 41 | clock_speed: 25MHz 42 | 43 | external_components: 44 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 45 | components: [lm75] 46 | 47 | i2c: 48 | sda: GPIO10 49 | scl: GPIO11 50 | scan: True 51 | frequency: 400kHz 52 | 53 | uart: 54 | id: boneio_uart 55 | rx_pin: GPIO21 56 | tx_pin: GPIO14 57 | baud_rate: 9600 58 | stop_bits: 1 59 | 60 | spi: 61 | - id: spi_ade7953 62 | mosi_pin: GPIO35 63 | miso_pin: GPIO37 64 | clk_pin: GPIO36 65 | 66 | modbus: 67 | send_wait_time: 80ms 68 | uart_id: boneio_uart 69 | id: boneio_modbus 70 | 71 | packages: 72 | internals_packages: 73 | url: https://github.com/boneIO-eu/esphome 74 | ref: v1.7.1 75 | files: [ 76 | 'devices/serial_no.yaml', 77 | ] 78 | boneiopackages: 79 | url: https://github.com/boneIO-eu/esphome_packages 80 | ref: main 81 | refresh: 1min 82 | files: 83 | - path: sdm630.yaml 84 | 85 | dashboard_import: 86 | package_import_url: github://boneIO-eu/esphome/boneio-relay-8x10a-cover-dev0.3.yaml@main 87 | import_full_config: true 88 | 89 | pcf8574: 90 | - id: 'pcf_inputs' 91 | address: 0x38 92 | 93 | logger: 94 | hardware_uart: UART0 95 | api: 96 | reboot_timeout: 0s 97 | ota: 98 | - platform: esphome 99 | - platform: web_server 100 | 101 | # update: 102 | # - id: update_std 103 | # platform: http_request 104 | # name: boneIO FW Update 105 | # update_interval: 3 minutes 106 | # source: ${firmware_manifest} 107 | 108 | web_server: 109 | port: 80 110 | version: 3 111 | local: true 112 | 113 | debug: 114 | update_interval: 15s 115 | 116 | sensor: 117 | - platform: debug 118 | free: 119 | name: "Heap Free" 120 | block: 121 | name: "Heap Max Block" 122 | loop_time: 123 | name: "Loop Time" 124 | - platform: lm75 125 | id: boneIO_temp 126 | name: 'Temperature' 127 | update_interval: 30s 128 | entity_category: diagnostic 129 | on_value_range: 130 | - above: 70.0 131 | then: 132 | - switch.turn_on: buzzer 133 | - below: 70.0 134 | then: 135 | - switch.turn_off: buzzer 136 | 137 | - platform: ade7953_spi 138 | spi_id: spi_ade7953 139 | cs_pin: GPIO40 140 | irq_pin: GPIO15 141 | update_interval: 10s 142 | voltage: 143 | name: "ADE7953 1 Voltage" 144 | current_a: 145 | name: "ADE7953 1 Current" 146 | 147 | - platform: ade7953_spi 148 | spi_id: spi_ade7953 149 | cs_pin: GPIO41 150 | irq_pin: GPIO16 151 | update_interval: 10s 152 | voltage: 153 | name: "ADE7953 2 Voltage" 154 | current_a: 155 | name: "ADE7953 2 Current" 156 | 157 | - platform: ade7953_spi 158 | spi_id: spi_ade7953 159 | cs_pin: GPIO42 160 | irq_pin: GPIO17 161 | update_interval: 10s 162 | voltage: 163 | name: "ADE7953 3 Voltage" 164 | current_a: 165 | name: "ADE7953 3 Current" 166 | 167 | - platform: ade7953_spi 168 | spi_id: spi_ade7953 169 | cs_pin: GPIO45 170 | irq_pin: GPIO18 171 | update_interval: 10s 172 | voltage: 173 | name: "ADE7953 4 Voltage" 174 | current_a: 175 | name: "ADE7953 4 Current" 176 | 177 | 178 | switch: 179 | - platform: gpio 180 | id: buzzer 181 | name: 'Buzzer' 182 | pin: 183 | number: GPIO9 184 | mode: 185 | output: true 186 | inverted: false 187 | 188 | # *** POCZĄTEK AKTUALIZACJI *** 189 | - platform: gpio 190 | id: can_stb # Poprzednio id: can_bus_switch 191 | name: 'CAN STB' # Poprzednio name: 'CAN Bus Switch' 192 | pin: 193 | number: GPIO20 # Pin dla CAN_STB 194 | mode: 195 | output: true 196 | inverted: false 197 | - platform: gpio 198 | id: can_led 199 | name: 'CAN LED' 200 | pin: 201 | number: GPIO8 # Pin dla CAN_LED 202 | mode: 203 | output: true 204 | inverted: false 205 | # *** KONIEC AKTUALIZACJI *** 206 | 207 | - platform: gpio 208 | name: "CAN RX" 209 | pin: GPIO47 210 | - platform: gpio 211 | name: "CAN TX" 212 | pin: GPIO48 213 | 214 | # Przełączniki dla linii RST układów ADE7953 215 | - platform: gpio 216 | name: "ADE7953 RST 1" 217 | pin: GPIO4 218 | - platform: gpio 219 | name: "ADE7953 RST 2" 220 | pin: GPIO5 221 | - platform: gpio 222 | name: "ADE7953 RST 3" 223 | pin: GPIO6 224 | - platform: gpio 225 | name: "ADE7953 RST 4" 226 | pin: GPIO7 227 | 228 | # !!! BRAKUJĄCA SEKCJA !!! 229 | # Musisz tutaj dodać definicje dla 8 przekaźników. 230 | # Na przykład: 231 | # - platform: gpio 232 | # name: "Relay 1" 233 | # pin: GPIO_PIN_PRZEKAŹNIKA_1 234 | # - platform: gpio 235 | # name: "Relay 2" 236 | # pin: GPIO_PIN_PRZEKAŹNIKA_2 237 | # ... i tak 8 razy 238 | 239 | binary_sensor: 240 | - platform: gpio 241 | name: 'IN_01' 242 | id: in_01 243 | pin: 244 | pcf8574: pcf_inputs 245 | number: 0 246 | mode: 247 | input: true 248 | inverted: true 249 | 250 | - platform: gpio 251 | name: 'IN_02' 252 | id: in_02 253 | pin: 254 | pcf8574: pcf_inputs 255 | number: 1 256 | mode: 257 | input: true 258 | inverted: true 259 | 260 | - platform: gpio 261 | name: 'IN_03' 262 | id: in_03 263 | pin: 264 | pcf8574: pcf_inputs 265 | number: 2 266 | mode: 267 | input: true 268 | inverted: true 269 | 270 | - platform: gpio 271 | name: 'IN_04' 272 | id: in_04 273 | pin: 274 | pcf8574: pcf_inputs 275 | number: 3 276 | mode: 277 | input: true 278 | inverted: true 279 | 280 | - platform: gpio 281 | name: 'IN_05' 282 | id: in_05 283 | pin: 284 | pcf8574: pcf_inputs 285 | number: 4 286 | mode: 287 | input: true 288 | inverted: true 289 | 290 | - platform: gpio 291 | name: 'IN_06' 292 | id: in_06 293 | pin: 294 | pcf8574: pcf_inputs 295 | number: 5 296 | mode: 297 | input: true 298 | inverted: true 299 | 300 | - platform: gpio 301 | name: 'IN_07' 302 | id: in_07 303 | pin: 304 | pcf8574: pcf_inputs 305 | number: 6 306 | mode: 307 | input: true 308 | inverted: true 309 | 310 | - platform: gpio 311 | name: 'IN_08' 312 | id: in_08 313 | pin: 314 | pcf8574: pcf_inputs 315 | number: 7 316 | mode: 317 | input: true 318 | inverted: true 319 | - platform: template 320 | name: CAN Bus Button 321 | id: can_bus_button 322 | 323 | 324 | # canbus: 325 | # - platform: esp32_can 326 | # tx_pin: GPIO48 327 | # rx_pin: GPIO47 328 | # can_id: 4 329 | # bit_rate: 50kbps 330 | # on_frame: 331 | # - can_id: 5 332 | # then: 333 | # - lambda: |- 334 | # if(x.size() > 0) { 335 | # switch(x[0]) { 336 | # case 0x12: // button release 337 | # id(can_bus_button).publish_state(false); 338 | # break; 339 | # case 0x11: // button press 340 | # id(can_bus_button).publish_state(true); 341 | # break; 342 | # } 343 | # } 344 | 345 | # button: 346 | # - platform: template 347 | # name: 'CAN Sensor ON' 348 | # on_press: 349 | # - logger.log: Button Pressed 350 | # - canbus.send: [0x11, 0x22, 0x33] 351 | # - platform: template 352 | # name: 'CAN Sensor OFF' 353 | # on_press: 354 | # - logger.log: Button Pressed 355 | # - canbus.send: [0x12, 0x22, 0x33] -------------------------------------------------------------------------------- /boards/mosfet48_output.yaml: -------------------------------------------------------------------------------- 1 | output: 2 | - platform: gpio 3 | id: out_01 4 | pin: 5 | pcf8574: pcf_left 6 | number: 7 7 | mode: 8 | output: true 9 | inverted: true 10 | - platform: gpio 11 | id: out_02 12 | pin: 13 | pcf8574: pcf_left 14 | number: 6 15 | mode: 16 | output: true 17 | inverted: true 18 | 19 | - platform: gpio 20 | id: out_03 21 | pin: 22 | pcf8574: pcf_left 23 | number: 5 24 | mode: 25 | output: true 26 | inverted: true 27 | 28 | - platform: gpio 29 | id: out_04 30 | pin: 31 | pcf8574: pcf_left 32 | number: 4 33 | mode: 34 | output: true 35 | inverted: true 36 | 37 | - platform: gpio 38 | id: out_05 39 | pin: 40 | pcf8574: pcf_left 41 | number: 3 42 | mode: 43 | output: true 44 | inverted: true 45 | 46 | - platform: gpio 47 | id: out_06 48 | pin: 49 | pcf8574: pcf_left 50 | number: 2 51 | mode: 52 | output: true 53 | inverted: true 54 | 55 | - platform: gpio 56 | id: out_07 57 | pin: 58 | pcf8574: pcf_left 59 | number: 1 60 | mode: 61 | output: true 62 | inverted: true 63 | 64 | - platform: gpio 65 | id: out_08 66 | pin: 67 | pcf8574: pcf_left 68 | number: 0 69 | mode: 70 | output: true 71 | inverted: true 72 | 73 | - platform: gpio 74 | id: out_09 75 | pin: 76 | pcf8574: pcf_middle 77 | number: 7 78 | mode: 79 | output: true 80 | inverted: true 81 | 82 | - platform: gpio 83 | id: out_10 84 | pin: 85 | pcf8574: pcf_middle 86 | number: 6 87 | mode: 88 | output: true 89 | inverted: true 90 | 91 | - platform: gpio 92 | id: out_11 93 | pin: 94 | pcf8574: pcf_middle 95 | number: 5 96 | mode: 97 | output: true 98 | inverted: true 99 | 100 | - platform: gpio 101 | id: out_12 102 | pin: 103 | pcf8574: pcf_middle 104 | number: 4 105 | mode: 106 | output: true 107 | inverted: true 108 | 109 | - platform: gpio 110 | id: out_13 111 | pin: 112 | pcf8574: pcf_middle 113 | number: 3 114 | mode: 115 | output: true 116 | inverted: true 117 | 118 | - platform: gpio 119 | id: out_14 120 | pin: 121 | pcf8574: pcf_middle 122 | number: 2 123 | mode: 124 | output: true 125 | inverted: true 126 | 127 | - platform: gpio 128 | id: out_15 129 | pin: 130 | pcf8574: pcf_middle 131 | number: 1 132 | mode: 133 | output: true 134 | inverted: true 135 | 136 | - platform: gpio 137 | id: out_16 138 | pin: 139 | pcf8574: pcf_middle 140 | number: 0 141 | mode: 142 | output: true 143 | inverted: true 144 | 145 | - platform: gpio 146 | id: out_17 147 | pin: 148 | pcf8574: pcf_right 149 | number: 7 150 | mode: 151 | output: true 152 | inverted: true 153 | 154 | - platform: gpio 155 | id: out_18 156 | pin: 157 | pcf8574: pcf_right 158 | number: 6 159 | mode: 160 | output: true 161 | inverted: true 162 | 163 | - platform: gpio 164 | id: out_19 165 | pin: 166 | pcf8574: pcf_right 167 | number: 5 168 | mode: 169 | output: true 170 | inverted: true 171 | 172 | - platform: gpio 173 | id: out_20 174 | pin: 175 | pcf8574: pcf_right 176 | number: 4 177 | mode: 178 | output: true 179 | inverted: true 180 | 181 | - platform: gpio 182 | id: out_21 183 | pin: 184 | pcf8574: pcf_right 185 | number: 3 186 | mode: 187 | output: true 188 | inverted: true 189 | 190 | - platform: gpio 191 | id: out_22 192 | pin: 193 | pcf8574: pcf_right 194 | number: 2 195 | mode: 196 | output: true 197 | inverted: true 198 | 199 | - platform: gpio 200 | id: out_23 201 | pin: 202 | pcf8574: pcf_right 203 | number: 1 204 | mode: 205 | output: true 206 | inverted: true 207 | 208 | - platform: gpio 209 | id: out_24 210 | pin: 211 | pcf8574: pcf_right 212 | number: 0 213 | mode: 214 | output: true 215 | inverted: true 216 | 217 | - platform: gpio 218 | id: out_25 219 | pin: 220 | pcf8574: pcf_left 221 | number: 8 222 | mode: 223 | output: true 224 | inverted: true 225 | 226 | - platform: gpio 227 | id: out_26 228 | pin: 229 | pcf8574: pcf_left 230 | number: 9 231 | mode: 232 | output: true 233 | inverted: true 234 | 235 | - platform: gpio 236 | id: out_27 237 | pin: 238 | pcf8574: pcf_left 239 | number: 10 240 | mode: 241 | output: true 242 | inverted: true 243 | 244 | - platform: gpio 245 | id: out_28 246 | pin: 247 | pcf8574: pcf_left 248 | number: 11 249 | mode: 250 | output: true 251 | inverted: true 252 | 253 | - platform: gpio 254 | id: out_29 255 | pin: 256 | pcf8574: pcf_left 257 | number: 12 258 | mode: 259 | output: true 260 | inverted: true 261 | 262 | - platform: gpio 263 | id: out_30 264 | pin: 265 | pcf8574: pcf_left 266 | number: 13 267 | mode: 268 | output: true 269 | inverted: true 270 | 271 | - platform: gpio 272 | id: out_31 273 | pin: 274 | pcf8574: pcf_left 275 | number: 14 276 | mode: 277 | output: true 278 | inverted: true 279 | 280 | - platform: gpio 281 | id: out_32 282 | pin: 283 | pcf8574: pcf_left 284 | number: 15 285 | mode: 286 | output: true 287 | inverted: true 288 | 289 | - platform: gpio 290 | id: out_33 291 | pin: 292 | pcf8574: pcf_middle 293 | number: 8 294 | mode: 295 | output: true 296 | inverted: true 297 | 298 | - platform: gpio 299 | id: out_34 300 | pin: 301 | pcf8574: pcf_middle 302 | number: 9 303 | mode: 304 | output: true 305 | inverted: true 306 | 307 | - platform: gpio 308 | id: out_35 309 | pin: 310 | pcf8574: pcf_middle 311 | number: 10 312 | mode: 313 | output: true 314 | inverted: true 315 | 316 | - platform: gpio 317 | id: out_36 318 | pin: 319 | pcf8574: pcf_middle 320 | number: 11 321 | mode: 322 | output: true 323 | inverted: true 324 | 325 | - platform: gpio 326 | id: out_37 327 | pin: 328 | pcf8574: pcf_middle 329 | number: 12 330 | mode: 331 | output: true 332 | inverted: true 333 | 334 | - platform: gpio 335 | id: out_38 336 | pin: 337 | pcf8574: pcf_middle 338 | number: 13 339 | mode: 340 | output: true 341 | inverted: true 342 | 343 | - platform: gpio 344 | id: out_39 345 | pin: 346 | pcf8574: pcf_middle 347 | number: 14 348 | mode: 349 | output: true 350 | inverted: true 351 | 352 | - platform: gpio 353 | id: out_40 354 | pin: 355 | pcf8574: pcf_middle 356 | number: 15 357 | mode: 358 | output: true 359 | inverted: true 360 | 361 | - platform: gpio 362 | id: out_41 363 | pin: 364 | pcf8574: pcf_right 365 | number: 8 366 | mode: 367 | output: true 368 | inverted: true 369 | 370 | - platform: gpio 371 | id: out_42 372 | pin: 373 | pcf8574: pcf_right 374 | number: 9 375 | mode: 376 | output: true 377 | inverted: true 378 | 379 | - platform: gpio 380 | id: out_43 381 | pin: 382 | pcf8574: pcf_right 383 | number: 10 384 | mode: 385 | output: true 386 | inverted: true 387 | 388 | - platform: gpio 389 | id: out_44 390 | pin: 391 | pcf8574: pcf_right 392 | number: 11 393 | mode: 394 | output: true 395 | inverted: true 396 | 397 | - platform: gpio 398 | id: out_45 399 | pin: 400 | pcf8574: pcf_right 401 | number: 12 402 | mode: 403 | output: true 404 | inverted: true 405 | 406 | - platform: gpio 407 | id: out_46 408 | pin: 409 | pcf8574: pcf_right 410 | number: 13 411 | mode: 412 | output: true 413 | inverted: true 414 | 415 | - platform: gpio 416 | id: out_47 417 | pin: 418 | pcf8574: pcf_right 419 | number: 14 420 | mode: 421 | output: true 422 | inverted: true 423 | 424 | - platform: gpio 425 | id: out_48 426 | pin: 427 | pcf8574: pcf_right 428 | number: 15 429 | mode: 430 | output: true 431 | inverted: true 432 | -------------------------------------------------------------------------------- /boneio-dimmer_gen2_8ch-dev0_4-OLD.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-gen2-8ch-dev04 3 | friendly_name: 'BoneIO Dimmer dev0.4' 4 | serial_prefix: 'dim2' #Don't change it. 5 | firmware_manifest: 'https://boneio.eu/esp/boneio-dr-gen2-8ch-dev04.json' 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led-gen2 12 | version: 'dev0.4' 13 | on_boot: 14 | priority: -100 15 | then: 16 | - delay: 5s 17 | - if: 18 | condition: 19 | lambda: 'return id(serial_no) != nullptr;' 20 | then: 21 | - component.update: serial_no 22 | - logger.log: "Serial No updated on boot" 23 | else: 24 | - logger.log: "Serial No component not found" 25 | 26 | esp32: 27 | board: esp32-s3-devkitc-1 28 | framework: 29 | type: esp-idf 30 | 31 | ethernet: 32 | id: eth 33 | type: W5500 34 | clk_pin: GPIO13 35 | mosi_pin: GPIO39 36 | miso_pin: GPIO38 37 | cs_pin: GPIO12 38 | interrupt_pin: GPIO2 39 | reset_pin: GPIO1 40 | clock_speed: 25MHz 41 | 42 | external_components: 43 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 44 | components: [lm75] 45 | 46 | i2c: 47 | sda: GPIO10 48 | scl: GPIO11 49 | scan: True 50 | frequency: 400kHz 51 | 52 | uart: 53 | id: boneio_uart 54 | rx_pin: GPIO21 55 | tx_pin: GPIO14 56 | baud_rate: 9600 57 | stop_bits: 1 58 | 59 | output: 60 | - platform: ledc 61 | pin: GPIO18 62 | frequency: 1000Hz 63 | inverted: false 64 | id: chl01 65 | - platform: ledc 66 | pin: GPIO17 67 | frequency: 1000Hz 68 | inverted: false 69 | id: chl02 70 | - platform: ledc 71 | pin: GPIO16 72 | frequency: 1000Hz 73 | inverted: false 74 | id: chl03 75 | - platform: ledc 76 | pin: GPIO15 77 | frequency: 1000Hz 78 | inverted: false 79 | id: chl04 80 | 81 | - platform: ledc 82 | pin: GPIO7 83 | frequency: 1000Hz 84 | inverted: false 85 | id: chr01 86 | - platform: ledc 87 | pin: GPIO6 88 | frequency: 1000Hz 89 | inverted: false 90 | id: chr02 91 | - platform: ledc 92 | pin: GPIO5 93 | frequency: 1000Hz 94 | inverted: false 95 | id: chr03 96 | - platform: ledc 97 | pin: GPIO4 98 | frequency: 1000Hz 99 | inverted: false 100 | id: chr04 101 | 102 | 103 | ##CAN gpio48 - tx, gpio47 rx, gpio35 stb 104 | 105 | modbus: 106 | send_wait_time: 80ms 107 | uart_id: boneio_uart 108 | id: boneio_modbus 109 | 110 | packages: 111 | internals_packages: 112 | url: https://github.com/boneIO-eu/esphome 113 | ref: v1.7.1 114 | files: [ 115 | 'devices/serial_no.yaml', 116 | # 'devices/dimmer_i2c.yaml', 117 | ] 118 | boneiopackages: 119 | url: https://github.com/boneIO-eu/esphome_packages 120 | ref: main 121 | refresh: 1min 122 | files: 123 | - path: sdm630.yaml 124 | 125 | dashboard_import: 126 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_8ch-dev0_4.yaml@main 127 | import_full_config: true 128 | 129 | pcf8574: 130 | - id: 'pcf_inputs' 131 | address: 0x38 132 | 133 | # http_request: 134 | # timeout: 7s 135 | # verify_ssl: false 136 | logger: 137 | hardware_uart: UART0 138 | api: 139 | reboot_timeout: 0s 140 | ota: 141 | - platform: esphome 142 | - platform: web_server 143 | # - platform: http_request 144 | 145 | # update: 146 | # - id: update_std 147 | # platform: http_request 148 | # name: boneIO FW Update 149 | # update_interval: 3 minutes 150 | # source: ${firmware_manifest} 151 | 152 | web_server: 153 | port: 80 154 | version: 3 155 | local: true 156 | 157 | 158 | light: 159 | - platform: monochromatic 160 | output: chl01 161 | name: 'CHL 01' 162 | id: chl_01 163 | default_transition_length: 2s 164 | gamma_correct: 0 165 | - platform: monochromatic 166 | output: chl02 167 | name: 'CHL 02' 168 | id: chl_02 169 | default_transition_length: 2s 170 | gamma_correct: 0 171 | - platform: monochromatic 172 | output: chl03 173 | name: 'CHL 03' 174 | id: chl_03 175 | default_transition_length: 2s 176 | gamma_correct: 0 177 | - platform: monochromatic 178 | output: chl04 179 | name: 'CHL 04' 180 | id: chl_04 181 | default_transition_length: 2s 182 | gamma_correct: 0 183 | 184 | - platform: monochromatic 185 | output: chr01 186 | name: 'CHR 01' 187 | id: chr_01 188 | default_transition_length: 2s 189 | gamma_correct: 0 190 | - platform: monochromatic 191 | output: chr02 192 | name: 'CHR 02' 193 | id: chr_02 194 | default_transition_length: 2s 195 | gamma_correct: 0 196 | - platform: monochromatic 197 | output: chr03 198 | name: 'CHR 03' 199 | id: chr_03 200 | default_transition_length: 2s 201 | gamma_correct: 0 202 | - platform: monochromatic 203 | output: chr04 204 | name: 'CHR 04' 205 | id: chr_04 206 | default_transition_length: 2s 207 | gamma_correct: 0 208 | 209 | debug: 210 | update_interval: 15s 211 | 212 | sensor: 213 | - platform: debug 214 | free: 215 | name: "Heap Free" 216 | block: 217 | name: "Heap Max Block" 218 | loop_time: 219 | name: "Loop Time" 220 | - platform: lm75 221 | id: boneIO_temp 222 | name: 'Temperature' 223 | update_interval: 30s 224 | entity_category: diagnostic 225 | on_value_range: 226 | - above: 70.0 227 | then: 228 | - switch.turn_on: buzzer 229 | - below: 70.0 230 | then: 231 | - switch.turn_off: buzzer 232 | 233 | switch: 234 | - platform: gpio 235 | id: buzzer 236 | name: 'Buzzer' 237 | pin: 238 | number: GPIO9 239 | mode: 240 | output: true 241 | inverted: false 242 | - platform: gpio 243 | id: can_bus_switch 244 | name: 'CAN Bus Switch' 245 | pin: 246 | number: GPIO35 247 | mode: 248 | output: true 249 | inverted: false 250 | - platform: gpio 251 | name: "CAN RX" 252 | pin: GPIO47 253 | - platform: gpio 254 | name: "CAN TX" 255 | pin: GPIO48 256 | 257 | binary_sensor: 258 | 259 | - platform: gpio 260 | name: 'IN_01' 261 | id: in_01 262 | pin: 263 | pcf8574: pcf_inputs 264 | number: 0 265 | mode: 266 | input: true 267 | inverted: true 268 | 269 | - platform: gpio 270 | name: 'IN_02' 271 | id: in_02 272 | pin: 273 | pcf8574: pcf_inputs 274 | number: 1 275 | mode: 276 | input: true 277 | inverted: true 278 | 279 | - platform: gpio 280 | name: 'IN_03' 281 | id: in_03 282 | pin: 283 | pcf8574: pcf_inputs 284 | number: 2 285 | mode: 286 | input: true 287 | inverted: true 288 | 289 | - platform: gpio 290 | name: 'IN_04' 291 | id: in_04 292 | pin: 293 | pcf8574: pcf_inputs 294 | number: 3 295 | mode: 296 | input: true 297 | inverted: true 298 | 299 | - platform: gpio 300 | name: 'IN_05' 301 | id: in_05 302 | pin: 303 | pcf8574: pcf_inputs 304 | number: 4 305 | mode: 306 | input: true 307 | inverted: true 308 | 309 | - platform: gpio 310 | name: 'IN_06' 311 | id: in_06 312 | pin: 313 | pcf8574: pcf_inputs 314 | number: 5 315 | mode: 316 | input: true 317 | inverted: true 318 | 319 | - platform: gpio 320 | name: 'IN_07' 321 | id: in_07 322 | pin: 323 | pcf8574: pcf_inputs 324 | number: 6 325 | mode: 326 | input: true 327 | inverted: true 328 | 329 | - platform: gpio 330 | name: 'IN_08' 331 | id: in_08 332 | pin: 333 | pcf8574: pcf_inputs 334 | number: 7 335 | mode: 336 | input: true 337 | inverted: true 338 | - platform: template 339 | name: CAN Bus Button 340 | id: can_bus_button 341 | 342 | 343 | # canbus: 344 | # - platform: esp32_can 345 | # tx_pin: GPIO48 346 | # rx_pin: GPIO47 347 | # can_id: 4 348 | # bit_rate: 50kbps 349 | # on_frame: 350 | # - can_id: 5 351 | # then: 352 | # - lambda: |- 353 | # if(x.size() > 0) { 354 | # switch(x[0]) { 355 | # case 0x12: // button release 356 | # id(can_bus_button).publish_state(false); 357 | # break; 358 | # case 0x11: // button press 359 | # id(can_bus_button).publish_state(true); 360 | # break; 361 | # } 362 | # } 363 | 364 | # button: 365 | # - platform: template 366 | # name: 'CAN Sensor ON' 367 | # on_press: 368 | # - logger.log: Button Pressed 369 | # - canbus.send: [0x11, 0x22, 0x33] 370 | # - platform: template 371 | # name: 'CAN Sensor OFF' 372 | # on_press: 373 | # - logger.log: Button Pressed 374 | # - canbus.send: [0x12, 0x22, 0x33] -------------------------------------------------------------------------------- /boneio-dimmer_8ch-v0_4.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-8ch-04 3 | friendly_name: 'BoneIO Dimmer LED' 4 | serial_prefix: 'dim' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led 12 | version: '0.4' 13 | 14 | esp32: 15 | board: esp32-s3-devkitc-1 16 | framework: 17 | type: esp-idf 18 | 19 | ethernet: 20 | id: eth 21 | type: W5500 22 | clk_pin: GPIO12 23 | mosi_pin: GPIO14 24 | miso_pin: GPIO13 25 | cs_pin: GPIO39 26 | interrupt_pin: GPIO21 27 | reset_pin: GPIO38 28 | 29 | external_components: 30 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 31 | components: [lm75] 32 | 33 | i2c: 34 | sda: GPIO11 35 | scl: GPIO10 36 | scan: True 37 | frequency: 400kHz 38 | 39 | uart: 40 | id: uart_pin8_9 41 | rx_pin: GPIO8 42 | tx_pin: GPIO9 43 | baud_rate: 9600 44 | stop_bits: 1 45 | 46 | output: 47 | - platform: ledc 48 | pin: GPIO4 49 | frequency: 1000Hz 50 | inverted: false 51 | id: chl01 52 | - platform: ledc 53 | pin: GPIO5 54 | frequency: 1000Hz 55 | inverted: false 56 | id: chl02 57 | - platform: ledc 58 | pin: GPIO6 59 | frequency: 1000Hz 60 | inverted: false 61 | id: chl03 62 | - platform: ledc 63 | pin: GPIO7 64 | frequency: 1000Hz 65 | inverted: false 66 | id: chl04 67 | 68 | - platform: ledc 69 | pin: GPIO15 70 | frequency: 1000Hz 71 | inverted: false 72 | id: chr01 73 | - platform: ledc 74 | pin: GPIO16 75 | frequency: 1000Hz 76 | inverted: false 77 | id: chr02 78 | - platform: ledc 79 | pin: GPIO17 80 | frequency: 1000Hz 81 | inverted: false 82 | id: chr03 83 | - platform: ledc 84 | pin: GPIO18 85 | frequency: 1000Hz 86 | inverted: false 87 | id: chr04 88 | 89 | ##CAN gpio1 - tx, gpio2 rx 90 | 91 | modbus: 92 | send_wait_time: 200ms 93 | uart_id: uart_pin8_9 94 | id: boneio_modbus 95 | 96 | packages: 97 | internals_packages: 98 | url: https://github.com/boneIO-eu/esphome 99 | ref: v1.7.1 100 | files: [ 101 | 'devices/serial_no.yaml', 102 | # 'devices/dimmer_i2c.yaml', 103 | # 'devices/dimmer_ina219.yaml', 104 | # 'boards/dimmer_output.yaml', 105 | ] 106 | 107 | # dashboard_import: 108 | # package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest 109 | # import_full_config: true 110 | 111 | pcf8574: 112 | - id: 'pcf_inputs' 113 | address: 0x38 114 | 115 | logger: 116 | api: 117 | reboot_timeout: 0s 118 | ota: 119 | - platform: esphome 120 | - platform: web_server 121 | 122 | web_server: 123 | port: 80 124 | local: true 125 | 126 | text_sensor: 127 | - platform: version 128 | name: 'boneio-dimmer- Version' 129 | icon: mdi:cube-outline 130 | entity_category: diagnostic 131 | - platform: ethernet_info 132 | ip_address: 133 | entity_category: diagnostic 134 | name: boneio-dimmer IP 135 | - platform: template 136 | name: 'Hostname' 137 | id: hostname 138 | entity_category: diagnostic 139 | lambda: |- 140 | return std::string(id(eth).get_use_address()); 141 | update_interval: 5min 142 | 143 | binary_sensor: 144 | - platform: gpio 145 | name: 'IN_01' 146 | id: in_01 147 | pin: 148 | pcf8574: pcf_inputs 149 | number: 0 150 | mode: 151 | input: true 152 | inverted: true 153 | 154 | - platform: gpio 155 | name: 'IN_02' 156 | id: in_02 157 | pin: 158 | pcf8574: pcf_inputs 159 | number: 1 160 | mode: 161 | input: true 162 | inverted: true 163 | 164 | - platform: gpio 165 | name: 'IN_03' 166 | id: in_03 167 | pin: 168 | pcf8574: pcf_inputs 169 | number: 2 170 | mode: 171 | input: true 172 | inverted: true 173 | 174 | - platform: gpio 175 | name: 'IN_04' 176 | id: in_04 177 | pin: 178 | pcf8574: pcf_inputs 179 | number: 3 180 | mode: 181 | input: true 182 | inverted: true 183 | 184 | - platform: gpio 185 | name: 'IN_05' 186 | id: in_05 187 | pin: 188 | pcf8574: pcf_inputs 189 | number: 4 190 | mode: 191 | input: true 192 | inverted: true 193 | 194 | - platform: gpio 195 | name: 'IN_06' 196 | id: in_06 197 | pin: 198 | pcf8574: pcf_inputs 199 | number: 5 200 | mode: 201 | input: true 202 | inverted: true 203 | 204 | - platform: gpio 205 | name: 'IN_07' 206 | id: in_07 207 | pin: 208 | pcf8574: pcf_inputs 209 | number: 6 210 | mode: 211 | input: true 212 | inverted: true 213 | 214 | - platform: gpio 215 | name: 'IN_08' 216 | id: in_08 217 | pin: 218 | pcf8574: pcf_inputs 219 | number: 7 220 | mode: 221 | input: true 222 | inverted: true 223 | - platform: template 224 | name: CAN Bus Button 225 | id: can_bus_button 226 | 227 | light: 228 | - platform: monochromatic 229 | output: chl01 230 | name: 'CHL 01' 231 | id: chl_01 232 | default_transition_length: 2s 233 | gamma_correct: 0 234 | - platform: monochromatic 235 | output: chl02 236 | name: 'CHL 02' 237 | id: chl_02 238 | default_transition_length: 2s 239 | gamma_correct: 0 240 | - platform: monochromatic 241 | output: chl03 242 | name: 'CHL 03' 243 | id: chl_03 244 | default_transition_length: 2s 245 | gamma_correct: 0 246 | - platform: monochromatic 247 | output: chl04 248 | name: 'CHL 04' 249 | id: chl_04 250 | default_transition_length: 2s 251 | gamma_correct: 0 252 | 253 | - platform: monochromatic 254 | output: chr01 255 | name: 'CHR 01' 256 | id: chr_01 257 | default_transition_length: 2s 258 | gamma_correct: 0 259 | - platform: monochromatic 260 | output: chr02 261 | name: 'CHR 02' 262 | id: chr_02 263 | default_transition_length: 2s 264 | gamma_correct: 0 265 | - platform: monochromatic 266 | output: chr03 267 | name: 'CHR 03' 268 | id: chr_03 269 | default_transition_length: 2s 270 | gamma_correct: 0 271 | - platform: monochromatic 272 | output: chr04 273 | name: 'CHR 04' 274 | id: chr_04 275 | default_transition_length: 2s 276 | gamma_correct: 0 277 | 278 | sensor: 279 | - platform: lm75 280 | id: boneIO_temp 281 | name: 'Temperature' 282 | update_interval: 30s 283 | entity_category: diagnostic 284 | # on_value_range: 285 | # - above: 70.0 286 | # then: 287 | # - switch.turn_on: buzzer 288 | # - below: 70.0 289 | # then: 290 | # - switch.turn_off: buzzer 291 | - platform: max9611 292 | shunt_resistance: 0.005 ohm 293 | gain: '1X' 294 | voltage: 295 | name: CHL Voltage 296 | current: 297 | name: CHLCurrent 298 | power: 299 | name: CHL Watts 300 | temperature: 301 | name: CHL Temperature 302 | address: 0x70 303 | update_interval: 10s 304 | 305 | - platform: max9611 306 | shunt_resistance: 0.005 ohm 307 | gain: '1X' 308 | voltage: 309 | name: CHR Voltage 310 | current: 311 | name: CHR Current 312 | power: 313 | name: CHR Watts 314 | temperature: 315 | name: CHR Temperature 316 | address: 0x73 317 | update_interval: 10s 318 | - platform: modbus_controller 319 | modbus_controller_id: sht20 320 | name: 'MTemperature' 321 | register_type: read 322 | address: 1 323 | unit_of_measurement: '°C' 324 | device_class: 'temperature' 325 | state_class: 'measurement' 326 | value_type: S_WORD 327 | accuracy_decimals: 2 328 | filters: 329 | - multiply: 0.1 330 | - platform: modbus_controller 331 | modbus_controller_id: sht20 332 | name: 'MHumidity' 333 | register_type: read 334 | address: 2 335 | unit_of_measurement: '%' 336 | device_class: 'humidity' 337 | state_class: 'measurement' 338 | value_type: S_WORD 339 | accuracy_decimals: 2 340 | filters: 341 | - multiply: 0.1 342 | 343 | switch: 344 | - platform: gpio 345 | id: buzzer 346 | name: 'Buzzer' 347 | pin: 348 | number: GPIO42 349 | mode: 350 | output: true 351 | inverted: true 352 | 353 | modbus_controller: 354 | - id: sht20 355 | address: 62 356 | modbus_id: boneio_modbus 357 | setup_priority: -10 358 | update_interval: 20s 359 | 360 | canbus: 361 | - platform: esp32_can 362 | tx_pin: GPIO01 363 | rx_pin: GPIO02 364 | can_id: 4 365 | bit_rate: 50kbps 366 | on_frame: 367 | - can_id: 5 368 | then: 369 | - lambda: |- 370 | if(x.size() > 0) { 371 | switch(x[0]) { 372 | case 0x12: // button release 373 | id(can_bus_button).publish_state(false); 374 | break; 375 | case 0x11: // button press 376 | id(can_bus_button).publish_state(true); 377 | break; 378 | } 379 | } 380 | button: 381 | - platform: template 382 | name: 'CAN Sensor ON' 383 | on_press: 384 | - logger.log: Button Pressed 385 | - canbus.send: [0x11, 0x22, 0x33] 386 | - platform: template 387 | name: 'CAN Sensor OFF' 388 | on_press: 389 | - logger.log: Button Pressed 390 | - canbus.send: [0x12, 0x22, 0x33] 391 | -------------------------------------------------------------------------------- /boneio-24x16_switches_v0_7.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-24-sw-07 3 | friendly_name: 'BoneIO ESP 24x16 Switches' 4 | serial_prefix: 'esp' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.24x16-switches 12 | version: '0.7' 13 | 14 | esp32: 15 | board: nodemcu-32s 16 | framework: 17 | type: esp-idf 18 | 19 | ethernet: 20 | id: eth 21 | type: LAN8720 22 | mdc_pin: GPIO23 23 | mdio_pin: GPIO18 24 | clk: 25 | pin: GPIO0 26 | mode: CLK_EXT_IN 27 | phy_addr: 1 28 | power_pin: GPIO16 29 | 30 | dashboard_import: 31 | package_import_url: github://boneIO-eu/esphome/boneio-24x16_switches_v0_7.yaml@latest 32 | import_full_config: true 33 | 34 | packages: 35 | internals_packages: 36 | url: https://github.com/boneIO-eu/esphome 37 | ref: v1.7.1 38 | files: [ 39 | 'devices/buzzer.yaml', 40 | 'devices/serial_no.yaml', 41 | 'devices_v0_7/display.yaml', 42 | 'devices_v0_7/i2c.yaml', 43 | 'devices_v0_7-v0_9/ina219.yaml', 44 | 'devices_v0_7-v0_9/lm75b.yaml', 45 | 'devices_v0_7-v0_9/pcf_with_mcp.yaml', 46 | 'boards/24x16_output.yaml', 47 | # 'devices_v0_7-v0_9/one_wire.yaml', 48 | ] 49 | 50 | logger: 51 | api: 52 | reboot_timeout: 0s 53 | ota: 54 | - platform: esphome 55 | - platform: web_server 56 | 57 | web_server: 58 | port: 80 59 | local: true 60 | 61 | time: 62 | - platform: homeassistant 63 | timezone: Europe/Warsaw 64 | id: homeassistant_time 65 | 66 | switch: 67 | - platform: output 68 | name: 'Switch 01' 69 | output: out_01 70 | id: switch_01 71 | - platform: output 72 | name: 'Switch 02' 73 | output: out_02 74 | id: switch_02 75 | - platform: output 76 | name: 'Switch 03' 77 | output: out_03 78 | id: switch_03 79 | - platform: output 80 | name: 'Switch 04' 81 | output: out_04 82 | id: switch_04 83 | - platform: output 84 | name: 'Switch 05' 85 | output: out_05 86 | id: switch_05 87 | - platform: output 88 | name: 'Switch 06' 89 | output: out_06 90 | id: switch_06 91 | - platform: output 92 | name: 'Switch 07' 93 | output: out_07 94 | id: switch_07 95 | - platform: output 96 | name: 'Switch 08' 97 | output: out_08 98 | id: switch_08 99 | - platform: output 100 | name: 'Switch 09' 101 | output: out_09 102 | id: switch_09 103 | - platform: output 104 | name: 'Switch 10' 105 | output: out_10 106 | id: switch_10 107 | - platform: output 108 | name: 'Switch 11' 109 | output: out_11 110 | id: switch_11 111 | - platform: output 112 | name: 'Switch 12' 113 | output: out_12 114 | id: switch_12 115 | - platform: output 116 | name: 'Switch 13' 117 | output: out_13 118 | id: switch_13 119 | - platform: output 120 | name: 'Switch 14' 121 | output: out_14 122 | id: switch_14 123 | - platform: output 124 | name: 'Switch 15' 125 | output: out_15 126 | id: switch_15 127 | - platform: output 128 | name: 'Switch 16' 129 | output: out_16 130 | id: switch_16 131 | - platform: output 132 | name: 'Switch 17' 133 | output: out_17 134 | id: switch_17 135 | - platform: output 136 | name: 'Switch 18' 137 | output: out_18 138 | id: switch_18 139 | - platform: output 140 | name: 'Switch 19' 141 | output: out_19 142 | id: switch_19 143 | - platform: output 144 | name: 'Switch 20' 145 | output: out_20 146 | id: switch_20 147 | - platform: output 148 | name: 'Switch 21' 149 | output: out_21 150 | id: switch_21 151 | - platform: output 152 | name: 'Switch 22' 153 | output: out_22 154 | id: switch_22 155 | - platform: output 156 | name: 'Switch 23' 157 | output: out_23 158 | id: switch_23 159 | - platform: output 160 | name: 'Switch 24' 161 | output: out_24 162 | id: switch_24 163 | 164 | binary_sensor: 165 | - platform: gpio 166 | name: 'IN_01' 167 | id: in_01 168 | pin: 169 | pcf8574: pcf_inputs_1to14 170 | number: 0 171 | mode: 172 | input: true 173 | inverted: true 174 | on_press: 175 | then: 176 | - switch.toggle: switch_01 177 | 178 | - platform: gpio 179 | name: 'IN_02' 180 | id: in_02 181 | pin: 182 | pcf8574: pcf_inputs_1to14 183 | number: 1 184 | mode: 185 | input: true 186 | inverted: true 187 | on_press: 188 | then: 189 | - switch.toggle: switch_02 190 | 191 | - platform: gpio 192 | name: 'IN_03' 193 | id: in_03 194 | pin: 195 | pcf8574: pcf_inputs_1to14 196 | number: 2 197 | mode: 198 | input: true 199 | inverted: true 200 | on_press: 201 | then: 202 | - switch.toggle: switch_03 203 | 204 | - platform: gpio 205 | name: 'IN_04' 206 | id: in_04 207 | pin: 208 | pcf8574: pcf_inputs_1to14 209 | number: 3 210 | mode: 211 | input: true 212 | inverted: true 213 | on_press: 214 | then: 215 | - switch.toggle: switch_04 216 | 217 | - platform: gpio 218 | name: 'IN_05' 219 | id: in_05 220 | pin: 221 | pcf8574: pcf_inputs_1to14 222 | number: 4 223 | mode: 224 | input: true 225 | inverted: true 226 | on_press: 227 | then: 228 | - switch.toggle: switch_05 229 | 230 | - platform: gpio 231 | name: 'IN_06' 232 | id: in_06 233 | pin: 234 | pcf8574: pcf_inputs_1to14 235 | number: 5 236 | mode: 237 | input: true 238 | inverted: true 239 | on_press: 240 | then: 241 | - switch.toggle: switch_06 242 | 243 | - platform: gpio 244 | name: 'IN_07' 245 | id: in_07 246 | pin: 247 | pcf8574: pcf_inputs_1to14 248 | number: 6 249 | mode: 250 | input: true 251 | inverted: true 252 | on_press: 253 | then: 254 | - switch.toggle: switch_07 255 | 256 | - platform: gpio 257 | name: 'IN_08' 258 | id: in_08 259 | pin: 260 | pcf8574: pcf_inputs_1to14 261 | number: 8 262 | mode: 263 | input: true 264 | inverted: true 265 | on_press: 266 | then: 267 | - switch.toggle: switch_08 268 | 269 | - platform: gpio 270 | name: 'IN_09' 271 | id: in_09 272 | pin: 273 | pcf8574: pcf_inputs_1to14 274 | number: 9 275 | mode: 276 | input: true 277 | inverted: true 278 | on_press: 279 | then: 280 | - switch.toggle: switch_09 281 | 282 | - platform: gpio 283 | name: 'IN_10' 284 | id: in_10 285 | pin: 286 | pcf8574: pcf_inputs_1to14 287 | number: 10 288 | mode: 289 | input: true 290 | inverted: true 291 | on_press: 292 | then: 293 | - switch.toggle: switch_10 294 | 295 | - platform: gpio 296 | name: 'IN_11' 297 | id: in_11 298 | pin: 299 | pcf8574: pcf_inputs_1to14 300 | number: 11 301 | mode: 302 | input: true 303 | inverted: true 304 | on_press: 305 | then: 306 | - switch.toggle: switch_11 307 | 308 | - platform: gpio 309 | name: 'IN_12' 310 | id: in_12 311 | pin: 312 | pcf8574: pcf_inputs_1to14 313 | number: 12 314 | mode: 315 | input: true 316 | inverted: true 317 | on_press: 318 | then: 319 | - switch.toggle: switch_12 320 | 321 | - platform: gpio 322 | name: 'IN_13' 323 | id: in_13 324 | pin: 325 | pcf8574: pcf_inputs_1to14 326 | number: 13 327 | mode: 328 | input: true 329 | inverted: true 330 | on_press: 331 | then: 332 | - switch.toggle: switch_13 333 | 334 | - platform: gpio 335 | name: 'IN_14' 336 | id: in_14 337 | pin: 338 | pcf8574: pcf_inputs_1to14 339 | number: 14 340 | mode: 341 | input: true 342 | inverted: true 343 | on_press: 344 | then: 345 | - switch.toggle: switch_14 346 | 347 | - platform: gpio 348 | name: 'IN_15' 349 | id: in_15 350 | pin: 351 | pcf8574: pcf_inputs_15to28 352 | number: 6 353 | mode: 354 | input: true 355 | inverted: true 356 | on_press: 357 | then: 358 | - switch.toggle: switch_15 359 | 360 | - platform: gpio 361 | name: 'IN_16' 362 | id: in_16 363 | pin: 364 | pcf8574: pcf_inputs_15to28 365 | number: 5 366 | mode: 367 | input: true 368 | inverted: true 369 | on_press: 370 | then: 371 | - switch.toggle: switch_16 372 | 373 | - platform: gpio 374 | name: 'IN_17' 375 | id: in_17 376 | pin: 377 | pcf8574: pcf_inputs_15to28 378 | number: 4 379 | mode: 380 | input: true 381 | inverted: true 382 | on_press: 383 | then: 384 | - switch.toggle: switch_17 385 | 386 | - platform: gpio 387 | name: 'IN_18' 388 | id: in_18 389 | pin: 390 | pcf8574: pcf_inputs_15to28 391 | number: 3 392 | mode: 393 | input: true 394 | inverted: true 395 | on_press: 396 | then: 397 | - switch.toggle: switch_18 398 | 399 | - platform: gpio 400 | name: 'IN_19' 401 | id: in_19 402 | pin: 403 | pcf8574: pcf_inputs_15to28 404 | number: 2 405 | mode: 406 | input: true 407 | inverted: true 408 | on_press: 409 | then: 410 | - switch.toggle: switch_19 411 | 412 | - platform: gpio 413 | name: 'IN_20' 414 | id: in_20 415 | pin: 416 | pcf8574: pcf_inputs_15to28 417 | number: 1 418 | mode: 419 | input: true 420 | inverted: true 421 | on_press: 422 | then: 423 | - switch.toggle: switch_20 424 | 425 | - platform: gpio 426 | name: 'IN_21' 427 | id: in_21 428 | pin: 429 | pcf8574: pcf_inputs_15to28 430 | number: 0 431 | mode: 432 | input: true 433 | inverted: true 434 | on_press: 435 | then: 436 | - switch.toggle: switch_21 437 | 438 | - platform: gpio 439 | name: 'IN_22' 440 | id: in_22 441 | pin: 442 | pcf8574: pcf_inputs_15to28 443 | number: 8 444 | mode: 445 | input: true 446 | inverted: true 447 | on_press: 448 | then: 449 | - switch.toggle: switch_22 450 | 451 | - platform: gpio 452 | name: 'IN_23' 453 | id: in_23 454 | pin: 455 | pcf8574: pcf_inputs_15to28 456 | number: 9 457 | mode: 458 | input: true 459 | inverted: true 460 | on_press: 461 | then: 462 | - switch.toggle: switch_23 463 | 464 | - platform: gpio 465 | name: 'IN_24' 466 | id: in_24 467 | pin: 468 | pcf8574: pcf_inputs_15to28 469 | number: 10 470 | mode: 471 | input: true 472 | inverted: true 473 | on_press: 474 | then: 475 | - switch.toggle: switch_24 476 | 477 | - platform: gpio 478 | name: 'IN_25' 479 | id: in_25 480 | pin: 481 | pcf8574: pcf_inputs_15to28 482 | number: 11 483 | mode: 484 | input: true 485 | inverted: true 486 | 487 | - platform: gpio 488 | name: 'IN_26' 489 | id: in_26 490 | pin: 491 | pcf8574: pcf_inputs_15to28 492 | number: 12 493 | mode: 494 | input: true 495 | inverted: true 496 | 497 | - platform: gpio 498 | name: 'IN_27' 499 | id: in_27 500 | pin: 501 | pcf8574: pcf_inputs_15to28 502 | number: 13 503 | mode: 504 | input: true 505 | inverted: true 506 | 507 | - platform: gpio 508 | name: 'IN_28' 509 | id: in_28 510 | pin: 511 | pcf8574: pcf_inputs_15to28 512 | number: 14 513 | mode: 514 | input: true 515 | inverted: true 516 | 517 | - platform: gpio 518 | name: 'IN_29' 519 | id: in_29 520 | pin: 521 | pcf8574: pcf_inputs_28to35_menu 522 | number: 0 523 | mode: 524 | input: true 525 | inverted: true 526 | 527 | - platform: gpio 528 | name: 'IN_30' 529 | id: in_30 530 | pin: 531 | pcf8574: pcf_inputs_28to35_menu 532 | number: 1 533 | mode: 534 | input: true 535 | inverted: true 536 | 537 | - platform: gpio 538 | name: 'IN_31' 539 | id: in_31 540 | pin: 541 | pcf8574: pcf_inputs_28to35_menu 542 | number: 2 543 | mode: 544 | input: true 545 | inverted: true 546 | 547 | - platform: gpio 548 | name: 'IN_32' 549 | id: in_32 550 | pin: 551 | pcf8574: pcf_inputs_28to35_menu 552 | number: 3 553 | mode: 554 | input: true 555 | inverted: true 556 | 557 | - platform: gpio 558 | name: 'IN_33' 559 | pin: 560 | pcf8574: pcf_inputs_28to35_menu 561 | number: 4 562 | mode: 563 | input: true 564 | inverted: true 565 | 566 | - platform: gpio 567 | name: 'IN_34' 568 | pin: 569 | pcf8574: pcf_inputs_28to35_menu 570 | number: 5 571 | mode: 572 | input: true 573 | inverted: true 574 | 575 | - platform: gpio 576 | name: 'IN_35' 577 | pin: 578 | pcf8574: pcf_inputs_28to35_menu 579 | number: 6 580 | mode: 581 | input: true 582 | inverted: true 583 | ###################### 584 | ### MODBUS SECTION ### 585 | ###################### 586 | # UNCOMMENT BELOW TO USE MODBUS 587 | # uart: 588 | # id: uart_pin14_15 589 | # rx_pin: GPIO14 590 | # tx_pin: GPIO15 591 | # baud_rate: 9600 592 | # stop_bits: 1 593 | 594 | # modbus: 595 | # send_wait_time: 200ms 596 | # uart_id: uart_pin14_15 597 | # id: boneio_modbus 598 | 599 | # modbus_controller: 600 | # - id: YOURDEVICE ID 601 | # address: 0x09 602 | # modbus_id: mod_bus 603 | # setup_priority: -10 604 | # update_interval: 60s 605 | -------------------------------------------------------------------------------- /boneio-24x16_switches_v0_5-v0_6.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-24-sw-06 3 | friendly_name: 'BoneIO ESP 24x16 Switches' 4 | serial_prefix: 'esp' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.24x16-switches-v0_5-v0_6 12 | version: '0.6' 13 | 14 | esp32: 15 | board: nodemcu-32s 16 | framework: 17 | type: esp-idf 18 | 19 | ethernet: 20 | id: eth 21 | type: LAN8720 22 | mdc_pin: GPIO23 23 | mdio_pin: GPIO18 24 | clk: 25 | pin: GPIO0 26 | mode: CLK_EXT_IN 27 | phy_addr: 1 28 | power_pin: GPIO16 29 | 30 | dashboard_import: 31 | package_import_url: github://boneIO-eu/esphome/boneio-24x16_switches_v0_5-v0_6.yaml@latest 32 | import_full_config: true 33 | 34 | packages: 35 | internals_packages: 36 | url: https://github.com/boneIO-eu/esphome 37 | ref: v1.7.1 38 | files: [ 39 | 'devices/buzzer.yaml', 40 | 'devices/serial_no.yaml', 41 | 'devices_v0_5-v0_6/display.yaml', 42 | 'devices_v0_5-v0_6/time.yaml', 43 | 'devices_v0_5-v0_6/i2c.yaml', 44 | 'devices_v0_5-v0_6/ina219.yaml', 45 | 'devices_v0_5-v0_6/lm75b.yaml', 46 | 'devices_v0_5-v0_6/pcf_with_mcp.yaml', 47 | 'boards/24x16_output.yaml', 48 | # 'devices_v0_5-v0_6/one_wire.yaml', 49 | ] 50 | 51 | logger: 52 | api: 53 | reboot_timeout: 0s 54 | ota: 55 | - platform: esphome 56 | - platform: web_server 57 | 58 | web_server: 59 | port: 80 60 | local: true 61 | 62 | time: 63 | - platform: homeassistant 64 | timezone: Europe/Warsaw 65 | id: homeassistant_time 66 | on_time_sync: 67 | then: 68 | ds1307.write_time: 69 | 70 | switch: 71 | - platform: output 72 | name: 'Switch 01' 73 | output: out_01 74 | id: switch_01 75 | - platform: output 76 | name: 'Switch 02' 77 | output: out_02 78 | id: switch_02 79 | - platform: output 80 | name: 'Switch 03' 81 | output: out_03 82 | id: switch_03 83 | - platform: output 84 | name: 'Switch 04' 85 | output: out_04 86 | id: switch_04 87 | - platform: output 88 | name: 'Switch 05' 89 | output: out_05 90 | id: switch_05 91 | - platform: output 92 | name: 'Switch 06' 93 | output: out_06 94 | id: switch_06 95 | - platform: output 96 | name: 'Switch 07' 97 | output: out_07 98 | id: switch_07 99 | - platform: output 100 | name: 'Switch 08' 101 | output: out_08 102 | id: switch_08 103 | - platform: output 104 | name: 'Switch 09' 105 | output: out_09 106 | id: switch_09 107 | - platform: output 108 | name: 'Switch 10' 109 | output: out_10 110 | id: switch_10 111 | - platform: output 112 | name: 'Switch 11' 113 | output: out_11 114 | id: switch_11 115 | - platform: output 116 | name: 'Switch 12' 117 | output: out_12 118 | id: switch_12 119 | - platform: output 120 | name: 'Switch 13' 121 | output: out_13 122 | id: switch_13 123 | - platform: output 124 | name: 'Switch 14' 125 | output: out_14 126 | id: switch_14 127 | - platform: output 128 | name: 'Switch 15' 129 | output: out_15 130 | id: switch_15 131 | - platform: output 132 | name: 'Switch 16' 133 | output: out_16 134 | id: switch_16 135 | - platform: output 136 | name: 'Switch 17' 137 | output: out_17 138 | id: switch_17 139 | - platform: output 140 | name: 'Switch 18' 141 | output: out_18 142 | id: switch_18 143 | - platform: output 144 | name: 'Switch 19' 145 | output: out_19 146 | id: switch_19 147 | - platform: output 148 | name: 'Switch 20' 149 | output: out_20 150 | id: switch_20 151 | - platform: output 152 | name: 'Switch 21' 153 | output: out_21 154 | id: switch_21 155 | - platform: output 156 | name: 'Switch 22' 157 | output: out_22 158 | id: switch_22 159 | - platform: output 160 | name: 'Switch 23' 161 | output: out_23 162 | id: switch_23 163 | - platform: output 164 | name: 'Switch 24' 165 | output: out_24 166 | id: switch_24 167 | 168 | binary_sensor: 169 | - platform: gpio 170 | name: 'IN_01' 171 | id: in_01 172 | pin: 173 | pcf8574: pcf_inputs_1to14 174 | number: 0 175 | mode: 176 | input: true 177 | inverted: true 178 | on_press: 179 | then: 180 | - switch.toggle: switch_01 181 | 182 | - platform: gpio 183 | name: 'IN_02' 184 | id: in_02 185 | pin: 186 | pcf8574: pcf_inputs_1to14 187 | number: 1 188 | mode: 189 | input: true 190 | inverted: true 191 | on_press: 192 | then: 193 | - switch.toggle: switch_02 194 | 195 | - platform: gpio 196 | name: 'IN_03' 197 | id: in_03 198 | pin: 199 | pcf8574: pcf_inputs_1to14 200 | number: 2 201 | mode: 202 | input: true 203 | inverted: true 204 | on_press: 205 | then: 206 | - switch.toggle: switch_03 207 | 208 | - platform: gpio 209 | name: 'IN_04' 210 | id: in_04 211 | pin: 212 | pcf8574: pcf_inputs_1to14 213 | number: 3 214 | mode: 215 | input: true 216 | inverted: true 217 | on_press: 218 | then: 219 | - switch.toggle: switch_04 220 | 221 | - platform: gpio 222 | name: 'IN_05' 223 | id: in_05 224 | pin: 225 | pcf8574: pcf_inputs_1to14 226 | number: 4 227 | mode: 228 | input: true 229 | inverted: true 230 | on_press: 231 | then: 232 | - switch.toggle: switch_05 233 | 234 | - platform: gpio 235 | name: 'IN_06' 236 | id: in_06 237 | pin: 238 | pcf8574: pcf_inputs_1to14 239 | number: 5 240 | mode: 241 | input: true 242 | inverted: true 243 | on_press: 244 | then: 245 | - switch.toggle: switch_06 246 | 247 | - platform: gpio 248 | name: 'IN_07' 249 | id: in_07 250 | pin: 251 | pcf8574: pcf_inputs_1to14 252 | number: 6 253 | mode: 254 | input: true 255 | inverted: true 256 | on_press: 257 | then: 258 | - switch.toggle: switch_07 259 | 260 | - platform: gpio 261 | name: 'IN_08' 262 | id: in_08 263 | pin: 264 | pcf8574: pcf_inputs_1to14 265 | number: 8 266 | mode: 267 | input: true 268 | inverted: true 269 | on_press: 270 | then: 271 | - switch.toggle: switch_08 272 | 273 | - platform: gpio 274 | name: 'IN_09' 275 | id: in_09 276 | pin: 277 | pcf8574: pcf_inputs_1to14 278 | number: 9 279 | mode: 280 | input: true 281 | inverted: true 282 | on_press: 283 | then: 284 | - switch.toggle: switch_09 285 | 286 | - platform: gpio 287 | name: 'IN_10' 288 | id: in_10 289 | pin: 290 | pcf8574: pcf_inputs_1to14 291 | number: 10 292 | mode: 293 | input: true 294 | inverted: true 295 | on_press: 296 | then: 297 | - switch.toggle: switch_10 298 | 299 | - platform: gpio 300 | name: 'IN_11' 301 | id: in_11 302 | pin: 303 | pcf8574: pcf_inputs_1to14 304 | number: 11 305 | mode: 306 | input: true 307 | inverted: true 308 | on_press: 309 | then: 310 | - switch.toggle: switch_11 311 | 312 | - platform: gpio 313 | name: 'IN_12' 314 | id: in_12 315 | pin: 316 | pcf8574: pcf_inputs_1to14 317 | number: 12 318 | mode: 319 | input: true 320 | inverted: true 321 | on_press: 322 | then: 323 | - switch.toggle: switch_12 324 | 325 | - platform: gpio 326 | name: 'IN_13' 327 | id: in_13 328 | pin: 329 | pcf8574: pcf_inputs_1to14 330 | number: 13 331 | mode: 332 | input: true 333 | inverted: true 334 | on_press: 335 | then: 336 | - switch.toggle: switch_13 337 | 338 | - platform: gpio 339 | name: 'IN_14' 340 | id: in_14 341 | pin: 342 | pcf8574: pcf_inputs_1to14 343 | number: 14 344 | mode: 345 | input: true 346 | inverted: true 347 | on_press: 348 | then: 349 | - switch.toggle: switch_14 350 | 351 | - platform: gpio 352 | name: 'IN_15' 353 | id: in_15 354 | pin: 355 | pcf8574: pcf_inputs_15to28 356 | number: 6 357 | mode: 358 | input: true 359 | inverted: true 360 | on_press: 361 | then: 362 | - switch.toggle: switch_15 363 | 364 | - platform: gpio 365 | name: 'IN_16' 366 | id: in_16 367 | pin: 368 | pcf8574: pcf_inputs_15to28 369 | number: 5 370 | mode: 371 | input: true 372 | inverted: true 373 | on_press: 374 | then: 375 | - switch.toggle: switch_16 376 | 377 | - platform: gpio 378 | name: 'IN_17' 379 | id: in_17 380 | pin: 381 | pcf8574: pcf_inputs_15to28 382 | number: 4 383 | mode: 384 | input: true 385 | inverted: true 386 | on_press: 387 | then: 388 | - switch.toggle: switch_17 389 | 390 | - platform: gpio 391 | name: 'IN_18' 392 | id: in_18 393 | pin: 394 | pcf8574: pcf_inputs_15to28 395 | number: 3 396 | mode: 397 | input: true 398 | inverted: true 399 | on_press: 400 | then: 401 | - switch.toggle: switch_18 402 | 403 | - platform: gpio 404 | name: 'IN_19' 405 | id: in_19 406 | pin: 407 | pcf8574: pcf_inputs_15to28 408 | number: 2 409 | mode: 410 | input: true 411 | inverted: true 412 | on_press: 413 | then: 414 | - switch.toggle: switch_19 415 | 416 | - platform: gpio 417 | name: 'IN_20' 418 | id: in_20 419 | pin: 420 | pcf8574: pcf_inputs_15to28 421 | number: 1 422 | mode: 423 | input: true 424 | inverted: true 425 | on_press: 426 | then: 427 | - switch.toggle: switch_20 428 | 429 | - platform: gpio 430 | name: 'IN_21' 431 | id: in_21 432 | pin: 433 | pcf8574: pcf_inputs_15to28 434 | number: 0 435 | mode: 436 | input: true 437 | inverted: true 438 | on_press: 439 | then: 440 | - switch.toggle: switch_21 441 | 442 | - platform: gpio 443 | name: 'IN_22' 444 | id: in_22 445 | pin: 446 | pcf8574: pcf_inputs_15to28 447 | number: 8 448 | mode: 449 | input: true 450 | inverted: true 451 | on_press: 452 | then: 453 | - switch.toggle: switch_22 454 | 455 | - platform: gpio 456 | name: 'IN_23' 457 | id: in_23 458 | pin: 459 | pcf8574: pcf_inputs_15to28 460 | number: 9 461 | mode: 462 | input: true 463 | inverted: true 464 | on_press: 465 | then: 466 | - switch.toggle: switch_23 467 | 468 | - platform: gpio 469 | name: 'IN_24' 470 | id: in_24 471 | pin: 472 | pcf8574: pcf_inputs_15to28 473 | number: 10 474 | mode: 475 | input: true 476 | inverted: true 477 | on_press: 478 | then: 479 | - switch.toggle: switch_24 480 | 481 | - platform: gpio 482 | name: 'IN_25' 483 | id: in_25 484 | pin: 485 | pcf8574: pcf_inputs_15to28 486 | number: 11 487 | mode: 488 | input: true 489 | inverted: true 490 | 491 | - platform: gpio 492 | name: 'IN_26' 493 | id: in_26 494 | pin: 495 | pcf8574: pcf_inputs_15to28 496 | number: 12 497 | mode: 498 | input: true 499 | inverted: true 500 | 501 | - platform: gpio 502 | name: 'IN_27' 503 | id: in_27 504 | pin: 505 | pcf8574: pcf_inputs_15to28 506 | number: 13 507 | mode: 508 | input: true 509 | inverted: true 510 | 511 | - platform: gpio 512 | name: 'IN_28' 513 | id: in_28 514 | pin: 515 | pcf8574: pcf_inputs_15to28 516 | number: 14 517 | mode: 518 | input: true 519 | inverted: true 520 | 521 | - platform: gpio 522 | name: 'IN_29' 523 | id: in_29 524 | pin: 525 | pcf8574: pcf_inputs_28to35_menu 526 | number: 0 527 | mode: 528 | input: true 529 | inverted: true 530 | 531 | - platform: gpio 532 | name: 'IN_30' 533 | id: in_30 534 | pin: 535 | pcf8574: pcf_inputs_28to35_menu 536 | number: 1 537 | mode: 538 | input: true 539 | inverted: true 540 | 541 | - platform: gpio 542 | name: 'IN_31' 543 | id: in_31 544 | pin: 545 | pcf8574: pcf_inputs_28to35_menu 546 | number: 2 547 | mode: 548 | input: true 549 | inverted: true 550 | 551 | - platform: gpio 552 | name: 'IN_32' 553 | id: in_32 554 | pin: 555 | pcf8574: pcf_inputs_28to35_menu 556 | number: 3 557 | mode: 558 | input: true 559 | inverted: true 560 | 561 | - platform: gpio 562 | name: 'IN_33' 563 | pin: 564 | pcf8574: pcf_inputs_28to35_menu 565 | number: 4 566 | mode: 567 | input: true 568 | inverted: true 569 | 570 | - platform: gpio 571 | name: 'IN_34' 572 | pin: 573 | pcf8574: pcf_inputs_28to35_menu 574 | number: 5 575 | mode: 576 | input: true 577 | inverted: true 578 | 579 | - platform: gpio 580 | name: 'IN_35' 581 | pin: 582 | pcf8574: pcf_inputs_28to35_menu 583 | number: 6 584 | mode: 585 | input: true 586 | inverted: true 587 | ###################### 588 | ### MODBUS SECTION ### 589 | ###################### 590 | # UNCOMMENT BELOW TO USE MODBUS 591 | # uart: 592 | # id: uart_pin3_1 593 | # rx_pin: GPIO3 594 | # tx_pin: GPIO1 595 | # baud_rate: 9600 596 | # stop_bits: 1 597 | 598 | # modbus: 599 | # send_wait_time: 200ms 600 | # uart_id: uart_pin14_15 601 | # id: boneio_modbus 602 | 603 | # modbus_controller: 604 | # - id: YOURDEVICE ID 605 | # address: 0x09 606 | # modbus_id: mod_bus 607 | # setup_priority: -10 608 | # update_interval: 60s 609 | -------------------------------------------------------------------------------- /boneio-dimmer_8ch-v0_3.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-dr-8ch-03 3 | friendly_name: 'BoneIO Dimmer LED' 4 | serial_prefix: 'dim' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.dimmer-led 12 | version: '0.3' 13 | 14 | esp32: 15 | board: esp32dev 16 | framework: 17 | type: esp-idf 18 | 19 | external_components: 20 | - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 21 | components: [lm75] 22 | 23 | packages: 24 | internals_packages: 25 | url: https://github.com/boneIO-eu/esphome 26 | ref: v1.7.1 27 | files: 28 | [ 29 | 'devices/serial_no.yaml', 30 | 'devices/dimmer_i2c.yaml', 31 | 'devices/dimmer_ina219.yaml', 32 | 'boards/dimmer_output.yaml', 33 | ] 34 | 35 | ethernet: 36 | id: eth 37 | type: LAN8720 38 | mdc_pin: GPIO23 39 | mdio_pin: GPIO18 40 | clk: 41 | pin: GPIO0 42 | mode: CLK_EXT_IN 43 | phy_addr: 1 44 | power_pin: GPIO16 45 | 46 | dashboard_import: 47 | package_import_url: github://boneIO-eu/esphome/boneio-dimmer_8ch-v0_3.yaml@latest 48 | import_full_config: true 49 | 50 | pcf8574: 51 | - id: 'pcf_inputs' 52 | address: 0x38 53 | 54 | logger: 55 | api: 56 | reboot_timeout: 0s 57 | ota: 58 | - platform: esphome 59 | - platform: web_server 60 | 61 | web_server: 62 | port: 80 63 | local: true 64 | 65 | text_sensor: 66 | - platform: version 67 | name: 'boneio-dimmer- Version' 68 | icon: mdi:cube-outline 69 | entity_category: diagnostic 70 | - platform: ethernet_info 71 | ip_address: 72 | entity_category: diagnostic 73 | name: boneio-dimmer IP 74 | - platform: template 75 | name: 'Hostname' 76 | id: hostname 77 | entity_category: diagnostic 78 | lambda: |- 79 | return std::string(id(eth).get_use_address()); 80 | update_interval: 5min 81 | 82 | binary_sensor: 83 | - platform: gpio 84 | name: 'IN_01' 85 | id: in_01 86 | pin: 87 | pcf8574: pcf_inputs 88 | number: 1 89 | mode: 90 | input: true 91 | inverted: true 92 | on_multi_click: 93 | - timing: 94 | - ON for at least 0.7s 95 | then: 96 | - while: 97 | condition: 98 | binary_sensor.is_on: in_01 99 | then: 100 | - if: 101 | condition: 102 | lambda: 'return id(chl_01).current_values.get_brightness() >= 0.90f;' 103 | then: 104 | - light.turn_on: 105 | id: chl_01 106 | brightness: 5% 107 | transition_length: 0.2s 108 | else: 109 | - light.dim_relative: 110 | id: chl_01 111 | relative_brightness: 5% 112 | transition_length: 0.2s 113 | - delay: 200ms 114 | invalid_cooldown: 0.5s 115 | - timing: #single click 116 | - ON for at most 0.4s 117 | - OFF for at least 0.1s 118 | then: 119 | light.toggle: chl_01 120 | invalid_cooldown: 0.5s 121 | - platform: gpio 122 | name: 'IN_02' 123 | id: in_02 124 | pin: 125 | pcf8574: pcf_inputs 126 | number: 2 127 | mode: 128 | input: true 129 | inverted: true 130 | on_multi_click: 131 | - timing: 132 | - ON for at least 0.7s 133 | then: 134 | - while: 135 | condition: 136 | binary_sensor.is_on: in_02 137 | then: 138 | - if: 139 | condition: 140 | lambda: 'return id(chl_02).current_values.get_brightness() >= 0.90f;' 141 | then: 142 | - light.turn_on: 143 | id: chl_02 144 | brightness: 5% 145 | transition_length: 0.2s 146 | else: 147 | - light.dim_relative: 148 | id: chl_02 149 | relative_brightness: 5% 150 | transition_length: 0.2s 151 | - delay: 200ms 152 | invalid_cooldown: 0.5s 153 | - timing: #single click 154 | - ON for at most 0.4s 155 | - OFF for at least 0.1s 156 | then: 157 | light.toggle: chl_02 158 | invalid_cooldown: 0.5s 159 | - platform: gpio 160 | name: 'IN_03' 161 | id: in_03 162 | pin: 163 | pcf8574: pcf_inputs 164 | number: 3 165 | mode: 166 | input: true 167 | inverted: true 168 | on_multi_click: 169 | - timing: 170 | - ON for at least 0.7s 171 | then: 172 | - while: 173 | condition: 174 | binary_sensor.is_on: in_03 175 | then: 176 | - if: 177 | condition: 178 | lambda: 'return id(chl_03).current_values.get_brightness() >= 0.90f;' 179 | then: 180 | - light.turn_on: 181 | id: chl_03 182 | brightness: 5% 183 | transition_length: 0.2s 184 | else: 185 | - light.dim_relative: 186 | id: chl_03 187 | relative_brightness: 5% 188 | transition_length: 0.2s 189 | - delay: 200ms 190 | invalid_cooldown: 0.5s 191 | - timing: #single click 192 | - ON for at most 0.4s 193 | - OFF for at least 0.1s 194 | then: 195 | light.toggle: chl_03 196 | invalid_cooldown: 0.5s 197 | - platform: gpio 198 | name: 'IN_04' 199 | id: in_04 200 | pin: 201 | pcf8574: pcf_inputs 202 | number: 4 203 | mode: 204 | input: true 205 | inverted: true 206 | on_multi_click: 207 | - timing: 208 | - ON for at least 0.7s 209 | then: 210 | - while: 211 | condition: 212 | binary_sensor.is_on: in_04 213 | then: 214 | - if: 215 | condition: 216 | lambda: 'return id(chl_04).current_values.get_brightness() >= 0.90f;' 217 | then: 218 | - light.turn_on: 219 | id: chl_04 220 | brightness: 5% 221 | transition_length: 0.2s 222 | else: 223 | - light.dim_relative: 224 | id: chl_04 225 | relative_brightness: 5% 226 | transition_length: 0.2s 227 | - delay: 200ms 228 | invalid_cooldown: 0.5s 229 | - timing: #single click 230 | - ON for at most 0.4s 231 | - OFF for at least 0.1s 232 | then: 233 | light.toggle: chl_04 234 | invalid_cooldown: 0.5s 235 | - platform: gpio 236 | name: 'IN_05' 237 | id: in_05 238 | pin: 239 | number: 36 240 | mode: 241 | input: true 242 | inverted: true 243 | on_multi_click: 244 | - timing: 245 | - ON for at least 0.7s 246 | then: 247 | - while: 248 | condition: 249 | binary_sensor.is_on: in_05 250 | then: 251 | - if: 252 | condition: 253 | lambda: 'return id(chr_01).current_values.get_brightness() >= 0.90f;' 254 | then: 255 | - light.turn_on: 256 | id: chr_01 257 | brightness: 5% 258 | transition_length: 0.2s 259 | else: 260 | - light.dim_relative: 261 | id: chr_01 262 | relative_brightness: 5% 263 | transition_length: 0.2s 264 | - delay: 200ms 265 | invalid_cooldown: 0.5s 266 | - timing: #single click 267 | - ON for at most 0.4s 268 | - OFF for at least 0.1s 269 | then: 270 | light.toggle: chr_01 271 | invalid_cooldown: 0.5s 272 | - platform: gpio 273 | name: 'IN_06' 274 | id: in_06 275 | pin: 276 | number: 39 277 | mode: 278 | input: true 279 | inverted: true 280 | on_multi_click: 281 | - timing: 282 | - ON for at least 0.7s 283 | then: 284 | - while: 285 | condition: 286 | binary_sensor.is_on: in_06 287 | then: 288 | - if: 289 | condition: 290 | lambda: 'return id(chr_02).current_values.get_brightness() >= 0.90f;' 291 | then: 292 | - light.turn_on: 293 | id: chr_02 294 | brightness: 5% 295 | transition_length: 0.2s 296 | else: 297 | - light.dim_relative: 298 | id: chr_02 299 | relative_brightness: 5% 300 | transition_length: 0.2s 301 | - delay: 200ms 302 | invalid_cooldown: 0.5s 303 | - timing: #single click 304 | - ON for at most 0.4s 305 | - OFF for at least 0.1s 306 | then: 307 | light.toggle: chr_02 308 | invalid_cooldown: 0.5s 309 | - platform: gpio 310 | name: 'IN_07' 311 | id: in_07 312 | pin: 313 | number: 34 314 | mode: 315 | input: true 316 | inverted: true 317 | on_multi_click: 318 | - timing: 319 | - ON for at least 0.7s 320 | then: 321 | - while: 322 | condition: 323 | binary_sensor.is_on: in_07 324 | then: 325 | - if: 326 | condition: 327 | lambda: 'return id(chr_03).current_values.get_brightness() >= 0.90f;' 328 | then: 329 | - light.turn_on: 330 | id: chr_03 331 | brightness: 5% 332 | transition_length: 0.2s 333 | else: 334 | - light.dim_relative: 335 | id: chr_03 336 | relative_brightness: 5% 337 | transition_length: 0.2s 338 | - delay: 200ms 339 | invalid_cooldown: 0.5s 340 | - timing: #single click 341 | - ON for at most 0.4s 342 | - OFF for at least 0.1s 343 | then: 344 | light.toggle: chr_03 345 | invalid_cooldown: 0.5s 346 | - platform: gpio 347 | name: 'IN_08' 348 | id: in_08 349 | pin: 350 | number: 35 351 | mode: 352 | input: true 353 | inverted: true 354 | on_multi_click: 355 | - timing: 356 | - ON for at least 0.7s 357 | then: 358 | - while: 359 | condition: 360 | binary_sensor.is_on: in_08 361 | then: 362 | - if: 363 | condition: 364 | lambda: 'return id(chr_04).current_values.get_brightness() >= 0.90f;' 365 | then: 366 | - light.turn_on: 367 | id: chr_04 368 | brightness: 5% 369 | transition_length: 0.2s 370 | else: 371 | - light.dim_relative: 372 | id: chr_04 373 | relative_brightness: 5% 374 | transition_length: 0.2s 375 | - delay: 200ms 376 | invalid_cooldown: 0.5s 377 | - timing: #single click 378 | - ON for at most 0.4s 379 | - OFF for at least 0.1s 380 | then: 381 | light.toggle: chr_04 382 | invalid_cooldown: 0.5s 383 | 384 | light: 385 | - platform: monochromatic 386 | output: chl01 387 | name: 'CHL 01' 388 | id: chl_01 389 | default_transition_length: 2s 390 | gamma_correct: 0 391 | - platform: monochromatic 392 | output: chl02 393 | name: 'CHL 02' 394 | id: chl_02 395 | default_transition_length: 2s 396 | gamma_correct: 0 397 | - platform: monochromatic 398 | output: chl03 399 | name: 'CHL 03' 400 | id: chl_03 401 | default_transition_length: 2s 402 | gamma_correct: 0 403 | - platform: monochromatic 404 | output: chl04 405 | name: 'CHL 04' 406 | id: chl_04 407 | default_transition_length: 2s 408 | gamma_correct: 0 409 | 410 | - platform: monochromatic 411 | output: chr01 412 | name: 'CHR 01' 413 | id: chr_01 414 | default_transition_length: 2s 415 | gamma_correct: 0 416 | - platform: monochromatic 417 | output: chr02 418 | name: 'CHR 02' 419 | id: chr_02 420 | default_transition_length: 2s 421 | gamma_correct: 0 422 | - platform: monochromatic 423 | output: chr03 424 | name: 'CHR 03' 425 | id: chr_03 426 | default_transition_length: 2s 427 | gamma_correct: 0 428 | - platform: monochromatic 429 | output: chr04 430 | name: 'CHR 04' 431 | id: chr_04 432 | default_transition_length: 2s 433 | gamma_correct: 0 434 | 435 | sensor: 436 | - platform: lm75 437 | id: boneIO_temp 438 | name: 'Temperature' 439 | update_interval: 30s 440 | entity_category: diagnostic 441 | on_value_range: 442 | - above: 70.0 443 | then: 444 | - switch.turn_on: buzzer 445 | - below: 70.0 446 | then: 447 | - switch.turn_off: buzzer 448 | 449 | switch: 450 | - platform: gpio 451 | id: buzzer 452 | name: 'Buzzer' 453 | pin: 454 | pcf8574: pcf_inputs 455 | number: 0 456 | mode: 457 | output: true 458 | inverted: true 459 | -------------------------------------------------------------------------------- /boneio-32x10_lights_v0_7.yaml: -------------------------------------------------------------------------------- 1 | substitutions: 2 | name: boneio-32-l-07 3 | friendly_name: 'BoneIO ESP 32x10 Lights' 4 | serial_prefix: 'esp' #Don't change it. 5 | 6 | esphome: 7 | name: '${name}' 8 | friendly_name: '${friendly_name}' 9 | name_add_mac_suffix: true 10 | project: 11 | name: boneio.32x10-lights 12 | version: '0.7' 13 | 14 | esp32: 15 | board: nodemcu-32s 16 | framework: 17 | type: esp-idf 18 | 19 | ethernet: 20 | id: eth 21 | type: LAN8720 22 | mdc_pin: GPIO23 23 | mdio_pin: GPIO18 24 | clk: 25 | pin: GPIO0 26 | mode: CLK_EXT_IN 27 | phy_addr: 1 28 | power_pin: GPIO16 29 | 30 | dashboard_import: 31 | package_import_url: github://boneIO-eu/esphome/boneio-32x10_lights_v0_7.yaml@latest 32 | import_full_config: true 33 | 34 | packages: 35 | internals_packages: 36 | url: https://github.com/boneIO-eu/esphome 37 | ref: v1.7.1 38 | files: [ 39 | 'devices/buzzer.yaml', 40 | 'devices/serial_no.yaml', 41 | 'devices_v0_7/display.yaml', 42 | 'devices_v0_7/i2c.yaml', 43 | 'devices_v0_7-v0_9/ina219.yaml', 44 | 'devices_v0_7-v0_9/lm75b.yaml', 45 | 'devices_v0_7-v0_9/pcf.yaml', 46 | 'boards/output/out01_02.yaml', 47 | 'boards/output/out03_04.yaml', 48 | 'boards/output/out05_06.yaml', 49 | 'boards/output/out07_08.yaml', 50 | 'boards/output/out09_10.yaml', 51 | 'boards/output/out11_12.yaml', 52 | 'boards/output/out13_14.yaml', 53 | 'boards/output/out15_16.yaml', 54 | 'boards/output/out17_18.yaml', 55 | 'boards/output/out19_20.yaml', 56 | 'boards/output/out21_22.yaml', 57 | 'boards/output/out23_24.yaml', 58 | 'boards/output/out25_26.yaml', 59 | 'boards/output/out27_28.yaml', 60 | 'boards/output/out29_30.yaml', 61 | 'boards/output/out31_32.yaml', 62 | # 'devices_v0_7-v0_9/one_wire.yaml', 63 | ] 64 | 65 | logger: 66 | api: 67 | reboot_timeout: 0s 68 | ota: 69 | - platform: esphome 70 | - platform: web_server 71 | 72 | web_server: 73 | port: 80 74 | local: true 75 | version: 3 76 | 77 | time: 78 | - platform: homeassistant 79 | timezone: Europe/Warsaw 80 | id: homeassistant_time 81 | 82 | light: 83 | - platform: binary 84 | name: 'Light 01' 85 | output: out_01 86 | id: light_01 87 | - platform: binary 88 | name: 'Light 02' 89 | output: out_02 90 | id: light_02 91 | - platform: binary 92 | name: 'Light 03' 93 | output: out_03 94 | id: light_03 95 | - platform: binary 96 | name: 'Light 04' 97 | output: out_04 98 | id: light_04 99 | - platform: binary 100 | name: 'Light 05' 101 | output: out_05 102 | id: light_05 103 | - platform: binary 104 | name: 'Light 06' 105 | output: out_06 106 | id: light_06 107 | - platform: binary 108 | name: 'Light 07' 109 | output: out_07 110 | id: light_07 111 | - platform: binary 112 | name: 'Light 08' 113 | output: out_08 114 | id: light_08 115 | - platform: binary 116 | name: 'Light 09' 117 | output: out_09 118 | id: light_09 119 | - platform: binary 120 | name: 'Light 10' 121 | output: out_10 122 | id: light_10 123 | - platform: binary 124 | name: 'Light 11' 125 | output: out_11 126 | id: light_11 127 | - platform: binary 128 | name: 'Light 12' 129 | output: out_12 130 | id: light_12 131 | - platform: binary 132 | name: 'Light 13' 133 | output: out_13 134 | id: light_13 135 | - platform: binary 136 | name: 'Light 14' 137 | output: out_14 138 | id: light_14 139 | - platform: binary 140 | name: 'Light 15' 141 | output: out_15 142 | id: light_15 143 | - platform: binary 144 | name: 'Light 16' 145 | output: out_16 146 | id: light_16 147 | - platform: binary 148 | name: 'Light 17' 149 | output: out_17 150 | id: light_17 151 | - platform: binary 152 | name: 'Light 18' 153 | output: out_18 154 | id: light_18 155 | - platform: binary 156 | name: 'Light 19' 157 | output: out_19 158 | id: light_19 159 | - platform: binary 160 | name: 'Light 20' 161 | output: out_20 162 | id: light_20 163 | - platform: binary 164 | name: 'Light 21' 165 | output: out_21 166 | id: light_21 167 | - platform: binary 168 | name: 'Light 22' 169 | output: out_22 170 | id: light_22 171 | - platform: binary 172 | name: 'Light 23' 173 | output: out_23 174 | id: light_23 175 | - platform: binary 176 | name: 'Light 24' 177 | output: out_24 178 | id: light_24 179 | - platform: binary 180 | name: 'Light 25' 181 | output: out_25 182 | id: light_25 183 | - platform: binary 184 | name: 'Light 26' 185 | output: out_26 186 | id: light_26 187 | - platform: binary 188 | name: 'Light 27' 189 | output: out_27 190 | id: light_27 191 | - platform: binary 192 | name: 'Light 28' 193 | output: out_28 194 | id: light_28 195 | - platform: binary 196 | name: 'Light 29' 197 | output: out_29 198 | id: light_29 199 | - platform: binary 200 | name: 'Light 30' 201 | output: out_30 202 | id: light_30 203 | - platform: binary 204 | name: 'Light 31' 205 | output: out_31 206 | id: light_31 207 | - platform: binary 208 | name: 'Light 32' 209 | output: out_32 210 | id: light_32 211 | 212 | binary_sensor: 213 | - platform: gpio 214 | name: 'IN_01' 215 | id: in_01 216 | pin: 217 | pcf8574: pcf_inputs_1to14 218 | number: 0 219 | mode: 220 | input: true 221 | inverted: true 222 | on_press: 223 | then: 224 | - light.toggle: light_01 225 | 226 | - platform: gpio 227 | name: 'IN_02' 228 | id: in_02 229 | pin: 230 | pcf8574: pcf_inputs_1to14 231 | number: 1 232 | mode: 233 | input: true 234 | inverted: true 235 | on_press: 236 | then: 237 | - light.toggle: light_02 238 | 239 | - platform: gpio 240 | name: 'IN_03' 241 | id: in_03 242 | pin: 243 | pcf8574: pcf_inputs_1to14 244 | number: 2 245 | mode: 246 | input: true 247 | inverted: true 248 | on_press: 249 | then: 250 | - light.toggle: light_03 251 | 252 | - platform: gpio 253 | name: 'IN_04' 254 | id: in_04 255 | pin: 256 | pcf8574: pcf_inputs_1to14 257 | number: 3 258 | mode: 259 | input: true 260 | inverted: true 261 | on_press: 262 | then: 263 | - light.toggle: light_04 264 | 265 | - platform: gpio 266 | name: 'IN_05' 267 | id: in_05 268 | pin: 269 | pcf8574: pcf_inputs_1to14 270 | number: 4 271 | mode: 272 | input: true 273 | inverted: true 274 | on_press: 275 | then: 276 | - light.toggle: light_05 277 | 278 | - platform: gpio 279 | name: 'IN_06' 280 | id: in_06 281 | pin: 282 | pcf8574: pcf_inputs_1to14 283 | number: 5 284 | mode: 285 | input: true 286 | inverted: true 287 | on_press: 288 | then: 289 | - light.toggle: light_06 290 | 291 | - platform: gpio 292 | name: 'IN_07' 293 | id: in_07 294 | pin: 295 | pcf8574: pcf_inputs_1to14 296 | number: 6 297 | mode: 298 | input: true 299 | inverted: true 300 | on_press: 301 | then: 302 | - light.toggle: light_07 303 | 304 | - platform: gpio 305 | name: 'IN_08' 306 | id: in_08 307 | pin: 308 | pcf8574: pcf_inputs_1to14 309 | number: 8 310 | mode: 311 | input: true 312 | inverted: true 313 | on_press: 314 | then: 315 | - light.toggle: light_08 316 | 317 | - platform: gpio 318 | name: 'IN_09' 319 | id: in_09 320 | pin: 321 | pcf8574: pcf_inputs_1to14 322 | number: 9 323 | mode: 324 | input: true 325 | inverted: true 326 | on_press: 327 | then: 328 | - light.toggle: light_09 329 | 330 | - platform: gpio 331 | name: 'IN_10' 332 | id: in_10 333 | pin: 334 | pcf8574: pcf_inputs_1to14 335 | number: 10 336 | mode: 337 | input: true 338 | inverted: true 339 | on_press: 340 | then: 341 | - light.toggle: light_10 342 | 343 | - platform: gpio 344 | name: 'IN_11' 345 | id: in_11 346 | pin: 347 | pcf8574: pcf_inputs_1to14 348 | number: 11 349 | mode: 350 | input: true 351 | inverted: true 352 | on_press: 353 | then: 354 | - light.toggle: light_11 355 | 356 | - platform: gpio 357 | name: 'IN_12' 358 | id: in_12 359 | pin: 360 | pcf8574: pcf_inputs_1to14 361 | number: 12 362 | mode: 363 | input: true 364 | inverted: true 365 | on_press: 366 | then: 367 | - light.toggle: light_12 368 | 369 | - platform: gpio 370 | name: 'IN_13' 371 | id: in_13 372 | pin: 373 | pcf8574: pcf_inputs_1to14 374 | number: 13 375 | mode: 376 | input: true 377 | inverted: true 378 | on_press: 379 | then: 380 | - light.toggle: light_13 381 | 382 | - platform: gpio 383 | name: 'IN_14' 384 | id: in_14 385 | pin: 386 | pcf8574: pcf_inputs_1to14 387 | number: 14 388 | mode: 389 | input: true 390 | inverted: true 391 | on_press: 392 | then: 393 | - light.toggle: light_14 394 | 395 | - platform: gpio 396 | name: 'IN_15' 397 | id: in_15 398 | pin: 399 | pcf8574: pcf_inputs_15to28 400 | number: 6 401 | mode: 402 | input: true 403 | inverted: true 404 | on_press: 405 | then: 406 | - light.toggle: light_15 407 | 408 | - platform: gpio 409 | name: 'IN_16' 410 | id: in_16 411 | pin: 412 | pcf8574: pcf_inputs_15to28 413 | number: 5 414 | mode: 415 | input: true 416 | inverted: true 417 | on_press: 418 | then: 419 | - light.toggle: light_16 420 | 421 | - platform: gpio 422 | name: 'IN_17' 423 | id: in_17 424 | pin: 425 | pcf8574: pcf_inputs_15to28 426 | number: 4 427 | mode: 428 | input: true 429 | inverted: true 430 | on_press: 431 | then: 432 | - light.toggle: light_17 433 | 434 | - platform: gpio 435 | name: 'IN_18' 436 | id: in_18 437 | pin: 438 | pcf8574: pcf_inputs_15to28 439 | number: 3 440 | mode: 441 | input: true 442 | inverted: true 443 | on_press: 444 | then: 445 | - light.toggle: light_18 446 | 447 | - platform: gpio 448 | name: 'IN_19' 449 | id: in_19 450 | pin: 451 | pcf8574: pcf_inputs_15to28 452 | number: 2 453 | mode: 454 | input: true 455 | inverted: true 456 | on_press: 457 | then: 458 | - light.toggle: light_19 459 | 460 | - platform: gpio 461 | name: 'IN_20' 462 | id: in_20 463 | pin: 464 | pcf8574: pcf_inputs_15to28 465 | number: 1 466 | mode: 467 | input: true 468 | inverted: true 469 | on_press: 470 | then: 471 | - light.toggle: light_20 472 | 473 | - platform: gpio 474 | name: 'IN_21' 475 | id: in_21 476 | pin: 477 | pcf8574: pcf_inputs_15to28 478 | number: 0 479 | mode: 480 | input: true 481 | inverted: true 482 | on_press: 483 | then: 484 | - light.toggle: light_21 485 | 486 | - platform: gpio 487 | name: 'IN_22' 488 | id: in_22 489 | pin: 490 | pcf8574: pcf_inputs_15to28 491 | number: 8 492 | mode: 493 | input: true 494 | inverted: true 495 | on_press: 496 | then: 497 | - light.toggle: light_22 498 | 499 | - platform: gpio 500 | name: 'IN_23' 501 | id: in_23 502 | pin: 503 | pcf8574: pcf_inputs_15to28 504 | number: 9 505 | mode: 506 | input: true 507 | inverted: true 508 | on_press: 509 | then: 510 | - light.toggle: light_23 511 | 512 | - platform: gpio 513 | name: 'IN_24' 514 | id: in_24 515 | pin: 516 | pcf8574: pcf_inputs_15to28 517 | number: 10 518 | mode: 519 | input: true 520 | inverted: true 521 | on_press: 522 | then: 523 | - light.toggle: light_24 524 | 525 | - platform: gpio 526 | name: 'IN_25' 527 | id: in_25 528 | pin: 529 | pcf8574: pcf_inputs_15to28 530 | number: 11 531 | mode: 532 | input: true 533 | inverted: true 534 | on_press: 535 | then: 536 | - light.toggle: light_25 537 | 538 | - platform: gpio 539 | name: 'IN_26' 540 | id: in_26 541 | pin: 542 | pcf8574: pcf_inputs_15to28 543 | number: 12 544 | mode: 545 | input: true 546 | inverted: true 547 | on_press: 548 | then: 549 | - light.toggle: light_26 550 | 551 | - platform: gpio 552 | name: 'IN_27' 553 | id: in_27 554 | pin: 555 | pcf8574: pcf_inputs_15to28 556 | number: 13 557 | mode: 558 | input: true 559 | inverted: true 560 | on_press: 561 | then: 562 | - light.toggle: light_27 563 | 564 | - platform: gpio 565 | name: 'IN_28' 566 | id: in_28 567 | pin: 568 | pcf8574: pcf_inputs_15to28 569 | number: 14 570 | mode: 571 | input: true 572 | inverted: true 573 | on_press: 574 | then: 575 | - light.toggle: light_28 576 | 577 | - platform: gpio 578 | name: 'IN_29' 579 | id: in_29 580 | pin: 581 | pcf8574: pcf_inputs_28to35_menu 582 | number: 0 583 | mode: 584 | input: true 585 | inverted: true 586 | on_press: 587 | then: 588 | - light.toggle: light_29 589 | 590 | - platform: gpio 591 | name: 'IN_30' 592 | id: in_30 593 | pin: 594 | pcf8574: pcf_inputs_28to35_menu 595 | number: 1 596 | mode: 597 | input: true 598 | inverted: true 599 | on_press: 600 | then: 601 | - light.toggle: light_30 602 | 603 | - platform: gpio 604 | name: 'IN_31' 605 | id: in_31 606 | pin: 607 | pcf8574: pcf_inputs_28to35_menu 608 | number: 2 609 | mode: 610 | input: true 611 | inverted: true 612 | on_press: 613 | then: 614 | - light.toggle: light_31 615 | 616 | - platform: gpio 617 | name: 'IN_32' 618 | id: in_32 619 | pin: 620 | pcf8574: pcf_inputs_28to35_menu 621 | number: 3 622 | mode: 623 | input: true 624 | inverted: true 625 | on_press: 626 | then: 627 | - light.toggle: light_32 628 | 629 | - platform: gpio 630 | name: 'IN_33' 631 | pin: 632 | pcf8574: pcf_inputs_28to35_menu 633 | number: 4 634 | mode: 635 | input: true 636 | inverted: true 637 | 638 | - platform: gpio 639 | name: 'IN_34' 640 | pin: 641 | pcf8574: pcf_inputs_28to35_menu 642 | number: 5 643 | mode: 644 | input: true 645 | inverted: true 646 | 647 | - platform: gpio 648 | name: 'IN_35' 649 | pin: 650 | pcf8574: pcf_inputs_28to35_menu 651 | number: 6 652 | mode: 653 | input: true 654 | inverted: true 655 | ###################### 656 | ### MODBUS SECTION ### 657 | ###################### 658 | # UNCOMMENT BELOW TO USE MODBUS 659 | # uart: 660 | # id: uart_pin14_15 661 | # rx_pin: GPIO14 662 | # tx_pin: GPIO15 663 | # baud_rate: 9600 664 | # stop_bits: 1 665 | 666 | # modbus: 667 | # send_wait_time: 200ms 668 | # uart_id: uart_pin14_15 669 | # id: boneio_modbus 670 | 671 | # modbus_controller: 672 | # - id: YOURDEVICE ID 673 | # address: 0x09 674 | # modbus_id: mod_bus 675 | # setup_priority: -10 676 | # update_interval: 60s 677 | --------------------------------------------------------------------------------