diff --git a/boards_v_0_7/32x10_outputs.yaml b/boards_v_0_7/32x10_outputs.yaml new file mode 100644 index 0000000..b860486 --- /dev/null +++ b/boards_v_0_7/32x10_outputs.yaml @@ -0,0 +1,287 @@ +output: + - platform: gpio + id: out_1 + pin: + pcf8574: pcf_left + number: 15 + mode: + output: true + inverted: true + - platform: gpio + id: out_2 + pin: + pcf8574: pcf_left + number: 14 + mode: + output: true + inverted: true + + - platform: gpio + id: out_3 + pin: + pcf8574: pcf_left + number: 13 + mode: + output: true + inverted: true + + - platform: gpio + id: out_4 + pin: + pcf8574: pcf_left + number: 12 + mode: + output: true + inverted: true + + - platform: gpio + id: out_5 + pin: + pcf8574: pcf_left + number: 11 + mode: + output: true + inverted: true + + - platform: gpio + id: out_6 + pin: + pcf8574: pcf_left + number: 10 + mode: + output: true + inverted: true + + - platform: gpio + id: out_7 + pin: + pcf8574: pcf_left + number: 9 + mode: + output: true + inverted: true + + - platform: gpio + id: out_8 + pin: + pcf8574: pcf_left + number: 8 + mode: + output: true + inverted: true + + - platform: gpio + id: out_9 + pin: + pcf8574: pcf_right + number: 15 + mode: + output: true + inverted: true + + - platform: gpio + id: out_10 + pin: + pcf8574: pcf_right + number: 14 + mode: + output: true + inverted: true + + - platform: gpio + id: out_11 + pin: + pcf8574: pcf_right + number: 13 + mode: + output: true + inverted: true + + - platform: gpio + id: out_12 + pin: + pcf8574: pcf_right + number: 12 + mode: + output: true + inverted: true + + - platform: gpio + id: out_13 + pin: + pcf8574: pcf_right + number: 11 + mode: + output: true + inverted: true + + - platform: gpio + id: out_14 + pin: + pcf8574: pcf_right + number: 10 + mode: + output: true + inverted: true + + - platform: gpio + id: out_15 + pin: + pcf8574: pcf_right + number: 9 + mode: + output: true + inverted: true + + - platform: gpio + id: out_16 + pin: + pcf8574: pcf_right + number: 8 + mode: + output: true + inverted: true + + - platform: gpio + id: out_17 + pin: + pcf8574: pcf_left + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: out_18 + pin: + pcf8574: pcf_left + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: out_19 + pin: + pcf8574: pcf_left + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: out_20 + pin: + pcf8574: pcf_left + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: out_21 + pin: + pcf8574: pcf_left + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: out_22 + pin: + pcf8574: pcf_left + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: out_23 + pin: + pcf8574: pcf_left + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: out_24 + pin: + pcf8574: pcf_left + number: 7 + mode: + output: true + inverted: true + + - platform: gpio + id: out_25 + pin: + pcf8574: pcf_right + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: out_26 + pin: + pcf8574: pcf_right + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: out_27 + pin: + pcf8574: pcf_right + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: out_28 + pin: + pcf8574: pcf_right + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: out_29 + pin: + pcf8574: pcf_right + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: out_30 + pin: + pcf8574: pcf_right + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: out_31 + pin: + pcf8574: pcf_right + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: out_32 + pin: + pcf8574: pcf_right + number: 7 + mode: + output: true + inverted: true diff --git a/boards_v_0_7/cover.yaml b/boards_v_0_7/cover.yaml new file mode 100644 index 0000000..389e3e7 --- /dev/null +++ b/boards_v_0_7/cover.yaml @@ -0,0 +1,256 @@ +cover: +- platform: time_based + name: "${node_name} Cover 01" + device_class: shutter + id: cover_01 + open_action: + - switch.turn_off: cover_close_01 + - switch.turn_on: cover_open_01 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_01 + - switch.turn_on: cover_close_01 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_01 + - switch.turn_off: cover_close_01 + +- platform: time_based + name: "${node_name} Cover 02" + device_class: shutter + id: cover_02 + open_action: + - switch.turn_off: cover_close_02 + - switch.turn_on: cover_open_02 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_02 + - switch.turn_on: cover_close_02 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_02 + - switch.turn_off: cover_close_02 + +- platform: time_based + name: "${node_name} Cover 03" + device_class: shutter + id: cover_03 + open_action: + - switch.turn_off: cover_close_03 + - switch.turn_on: cover_open_03 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_03 + - switch.turn_on: cover_close_03 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_03 + - switch.turn_off: cover_close_03 + +- platform: time_based + name: "${node_name} Cover 04" + device_class: shutter + id: cover_04 + open_action: + - switch.turn_off: cover_close_04 + - switch.turn_on: cover_open_04 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_04 + - switch.turn_on: cover_close_04 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_04 + - switch.turn_off: cover_close_04 + +- platform: time_based + name: "${node_name} Cover 05" + device_class: shutter + id: cover_05 + open_action: + - switch.turn_off: cover_close_05 + - switch.turn_on: cover_open_05 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_05 + - switch.turn_on: cover_close_05 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_05 + - switch.turn_off: cover_close_05 + +- platform: time_based + name: "${node_name} Cover 06" + device_class: shutter + id: cover_06 + open_action: + - switch.turn_off: cover_close_06 + - switch.turn_on: cover_open_06 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_06 + - switch.turn_on: cover_close_06 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_06 + - switch.turn_off: cover_close_06 + +- platform: time_based + name: "${node_name} Cover 07" + device_class: shutter + id: cover_07 + open_action: + - switch.turn_off: cover_close_07 + - switch.turn_on: cover_open_07 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_07 + - switch.turn_on: cover_close_07 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_07 + - switch.turn_off: cover_close_07 + +- platform: time_based + name: "${node_name} Cover 08" + device_class: shutter + id: cover_08 + open_action: + - switch.turn_off: cover_close_08 + - switch.turn_on: cover_open_08 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_08 + - switch.turn_on: cover_close_08 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_08 + - switch.turn_off: cover_close_08 + +- platform: time_based + name: "${node_name} Cover 09" + device_class: shutter + id: cover_09 + open_action: + - switch.turn_off: cover_close_09 + - switch.turn_on: cover_open_09 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_09 + - switch.turn_on: cover_close_09 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_09 + - switch.turn_off: cover_close_09 + +- platform: time_based + name: "${node_name} Cover 10" + device_class: shutter + id: cover_10 + open_action: + - switch.turn_off: cover_close_10 + - switch.turn_on: cover_open_10 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_10 + - switch.turn_on: cover_close_10 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_10 + - switch.turn_off: cover_close_10 + +- platform: time_based + name: "${node_name} Cover 11" + device_class: shutter + id: cover_11 + open_action: + - switch.turn_off: cover_close_11 + - switch.turn_on: cover_open_11 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_11 + - switch.turn_on: cover_close_11 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_11 + - switch.turn_off: cover_close_11 + +- platform: time_based + name: "${node_name} Cover 12" + device_class: shutter + id: cover_12 + open_action: + - switch.turn_off: cover_close_12 + - switch.turn_on: cover_open_12 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_12 + - switch.turn_on: cover_close_12 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_12 + - switch.turn_off: cover_close_12 + +- platform: time_based + name: "${node_name} Cover 13" + device_class: shutter + id: cover_13 + open_action: + - switch.turn_off: cover_close_13 + - switch.turn_on: cover_open_13 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_13 + - switch.turn_on: cover_close_13 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_13 + - switch.turn_off: cover_close_13 + +- platform: time_based + name: "${node_name} Cover 14" + device_class: shutter + id: cover_14 + open_action: + - switch.turn_off: cover_close_14 + - switch.turn_on: cover_open_14 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_14 + - switch.turn_on: cover_close_14 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_14 + - switch.turn_off: cover_close_14 + +- platform: time_based + name: "${node_name} Cover 15" + device_class: shutter + id: cover_15 + open_action: + - switch.turn_off: cover_close_15 + - switch.turn_on: cover_open_15 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_15 + - switch.turn_on: cover_close_15 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_15 + - switch.turn_off: cover_close_15 + +- platform: time_based + name: "${node_name} Cover 16" + device_class: shutter + id: cover_16 + open_action: + - switch.turn_off: cover_close_16 + - switch.turn_on: cover_open_16 + open_duration: 60s + close_action: + - switch.turn_off: cover_open_16 + - switch.turn_on: cover_close_16 + close_duration: 60s + stop_action: + - switch.turn_off: cover_open_16 + - switch.turn_off: cover_close_16 diff --git a/boards_v_0_7/cover16_inputs_MCP.yaml b/boards_v_0_7/cover16_inputs_MCP.yaml new file mode 100644 index 0000000..e671226 --- /dev/null +++ b/boards_v_0_7/cover16_inputs_MCP.yaml @@ -0,0 +1,900 @@ + +binary_sensor: + - platform: gpio + name: "${node_name} IN_01" + id: in_01 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 0 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - cover.open: cover_01 + on_release: + then: + - cover.stop: cover_01 + + - platform: gpio + name: "${node_name} IN_02" + id: in_02 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 1 + mode: + input: true + pullup: false + inverted: true + on_press: + - cover.close: cover_01 + on_release: + - cover.stop: cover_01 + + - platform: gpio + name: "${node_name} IN_03" + id: in_03 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 2 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.open: cover_02 + on_release: + then: + cover.stop: cover_02 + + - platform: gpio + name: "${node_name} IN_04" + id: in_04 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 3 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.close: cover_02 + on_release: + then: + cover.stop: cover_02 + + # - platform: gpio + # name: "${node_name} IN_05" + # id: in_05 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 4 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.open: cover_03 + # on_release: + # then: + # cover.stop: cover_03 + + # - platform: gpio + # name: "${node_name} IN_06" + # id: in_06 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 5 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.close: cover_03 + # on_release: + # then: + # cover.stop: cover_03 + + # - platform: gpio + # name: "${node_name} IN_07" + # id: in_07 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 6 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.open: cover_04 + # on_release: + # then: + # cover.stop: cover_04 + + # - platform: gpio + # name: "${node_name} IN_08" + # id: in_08 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 7 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.close: cover_04 + # on_release: + # then: + # cover.stop: cover_04 + + # - platform: gpio + # name: "${node_name} IN_09" + # id: in_09 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 8 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.open: cover_05 + # on_release: + # then: + # cover.stop: cover_05 + + # - platform: gpio + # name: "${node_name} IN_10" + # id: in_10 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 9 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.close: cover_05 + # on_release: + # then: + # cover.stop: cover_05 + + # - platform: gpio + # name: "${node_name} IN_11" + # id: in_11 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 10 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.open: cover_06 + # on_release: + # then: + # cover.stop: cover_06 + + # - platform: gpio + # name: "${node_name} IN_12" + # id: in_12 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 11 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # cover.close: cover_06 + # on_release: + # then: + # cover.stop: cover_06 + + # - platform: gpio + # name: "${node_name} IN_13" + # id: in_13 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 12 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_13 + + # - platform: gpio + # name: "${node_name} IN_14" + # id: in_14 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 13 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_14 + + # - platform: gpio + # name: "${node_name} IN_15" + # id: in_15 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 14 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_15 + + # - platform: gpio + # name: "${node_name} IN_16" + # id: in_16 + # pin: + # mcp23xxx: mcp_inputs_1to16 + # number: 15 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_16 + + # - platform: gpio + # name: "${node_name} IN_17" + # id: in_17 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 7 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_17 + + # - platform: gpio + # name: "${node_name} IN_18" + # id: in_18 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 6 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_18 + + # - platform: gpio + # name: "${node_name} IN_19" + # id: in_19 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 5 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_19 + + # - platform: gpio + # name: "${node_name} IN_20" + # id: in_20 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 4 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_20 + + # - platform: gpio + # name: "${node_name} IN_21" + # id: in_21 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 3 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_21 + + # - platform: gpio + # name: "${node_name} IN_22" + # id: in_22 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 2 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_22 + + # - platform: gpio + # name: "${node_name} IN_23" + # id: in_23 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 1 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_22 + + # - platform: gpio + # name: "${node_name} IN_24" + # id: in_24 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 0 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_24 + + # - platform: gpio + # name: "${node_name} IN_25" + # id: in_25 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 8 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_25 + + # - platform: gpio + # name: "${node_name} IN_26" + # id: in_26 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 9 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_26 + + # - platform: gpio + # name: "${node_name} IN_27" + # id: in_27 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 10 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_27 + + # - platform: gpio + # name: "${node_name} IN_28" + # id: in_28 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 11 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_28 + + # - platform: gpio + # name: "${node_name} IN_29" + # id: in_29 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 12 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_29 + + # - platform: gpio + # name: "${node_name} IN_30" + # id: in_30 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 13 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_30 + + # - platform: gpio + # name: "${node_name} IN_31" + # id: in_31 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 14 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_31 + + # - platform: gpio + # name: "${node_name} IN_32" + # id: in_32 + # pin: + # mcp23xxx: mcp_inputs_17to32 + # number: 15 + # mode: + # input: true + # pullup: false + # inverted: true + # on_press: + # then: + # - switch.toggle: relay_32 + + - platform: gpio + name: "${node_name} IN_05" + id: in_05 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 4 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.open: cover_03 + on_release: + then: + cover.stop: cover_03 + + - platform: gpio + name: "${node_name} IN_06" + id: in_06 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 5 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.close: cover_03 + on_release: + then: + cover.stop: cover_03 + + - platform: gpio + name: "${node_name} IN_07" + id: in_07 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 6 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.open: cover_04 + on_release: + then: + cover.stop: cover_04 + + - platform: gpio + name: "${node_name} IN_08" + id: in_08 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 7 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.close: cover_04 + on_release: + then: + cover.stop: cover_04 + + - platform: gpio + name: "${node_name} IN_09" + id: in_09 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 8 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.open: cover_05 + on_release: + then: + cover.stop: cover_05 + + - platform: gpio + name: "${node_name} IN_10" + id: in_10 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 9 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.close: cover_05 + on_release: + then: + cover.stop: cover_05 + + - platform: gpio + name: "${node_name} IN_11" + id: in_11 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 10 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.open: cover_06 + on_release: + then: + cover.stop: cover_06 + + - platform: gpio + name: "${node_name} IN_12" + id: in_12 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 11 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + cover.close: cover_06 + on_release: + then: + cover.stop: cover_06 + + - platform: gpio + name: "${node_name} IN_13" + id: in_13 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 12 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_13 + + - platform: gpio + name: "${node_name} IN_14" + id: in_14 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 13 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_14 + + - platform: gpio + name: "${node_name} IN_15" + id: in_15 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 14 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_15 + + - platform: gpio + name: "${node_name} IN_16" + id: in_16 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 15 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_16 + + - platform: gpio + name: "${node_name} IN_17" + id: in_17 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 7 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_17 + + - platform: gpio + name: "${node_name} IN_18" + id: in_18 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 6 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_18 + + - platform: gpio + name: "${node_name} IN_19" + id: in_19 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 5 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_19 + + - platform: gpio + name: "${node_name} IN_20" + id: in_20 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 4 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_20 + + - platform: gpio + name: "${node_name} IN_21" + id: in_21 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 3 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_21 + + - platform: gpio + name: "${node_name} IN_22" + id: in_22 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 2 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_22 + + - platform: gpio + name: "${node_name} IN_23" + id: in_23 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 1 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_22 + + - platform: gpio + name: "${node_name} IN_24" + id: in_24 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 0 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_24 + + - platform: gpio + name: "${node_name} IN_25" + id: in_25 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 8 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_25 + + - platform: gpio + name: "${node_name} IN_26" + id: in_26 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 9 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_26 + + - platform: gpio + name: "${node_name} IN_27" + id: in_27 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 10 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_27 + + - platform: gpio + name: "${node_name} IN_28" + id: in_28 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 11 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_28 + + - platform: gpio + name: "${node_name} IN_29" + id: in_29 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 12 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_29 + + - platform: gpio + name: "${node_name} IN_30" + id: in_30 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 13 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_30 + + - platform: gpio + name: "${node_name} IN_31" + id: in_31 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 14 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_31 + + - platform: gpio + name: "${node_name} IN_32" + id: in_32 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 15 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_32 + diff --git a/boards_v_0_7/cover16_inputs_PCF.yaml b/boards_v_0_7/cover16_inputs_PCF.yaml new file mode 100644 index 0000000..5a77aa7 --- /dev/null +++ b/boards_v_0_7/cover16_inputs_PCF.yaml @@ -0,0 +1,1014 @@ +binary_sensor: + - platform: gpio + name: "${node_name} IN_01" + id: in_01 + pin: + pcf8574: pcf_inputs_1to14 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_01 + on_release: + then: + cover.stop: cover_01 + + - platform: gpio + name: "${node_name} IN_02" + id: in_02 + pin: + pcf8574: pcf_inputs_1to14 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_01 + on_release: + then: + cover.stop: cover_01 + + - platform: gpio + name: "${node_name} IN_03" + id: in_03 + pin: + pcf8574: pcf_inputs_1to14 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_02 + on_release: + then: + cover.stop: cover_02 + + - platform: gpio + name: "${node_name} IN_04" + id: in_04 + pin: + pcf8574: pcf_inputs_1to14 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_02 + on_release: + then: + cover.stop: cover_02 + + # - platform: gpio + # name: "${node_name} IN_05" + # id: in_05 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 4 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_03 + # on_release: + # then: + # cover.stop: cover_03 + + # - platform: gpio + # name: "${node_name} IN_06" + # id: in_06 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 5 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_03 + # on_release: + # then: + # cover.stop: cover_03 + + # - platform: gpio + # name: "${node_name} IN_07" + # id: in_07 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 6 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_04 + # on_release: + # then: + # cover.stop: cover_04 + + # - platform: gpio + # name: "${node_name} IN_08" + # id: in_08 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 8 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_04 + # on_release: + # then: + # cover.stop: cover_04 + + # - platform: gpio + # name: "${node_name} IN_09" + # id: in_09 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 9 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_05 + # on_release: + # then: + # cover.stop: cover_05 + + # - platform: gpio + # name: "${node_name} IN_10" + # id: in_10 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 10 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_05 + # on_release: + # then: + # cover.stop: cover_05 + + # - platform: gpio + # name: "${node_name} IN_11" + # id: in_11 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 11 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_06 + # on_release: + # then: + # cover.stop: cover_06 + + # - platform: gpio + # name: "${node_name} IN_12" + # id: in_12 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 12 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_06 + # on_release: + # then: + # cover.stop: cover_06 + + # - platform: gpio + # name: "${node_name} IN_13" + # id: in_13 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 13 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_07 + # on_release: + # then: + # cover.stop: cover_07 + + # - platform: gpio + # name: "${node_name} IN_14" + # id: in_14 + # pin: + # pcf8574: pcf_inputs_1to14 + # number: 14 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_07 + # on_release: + # then: + # cover.stop: cover_07 + + # - platform: gpio + # name: "${node_name} IN_15" + # id: in_15 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 6 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_08 + # on_release: + # then: + # cover.stop: cover_08 + + # - platform: gpio + # name: "${node_name} IN_16" + # id: in_16 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 5 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_08 + # on_release: + # then: + # cover.stop: cover_08 + + # - platform: gpio + # name: "${node_name} IN_17" + # id: in_17 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 4 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_09 + # on_release: + # then: + # cover.stop: cover_09 + + # - platform: gpio + # name: "${node_name} IN_18" + # id: in_18 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 3 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_09 + # on_release: + # then: + # cover.stop: cover_09 + + # - platform: gpio + # name: "${node_name} IN_19" + # id: in_19 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 2 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_10 + # on_release: + # then: + # cover.stop: cover_10 + + # - platform: gpio + # name: "${node_name} IN_20" + # id: in_20 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 1 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_10 + # on_release: + # then: + # cover.stop: cover_10 + + # - platform: gpio + # name: "${node_name} IN_21" + # id: in_21 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 0 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_11 + # on_release: + # then: + # cover.stop: cover_11 + + # - platform: gpio + # name: "${node_name} IN_22" + # id: in_22 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 8 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_11 + # on_release: + # then: + # cover.stop: cover_11 + + # - platform: gpio + # name: "${node_name} IN_23" + # id: in_23 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 9 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_12 + # on_release: + # then: + # cover.stop: cover_12 + + # - platform: gpio + # name: "${node_name} IN_24" + # id: in_24 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 10 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_12 + # on_release: + # then: + # cover.stop: cover_12 + + # - platform: gpio + # name: "${node_name} IN_25" + # id: in_25 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 11 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_13 + # on_release: + # then: + # cover.stop: cover_13 + + # - platform: gpio + # name: "${node_name} IN_26" + # id: in_26 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 12 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_13 + # on_release: + # then: + # cover.stop: cover_13 + + # - platform: gpio + # name: "${node_name} IN_27" + # id: in_27 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 13 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_14 + # on_release: + # then: + # cover.stop: cover_14 + + # - platform: gpio + # name: "${node_name} IN_28" + # id: in_28 + # pin: + # pcf8574: pcf_inputs_15to28 + # number: 14 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_14 + # on_release: + # then: + # cover.stop: cover_14 + + # - platform: gpio + # name: "${node_name} IN_29" + # id: in_29 + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 0 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_15 + # on_release: + # then: + # cover.stop: cover_15 + + # - platform: gpio + # name: "${node_name} IN_30" + # id: in_30 + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 1 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_15 + # on_release: + # then: + # cover.stop: cover_15 + + # - platform: gpio + # name: "${node_name} IN_31" + # id: in_31 + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 2 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_16 + # on_release: + # then: + # cover.stop: cover_16 + + # - platform: gpio + # name: "${node_name} IN_32" + # id: in_32 + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 3 + # mode: + # input: true + # inverted: true + # on_press: + # then: + # cover.open: cover_16 + # on_release: + # then: + # cover.stop: cover_16 + + # - platform: gpio + # name: "${node_name} IN_33" + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 4 + # mode: + # input: true + # inverted: true + + # - platform: gpio + # name: "${node_name} IN_34" + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 5 + # mode: + # input: true + # inverted: true + + # - platform: gpio + # name: "${node_name} IN_35" + # pin: + # pcf8574: pcf_inputs_28to35_menu + # number: 6 + # mode: + # input: true + # inverted: true +======= + - platform: gpio + name: "${node_name} IN_05" + id: in_05 + pin: + pcf8574: pcf_inputs_1to14 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_03 + on_release: + then: + cover.stop: cover_03 + + - platform: gpio + name: "${node_name} IN_06" + id: in_06 + pin: + pcf8574: pcf_inputs_1to14 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_03 + on_release: + then: + cover.stop: cover_03 + + - platform: gpio + name: "${node_name} IN_07" + id: in_07 + pin: + pcf8574: pcf_inputs_1to14 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_04 + on_release: + then: + cover.stop: cover_04 + + - platform: gpio + name: "${node_name} IN_08" + id: in_08 + pin: + pcf8574: pcf_inputs_1to14 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_04 + on_release: + then: + cover.stop: cover_04 + + - platform: gpio + name: "${node_name} IN_09" + id: in_09 + pin: + pcf8574: pcf_inputs_1to14 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_05 + on_release: + then: + cover.stop: cover_05 + + - platform: gpio + name: "${node_name} IN_10" + id: in_10 + pin: + pcf8574: pcf_inputs_1to14 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_05 + on_release: + then: + cover.stop: cover_05 + + - platform: gpio + name: "${node_name} IN_11" + id: in_11 + pin: + pcf8574: pcf_inputs_1to14 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_06 + on_release: + then: + cover.stop: cover_06 + + - platform: gpio + name: "${node_name} IN_12" + id: in_12 + pin: + pcf8574: pcf_inputs_1to14 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_06 + on_release: + then: + cover.stop: cover_06 + + - platform: gpio + name: "${node_name} IN_13" + id: in_13 + pin: + pcf8574: pcf_inputs_1to14 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_07 + on_release: + then: + cover.stop: cover_07 + + - platform: gpio + name: "${node_name} IN_14" + id: in_14 + pin: + pcf8574: pcf_inputs_1to14 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_07 + on_release: + then: + cover.stop: cover_07 + + - platform: gpio + name: "${node_name} IN_15" + id: in_15 + pin: + pcf8574: pcf_inputs_15to28 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_08 + on_release: + then: + cover.stop: cover_08 + + - platform: gpio + name: "${node_name} IN_16" + id: in_16 + pin: + pcf8574: pcf_inputs_15to28 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_08 + on_release: + then: + cover.stop: cover_08 + + - platform: gpio + name: "${node_name} IN_17" + id: in_17 + pin: + pcf8574: pcf_inputs_15to28 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_09 + on_release: + then: + cover.stop: cover_09 + + - platform: gpio + name: "${node_name} IN_18" + id: in_18 + pin: + pcf8574: pcf_inputs_15to28 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_09 + on_release: + then: + cover.stop: cover_09 + + - platform: gpio + name: "${node_name} IN_19" + id: in_19 + pin: + pcf8574: pcf_inputs_15to28 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_10 + on_release: + then: + cover.stop: cover_10 + + - platform: gpio + name: "${node_name} IN_20" + id: in_20 + pin: + pcf8574: pcf_inputs_15to28 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_10 + on_release: + then: + cover.stop: cover_10 + + - platform: gpio + name: "${node_name} IN_21" + id: in_21 + pin: + pcf8574: pcf_inputs_15to28 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_11 + on_release: + then: + cover.stop: cover_11 + + - platform: gpio + name: "${node_name} IN_22" + id: in_22 + pin: + pcf8574: pcf_inputs_15to28 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_11 + on_release: + then: + cover.stop: cover_11 + + - platform: gpio + name: "${node_name} IN_23" + id: in_23 + pin: + pcf8574: pcf_inputs_15to28 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_12 + on_release: + then: + cover.stop: cover_12 + + - platform: gpio + name: "${node_name} IN_24" + id: in_24 + pin: + pcf8574: pcf_inputs_15to28 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_12 + on_release: + then: + cover.stop: cover_12 + + - platform: gpio + name: "${node_name} IN_25" + id: in_25 + pin: + pcf8574: pcf_inputs_15to28 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_13 + on_release: + then: + cover.stop: cover_13 + + - platform: gpio + name: "${node_name} IN_26" + id: in_26 + pin: + pcf8574: pcf_inputs_15to28 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_13 + on_release: + then: + cover.stop: cover_13 + + - platform: gpio + name: "${node_name} IN_27" + id: in_27 + pin: + pcf8574: pcf_inputs_15to28 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_14 + on_release: + then: + cover.stop: cover_14 + + - platform: gpio + name: "${node_name} IN_28" + id: in_28 + pin: + pcf8574: pcf_inputs_15to28 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_14 + on_release: + then: + cover.stop: cover_14 + + - platform: gpio + name: "${node_name} IN_29" + id: in_29 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 0 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_15 + on_release: + then: + cover.stop: cover_15 + + - platform: gpio + name: "${node_name} IN_30" + id: in_30 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 1 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_15 + on_release: + then: + cover.stop: cover_15 + + - platform: gpio + name: "${node_name} IN_31" + id: in_31 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 2 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_16 + on_release: + then: + cover.stop: cover_16 + + - platform: gpio + name: "${node_name} IN_32" + id: in_32 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 3 + mode: + input: true + inverted: true + on_press: + then: + cover.open: cover_16 + on_release: + then: + cover.stop: cover_16 + + - platform: gpio + name: "${node_name} IN_33" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_34" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_35" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 6 + mode: + input: true + inverted: true \ No newline at end of file diff --git a/boards_v_0_7/cover16_outputs_MCP.yaml b/boards_v_0_7/cover16_outputs_MCP.yaml new file mode 100644 index 0000000..783e308 --- /dev/null +++ b/boards_v_0_7/cover16_outputs_MCP.yaml @@ -0,0 +1,297 @@ + +mcp23017: + - id: 'mcp_outputs_1to16' + address: 0x21 + - id: 'mcp_outputs_17to32' + address: 0x20 + +switch: + - platform: gpio + id: cover_open_01 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 0 + mode: OUTPUT + interlock: &cover_interlock_01 [cover_open_01, cover_close_01] + restore_mode: always off + + - platform: gpio + id: cover_close_01 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 1 + mode: OUTPUT + interlock: *cover_interlock_01 + restore_mode: always off + + - platform: gpio + id: cover_open_02 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 2 + mode: OUTPUT + interlock: &cover_interlock_02 [cover_open_02, cover_close_02] + restore_mode: always off + + - platform: gpio + id: cover_close_02 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 3 + mode: OUTPUT + interlock: *cover_interlock_02 + restore_mode: always off + + - platform: gpio + id: cover_open_03 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 4 + mode: OUTPUT + interlock: &cover_interlock_03 [cover_open_03, cover_close_03] + restore_mode: always off + + - platform: gpio + id: cover_close_03 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 5 + mode: OUTPUT + interlock: *cover_interlock_03 + restore_mode: always off + + - platform: gpio + id: cover_open_04 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 6 + mode: OUTPUT + interlock: &cover_interlock_04 [cover_open_04, cover_close_04] + restore_mode: always off + + - platform: gpio + id: cover_close_04 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 7 + mode: OUTPUT + interlock: *cover_interlock_04 + restore_mode: always off + + - platform: gpio + id: cover_open_05 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 0 + mode: OUTPUT + interlock: &cover_interlock_05 [cover_open_05, cover_close_05] + restore_mode: always off + + - platform: gpio + id: cover_close_05 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 1 + mode: OUTPUT + interlock: *cover_interlock_05 + restore_mode: always off + + - platform: gpio + id: cover_open_06 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 2 + mode: OUTPUT + interlock: &cover_interlock_06 [cover_open_06, cover_close_06] + restore_mode: always off + + - platform: gpio + id: cover_close_06 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 3 + mode: OUTPUT + interlock: *cover_interlock_06 + restore_mode: always off + + +# relay + - platform: gpio + id: relay_13 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 4 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_14 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 5 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_15 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 6 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_16 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 7 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_17 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 15 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_18 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 14 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_19 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 13 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_20 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 12 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_21 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 11 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_22 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 10 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_23 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 9 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_24 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 8 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_25 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 15 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_26 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 14 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_27 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 13 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_28 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 12 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_29 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 11 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_30 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 10 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_31 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 9 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_32 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 8 + mode: + output: true + inverted: false diff --git a/boards_v_0_7/cover16_outputs_MCP_old.yaml b/boards_v_0_7/cover16_outputs_MCP_old.yaml new file mode 100644 index 0000000..f23d82b --- /dev/null +++ b/boards_v_0_7/cover16_outputs_MCP_old.yaml @@ -0,0 +1,310 @@ + +mcp23017: + - id: 'mcp_outputs_1to16' + i2c_id: bus_b + address: 0x21 + - id: 'mcp_outputs_17to32' + i2c_id: bus_b + address: 0x20 + +switch: + - platform: gpio + id: cover_open_01 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 0 + mode: OUTPUT + interlock: &cover_interlock_01 [cover_open_01, cover_close_01] + restore_mode: always off + + - platform: gpio + id: cover_close_01 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 1 + mode: OUTPUT + interlock: *cover_interlock_01 + restore_mode: always off + + - platform: gpio + id: cover_open_02 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 2 + mode: OUTPUT + interlock: &cover_interlock_02 [cover_open_02, cover_close_02] + restore_mode: always off + + - platform: gpio + id: cover_close_02 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 3 + mode: OUTPUT + interlock: *cover_interlock_02 + restore_mode: always off + + - platform: gpio + id: cover_open_03 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 4 + mode: OUTPUT + interlock: &cover_interlock_03 [cover_open_03, cover_close_03] + restore_mode: always off + + - platform: gpio + id: cover_close_03 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 5 + mode: OUTPUT + interlock: *cover_interlock_03 + restore_mode: always off + + - platform: gpio + id: cover_open_04 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 6 + mode: OUTPUT + interlock: &cover_interlock_04 [cover_open_04, cover_close_04] + restore_mode: always off + + - platform: gpio + id: cover_close_04 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 7 + mode: OUTPUT + interlock: *cover_interlock_04 + restore_mode: always off + + - platform: gpio + id: cover_open_05 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 8 + mode: OUTPUT + interlock: &cover_interlock_05 [cover_open_05, cover_close_05] + restore_mode: always off + + - platform: gpio + id: cover_close_05 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 9 + mode: OUTPUT + interlock: *cover_interlock_05 + restore_mode: always off + + - platform: gpio + id: cover_open_06 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 10 + mode: OUTPUT + interlock: &cover_interlock_06 [cover_open_06, cover_close_06] + restore_mode: always off + + - platform: gpio + id: cover_close_06 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 11 + mode: OUTPUT + interlock: *cover_interlock_06 + restore_mode: always off + + - platform: gpio + id: cover_open_07 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 12 + mode: OUTPUT + interlock: &cover_interlock_07 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_07 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 13 + mode: OUTPUT + interlock: *cover_interlock_07 + restore_mode: always off + + - platform: gpio + id: cover_open_08 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 14 + mode: OUTPUT + interlock: &cover_interlock_08 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_08 + pin: + mcp23xxx: mcp_outputs_1to16 + number: 15 + mode: OUTPUT + interlock: *cover_interlock_08 + restore_mode: always off + + - platform: gpio + id: cover_open_09 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 0 + mode: OUTPUT + interlock: &cover_interlock_09 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_09 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 1 + mode: OUTPUT + interlock: *cover_interlock_09 + restore_mode: always off + + - platform: gpio + id: cover_open_10 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 2 + mode: OUTPUT + interlock: &cover_interlock_10 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_10 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 3 + mode: OUTPUT + interlock: *cover_interlock_10 + restore_mode: always off + + - platform: gpio + id: cover_open_11 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 4 + mode: OUTPUT + interlock: &cover_interlock_11 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_11 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 5 + mode: OUTPUT + interlock: *cover_interlock_11 + restore_mode: always off + + - platform: gpio + id: cover_open_12 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 6 + mode: OUTPUT + interlock: &cover_interlock_12 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_12 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 7 + mode: OUTPUT + interlock: *cover_interlock_12 + restore_mode: always off + + - platform: gpio + id: cover_open_13 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 8 + mode: OUTPUT + interlock: &cover_interlock_13 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_13 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 9 + mode: OUTPUT + interlock: *cover_interlock_13 + restore_mode: always off + + - platform: gpio + id: cover_open_14 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 10 + mode: OUTPUT + interlock: &cover_interlock_14 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_14 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 11 + mode: OUTPUT + interlock: *cover_interlock_14 + restore_mode: always off + + - platform: gpio + id: cover_open_15 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 12 + mode: OUTPUT + interlock: &cover_interlock_15 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_15 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 13 + mode: OUTPUT + interlock: *cover_interlock_15 + restore_mode: always off + + - platform: gpio + id: cover_open_16 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 14 + mode: OUTPUT + interlock: &cover_interlock_16 [cover_open_07, cover_close_07] + restore_mode: always off + + - platform: gpio + id: cover_close_16 + pin: + mcp23xxx: mcp_outputs_17to32 + number: 15 + mode: OUTPUT + interlock: *cover_interlock_16 + restore_mode: always off + +# example +# relay +# - platform: gpio +# id: relay_13 +# pin: +# mcp23xxx: mcp_outputs_17to32 +# number: 4 +# mode: +# output: true +# inverted: false + + diff --git a/boards_v_0_7/cover16_outputs_PCF.yaml b/boards_v_0_7/cover16_outputs_PCF.yaml new file mode 100644 index 0000000..49f86b7 --- /dev/null +++ b/boards_v_0_7/cover16_outputs_PCF.yaml @@ -0,0 +1,60 @@ + +pcf8574: + - id: 'pcf_1' + address: 0x21 + pcf8575: true + i2c_id: bus_b + - id: 'pcf_2' + address: 0x20 + pcf8575: true + i2c_id: bus_b + +switch: + - platform: gpio + id: cover_open_01 + pin: + pcf8574: pcf_1 + # Use pin number 0 + number: 15 + mode: + output: true + inverted: true + interlock: &cover_interlock_01 [cover_open_01, cover_close_01] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_01 + pin: + pcf8574: pcf_1 + # Use pin number 1 + number: 14 + mode: + output: true + inverted: true + interlock: *cover_interlock_01 + restore_mode: always off + + - platform: gpio + id: cover_open_02 + pin: + pcf8574: pcf_1 + # Use pin number 3 + number: 13 + mode: + output: true + inverted: true + interlock: &cover_interlock_02 [cover_open_02, cover_close_02] + restore_mode: always off + + - platform: gpio + id: cover_close_02 + pin: + pcf8574: pcf_1 + # Use pin number 2 + number: 12 + mode: + output: true + inverted: true + interlock: *cover_interlock_02 + restore_mode: always off diff --git a/boards_v_0_7/coverMix_inputs_PCF.yaml b/boards_v_0_7/coverMix_inputs_PCF.yaml new file mode 100644 index 0000000..86461a6 --- /dev/null +++ b/boards_v_0_7/coverMix_inputs_PCF.yaml @@ -0,0 +1,491 @@ +binary_sensor: + - platform: gpio + name: '${node_name} IN_01' + id: in_01 + pin: + pcf8574: pcf_inputs_1to14 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_01 + on_release: + then: + - cover.stop: cover_01 + + - platform: gpio + name: '${node_name} IN_02' + id: in_02 + pin: + pcf8574: pcf_inputs_1to14 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_01 + on_release: + then: + - cover.stop: cover_01 + + - platform: gpio + name: '${node_name} IN_03' + id: in_03 + pin: + pcf8574: pcf_inputs_1to14 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_02 + on_release: + then: + - cover.stop: cover_02 + + - platform: gpio + name: '${node_name} IN_04' + id: in_04 + pin: + pcf8574: pcf_inputs_1to14 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_02 + on_release: + then: + - cover.stop: cover_02 + + - platform: gpio + name: '${node_name} IN_05' + id: in_05 + pin: + pcf8574: pcf_inputs_1to14 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_03 + on_release: + then: + - cover.stop: cover_03 + + - platform: gpio + name: '${node_name} IN_06' + id: in_06 + pin: + pcf8574: pcf_inputs_1to14 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_03 + on_release: + then: + - cover.stop: cover_03 + + - platform: gpio + name: '${node_name} IN_07' + id: in_07 + pin: + pcf8574: pcf_inputs_1to14 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_04 + on_release: + then: + - cover.stop: cover_04 + + - platform: gpio + name: '${node_name} IN_08' + id: in_08 + pin: + pcf8574: pcf_inputs_1to14 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_04 + on_release: + then: + - cover.stop: cover_04 + + - platform: gpio + name: '${node_name} IN_09' + id: in_09 + pin: + pcf8574: pcf_inputs_1to14 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_05 + on_release: + then: + - cover.stop: cover_05 + + - platform: gpio + name: '${node_name} IN_10' + id: in_10 + pin: + pcf8574: pcf_inputs_1to14 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_05 + on_release: + then: + - cover.stop: cover_05 + + - platform: gpio + name: '${node_name} IN_11' + id: in_11 + pin: + pcf8574: pcf_inputs_1to14 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_06 + on_release: + then: + - cover.stop: cover_06 + + - platform: gpio + name: '${node_name} IN_12' + id: in_12 + pin: + pcf8574: pcf_inputs_1to14 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_06 + on_release: + then: + - cover.stop: cover_06 + + - platform: gpio + name: '${node_name} IN_13' + id: in_13 + pin: + pcf8574: pcf_inputs_1to14 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_07 + on_release: + then: + - cover.stop: cover_07 + + - platform: gpio + name: '${node_name} IN_14' + id: in_14 + pin: + pcf8574: pcf_inputs_1to14 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_07 + on_release: + then: + - cover.stop: cover_07 + + - platform: gpio + name: '${node_name} IN_15' + id: in_15 + pin: + pcf8574: pcf_inputs_15to28 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - cover.open: cover_08 + on_release: + then: + - cover.stop: cover_08 + + - platform: gpio + name: '${node_name} IN_16' + id: in_16 + pin: + pcf8574: pcf_inputs_15to28 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - cover.close: cover_08 + on_release: + then: + - cover.stop: cover_08 + + - platform: gpio + name: '${node_name} IN_17' + id: in_17 + pin: + pcf8574: pcf_inputs_15to28 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_17 + + - platform: gpio + name: '${node_name} IN_18' + id: in_18 + pin: + pcf8574: pcf_inputs_15to28 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_18 + + - platform: gpio + name: '${node_name} IN_19' + id: in_19 + pin: + pcf8574: pcf_inputs_15to28 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_19 + + - platform: gpio + name: '${node_name} IN_20' + id: in_20 + pin: + pcf8574: pcf_inputs_15to28 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_20 + + - platform: gpio + name: '${node_name} IN_21' + id: in_21 + pin: + pcf8574: pcf_inputs_15to28 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_21 + + - platform: gpio + name: '${node_name} IN_22' + id: in_22 + pin: + pcf8574: pcf_inputs_15to28 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_22 + + - platform: gpio + name: '${node_name} IN_23' + id: in_23 + pin: + pcf8574: pcf_inputs_15to28 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_23 + + - platform: gpio + name: '${node_name} IN_24' + id: in_24 + pin: + pcf8574: pcf_inputs_15to28 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_24 + + - platform: gpio + name: '${node_name} IN_25' + id: in_25 + pin: + pcf8574: pcf_inputs_15to28 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_25 + + - platform: gpio + name: '${node_name} IN_26' + id: in_26 + pin: + pcf8574: pcf_inputs_15to28 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_26 + + - platform: gpio + name: '${node_name} IN_27' + id: in_27 + pin: + pcf8574: pcf_inputs_15to28 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_27 + + - platform: gpio + name: '${node_name} IN_28' + id: in_28 + pin: + pcf8574: pcf_inputs_15to28 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_28 + + - platform: gpio + name: '${node_name} IN_29' + id: in_29 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_29 + + - platform: gpio + name: '${node_name} IN_30' + id: in_30 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_30 + + - platform: gpio + name: '${node_name} IN_31' + id: in_31 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_31 + + - platform: gpio + name: '${node_name} IN_32' + id: in_32 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_32 + + - platform: gpio + name: '${node_name} IN_33' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: '${node_name} IN_34' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: '${node_name} IN_35' + pin: + pcf8574: pcf_inputs_28to35_menu + number: 6 + mode: + input: true + inverted: true diff --git a/boards_v_0_7/cover_mix.yaml b/boards_v_0_7/cover_mix.yaml new file mode 100644 index 0000000..9d310d9 --- /dev/null +++ b/boards_v_0_7/cover_mix.yaml @@ -0,0 +1,121 @@ +cover: + - platform: time_based + name: 'Cover 01' + device_class: shutter + id: cover_01 + open_action: + - switch.turn_off: cover_close_01 + - switch.turn_on: cover_open_01 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_01 + - switch.turn_on: cover_close_01 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_01 + - switch.turn_off: cover_close_01 + + - platform: time_based + name: 'Cover 02' + id: cover_02 + open_action: + - switch.turn_off: cover_close_02 + - switch.turn_on: cover_open_02 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_02 + - switch.turn_on: cover_close_02 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_02 + - switch.turn_off: cover_close_02 + + - platform: time_based + name: 'Cover 03' + id: cover_03 + open_action: + - switch.turn_off: cover_close_03 + - switch.turn_on: cover_open_03 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_03 + - switch.turn_on: cover_close_03 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_03 + - switch.turn_off: cover_close_03 + + - platform: time_based + name: 'Cover 04' + id: cover_04 + open_action: + - switch.turn_off: cover_close_04 + - switch.turn_on: cover_open_04 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_04 + - switch.turn_on: cover_close_04 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_04 + - switch.turn_off: cover_close_04 + + - platform: time_based + name: 'Cover 05' + id: cover_05 + open_action: + - switch.turn_off: cover_close_05 + - switch.turn_on: cover_open_05 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_05 + - switch.turn_on: cover_close_05 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_05 + - switch.turn_off: cover_close_05 + + - platform: time_based + name: 'Cover 06' + id: cover_06 + open_action: + - switch.turn_off: cover_close_06 + - switch.turn_on: cover_open_06 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_06 + - switch.turn_on: cover_close_06 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_06 + - switch.turn_off: cover_close_06 + + - platform: time_based + name: 'Cover 07' + id: cover_07 + open_action: + - switch.turn_off: cover_close_07 + - switch.turn_on: cover_open_07 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_07 + - switch.turn_on: cover_close_07 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_07 + - switch.turn_off: cover_close_07 + + - platform: time_based + name: 'Cover 08' + id: cover_08 + open_action: + - switch.turn_off: cover_close_08 + - switch.turn_on: cover_open_08 + open_duration: 10s + close_action: + - switch.turn_off: cover_open_08 + - switch.turn_on: cover_close_08 + close_duration: 10s + stop_action: + - switch.turn_off: cover_open_08 + - switch.turn_off: cover_close_08 diff --git a/boards_v_0_7/dimmer_led8x4_inputs.yaml b/boards_v_0_7/dimmer_led8x4_inputs.yaml new file mode 100644 index 0000000..30eea1a --- /dev/null +++ b/boards_v_0_7/dimmer_led8x4_inputs.yaml @@ -0,0 +1,559 @@ +# require light configuration (monochromatic_light.yaml) +binary_sensor: + - platform: gpio + name: "${node_name} IN_01" + id: in_01 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 0 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_1 + + - platform: gpio + name: "${node_name} IN_02" + id: in_02 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 1 + mode: + input: true + pullup: false + inverted: true + on_press: + - light.toggle: + id: led_2 + + - platform: gpio + name: "${node_name} IN_03" + id: in_03 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 2 + mode: + input: true + pullup: false + inverted: true + on_press: + - light.toggle: + id: led_3 + + - platform: gpio + name: "${node_name} IN_04" + id: in_04 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 3 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_4 + + - platform: gpio + name: "${node_name} IN_05" + id: in_05 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 4 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_5 + + - platform: gpio + name: "${node_name} IN_06" + id: in_06 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 5 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_6 + + - platform: gpio + name: "${node_name} IN_07" + id: in_07 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 6 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_7 + + - platform: gpio + name: "${node_name} IN_08" + id: in_08 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 7 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_8 + + - platform: gpio + name: "${node_name} IN_09" + id: in_09 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 8 + mode: + input: true + pullup: false + inverted: true + on_press: + - while: + condition: + binary_sensor.is_on: in_09 + then: + - logger.log: "Dimm light led_4 by -5%" + - light.dim_relative: + id: led_4 + relative_brightness: -5% + transition_length: 0.2s + - delay: 0.2s + + - platform: gpio + name: "${node_name} IN_10" + id: in_10 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 9 + mode: + input: true + pullup: false + inverted: true + on_press: + - while: + condition: + binary_sensor.is_on: in_10 + then: + - logger.log: "Dimm light led_4 by -10%" + - light.dim_relative: + id: led_4 + relative_brightness: -10% + transition_length: 0.2s + - delay: 0.2s + + - platform: gpio + name: "${node_name} IN_11" + id: in_11 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 10 + mode: + input: true + pullup: false + inverted: true + on_press: + - while: + condition: + binary_sensor.is_on: in_11 + then: + - logger.log: "Dimm light led_4 by 5%" + - light.dim_relative: + id: led_4 + relative_brightness: 5% + transition_length: 0.2s + - delay: 0.2s + + - platform: gpio + name: "${node_name} IN_12" + id: in_12 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 11 + mode: + input: true + pullup: false + inverted: true + on_press: + - while: + condition: + binary_sensor.is_on: in_12 + then: + - logger.log: "Dimm light led_4 by 10%" + - light.dim_relative: + id: led_4 + relative_brightness: 10% + transition_length: 0.2s + - delay: 0.2s + + - platform: gpio + name: "${node_name} IN_13" + id: in_13 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 12 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_13 + + - platform: gpio + name: "${node_name} IN_14" + id: in_14 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 13 + mode: + input: true + pullup: false + inverted: true + on_press: + - if: + condition: + light.is_on: led_4 + then: + - while: + condition: + binary_sensor.is_on: in_14 + then: + - logger.log: "Dimm light led_4 by -10%" + - light.dim_relative: + id: led_4 + relative_brightness: -10% + transition_length: 0.2s + - delay: 0.2s + else: + - while: + condition: + binary_sensor.is_on: in_14 + then: + - logger.log: "Dimm light led_4 by 10%" + - light.dim_relative: + id: led_4 + relative_brightness: 10% + transition_length: 0.2s + - delay: 0.2s + + - platform: gpio + name: "${node_name} IN_15" + id: in_15 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 14 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_15 + + - platform: gpio + name: "${node_name} IN_16" + id: in_16 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 15 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_16 + + - platform: gpio + name: "${node_name} IN_17" + id: in_17 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 7 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_17 + + - platform: gpio + name: "${node_name} IN_18" + id: in_18 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 6 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_18 + + - platform: gpio + name: "${node_name} IN_19" + id: in_19 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 5 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_19 + + - platform: gpio + name: "${node_name} IN_20" + id: in_20 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 4 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_20 + + - platform: gpio + name: "${node_name} IN_21" + id: in_21 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 3 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_21 + + - platform: gpio + name: "${node_name} IN_22" + id: in_22 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 2 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_22 + + - platform: gpio + name: "${node_name} IN_23" + id: in_23 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 1 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_23 + + - platform: gpio + name: "${node_name} IN_24" + id: in_24 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 0 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_24 + + - platform: gpio + name: "${node_name} IN_25" + id: in_25 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 8 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_25 + + - platform: gpio + name: "${node_name} IN_26" + id: in_26 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 9 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_26 + + - platform: gpio + name: "${node_name} IN_27" + id: in_27 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 10 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_27 + + - platform: gpio + name: "${node_name} IN_28" + id: in_28 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 11 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_28 + + - platform: gpio + name: "${node_name} IN_29" + id: in_29 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 12 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_29 + + - platform: gpio + name: "${node_name} IN_30" + id: in_30 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 13 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_30 + + - platform: gpio + name: "${node_name} IN_31" + id: in_31 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 14 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_31 + + - platform: gpio + name: "${node_name} IN_32" + id: in_32 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 15 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - light.toggle: + id: led_32 + + - platform: gpio + name: "${node_name} IN_33" + id: in_33 + pin: + number: GPIO33 + mode: + input: true + pullup: false + inverted: true + + - platform: gpio + name: "${node_name} IN_34" + id: in_34 + pin: + number: GPIO17 + mode: + input: true + pullup: false + inverted: true + + - platform: gpio + name: "${node_name} IN_35" + id: in_35 + pin: + number: GPIO12 + mode: + input: true + pullup: false + inverted: false diff --git a/boards_v_0_7/dimmer_led8x4_outputs.yaml b/boards_v_0_7/dimmer_led8x4_outputs.yaml new file mode 100644 index 0000000..5e2681d --- /dev/null +++ b/boards_v_0_7/dimmer_led8x4_outputs.yaml @@ -0,0 +1,142 @@ +# i2c address: 0x41 output pca pwm +# i2c address: 0x42 output pca pwm + +pca9685: + - address: 0x41 + id: pca_hub_1to16 + frequency: 500 + i2c_id: bus_b + - address: 0x42 + id: pca_hub_17to32 + frequency: 500 + i2c_id: bus_b + +output: + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_1' + channel: 0 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_2' + channel: 1 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_3' + channel: 2 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_4' + channel: 3 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_5' + channel: 4 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_6' + channel: 5 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_7' + channel: 6 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_8' + channel: 7 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_9' + channel: 8 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_10' + channel: 9 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_11' + channel: 10 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_12' + channel: 11 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_13' + channel: 12 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_14' + channel: 13 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_15' + channel: 14 + - platform: pca9685 + pca9685_id: 'pca_hub_1to16' + id: 'pca_output_16' + channel: 15 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_17' + channel: 0 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_18' + channel: 1 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_19' + channel: 2 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_20' + channel: 3 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_21' + channel: 4 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_22' + channel: 5 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_23' + channel: 6 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_24' + channel: 7 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_25' + channel: 8 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_26' + channel: 9 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_27' + channel: 10 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_28' + channel: 11 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_29' + channel: 12 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_30' + channel: 13 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_31' + channel: 14 + - platform: pca9685 + pca9685_id: 'pca_hub_17to32' + id: 'pca_output_32' + channel: 15 diff --git a/boards_v_0_7/monochromatic_lights.yaml b/boards_v_0_7/monochromatic_lights.yaml new file mode 100644 index 0000000..5a28e53 --- /dev/null +++ b/boards_v_0_7/monochromatic_lights.yaml @@ -0,0 +1,161 @@ +light: + - platform: monochromatic + output: pca_output_1 + name: "${node_name} LED 01" + id: led_1 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_2 + name: "${node_name} LED 02" + id: led_2 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_3 + name: "${node_name} LED 03" + id: led_3 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_4 + name: "${node_name} LED 04" + id: led_4 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_5 + name: "${node_name} LED 05" + id: led_5 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_6 + name: "${node_name} LED 06" + id: led_6 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_7 + name: "${node_name} LED 07" + id: led_7 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_8 + name: "${node_name} LED 08" + id: led_8 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_9 + name: "${node_name} LED 09" + id: led_9 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_10 + name: "${node_name} LED 10" + id: led_10 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_11 + name: "${node_name} LED 11" + id: led_11 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_12 + name: "${node_name} LED 12" + id: led_12 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_13 + name: "${node_name} LED 13" + id: led_13 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_14 + name: "${node_name} LED 14" + id: led_14 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_15 + name: "${node_name} LED 15" + id: led_15 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_16 + name: "${node_name} LED 16" + id: led_16 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_17 + name: "${node_name} LED 17" + id: led_17 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_18 + name: "${node_name} LED 18" + id: led_18 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_19 + name: "${node_name} LED 19" + id: led_19 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_20 + name: "${node_name} LED 20" + id: led_20 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_21 + name: "${node_name} LED 21" + id: led_21 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_22 + name: "${node_name} LED 22" + id: led_22 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_23 + name: "${node_name} LED 23" + id: led_23 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_24 + name: "${node_name} LED 24" + id: led_24 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_25 + name: "${node_name} LED 25" + id: led_25 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_26 + name: "${node_name} LED 26" + id: led_26 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_27 + name: "${node_name} LED 27" + id: led_27 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_28 + name: "${node_name} LED 28" + id: led_28 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_29 + name: "${node_name} LED 29" + id: led_29 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_30 + name: "${node_name} LED 30" + id: led_30 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_31 + name: "${node_name} LED 31" + id: led_31 + default_transition_length: 2s + - platform: monochromatic + output: pca_output_32 + name: "${node_name} LED 32" + id: led_32 + default_transition_length: 2s diff --git a/boards_v_0_7/mosfet48_outputs_PCF.yaml b/boards_v_0_7/mosfet48_outputs_PCF.yaml new file mode 100644 index 0000000..a1f924b --- /dev/null +++ b/boards_v_0_7/mosfet48_outputs_PCF.yaml @@ -0,0 +1,543 @@ + +pcf8574: + - id: 'pcf_1' + address: 0x20 + pcf8575: true + i2c_id: bus_b + - id: 'pcf_2' + address: 0x21 + pcf8575: true + i2c_id: bus_b + - id: 'pcf_3' + address: 0x22 + pcf8575: true + i2c_id: bus_b + +switch: + + - platform: gpio + id: relay_1 + name: "Relay_01" + pin: + pcf8574: pcf_1 + # Use pin number 0 + number: 7 + mode: + output: true + inverted: true + - platform: gpio + id: relay_2 + name: "Relay_02" + pin: + pcf8574: pcf_1 + # Use pin number 1 + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_3 + name: "Relay_03" + pin: + pcf8574: pcf_1 + # Use pin number 2 + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_4 + name: "Relay_04" + pin: + pcf8574: pcf_1 + # Use pin number 3 + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_5 + name: "Relay_05" + pin: + pcf8574: pcf_1 + # Use pin number 4 + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_6 + name: "Relay_06" + pin: + pcf8574: pcf_1 + # Use pin number 5 + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_7 + name: "Relay_07" + pin: + pcf8574: pcf_1 + # Use pin number 6 + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_8 + name: "Relay_08" + pin: + pcf8574: pcf_1 + # Use pin number 7 + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_9 + name: "Relay_09" + pin: + pcf8574: pcf_2 + # Use pin number 0 + number: 7 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_10 + name: "Relay_10" + pin: + pcf8574: pcf_2 + # Use pin number 1 + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_11 + name: "Relay_11" + pin: + pcf8574: pcf_2 + # Use pin number 2 + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_12 + name: "Relay_12" + pin: + pcf8574: pcf_2 + # Use pin number 3 + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_13 + name: "Relay_13" + pin: + pcf8574: pcf_2 + # Use pin number 4 + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_14 + name: "Relay_14" + pin: + pcf8574: pcf_2 + # Use pin number 5 + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_15 + name: "Relay_15" + pin: + pcf8574: pcf_2 + # Use pin number 6 + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_16 + name: "Relay_16" + pin: + pcf8574: pcf_2 + # Use pin number 7 + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_17 + name: "Relay_17" + pin: + pcf8574: pcf_3 + # Use pin number 15 + number: 7 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_18 + name: "Relay_18" + pin: + pcf8574: pcf_3 + # Use pin number 14 + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_19 + name: "Relay_19" + pin: + pcf8574: pcf_3 + # Use pin number 13 + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_20 + name: "Relay_20" + pin: + pcf8574: pcf_3 + # Use pin number 12 + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_21 + name: "Relay_21" + pin: + pcf8574: pcf_3 + # Use pin number 11 + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_22 + name: "Relay_22" + pin: + pcf8574: pcf_3 + # Use pin number 10 + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_23 + name: "Relay_23" + pin: + pcf8574: pcf_3 + # Use pin number 9 + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_24 + name: "Relay_24" + pin: + pcf8574: pcf_3 + # Use pin number 8 + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_25 + name: "Relay_25" + pin: + pcf8574: pcf_1 + # Use pin number 15 + number: 8 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_26 + name: "Relay_26" + pin: + pcf8574: pcf_1 + # Use pin number 14 + number: 9 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_27 + name: "Relay_27" + pin: + pcf8574: pcf_1 + # Use pin number 13 + number: 10 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_28 + name: "Relay_28" + pin: + pcf8574: pcf_1 + # Use pin number 12 + number: 11 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_29 + name: "Relay_29" + pin: + pcf8574: pcf_1 + # Use pin number 11 + number: 12 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_30 + name: "Relay_30" + pin: + pcf8574: pcf_1 + # Use pin number 10 + number: 13 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_31 + name: "Relay_31" + pin: + pcf8574: pcf_1 + # Use pin number 9 + number: 14 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_32 + name: "Relay_32" + pin: + pcf8574: pcf_1 + # Use pin number 8 + number: 15 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_33 + name: "Relay_33" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 8 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_34 + name: "Relay_34" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 9 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_35 + name: "Relay_35" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 10 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_36 + name: "Relay_36" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 11 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_37 + name: "Relay_37" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 12 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_38 + name: "Relay_38" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 13 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_39 + name: "Relay_39" + pin: + pcf8574: pcf_2 + # Use pin number 9 + number: 14 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_40 + name: "Relay_40" + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 15 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_41 + name: "Relay_41" + pin: + pcf8574: pcf_3 + # Use pin number 15 + number: 8 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_42 + name: "Relay_42" + pin: + pcf8574: pcf_3 + # Use pin number 14 + number: 9 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_43 + name: "Relay_43" + pin: + pcf8574: pcf_3 + # Use pin number 13 + number: 10 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_44 + name: "Relay_44" + pin: + pcf8574: pcf_3 + # Use pin number 12 + number: 11 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_45 + name: "Relay_45" + pin: + pcf8574: pcf_3 + # Use pin number 11 + number: 12 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_46 + name: "Relay_46" + pin: + pcf8574: pcf_3 + # Use pin number 10 + number: 13 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_47 + name: "Relay_47" + pin: + pcf8574: pcf_3 + # Use pin number 9 + number: 14 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_48 + name: "Relay_48" + pin: + pcf8574: pcf_3 + # Use pin number 8 + number: 15 + mode: + output: true + inverted: true \ No newline at end of file diff --git a/boards_v_0_7/relay24_inputs_PCF.yaml b/boards_v_0_7/relay24_inputs_PCF.yaml new file mode 100644 index 0000000..c559fb5 --- /dev/null +++ b/boards_v_0_7/relay24_inputs_PCF.yaml @@ -0,0 +1,427 @@ +#i2c addresses +# address: 0x26 input pcf io +# address: 0x27 input pcf io +# address: 0x3C input oled +# address: 0x40 input ina219 power +# address: 0x68 input rtc ds1307 + +binary_sensor: + - platform: gpio + name: "${node_name} IN_01" + id: in_01 + pin: + pcf8574: pcf_inputs_1to14 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_1 + + - platform: gpio + name: "${node_name} IN_02" + id: in_02 + pin: + pcf8574: pcf_inputs_1to14 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_2 + + - platform: gpio + name: "${node_name} IN_03" + id: in_03 + pin: + pcf8574: pcf_inputs_1to14 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_3 + + - platform: gpio + name: "${node_name} IN_04" + id: in_04 + pin: + pcf8574: pcf_inputs_1to14 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_4 + + - platform: gpio + name: "${node_name} IN_05" + id: in_05 + pin: + pcf8574: pcf_inputs_1to14 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_5 + + - platform: gpio + name: "${node_name} IN_06" + id: in_06 + pin: + pcf8574: pcf_inputs_1to14 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_6 + + - platform: gpio + name: "${node_name} IN_07" + id: in_07 + pin: + pcf8574: pcf_inputs_1to14 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_7 + + - platform: gpio + name: "${node_name} IN_08" + id: in_08 + pin: + pcf8574: pcf_inputs_1to14 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_8 + + - platform: gpio + name: "${node_name} IN_09" + id: in_09 + pin: + pcf8574: pcf_inputs_1to14 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_9 + + - platform: gpio + name: "${node_name} IN_10" + id: in_10 + pin: + pcf8574: pcf_inputs_1to14 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_10 + + - platform: gpio + name: "${node_name} IN_11" + id: in_11 + pin: + pcf8574: pcf_inputs_1to14 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_11 + + - platform: gpio + name: "${node_name} IN_12" + id: in_12 + pin: + pcf8574: pcf_inputs_1to14 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_12 + + - platform: gpio + name: "${node_name} IN_13" + id: in_13 + pin: + pcf8574: pcf_inputs_1to14 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_13 + + - platform: gpio + name: "${node_name} IN_14" + id: in_14 + pin: + pcf8574: pcf_inputs_1to14 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_14 + + - platform: gpio + name: "${node_name} IN_15" + id: in_15 + pin: + pcf8574: pcf_inputs_15to28 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_15 + + - platform: gpio + name: "${node_name} IN_16" + id: in_16 + pin: + pcf8574: pcf_inputs_15to28 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_16 + + - platform: gpio + name: "${node_name} IN_17" + id: in_17 + pin: + pcf8574: pcf_inputs_15to28 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_17 + + - platform: gpio + name: "${node_name} IN_18" + id: in_18 + pin: + pcf8574: pcf_inputs_15to28 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_18 + + - platform: gpio + name: "${node_name} IN_19" + id: in_19 + pin: + pcf8574: pcf_inputs_15to28 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_19 + + - platform: gpio + name: "${node_name} IN_20" + id: in_20 + pin: + pcf8574: pcf_inputs_15to28 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_20 + + - platform: gpio + name: "${node_name} IN_21" + id: in_21 + pin: + pcf8574: pcf_inputs_15to28 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_21 + + - platform: gpio + name: "${node_name} IN_22" + id: in_22 + pin: + pcf8574: pcf_inputs_15to28 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_22 + + - platform: gpio + name: "${node_name} IN_23" + id: in_23 + pin: + pcf8574: pcf_inputs_15to28 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_23 + + - platform: gpio + name: "${node_name} IN_24" + id: in_24 + pin: + pcf8574: pcf_inputs_15to28 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_24 + + - platform: gpio + name: "${node_name} IN_25" + id: in_25 + pin: + pcf8574: pcf_inputs_15to28 + number: 11 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_26" + id: in_26 + pin: + pcf8574: pcf_inputs_15to28 + number: 12 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_27" + id: in_27 + pin: + pcf8574: pcf_inputs_15to28 + number: 13 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_28" + id: in_28 + pin: + pcf8574: pcf_inputs_15to28 + number: 14 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_29" + id: in_29 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 0 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_30" + id: in_30 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 1 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_31" + id: in_31 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 2 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_32" + id: in_32 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 3 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_33" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_34" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_35" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 6 + mode: + input: true + inverted: true + diff --git a/boards_v_0_7/relay24_outputs_MCP.yaml b/boards_v_0_7/relay24_outputs_MCP.yaml new file mode 100644 index 0000000..0ea266f --- /dev/null +++ b/boards_v_0_7/relay24_outputs_MCP.yaml @@ -0,0 +1,248 @@ +mcp23017: + - id: 'mcp_outputs_1to16' + address: 0x21 + i2c_id: bus_b + - id: 'mcp_outputs_17to32' + address: 0x20 + i2c_id: bus_b + +switch: + - platform: gpio + id: relay_1 + name: "${node_name} Relay 01" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 8 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_2 + name: "${node_name} Relay 02" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 9 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_3 + name: "${node_name} Relay 03" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 10 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_4 + name: "${node_name} Relay 04" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 11 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_5 + name: "${node_name} Relay 05" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 12 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_6 + name: "${node_name} Relay 06" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 13 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_7 + name: "${node_name} Relay 07" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 14 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_8 + name: "${node_name} Relay 08" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 15 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_9 + name: "${node_name} Relay 09" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 8 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_10 + name: "${node_name} Relay 10" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 9 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_11 + name: "${node_name} Relay 11" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 10 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_12 + name: "${node_name} Relay 12" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 11 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_13 + name: "${node_name} Relay 13" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 7 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_14 + name: "${node_name} Relay 14" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 6 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_15 + name: "${node_name} Relay 15" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 5 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_16 + name: "${node_name} Relay 16" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 4 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_17 + name: "${node_name} Relay 17" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 3 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_18 + name: "${node_name} Relay 18" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 2 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_19 + name: "${node_name} Relay 19" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 1 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_20 + name: "${node_name} Relay 20" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 0 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_21 + name: "${node_name} Relay 21" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 12 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_22 + name: "${node_name} Relay 22" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 13 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_23 + name: "${node_name} Relay 23" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 14 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_24 + name: "${node_name} Relay 24" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 15 + mode: + output: true + inverted: false diff --git a/boards_v_0_7/relay32_inputs_MCP.yaml b/boards_v_0_7/relay32_inputs_MCP.yaml new file mode 100644 index 0000000..ac2daef --- /dev/null +++ b/boards_v_0_7/relay32_inputs_MCP.yaml @@ -0,0 +1,483 @@ +#i2c addresses +# address: 0x26 input mcp io +# address: 0x27 input mcp io +# address: 0x3C input oled +# address: 0x40 input ina219 power +# address: 0x68 input rtc ds1307 + +binary_sensor: + - platform: gpio + name: "${node_name} IN_01" + id: in_01 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 0 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_1 + + - platform: gpio + name: "${node_name} IN_02" + id: in_02 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 1 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_2 + + - platform: gpio + name: "${node_name} IN_03" + id: in_03 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 2 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_3 + + - platform: gpio + name: "${node_name} IN_04" + id: in_04 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 3 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_4 + + - platform: gpio + name: "${node_name} IN_05" + id: in_05 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 4 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_5 + + - platform: gpio + name: "${node_name} IN_06" + id: in_06 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 5 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_6 + + - platform: gpio + name: "${node_name} IN_07" + id: in_07 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 6 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_7 + + - platform: gpio + name: "${node_name} IN_08" + id: in_08 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 7 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_8 + + - platform: gpio + name: "${node_name} IN_09" + id: in_09 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 8 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_9 + + - platform: gpio + name: "${node_name} IN_10" + id: in_10 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 9 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_10 + + - platform: gpio + name: "${node_name} IN_11" + id: in_11 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 10 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_11 + + - platform: gpio + name: "${node_name} IN_12" + id: in_12 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 11 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_12 + + - platform: gpio + name: "${node_name} IN_13" + id: in_13 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 12 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_13 + + - platform: gpio + name: "${node_name} IN_14" + id: in_14 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 13 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_14 + + - platform: gpio + name: "${node_name} IN_15" + id: in_15 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 14 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_15 + + - platform: gpio + name: "${node_name} IN_16" + id: in_16 + pin: + mcp23xxx: mcp_inputs_1to16 + number: 15 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_16 + + - platform: gpio + name: "${node_name} IN_17" + id: in_17 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 7 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_17 + + - platform: gpio + name: "${node_name} IN_18" + id: in_18 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 6 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_18 + + - platform: gpio + name: "${node_name} IN_19" + id: in_19 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 5 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_19 + + - platform: gpio + name: "${node_name} IN_20" + id: in_20 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 4 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_20 + + - platform: gpio + name: "${node_name} IN_21" + id: in_21 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 3 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_21 + + - platform: gpio + name: "${node_name} IN_22" + id: in_22 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 2 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_22 + + - platform: gpio + name: "${node_name} IN_23" + id: in_23 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 1 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_23 + + - platform: gpio + name: "${node_name} IN_24" + id: in_24 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 0 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_24 + + - platform: gpio + name: "${node_name} IN_25" + id: in_25 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 8 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_25 + + - platform: gpio + name: "${node_name} IN_26" + id: in_26 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 9 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_26 + + - platform: gpio + name: "${node_name} IN_27" + id: in_27 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 10 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_27 + + - platform: gpio + name: "${node_name} IN_28" + id: in_28 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 11 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_28 + + - platform: gpio + name: "${node_name} IN_29" + id: in_29 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 12 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_29 + + - platform: gpio + name: "${node_name} IN_30" + id: in_30 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 13 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_30 + + - platform: gpio + name: "${node_name} IN_31" + id: in_31 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 14 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_31 + + - platform: gpio + name: "${node_name} IN_32" + id: in_32 + pin: + mcp23xxx: mcp_inputs_17to32 + number: 15 + mode: + input: true + pullup: false + inverted: true + on_press: + then: + - switch.toggle: relay_32 + + - platform: gpio + name: "${node_name} IN_33" + pin: + number: GPIO33 + mode: + input: true + pullup: false + inverted: true + + - platform: gpio + name: "${node_name} IN_34" + pin: + number: GPIO17 + mode: + input: true + pullup: false + inverted: true + + - platform: gpio + name: "${node_name} IN_35" + pin: + number: GPIO12 + mode: + input: true + pullup: true + inverted: false + diff --git a/boards_v_0_7/relay32_inputs_PCF.yaml b/boards_v_0_7/relay32_inputs_PCF.yaml new file mode 100644 index 0000000..2f61139 --- /dev/null +++ b/boards_v_0_7/relay32_inputs_PCF.yaml @@ -0,0 +1,451 @@ +#i2c addresses +# address: 0x26 input pcf io +# address: 0x27 input pcf io +# address: 0x3C input oled +# address: 0x40 input ina219 power +# address: 0x68 input rtc ds1307 + +binary_sensor: + - platform: gpio + name: "${node_name} IN_01" + id: in_01 + pin: + pcf8574: pcf_inputs_1to14 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_1 + + - platform: gpio + name: "${node_name} IN_02" + id: in_02 + pin: + pcf8574: pcf_inputs_1to14 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_2 + + - platform: gpio + name: "${node_name} IN_03" + id: in_03 + pin: + pcf8574: pcf_inputs_1to14 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_3 + + - platform: gpio + name: "${node_name} IN_04" + id: in_04 + pin: + pcf8574: pcf_inputs_1to14 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_4 + + - platform: gpio + name: "${node_name} IN_05" + id: in_05 + pin: + pcf8574: pcf_inputs_1to14 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_5 + + - platform: gpio + name: "${node_name} IN_06" + id: in_06 + pin: + pcf8574: pcf_inputs_1to14 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_6 + + - platform: gpio + name: "${node_name} IN_07" + id: in_07 + pin: + pcf8574: pcf_inputs_1to14 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_7 + + - platform: gpio + name: "${node_name} IN_08" + id: in_08 + pin: + pcf8574: pcf_inputs_1to14 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_8 + + - platform: gpio + name: "${node_name} IN_09" + id: in_09 + pin: + pcf8574: pcf_inputs_1to14 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_9 + + - platform: gpio + name: "${node_name} IN_10" + id: in_10 + pin: + pcf8574: pcf_inputs_1to14 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_10 + + - platform: gpio + name: "${node_name} IN_11" + id: in_11 + pin: + pcf8574: pcf_inputs_1to14 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_11 + + - platform: gpio + name: "${node_name} IN_12" + id: in_12 + pin: + pcf8574: pcf_inputs_1to14 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_12 + + - platform: gpio + name: "${node_name} IN_13" + id: in_13 + pin: + pcf8574: pcf_inputs_1to14 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_13 + + - platform: gpio + name: "${node_name} IN_14" + id: in_14 + pin: + pcf8574: pcf_inputs_1to14 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_14 + + - platform: gpio + name: "${node_name} IN_15" + id: in_15 + pin: + pcf8574: pcf_inputs_15to28 + number: 6 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_15 + + - platform: gpio + name: "${node_name} IN_16" + id: in_16 + pin: + pcf8574: pcf_inputs_15to28 + number: 5 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_16 + + - platform: gpio + name: "${node_name} IN_17" + id: in_17 + pin: + pcf8574: pcf_inputs_15to28 + number: 4 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_17 + + - platform: gpio + name: "${node_name} IN_18" + id: in_18 + pin: + pcf8574: pcf_inputs_15to28 + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_18 + + - platform: gpio + name: "${node_name} IN_19" + id: in_19 + pin: + pcf8574: pcf_inputs_15to28 + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_19 + + - platform: gpio + name: "${node_name} IN_20" + id: in_20 + pin: + pcf8574: pcf_inputs_15to28 + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_20 + + - platform: gpio + name: "${node_name} IN_21" + id: in_21 + pin: + pcf8574: pcf_inputs_15to28 + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_21 + + - platform: gpio + name: "${node_name} IN_22" + id: in_22 + pin: + pcf8574: pcf_inputs_15to28 + number: 8 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_22 + + - platform: gpio + name: "${node_name} IN_23" + id: in_23 + pin: + pcf8574: pcf_inputs_15to28 + number: 9 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_23 + + - platform: gpio + name: "${node_name} IN_24" + id: in_24 + pin: + pcf8574: pcf_inputs_15to28 + number: 10 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_24 + + - platform: gpio + name: "${node_name} IN_25" + id: in_25 + pin: + pcf8574: pcf_inputs_15to28 + number: 11 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_25 + + - platform: gpio + name: "${node_name} IN_26" + id: in_26 + pin: + pcf8574: pcf_inputs_15to28 + number: 12 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_26 + + - platform: gpio + name: "${node_name} IN_27" + id: in_27 + pin: + pcf8574: pcf_inputs_15to28 + number: 13 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_27 + + - platform: gpio + name: "${node_name} IN_28" + id: in_28 + pin: + pcf8574: pcf_inputs_15to28 + number: 14 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_28 + + - platform: gpio + name: "${node_name} IN_29" + id: in_29 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 0 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_29 + + - platform: gpio + name: "${node_name} IN_30" + id: in_30 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 1 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_30 + + - platform: gpio + name: "${node_name} IN_31" + id: in_31 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 2 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_31 + + - platform: gpio + name: "${node_name} IN_32" + id: in_32 + pin: + pcf8574: pcf_inputs_28to35_menu + number: 3 + mode: + input: true + inverted: true + on_press: + then: + - switch.toggle: relay_32 + + - platform: gpio + name: "${node_name} IN_33" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 4 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_34" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 5 + mode: + input: true + inverted: true + + - platform: gpio + name: "${node_name} IN_35" + pin: + pcf8574: pcf_inputs_28to35_menu + number: 6 + mode: + input: true + inverted: true + diff --git a/boards_v_0_7/relay32_outputs_MCP.yaml b/boards_v_0_7/relay32_outputs_MCP.yaml new file mode 100644 index 0000000..272994f --- /dev/null +++ b/boards_v_0_7/relay32_outputs_MCP.yaml @@ -0,0 +1,329 @@ + +mcp23017: + - id: 'mcp_outputs_1to16' + address: 0x21 + i2c_id: bus_b + - id: 'mcp_outputs_17to32' + address: 0x20 + i2c_id: bus_b + +switch: + - platform: gpio + id: relay_1 + name: "${node_name} Relay 01" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 0 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_2 + name: "${node_name} Relay 02" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 1 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_3 + name: "${node_name} Relay 03" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 2 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_4 + name: "${node_name} Relay 04" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 3 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_5 + name: "${node_name} Relay 05" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 4 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_6 + name: "${node_name} Relay 06" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 5 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_7 + name: "${node_name} Relay 07" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 6 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_8 + name: "${node_name} Relay 08" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 7 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_9 + name: "${node_name} Relay 09" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 0 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_10 + name: "${node_name} Relay 10" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 1 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_11 + name: "${node_name} Relay 11" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 2 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_12 + name: "${node_name} Relay 12" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 3 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_13 + name: "${node_name} Relay 13" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 4 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_14 + name: "${node_name} Relay 14" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 5 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_15 + name: "${node_name} Relay 15" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 6 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_16 + name: "${node_name} Relay 16" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 7 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_17 + name: "${node_name} Relay 17" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 15 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_18 + name: "${node_name} Relay 18" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 14 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_19 + name: "${node_name} Relay 19" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 13 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_20 + name: "${node_name} Relay 20" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 12 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_21 + name: "${node_name} Relay 21" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 11 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_22 + name: "${node_name} Relay 22" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 10 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_23 + name: "${node_name} Relay 23" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 9 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_24 + name: "${node_name} Relay 24" + pin: + mcp23xxx: mcp_outputs_1to16 + number: 8 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_25 + name: "${node_name} Relay 25" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 15 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_26 + name: "${node_name} Relay 26" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 14 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_27 + name: "${node_name} Relay 27" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 13 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_28 + name: "${node_name} Relay 28" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 12 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_29 + name: "${node_name} Relay 29" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 11 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_30 + name: "${node_name} Relay 30" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 10 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_31 + name: "${node_name} Relay 31" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 9 + mode: + output: true + inverted: false + + - platform: gpio + id: relay_32 + name: "${node_name} Relay 32" + pin: + mcp23xxx: mcp_outputs_17to32 + number: 8 + mode: + output: true + inverted: false diff --git a/boards_v_0_7/relay32_outputs_mix_PCF.yaml b/boards_v_0_7/relay32_outputs_mix_PCF.yaml new file mode 100644 index 0000000..c5ba48d --- /dev/null +++ b/boards_v_0_7/relay32_outputs_mix_PCF.yaml @@ -0,0 +1,367 @@ +# 8 covers (16 outputs for covers) +# 16 outputs as switch +pcf8574: + - id: 'pcf_1' + address: 0x21 + pcf8575: true + i2c_id: bus_b + - id: 'pcf_2' + address: 0x20 + pcf8575: true + i2c_id: bus_b + +switch: + - platform: gpio + id: cover_open_01 + pin: + pcf8574: pcf_1 + number: 15 + mode: + output: true + inverted: true + interlock: &cover_interlock_01 [cover_open_01, cover_close_01] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_01 + pin: + pcf8574: pcf_1 + # Use pin number 1 + number: 14 + mode: + output: true + inverted: true + interlock: *cover_interlock_01 + restore_mode: always off + + - platform: gpio + id: cover_open_02 + pin: + pcf8574: pcf_1 + number: 13 + mode: + output: true + inverted: true + interlock: &cover_interlock_02 [cover_open_02, cover_close_02] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_02 + pin: + pcf8574: pcf_1 + number: 12 + mode: + output: true + inverted: true + interlock: *cover_interlock_02 + restore_mode: always off + + - platform: gpio + id: cover_open_03 + pin: + pcf8574: pcf_1 + number: 11 + mode: + output: true + inverted: true + interlock: &cover_interlock_03 [cover_open_03, cover_close_03] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_03 + pin: + pcf8574: pcf_1 + number: 10 + mode: + output: true + inverted: true + interlock: *cover_interlock_03 + + - platform: gpio + id: cover_open_04 + pin: + pcf8574: pcf_1 + number: 9 + mode: + output: true + inverted: true + interlock: &cover_interlock_04 [cover_open_04, cover_close_04] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_04 + pin: + pcf8574: pcf_1 + number: 8 + mode: + output: true + inverted: true + interlock: *cover_interlock_04 + + - platform: gpio + id: cover_open_05 + pin: + pcf8574: pcf_2 + number: 15 + mode: + output: true + inverted: true + interlock: &cover_interlock_05 [cover_open_05, cover_close_05] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_05 + pin: + pcf8574: pcf_2 + number: 14 + mode: + output: true + inverted: true + interlock: *cover_interlock_05 + + - platform: gpio + id: cover_open_06 + pin: + pcf8574: pcf_2 + number: 13 + mode: + output: true + inverted: true + interlock: &cover_interlock_06 [cover_open_06, cover_close_06] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_06 + pin: + pcf8574: pcf_2 + number: 12 + mode: + output: true + inverted: true + interlock: *cover_interlock_06 + + - platform: gpio + id: cover_open_07 + pin: + pcf8574: pcf_2 + number: 11 + mode: + output: true + inverted: true + interlock: &cover_interlock_07 [cover_open_07, cover_close_07] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_07 + pin: + pcf8574: pcf_2 + number: 10 + mode: + output: true + inverted: true + interlock: *cover_interlock_07 + + - platform: gpio + id: cover_open_08 + pin: + pcf8574: pcf_2 + number: 9 + mode: + output: true + inverted: true + interlock: &cover_interlock_08 [cover_open_08, cover_close_08] + interlock_wait_time: 5ms + restore_mode: always off + + - platform: gpio + id: cover_close_08 + pin: + pcf8574: pcf_2 + number: 8 + mode: + output: true + inverted: true + interlock: *cover_interlock_08 + + - platform: gpio + id: relay_17 + name: 'Relay_17' + pin: + pcf8574: pcf_1 + # Use pin number 15 + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_18 + name: 'Relay_18' + pin: + pcf8574: pcf_1 + # Use pin number 14 + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_19 + name: 'Relay_19' + pin: + pcf8574: pcf_1 + # Use pin number 13 + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_20 + name: 'Relay_20' + pin: + pcf8574: pcf_1 + # Use pin number 12 + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_21 + name: 'Relay_21' + pin: + pcf8574: pcf_1 + # Use pin number 11 + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_22 + name: 'Relay_22' + pin: + pcf8574: pcf_1 + # Use pin number 10 + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_23 + name: 'Relay_23' + pin: + pcf8574: pcf_1 + # Use pin number 9 + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_24 + name: 'Relay_24' + pin: + pcf8574: pcf_1 + # Use pin number 8 + number: 7 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_25 + name: 'Relay_25' + pin: + pcf8574: pcf_2 + # Use pin number 15 + number: 0 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_26 + name: 'Relay_26' + pin: + pcf8574: pcf_2 + # Use pin number 14 + number: 1 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_27 + name: 'Relay_27' + pin: + pcf8574: pcf_2 + # Use pin number 13 + number: 2 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_28 + name: 'Relay_28' + pin: + pcf8574: pcf_2 + # Use pin number 12 + number: 3 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_29 + name: 'Relay_29' + pin: + pcf8574: pcf_2 + # Use pin number 11 + number: 4 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_30 + name: 'Relay_30' + pin: + pcf8574: pcf_2 + # Use pin number 10 + number: 5 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_31 + name: 'Relay_31' + pin: + pcf8574: pcf_2 + # Use pin number 9 + number: 6 + mode: + output: true + inverted: true + + - platform: gpio + id: relay_32 + name: 'Relay_32' + pin: + pcf8574: pcf_2 + # Use pin number 8 + number: 7 + mode: + output: true + inverted: true diff --git a/boneio-lights.yaml b/boneio-lights.yaml index 3e57201..7b5cc8e 100644 --- a/boneio-lights.yaml +++ b/boneio-lights.yaml @@ -31,7 +31,7 @@ packages: files: [ 'devices/buzzer.yaml', - 'devices/display.yaml', +# 'devices/display.yaml', 'devices/i2c.yaml', 'devices/ina219.yaml', 'devices/lm75b.yaml', diff --git a/boneio-lights_v0_7.yaml b/boneio-lights_v0_7.yaml new file mode 100644 index 0000000..7a1cf53 --- /dev/null +++ b/boneio-lights_v0_7.yaml @@ -0,0 +1,154 @@ +substitutions: + name_add_mac_suffix: 'true' + node_name: boneio + +esphome: + name: ${node_name} + platform: ESP32 + board: nodemcu-32s + # set to false if you already added this device to ESPHOME add-on + name_add_mac_suffix: ${name_add_mac_suffix} + project: + name: boneio.32x10-lights + version: '1.0' +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-lights_v0_7.yaml@single_file_test + import_full_config: true + +packages: + internals_packages: + url: https://github.com/boneIO-eu/esphome + ref: single_file_test + files: + [ + 'devices/buzzer.yaml', +# 'devices/display.yaml', + 'devices_v0_7/i2c.yaml', + 'devices/ina219.yaml', + 'devices/lm75b.yaml', + 'devices/one_wire.yaml', + 'devices_v0_7/pcf.yaml', + 'devices/uart_v_0_7.yaml', + 'boards_v_0_7/32x10_outputs.yaml', + ] + +logger: +api: +ota: + password: boneio + +web_server: + port: 80 + local: true + +time: + - platform: homeassistant + timezone: Europe/Warsaw + id: homeassistant_time + +light: + - platform: binary + name: 'OUT 1' + output: out_1 + - platform: binary + name: 'OUT 2' + output: out_2 + - platform: binary + name: 'OUT 3' + output: out_3 + - platform: binary + name: 'OUT 4' + output: out_4 + - platform: binary + name: 'OUT 5' + output: out_5 + - platform: binary + name: 'OUT 6' + output: out_6 + - platform: binary + name: 'OUT 7' + output: out_7 + - platform: binary + name: 'OUT 8' + output: out_8 + - platform: binary + name: 'OUT 9' + output: out_9 + - platform: binary + name: 'OUT 10' + output: out_10 + - platform: binary + name: 'OUT 11' + output: out_11 + - platform: binary + name: 'OUT 12' + output: out_12 + - platform: binary + name: 'OUT 13' + output: out_13 + - platform: binary + name: 'OUT 14' + output: out_14 + - platform: binary + name: 'OUT 15' + output: out_15 + - platform: binary + name: 'OUT 16' + output: out_16 + - platform: binary + name: 'OUT 17' + output: out_17 + - platform: binary + name: 'OUT 18' + output: out_18 + - platform: binary + name: 'OUT 19' + output: out_19 + - platform: binary + name: 'OUT 20' + output: out_20 + - platform: binary + name: 'OUT 21' + output: out_21 + - platform: binary + name: 'OUT 22' + output: out_22 + - platform: binary + name: 'OUT 23' + output: out_23 + - platform: binary + name: 'OUT 24' + output: out_24 + - platform: binary + name: 'OUT 25' + output: out_25 + - platform: binary + name: 'OUT 26' + output: out_26 + - platform: binary + name: 'OUT 27' + output: out_27 + - platform: binary + name: 'OUT 28' + output: out_28 + - platform: binary + name: 'OUT 29' + output: out_29 + - platform: binary + name: 'OUT 30' + output: out_30 + - platform: binary + name: 'OUT 31' + output: out_31 + - platform: binary + name: 'OUT 32' + output: out_32 diff --git a/devices_v0_7/buzzer.yaml b/devices_v0_7/buzzer.yaml new file mode 100644 index 0000000..f91b773 --- /dev/null +++ b/devices_v0_7/buzzer.yaml @@ -0,0 +1,9 @@ +switch: + - platform: gpio + id: buzzer + name: 'Buzzer' + pin: + number: GPIO2 + mode: + output: true + inverted: false diff --git a/devices_v0_7/display.yaml b/devices_v0_7/display.yaml new file mode 100644 index 0000000..a1a5d29 --- /dev/null +++ b/devices_v0_7/display.yaml @@ -0,0 +1,124 @@ +#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 + +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: + # by default display show the first page defined in display (which is the logo page) until full initialization + # after that we show the first_page and start the screensaver script + priority: 0 + then: + - display.page.show: first_page + - component.update: oled_display + - script.execute: screensaver_script + +binary_sensor: + - platform: gpio + entity_category: config + id: boneIO_button + pin: + pcf8574: pcf_inputs_28to35_menu + number: 7 + 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 + + # it.printf(4, 37, id(roboto_9), TextAlign::BASELINE_LEFT ,"IP addr:"); + # it.printf(124, 37, id(roboto_9), TextAlign::BASELINE_RIGHT ,"%s", id(eth).get_ip_addresses().str().c_str()); +display: + - platform: ssd1306_i2c + id: oled_display + model: 'SH1106 128x64' + address: 0x3C + i2c_id: bus_b + contrast: 0.5 + pages: + - id: first_page + lambda: |- + it.rectangle(0, 0, 126, 15); + it.printf(64,11, id(roboto_9), TextAlign::BASELINE_CENTER, "BoneIO"); + it.printf(4, 49, id(roboto_9), TextAlign::BASELINE_LEFT ,"Uptime:"); + it.printf(124, 49, id(roboto_9), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); + it.printf(4, 61, id(roboto_9), TextAlign::BASELINE_LEFT ,"Temperature:"); + it.printf(124, 61, id(roboto_9), 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(roboto_9), TextAlign::BASELINE_CENTER, "BoneIO"); + it.printf(4, 25, id(roboto_9), TextAlign::BASELINE_LEFT ,"Current:"); + it.printf(124, 25, id(roboto_9), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); + it.printf(4, 37, id(roboto_9), TextAlign::BASELINE_LEFT ,"Power:"); + it.printf(124, 37, id(roboto_9), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); + it.printf(4, 49, id(roboto_9), TextAlign::BASELINE_LEFT ,"Bus Volt:"); + it.printf(124, 49, id(roboto_9), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); + it.printf(4, 61, id(roboto_9), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); + it.printf(124, 61, id(roboto_9), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); + - id: screensaver + lambda: |- + it.fill(COLOR_OFF); + +font: + - file: 'gfonts://Roboto' + id: roboto_9 + size: 9 diff --git a/devices_v0_7/i2c.yaml b/devices_v0_7/i2c.yaml new file mode 100644 index 0000000..085fb17 --- /dev/null +++ b/devices_v0_7/i2c.yaml @@ -0,0 +1,6 @@ +i2c: + - id: i2c_bus + sda: GPIO17 + scl: GPIO33 + scan: True + frequency: 400kHz diff --git a/devices_v0_7/ina219.yaml b/devices_v0_7/ina219.yaml new file mode 100644 index 0000000..cde85d2 --- /dev/null +++ b/devices_v0_7/ina219.yaml @@ -0,0 +1,21 @@ +sensor: + # Module power consmption + - platform: ina219 + address: 0x40 + i2c_id: i2c_bus + shunt_resistance: 0.1 ohm + current: + id: ina_current + name: 'INA219 Current' + power: + id: ina_power + name: 'INA219 Power' + bus_voltage: + id: ina_bus_voltage + name: 'INA219 Bus Voltage' + shunt_voltage: + id: ina_shunt_voltage + name: 'INA219 Shunt Voltage' + max_voltage: 32.0V + max_current: 3.2A + update_interval: 30s diff --git a/devices_v0_7/lm75b.yaml b/devices_v0_7/lm75b.yaml new file mode 100644 index 0000000..0495c79 --- /dev/null +++ b/devices_v0_7/lm75b.yaml @@ -0,0 +1,13 @@ +#i2c address: 0x48 output lm75b temp +#LM75B +external_components: + - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75 + components: [lm75] + +sensor: + # Lower board temperature + - platform: lm75 + id: boneIO_temp + name: 'LM75B Temperature' + update_interval: 30s + i2c_id: i2c_bus diff --git a/devices_v0_7/one_wire.yaml b/devices_v0_7/one_wire.yaml new file mode 100644 index 0000000..9aff7a6 --- /dev/null +++ b/devices_v0_7/one_wire.yaml @@ -0,0 +1,15 @@ +dallas: +- pin: GPIO32 + +# sensor: +# - platform: dallas +# address: 0x283c01d607d4df28 +# name: "Dallas Sensor 1" +# +# - platform: dallas +# address: 0xdfe67a061e64ff28 +# name: "Dallas Sensor 2" +# +# - platform: dallas +# address: 0xa7a89f071e64ff28 +# name: "Dallas Sensor 3" diff --git a/devices_v0_7/pcf.yaml b/devices_v0_7/pcf.yaml new file mode 100644 index 0000000..84ebd65 --- /dev/null +++ b/devices_v0_7/pcf.yaml @@ -0,0 +1,21 @@ +pcf8574: + - id: 'pcf_inputs_1to14' + i2c_id: bus_a + address: 0x20 + pcf8575: true + - id: 'pcf_inputs_15to28' + i2c_id: bus_a + address: 0x21 + pcf8575: true + - id: 'pcf_inputs_28to35_menu' + i2c_id: bus_a + address: 0x22 + pcf8575: false + - id: 'pcf_right' + address: 0x23 + pcf8575: true + i2c_id: bus_b + - id: 'pcf_left' + address: 0x24 + pcf8575: true + i2c_id: bus_b diff --git a/devices_v0_7/uart.yaml b/devices_v0_7/uart.yaml new file mode 100644 index 0000000..8ec25b7 --- /dev/null +++ b/devices_v0_7/uart.yaml @@ -0,0 +1,6 @@ +uart: + id: uart_pin3_1 + rx_pin: GPIO3 + tx_pin: GPIO1 + baud_rate: 9600 + stop_bits: 1