diff --git a/boneio-24x16_switches_v0_7.yaml b/boneio-24x16_switches_v0_7.yaml index 4fc4b65..aa78498 100644 --- a/boneio-24x16_switches_v0_7.yaml +++ b/boneio-24x16_switches_v0_7.yaml @@ -30,17 +30,17 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.1.0 + ref: v1.2.0 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', 'devices_v0_7/display.yaml', 'devices_v0_7/i2c.yaml', - 'devices_v0_7/ina219.yaml', - 'devices_v0_7/lm75b.yaml', - 'devices_v0_7/pcf_with_mcp.yaml', + 'devices_v0_7-v0_9/ina219.yaml', + 'devices_v0_7-v0_9/lm75b.yaml', + 'devices_v0_7-v0_9/pcf.yaml', 'boards/24x16_output.yaml', - # 'devices_v0_7/one_wire.yaml', + # 'devices_v0_7-v0_9/one_wire.yaml', ] logger: diff --git a/boneio-32x10_lights_v0_7.yaml b/boneio-32x10_lights_v0_7.yaml index 32e529f..9180a74 100644 --- a/boneio-32x10_lights_v0_7.yaml +++ b/boneio-32x10_lights_v0_7.yaml @@ -30,17 +30,17 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.1.0 + ref: v1.2.0 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', 'devices_v0_7/display.yaml', 'devices_v0_7/i2c.yaml', - 'devices_v0_7/ina219.yaml', - 'devices_v0_7/lm75b.yaml', - 'devices_v0_7/pcf.yaml', + 'devices_v0_7-v0_9/ina219.yaml', + 'devices_v0_7-v0_9/lm75b.yaml', + 'devices_v0_7-v0_9/pcf.yaml', 'boards/32x10_output.yaml', - # 'devices_v0_7/one_wire.yaml', + # 'devices_v0_7-v0_9/one_wire.yaml', ] logger: diff --git a/boneio-32x10_lights_v0_9.yaml b/boneio-32x10_lights_v0_9.yaml new file mode 100644 index 0000000..e5ce1af --- /dev/null +++ b/boneio-32x10_lights_v0_9.yaml @@ -0,0 +1,655 @@ +substitutions: + name: boneio-32-l-09 + friendly_name: 'BoneIO ESP 32x10 Lights' + serial_prefix: 'esp' #Don't change it. + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: true + project: + name: boneio.32x10-lights + version: '0.9' + +esp32: + board: nodemcu-32s + +ethernet: + id: eth + type: LAN8720 + mdc_pin: GPIO23 + mdio_pin: GPIO18 + clk_mode: GPIO17_out + phy_addr: 1 + power_pin: GPIO12 + +dashboard_import: + package_import_url: github://boneIO-eu/esphome/boneio-32x10_lights_v0_9.yaml@latest + import_full_config: true + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.2.0 + files: [ + 'devices/buzzer.yaml', + 'devices/serial_no.yaml', + 'devices_v0_9/display.yaml', + 'devices_v0_9/i2c.yaml', + 'devices_v0_9/ina219.yaml', + 'devices_v0_9/lm75b.yaml', + 'devices_v0_9/pcf.yaml', + 'boards/32x10_output.yaml', + # 'devices_v0_9/one_wire.yaml', + ] + +logger: +api: + reboot_timeout: 0s +ota: + platform: esphome + +web_server: + port: 80 + local: true + +time: + - platform: homeassistant + timezone: Europe/Warsaw + id: homeassistant_time + +light: + - platform: binary + name: 'Light 01' + output: out_01 + id: light_01 + - platform: binary + name: 'Light 02' + output: out_02 + id: light_02 + - platform: binary + name: 'Light 03' + output: out_03 + id: light_03 + - platform: binary + name: 'Light 04' + output: out_04 + id: light_04 + - platform: binary + name: 'Light 05' + output: out_05 + id: light_05 + - platform: binary + name: 'Light 06' + output: out_06 + id: light_06 + - platform: binary + name: 'Light 07' + output: out_07 + id: light_07 + - platform: binary + name: 'Light 08' + output: out_08 + id: light_08 + - platform: binary + name: 'Light 09' + output: out_09 + id: light_09 + - platform: binary + name: 'Light 10' + output: out_10 + id: light_10 + - platform: binary + name: 'Light 11' + output: out_11 + id: light_11 + - platform: binary + name: 'Light 12' + output: out_12 + id: light_12 + - platform: binary + name: 'Light 13' + output: out_13 + id: light_13 + - platform: binary + name: 'Light 14' + output: out_14 + id: light_14 + - platform: binary + name: 'Light 15' + output: out_15 + id: light_15 + - platform: binary + name: 'Light 16' + output: out_16 + id: light_16 + - platform: binary + name: 'Light 17' + output: out_17 + id: light_17 + - platform: binary + name: 'Light 18' + output: out_18 + id: light_18 + - platform: binary + name: 'Light 19' + output: out_19 + id: light_19 + - platform: binary + name: 'Light 20' + output: out_20 + id: light_20 + - platform: binary + name: 'Light 21' + output: out_21 + id: light_21 + - platform: binary + name: 'Light 22' + output: out_22 + id: light_22 + - platform: binary + name: 'Light 23' + output: out_23 + id: light_23 + - platform: binary + name: 'Light 24' + output: out_24 + id: light_24 + - platform: binary + name: 'Light 25' + output: out_25 + id: light_25 + - platform: binary + name: 'Light 26' + output: out_26 + id: light_26 + - platform: binary + name: 'Light 27' + output: out_27 + id: light_27 + - platform: binary + name: 'Light 28' + output: out_28 + id: light_28 + - platform: binary + name: 'Light 29' + output: out_29 + id: light_29 + - platform: binary + name: 'Light 30' + output: out_30 + id: light_30 + - platform: binary + name: 'Light 31' + output: out_31 + id: light_31 + - platform: binary + name: 'Light 32' + output: out_32 + id: light_32 + +binary_sensor: + - platform: gpio + name: 'IN_01' + id: in_01 + pin: + pcf8574: pcf_inputs_1to14 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_01 + + - platform: gpio + name: 'IN_02' + id: in_02 + pin: + pcf8574: pcf_inputs_1to14 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_02 + + - platform: gpio + name: 'IN_03' + id: in_03 + pin: + pcf8574: pcf_inputs_1to14 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_03 + + - platform: gpio + name: 'IN_04' + id: in_04 + pin: + pcf8574: pcf_inputs_1to14 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_04 + + - platform: gpio + name: 'IN_05' + id: in_05 + pin: + pcf8574: pcf_inputs_1to14 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_05 + + - platform: gpio + name: 'IN_06' + id: in_06 + pin: + pcf8574: pcf_inputs_1to14 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_06 + + - platform: gpio + name: 'IN_07' + id: in_07 + pin: + pcf8574: pcf_inputs_1to14 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_07 + + - platform: gpio + name: 'IN_08' + id: in_08 + pin: + pcf8574: pcf_inputs_1to14 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_08 + + - platform: gpio + name: 'IN_09' + id: in_09 + pin: + pcf8574: pcf_inputs_1to14 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_09 + + - platform: gpio + name: 'IN_10' + id: in_10 + pin: + pcf8574: pcf_inputs_1to14 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_10 + + - platform: gpio + name: 'IN_11' + id: in_11 + pin: + pcf8574: pcf_inputs_1to14 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_11 + + - platform: gpio + name: 'IN_12' + id: in_12 + pin: + pcf8574: pcf_inputs_1to14 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_12 + + - platform: gpio + name: 'IN_13' + id: in_13 + pin: + pcf8574: pcf_inputs_1to14 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_13 + + - platform: gpio + name: 'IN_14' + id: in_14 + pin: + pcf8574: pcf_inputs_1to14 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_14 + + - platform: gpio + name: 'IN_15' + id: in_15 + pin: + pcf8574: pcf_inputs_15to28 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_15 + + - platform: gpio + name: 'IN_16' + id: in_16 + pin: + pcf8574: pcf_inputs_15to28 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_16 + + - platform: gpio + name: 'IN_17' + id: in_17 + pin: + pcf8574: pcf_inputs_15to28 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_17 + + - platform: gpio + name: 'IN_18' + id: in_18 + pin: + pcf8574: pcf_inputs_15to28 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_18 + + - platform: gpio + name: 'IN_19' + id: in_19 + pin: + pcf8574: pcf_inputs_15to28 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_19 + + - platform: gpio + name: 'IN_20' + id: in_20 + pin: + pcf8574: pcf_inputs_15to28 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_20 + + - platform: gpio + name: 'IN_21' + id: in_21 + pin: + pcf8574: pcf_inputs_15to28 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_21 + + - platform: gpio + name: 'IN_22' + id: in_22 + pin: + pcf8574: pcf_inputs_15to28 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_22 + + - platform: gpio + name: 'IN_23' + id: in_23 + pin: + pcf8574: pcf_inputs_15to28 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_23 + + - platform: gpio + name: 'IN_24' + id: in_24 + pin: + pcf8574: pcf_inputs_15to28 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_24 + + - platform: gpio + name: 'IN_25' + id: in_25 + pin: + pcf8574: pcf_inputs_15to28 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_25 + + - platform: gpio + name: 'IN_26' + id: in_26 + pin: + pcf8574: pcf_inputs_15to28 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_26 + + - platform: gpio + name: 'IN_27' + id: in_27 + pin: + pcf8574: pcf_inputs_15to28 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_27 + + - platform: gpio + name: 'IN_28' + id: in_28 + pin: + pcf8574: pcf_inputs_15to28 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_28 + + - platform: gpio + name: 'IN_29' + id: in_29 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_29 + + - platform: gpio + name: 'IN_30' + id: in_30 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_30 + + - platform: gpio + name: 'IN_31' + id: in_31 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_31 + + - platform: gpio + name: 'IN_32' + id: in_32 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_32 + + - platform: gpio + name: 'IN_33' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_34' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_35' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 6 + mode: + input: true + inverted: true +###################### +### MODBUS SECTION ### +###################### +# UNCOMMENT BELOW TO USE MODBUS +# uart: +# id: uart_pin14_15 +# rx_pin: GPIO14 +# tx_pin: GPIO15 +# baud_rate: 9600 +# stop_bits: 1 + +# modbus: +# send_wait_time: 200ms +# uart_id: uart_pin14_15 +# id: boneio_modbus + +# modbus_controller: +# - id: YOURDEVICE ID +# address: 0x09 +# modbus_id: mod_bus +# setup_priority: -10 +# update_interval: 60s diff --git a/boneio-32x10_switches_v0_7.yaml b/boneio-32x10_switches_v0_7.yaml index 74051e1..eec5c2c 100644 --- a/boneio-32x10_switches_v0_7.yaml +++ b/boneio-32x10_switches_v0_7.yaml @@ -36,11 +36,11 @@ packages: 'devices/serial_no.yaml', 'devices_v0_7/display.yaml', 'devices_v0_7/i2c.yaml', - 'devices_v0_7/ina219.yaml', - 'devices_v0_7/lm75b.yaml', - 'devices_v0_7/pcf.yaml', + 'devices_v0_7-v0_9/ina219.yaml', + 'devices_v0_7-v0_9/lm75b.yaml', + 'devices_v0_7-v0_9/pcf.yaml', 'boards/32x10_output.yaml', - # 'devices_v0_7/one_wire.yaml', + # 'devices_v0_7-v0_9/one_wire.yaml', ] logger: diff --git a/boneio-8x10A_v0_1.yaml b/boneio-8x10A_v0_1.yaml new file mode 100644 index 0000000..bff404b --- /dev/null +++ b/boneio-8x10A_v0_1.yaml @@ -0,0 +1,192 @@ +substitutions: + name: boneio-8-s-01 + friendly_name: 'BoneIO ESP 8x10A Switches' + serial_prefix: 'espm' #Don't change it. + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: true + project: + name: boneio.8_10-switches + version: '0.1' + +esp32: + board: esp32dev + +ethernet: + id: eth + type: LAN8720 + mdc_pin: GPIO23 + mdio_pin: GPIO18 + clk_mode: GPIO0_IN + phy_addr: 1 + power_pin: GPIO16 + +# dashboard_import: +# package_import_url: github://boneIO-eu/esphome/boneio-mosfet48_lights_v0_7.yaml@latest +# import_full_config: true + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.1.0 + files: + [ + 'devices/buzzer.yaml', + 'devices/serial_no.yaml', + 'devices/dimmer_i2c.yaml', + 'devices_v0_7/lm75b.yaml', + ] + +logger: +api: + reboot_timeout: 0s +ota: + platform: esphome + +web_server: + port: 80 + local: true + +time: + - platform: homeassistant + timezone: Europe/Warsaw + id: homeassistant_time + +mcp23017: + - id: 'mcp1' + address: 0x20 + +# Individual outputs +switch: + - platform: gpio + name: 'OUT 1' + pin: + mcp23xxx: mcp1 + number: 8 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 2' + pin: + mcp23xxx: mcp1 + number: 9 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 3' + pin: + mcp23xxx: mcp1 + number: 10 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 4' + pin: + mcp23xxx: mcp1 + number: 11 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 5' + pin: + mcp23xxx: mcp1 + number: 12 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 6' + pin: + mcp23xxx: mcp1 + number: 13 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 7' + pin: + mcp23xxx: mcp1 + number: 14 + mode: + output: true + inverted: false + - platform: gpio + name: 'OUT 8' + pin: + mcp23xxx: mcp1 + number: 15 + mode: + output: true + inverted: false + +binary_sensor: + - platform: gpio + name: 'IN 01' + pin: + mcp23xxx: mcp1 + number: 0 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 02' + pin: + mcp23xxx: mcp1 + number: 1 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 03' + pin: + mcp23xxx: mcp1 + number: 2 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 04' + pin: + mcp23xxx: mcp1 + number: 3 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 05' + pin: + mcp23xxx: mcp1 + number: 4 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 06' + pin: + mcp23xxx: mcp1 + number: 5 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 07' + pin: + mcp23xxx: mcp1 + number: 6 + mode: + input: true + inverted: false + - platform: gpio + name: 'IN 08' + pin: + mcp23xxx: mcp1 + number: 7 + mode: + input: true + inverted: false diff --git a/boneio-cover_mix_lights_v0_7.yaml b/boneio-cover_mix_lights_v0_7.yaml index 520c7f5..3c1e012 100644 --- a/boneio-cover_mix_lights_v0_7.yaml +++ b/boneio-cover_mix_lights_v0_7.yaml @@ -30,17 +30,18 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.1.0 + ref: v1.2.0 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', 'devices_v0_7/display.yaml', 'devices_v0_7/i2c.yaml', - 'devices_v0_7/ina219.yaml', - 'devices_v0_7/lm75b.yaml', - 'devices_v0_7/pcf.yaml', + 'devices_v0_7-v0_9/ina219.yaml', + 'devices_v0_7-v0_9/lm75b.yaml', + 'devices_v0_7-v0_9/pcf.yaml', + 'boards/32x10_output.yaml', 'boards/8_covers_16_output.yaml', - # 'devices_v0_7/one_wire.yaml', + # 'devices_v0_7-v0_9/one_wire.yaml', ] logger: diff --git a/boneio-cover_mix_switches_v0_7.yaml b/boneio-cover_mix_switches_v0_7.yaml index 8fc214d..7d32da2 100644 --- a/boneio-cover_mix_switches_v0_7.yaml +++ b/boneio-cover_mix_switches_v0_7.yaml @@ -30,17 +30,17 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.1.0 + ref: v1.2.0 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', 'devices_v0_7/display.yaml', 'devices_v0_7/i2c.yaml', - 'devices_v0_7/ina219.yaml', - 'devices_v0_7/lm75b.yaml', - 'devices_v0_7/pcf.yaml', + 'devices_v0_7-v0_9/ina219.yaml', + 'devices_v0_7-v0_9/lm75b.yaml', + 'devices_v0_7-v0_9/pcf.yaml', 'boards/8_covers_16_output.yaml', - # 'devices_v0_7/one_wire.yaml', + # 'devices_v0_7-v0_9/one_wire.yaml', ] logger: diff --git a/boneio-cover_v0_7.yaml b/boneio-cover_v0_7.yaml index 7dcf516..163bb56 100644 --- a/boneio-cover_v0_7.yaml +++ b/boneio-cover_v0_7.yaml @@ -30,17 +30,17 @@ dashboard_import: packages: internals_packages: url: https://github.com/boneIO-eu/esphome - ref: v1.1.0 + ref: v1.2.0 files: [ 'devices/buzzer.yaml', 'devices/serial_no.yaml', 'devices_v0_7/display.yaml', 'devices_v0_7/i2c.yaml', - 'devices_v0_7/ina219.yaml', - 'devices_v0_7/lm75b.yaml', - 'devices_v0_7/pcf.yaml', + 'devices_v0_7-v0_9/ina219.yaml', + 'devices_v0_7-v0_9/lm75b.yaml', + 'devices_v0_7-v0_9/pcf.yaml', 'boards/16_cover_pcf.yaml', - # 'devices_v0_7/one_wire.yaml', + # 'devices_v0_7-v0_9/one_wire.yaml', ] logger: diff --git a/boneio-ssr8x2A_v0_1.yaml b/boneio-ssr8x2A_v0_1.yaml new file mode 100644 index 0000000..c65f92a --- /dev/null +++ b/boneio-ssr8x2A_v0_1.yaml @@ -0,0 +1,719 @@ +substitutions: + name: boneio-8_2-s- + friendly_name: 'BoneIO ESP Mosfet 48 Lights' + serial_prefix: 'esp' #Don't change it. + +esphome: + name: '${name}' + friendly_name: '${friendly_name}' + name_add_mac_suffix: true + project: + name: boneio.mosfet48-lights + version: '0.7' + +esp32: + board: nodemcu-32s + +ethernet: + id: eth + type: LAN8720 + mdc_pin: GPIO23 + mdio_pin: GPIO18 + clk_mode: GPIO0_IN + phy_addr: 1 + power_pin: GPIO16 + +dashboard_import: + package_import_url: github://boneIO-eu/esphome/boneio-mosfet48_lights_v0_7.yaml@latest + import_full_config: true + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: v1.1.0 + files: [ + 'devices/buzzer.yaml', + 'devices/serial_no.yaml', + 'devices_v0_7/display.yaml', + 'devices_v0_7/i2c.yaml', + 'devices_v0_7/ina219.yaml', + 'devices_v0_7/lm75b.yaml', + 'devices_v0_7/pcf_mosfet.yaml', + 'boards/mosfet48_output.yaml', + # 'devices_v0_7/one_wire.yaml', + ] + +logger: +api: + reboot_timeout: 0s +ota: + platform: esphome + +web_server: + port: 80 + local: true + +time: + - platform: homeassistant + timezone: Europe/Warsaw + id: homeassistant_time + +light: + - platform: binary + name: 'Light 01' + output: out_01 + id: light_01 + - platform: binary + name: 'Light 02' + output: out_02 + id: light_02 + - platform: binary + name: 'Light 03' + output: out_03 + id: light_03 + - platform: binary + name: 'Light 04' + output: out_04 + id: light_04 + - platform: binary + name: 'Light 05' + output: out_05 + id: light_05 + - platform: binary + name: 'Light 06' + output: out_06 + id: light_06 + - platform: binary + name: 'Light 07' + output: out_07 + id: light_07 + - platform: binary + name: 'Light 08' + output: out_08 + id: light_08 + - platform: binary + name: 'Light 09' + output: out_09 + id: light_09 + - platform: binary + name: 'Light 10' + output: out_10 + id: light_10 + - platform: binary + name: 'Light 11' + output: out_11 + id: light_11 + - platform: binary + name: 'Light 12' + output: out_12 + id: light_12 + - platform: binary + name: 'Light 13' + output: out_13 + id: light_13 + - platform: binary + name: 'Light 14' + output: out_14 + id: light_14 + - platform: binary + name: 'Light 15' + output: out_15 + id: light_15 + - platform: binary + name: 'Light 16' + output: out_16 + id: light_16 + - platform: binary + name: 'Light 17' + output: out_17 + id: light_17 + - platform: binary + name: 'Light 18' + output: out_18 + id: light_18 + - platform: binary + name: 'Light 19' + output: out_19 + id: light_19 + - platform: binary + name: 'Light 20' + output: out_20 + id: light_20 + - platform: binary + name: 'Light 21' + output: out_21 + id: light_21 + - platform: binary + name: 'Light 22' + output: out_22 + id: light_22 + - platform: binary + name: 'Light 23' + output: out_23 + id: light_23 + - platform: binary + name: 'Light 24' + output: out_24 + id: light_24 + - platform: binary + name: 'Light 25' + output: out_25 + id: light_25 + - platform: binary + name: 'Light 26' + output: out_26 + id: light_26 + - platform: binary + name: 'Light 27' + output: out_27 + id: light_27 + - platform: binary + name: 'Light 28' + output: out_28 + id: light_28 + - platform: binary + name: 'Light 29' + output: out_29 + id: light_29 + - platform: binary + name: 'Light 30' + output: out_30 + id: light_30 + - platform: binary + name: 'Light 31' + output: out_31 + id: light_31 + - platform: binary + name: 'Light 32' + output: out_32 + id: light_32 + - platform: binary + name: 'Light 33' + output: out_33 + id: light_33 + - platform: binary + name: 'Light 34' + output: out_34 + id: light_34 + - platform: binary + name: 'Light 35' + output: out_35 + id: light_35 + - platform: binary + name: 'Light 36' + output: out_36 + id: light_36 + - platform: binary + name: 'Light 37' + output: out_37 + id: light_37 + - platform: binary + name: 'Light 38' + output: out_38 + id: light_38 + - platform: binary + name: 'Light 39' + output: out_39 + id: light_39 + - platform: binary + name: 'Light 40' + output: out_40 + id: light_40 + - platform: binary + name: 'Light 41' + output: out_41 + id: light_41 + - platform: binary + name: 'Light 42' + output: out_42 + id: light_42 + - platform: binary + name: 'Light 43' + output: out_43 + id: light_43 + - platform: binary + name: 'Light 44' + output: out_44 + id: light_44 + - platform: binary + name: 'Light 45' + output: out_45 + id: light_45 + - platform: binary + name: 'Light 46' + output: out_46 + id: light_46 + - platform: binary + name: 'Light 47' + output: out_47 + id: light_47 + - platform: binary + name: 'Light 48' + output: out_48 + id: light_48 + +binary_sensor: + - platform: gpio + name: 'IN_01' + id: in_01 + pin: + pcf8574: pcf_inputs_1to14 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_01 + + - platform: gpio + name: 'IN_02' + id: in_02 + pin: + pcf8574: pcf_inputs_1to14 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_02 + + - platform: gpio + name: 'IN_03' + id: in_03 + pin: + pcf8574: pcf_inputs_1to14 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_03 + + - platform: gpio + name: 'IN_04' + id: in_04 + pin: + pcf8574: pcf_inputs_1to14 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_04 + + - platform: gpio + name: 'IN_05' + id: in_05 + pin: + pcf8574: pcf_inputs_1to14 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_05 + + - platform: gpio + name: 'IN_06' + id: in_06 + pin: + pcf8574: pcf_inputs_1to14 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_06 + + - platform: gpio + name: 'IN_07' + id: in_07 + pin: + pcf8574: pcf_inputs_1to14 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_07 + + - platform: gpio + name: 'IN_08' + id: in_08 + pin: + pcf8574: pcf_inputs_1to14 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_08 + + - platform: gpio + name: 'IN_09' + id: in_09 + pin: + pcf8574: pcf_inputs_1to14 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_09 + + - platform: gpio + name: 'IN_10' + id: in_10 + pin: + pcf8574: pcf_inputs_1to14 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_10 + + - platform: gpio + name: 'IN_11' + id: in_11 + pin: + pcf8574: pcf_inputs_1to14 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_11 + + - platform: gpio + name: 'IN_12' + id: in_12 + pin: + pcf8574: pcf_inputs_1to14 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_12 + + - platform: gpio + name: 'IN_13' + id: in_13 + pin: + pcf8574: pcf_inputs_1to14 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_13 + + - platform: gpio + name: 'IN_14' + id: in_14 + pin: + pcf8574: pcf_inputs_1to14 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_14 + + - platform: gpio + name: 'IN_15' + id: in_15 + pin: + pcf8574: pcf_inputs_15to28 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_15 + + - platform: gpio + name: 'IN_16' + id: in_16 + pin: + pcf8574: pcf_inputs_15to28 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_16 + + - platform: gpio + name: 'IN_17' + id: in_17 + pin: + pcf8574: pcf_inputs_15to28 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_17 + + - platform: gpio + name: 'IN_18' + id: in_18 + pin: + pcf8574: pcf_inputs_15to28 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_18 + + - platform: gpio + name: 'IN_19' + id: in_19 + pin: + pcf8574: pcf_inputs_15to28 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_19 + + - platform: gpio + name: 'IN_20' + id: in_20 + pin: + pcf8574: pcf_inputs_15to28 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_20 + + - platform: gpio + name: 'IN_21' + id: in_21 + pin: + pcf8574: pcf_inputs_15to28 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_21 + + - platform: gpio + name: 'IN_22' + id: in_22 + pin: + pcf8574: pcf_inputs_15to28 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_22 + + - platform: gpio + name: 'IN_23' + id: in_23 + pin: + pcf8574: pcf_inputs_15to28 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_23 + + - platform: gpio + name: 'IN_24' + id: in_24 + pin: + pcf8574: pcf_inputs_15to28 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_24 + + - platform: gpio + name: 'IN_25' + id: in_25 + pin: + pcf8574: pcf_inputs_15to28 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_25 + + - platform: gpio + name: 'IN_26' + id: in_26 + pin: + pcf8574: pcf_inputs_15to28 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_26 + + - platform: gpio + name: 'IN_27' + id: in_27 + pin: + pcf8574: pcf_inputs_15to28 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_27 + + - platform: gpio + name: 'IN_28' + id: in_28 + pin: + pcf8574: pcf_inputs_15to28 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_28 + + - platform: gpio + name: 'IN_29' + id: in_29 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_29 + + - platform: gpio + name: 'IN_30' + id: in_30 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_30 + + - platform: gpio + name: 'IN_31' + id: in_31 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_31 + + - platform: gpio + name: 'IN_32' + id: in_32 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - light.toggle: light_32 + + - platform: gpio + name: 'IN_33' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_34' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: 'IN_35' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 6 + mode: + input: true + inverted: true +###################### +### MODBUS SECTION ### +###################### +# UNCOMMENT BELOW TO USE MODBUS +# uart: +# id: uart_pin14_15 +# rx_pin: GPIO14 +# tx_pin: GPIO15 +# baud_rate: 9600 +# stop_bits: 1 + +# modbus: +# send_wait_time: 200ms +# uart_id: uart_pin14_15 +# id: boneio_modbus + +# modbus_controller: +# - id: YOURDEVICE ID +# address: 0x09 +# modbus_id: mod_bus +# setup_priority: -10 +# update_interval: 60s diff --git a/create_firmware.py b/create_firmware.py index 9960fe9..7c25fcf 100644 --- a/create_firmware.py +++ b/create_firmware.py @@ -55,7 +55,7 @@ for file in glob.glob("*.yaml"): if not filename: print("No file found.") break - firmware_path = f"{cwd}/.esphome/build/{filename}/.pioenvs/{filename}/firmware-factory.bin" + firmware_path = f"{cwd}/.esphome/build/{filename}/.pioenvs/{filename}/firmware.factory.bin" print("CWD", cwd) subprocess.run( f'docker run --rm -p 6052:6052 -v "{cwd}":/config -it ghcr.io/esphome/esphome compile {file}', diff --git a/devices_v0_7/ina219.yaml b/devices_v0_7-v0_9/ina219.yaml similarity index 100% rename from devices_v0_7/ina219.yaml rename to devices_v0_7-v0_9/ina219.yaml diff --git a/devices_v0_7/lm75b.yaml b/devices_v0_7-v0_9/lm75b.yaml similarity index 100% rename from devices_v0_7/lm75b.yaml rename to devices_v0_7-v0_9/lm75b.yaml diff --git a/devices_v0_7/one_wire.yaml b/devices_v0_7-v0_9/one_wire.yaml similarity index 85% rename from devices_v0_7/one_wire.yaml rename to devices_v0_7-v0_9/one_wire.yaml index 538b634..38b0c23 100644 --- a/devices_v0_7/one_wire.yaml +++ b/devices_v0_7-v0_9/one_wire.yaml @@ -1,5 +1,6 @@ -dallas: - - pin: GPIO32 +one_wire: + - platform: gpio + pin: GPIO32 # sensor: # - platform: dallas # address: 0x283c01d607d4df28 diff --git a/devices_v0_7/pcf.yaml b/devices_v0_7-v0_9/pcf.yaml similarity index 100% rename from devices_v0_7/pcf.yaml rename to devices_v0_7-v0_9/pcf.yaml diff --git a/devices_v0_7/pcf_mosfet.yaml b/devices_v0_7-v0_9/pcf_mosfet.yaml similarity index 100% rename from devices_v0_7/pcf_mosfet.yaml rename to devices_v0_7-v0_9/pcf_mosfet.yaml diff --git a/devices_v0_7/pcf_with_mcp.yaml b/devices_v0_7-v0_9/pcf_with_mcp.yaml similarity index 100% rename from devices_v0_7/pcf_with_mcp.yaml rename to devices_v0_7-v0_9/pcf_with_mcp.yaml diff --git a/devices_v0_9/display.yaml b/devices_v0_9/display.yaml new file mode 100644 index 0000000..d99ed11 --- /dev/null +++ b/devices_v0_9/display.yaml @@ -0,0 +1,129 @@ +#i2c address: 0x3C input oled +sensor: + - platform: uptime + id: wt32_uptime_seconds + update_interval: 60s + entity_category: diagnostic + on_raw_value: + then: + - text_sensor.template.publish: + id: wt32_uptime + state: !lambda |- + int seconds = round(id(wt32_uptime_seconds).raw_state); + int days = seconds / (24 * 3600); + seconds = seconds % (24 * 3600); + int hours = seconds / 3600; + seconds = seconds % 3600; + int minutes = seconds / 60; + return ( + (days ? to_string(days) + "d " : "") + + (hours ? to_string(hours) + "h " : "") + + (to_string(minutes) + "m") + ).c_str(); + +text_sensor: + - platform: template + name: Uptime + id: wt32_uptime + entity_category: diagnostic + icon: mdi:clock-start + - platform: template + name: 'IP Address' + id: ip_address + entity_category: diagnostic + icon: 'mdi:ip-network' + lambda: |- + return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str(); + update_interval: 60s + +script: + - id: screensaver_script + # screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked + mode: restart + then: + # set the time after which the screensaver will be activated + - delay: 30s + - display.page.show: screensaver + - component.update: oled_display + +esphome: + on_boot: + priority: 0 + then: + - display.page.show: first_page + - component.update: ip_address + - component.update: oled_display + - script.execute: screensaver_script + +binary_sensor: + - platform: gpio + entity_category: config + id: boneIO_button + pin: + number: GPIO34 + mode: + input: true + inverted: true + on_press: + then: + # woke up when on the screensaver, as well do not include the logo page and screensaver in a loop when pushing a button + - if: + condition: + # on the last page go to the first page skipping the screensaver and logo page + display.is_displaying_page: last_page + then: + - display.page.show: first_page + - component.update: oled_display + else: + - if: + condition: + # on the screensaver, show the logo for a while and display the first page + display.is_displaying_page: screensaver + then: + - display.page.show: first_page + - component.update: oled_display + else: + # not the last page and screensaver go to the next page + - display.page.show_next: oled_display + - component.update: oled_display + # restart screensaver script + - script.execute: screensaver_script + +display: + - platform: ssd1306_i2c + id: oled_display + model: 'SH1106 128x64' + address: 0x3C + contrast: 0.5 + pages: + - id: first_page + lambda: |- + it.rectangle(0, 0, 126, 15); + it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); + it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:"); + it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str()); + it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:"); + it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); + it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:"); + it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state); + # additional pages should be defined between the first and last page + - id: last_page + lambda: |- + it.rectangle(0, 0, 126, 15); + it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "bone IO"); + it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:"); + it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); + it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:"); + it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); + it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:"); + it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); + it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); + it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); + - id: screensaver + lambda: |- + it.fill(COLOR_OFF); + +font: + - file: 'gfonts://Ubuntu' + id: size_10 + size: 10 diff --git a/devices_v0_9/i2c.yaml b/devices_v0_9/i2c.yaml new file mode 100644 index 0000000..b4ba75d --- /dev/null +++ b/devices_v0_9/i2c.yaml @@ -0,0 +1,6 @@ +i2c: + - id: i2c_bus + sda: GPIO16 + scl: GPIO33 + scan: True + frequency: 400kHz