diff --git a/boards/cover.yaml b/boards/cover.yaml index 665f6ba..389e3e7 100644 --- a/boards/cover.yaml +++ b/boards/cover.yaml @@ -253,4 +253,4 @@ cover: close_duration: 60s stop_action: - switch.turn_off: cover_open_16 - - switch.turn_off: cover_close_16 \ No newline at end of file + - switch.turn_off: cover_close_16 diff --git a/boards/cover16_inputs_MCP.yaml b/boards/cover16_inputs_MCP.yaml index 298dc3c..e671226 100644 --- a/boards/cover16_inputs_MCP.yaml +++ b/boards/cover16_inputs_MCP.yaml @@ -12,10 +12,10 @@ binary_sensor: inverted: true on_press: then: - cover.open: cover_01 + - cover.open: cover_01 on_release: then: - cover.stop: cover_01 + - cover.stop: cover_01 - platform: gpio name: "${node_name} IN_02" @@ -28,11 +28,9 @@ binary_sensor: pullup: false inverted: true on_press: - then: - cover.close: cover_01 + - cover.close: cover_01 on_release: - then: - cover.stop: cover_01 + - cover.stop: cover_01 - platform: gpio name: "${node_name} IN_03" @@ -68,6 +66,422 @@ binary_sensor: 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 @@ -483,3 +897,4 @@ binary_sensor: on_press: then: - switch.toggle: relay_32 + diff --git a/boards/cover16_inputs_PCF.yaml b/boards/cover16_inputs_PCF.yaml index 74008e1..5a77aa7 100644 --- a/boards/cover16_inputs_PCF.yaml +++ b/boards/cover16_inputs_PCF.yaml @@ -10,7 +10,7 @@ binary_sensor: inverted: true on_press: then: - cover.open: cover_01 + - cover.open: cover_01 on_release: then: cover.stop: cover_01 @@ -63,6 +63,481 @@ binary_sensor: 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 diff --git a/boards/cover16_outputs.yaml b/boards/cover16_outputs_MCP.yaml similarity index 100% rename from boards/cover16_outputs.yaml rename to boards/cover16_outputs_MCP.yaml diff --git a/boards/cover16_outputs_PCF.yaml b/boards/cover16_outputs_PCF.yaml new file mode 100644 index 0000000..49f86b7 --- /dev/null +++ b/boards/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/coverMix_inputs_PCF.yaml b/boards/coverMix_inputs_PCF.yaml new file mode 100644 index 0000000..86461a6 --- /dev/null +++ b/boards/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/cover_mix.yaml b/boards/cover_mix.yaml new file mode 100644 index 0000000..9d310d9 --- /dev/null +++ b/boards/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/relay24_inputs_PCF.yaml b/boards/relay24_inputs_PCF.yaml new file mode 100644 index 0000000..c559fb5 --- /dev/null +++ b/boards/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/relay24_outputs_MCP.yaml b/boards/relay24_outputs_MCP.yaml new file mode 100644 index 0000000..0ea266f --- /dev/null +++ b/boards/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/relay32_outputs_mix_PCF.yaml b/boards/relay32_outputs_mix_PCF.yaml new file mode 100644 index 0000000..c5ba48d --- /dev/null +++ b/boards/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_config_for_console.yaml b/boneio_config_for_console.yaml index 0015cf8..d921447 100644 --- a/boneio_config_for_console.yaml +++ b/boneio_config_for_console.yaml @@ -1,30 +1,40 @@ substitutions: + # set to false if you don't want mac suffix in your device name + name_add_mac_suffix: 'false' + # if you want to change the name of device via OTA you have to set IP first in boneio/devices/wt32_eth01.yaml node_name: boneio dir_name: './' packages: - # devices + # select your input board: + # input: !include boards/relay24_inputs_PCF.yaml + # input: !include boards/relay32_inputs_PCF.yaml + # input: !include boards/relay32_inputs_MCP.yaml + # input: !include boards/dimmer_led8x4_inputs.yaml + # input: !include boards/cover16_inputs_MCP.yaml + # input: !include boards/cover16_inputs_PCF.yaml + input: !include boards/coverMix_inputs_PCF.yaml + + # select your output board: + # output: !include boards/relay24_outputs_MCP.yaml + # output: !include boards/relay32_outputs_PCF.yaml + # output: !include boards/relay32_outputs_MCP.yaml + # output: !include boards/dimmer_led8x4_outputs.yaml + # light: !include boards/monochromatic_lights.yaml + # cover: !include boards/cover.yaml + cover: !include boards/cover_mix.yaml + # output: !include boards/cover16_outputs_PCF.yaml + # output: !include boards/cover16_outputs_MCP.yaml + # output: !include boards/mosfet48_outputs_PCF.yaml + output: !include boards/relay32_outputs_mix_PCF.yaml + + # select your devices: core: !include devices/wt32_eth01.yaml internals: !include devices/boneio_board.yaml temp: !include devices/lm75b.yaml display: !include devices/display.yaml # uart: !include devices/uart.yaml # one_wire: !include devices/one_wire.yaml - # relay32 - # output: !include boards/relay32_outputs_PCF.yaml #or MCP - # input: !include boards/relay32_inputs_PCF.yaml #or MCP - # dimmer led - output: !include boards/dimmer_led8x4_outputs.yaml - # input: !include boards/dimmer_led8x4_inputs.yaml - light: !include boards/monochromatic_lights.yaml - # cover - # output: !include boneio/boards/cover16_outputs_MCP_old.yaml - # output: !include boneio/boards/cover16_outputs.yaml - # input: !include boneio/boards/cover16_inputs.yaml - # input: !include boneio/boards/cover16_inputs_PCF.yaml - # cover: !include boneio/boards/cover.yaml - # mosfet - # output: !include boards/mosfet48_outputs_PCF.yaml logger: baud_rate: 0 diff --git a/boneio_config_for_esphome_addon.yaml b/boneio_config_for_esphome_addon.yaml index 11e0f53..ab0fc17 100644 --- a/boneio_config_for_esphome_addon.yaml +++ b/boneio_config_for_esphome_addon.yaml @@ -1,32 +1,41 @@ substitutions: + # set to false if you don't want mac suffix in your device name + name_add_mac_suffix: 'false' + # if you want to change the name of device via OTA you have to set IP first in boneio/devices/wt32_eth01.yaml node_name: boneio dir_name: 'boneio/' packages: - # devices + # select your input board: + # input: !include boneio/boards/relay24_inputs_PCF.yaml + # input: !include boneio/boards/relay32_inputs_PCF.yaml + # input: !include boneio/boards/relay32_inputs_MCP.yaml + # input: !include boneio/boards/dimmer_led8x4_inputs.yaml + # input: !include boneio/boards/cover16_inputs_MCP.yaml + # input: !include boneio/boards/cover16_inputs_PCF.yaml + # input: !include boneio/boards/coverMix_inputs_PCF.yaml + + # select your output board: + # output: !include boneio/boards/relay24_outputs_MCP.yaml + output: !include boneio/boards/relay32_outputs_PCF.yaml + # output: !include boneio/boards/relay32_outputs_MCP.yaml + # output: !include boneio/boards/dimmer_led8x4_outputs.yaml + # light: !include boneio/boards/monochromatic_lights.yaml + # cover: !include boneio/boards/cover.yaml + # cover: !include boneio/boards/cover_mix.yaml + # output: !include boneio/boards/cover16_outputs_PCF.yaml + # output: !include boneio/boards/cover16_outputs_MCP.yaml + # output: !include boneio/mosfet48_outputs_PCF.yaml + # output: !include boneio/relay32_outputs_mix_PCF.yaml + + # select your devices: core: !include boneio/devices/wt32_eth01.yaml internals: !include boneio/devices/boneio_board.yaml temp: !include boneio/devices/lm75b.yaml display: !include boneio/devices/display.yaml # uart: !include devices/uart.yaml # one_wire: !include devices/one_wire.yaml - # relay32 - output: !include boneio/boards/relay32_outputs_PCF.yaml - #output: !include boneio/boards/relay32_outputs_MCP.yaml - input: !include boneio/boards/relay32_inputs_PCF.yaml - #input: !include boneio/boards/relay32_inputs_MCP.yaml - # dimmer led - # output: !include boneio/boards/dimmer_led8x4_outputs.yaml - # input: !include boneio/boards/dimmer_led8x4_inputs.yaml - # light: !include boneio/boards/monochromatic_lights.yaml - # cover - # output: !include boneio/boards/cover16_outputs_MCP_old.yaml - # output: !include boneio/boards/cover16_outputs.yaml - # input: !include boneio/boards/cover16_inputs.yaml - # input: !include boneio/boards/cover16_inputs_PCF.yaml - # cover: !include boneio/boards/cover.yaml - # mosfet - # output: !include boards/mosfet48_outputs_PCF.yaml + logger: baud_rate: 0 diff --git a/cover_32x10A_board.yaml b/cover_32x10A_board.yaml deleted file mode 100644 index 1b7c132..0000000 --- a/cover_32x10A_board.yaml +++ /dev/null @@ -1,1322 +0,0 @@ -esphome: - name: cover-board-v0-1 - -esp32: - board: esp32dev - framework: - type: arduino - -external_components: - - source: github://ell249/esphome-PCT2075@master - components: [ pct2075 ] - -ethernet: - id: eth - type: LAN8720 - mdc_pin: GPIO23 - mdio_pin: GPIO18 - clk_mode: GPIO0_IN - phy_addr: 1 - power_pin: GPIO16 - - -i2c: - sda: GPIO14 - scl: GPIO15 - scan: True - frequency: 100kHz - -logger: - baud_rate: 0 -api: -ota: -web_server: - port: 80 - -time: - - platform: ds1307 - id: ds1307_time - - - platform: homeassistant - # instead try to synchronize via network repeatedly ... - on_time_sync: - then: - # ... and update the RTC when the synchronization was successful - ds1307.write_time: - - -mcp23017: - - id: 'mcp_1' - address: 0x26 - - id: 'mcp_2' - address: 0x27 - - id: 'mcp_3' - address: 0x21 - - id: 'mcp_4' - address: 0x20 - -uart: - - id: modbus_serial - rx_pin: GPIO3 - tx_pin: GPIO1 - baud_rate: 9600 - stop_bits: 1 - -#modbus: - - #flow_control_pin: 5 - #id: modbus1 - #uart_id: modbus_serial - -#modbus_controller: - - # - id: edpbox - # update_interval: 31s - # address: 0x1 - # command_throttle: 150ms - # setup_priority: -10 - -switch: - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 0 - mode: OUTPUT - inverted: false - id: relay1 - interlock: &interlock_1 [relay1, relay2] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 1 - mode: OUTPUT - inverted: false - id: relay2 - interlock: *interlock_1 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 2 - mode: OUTPUT - inverted: false - id: relay3 - interlock: &interlock_2 [relay3, relay4] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 3 - mode: OUTPUT - inverted: false - id: relay4 - interlock: *interlock_2 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 4 - mode: OUTPUT - inverted: false - id: relay5 - interlock: &interlock_3 [relay5, relay6] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 5 - mode: OUTPUT - inverted: false - id: relay6 - interlock: *interlock_3 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 6 - mode: OUTPUT - inverted: false - id: relay7 - interlock: &interlock_4 [relay7, relay8] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 7 - mode: OUTPUT - inverted: false - id: relay8 - interlock: *interlock_4 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 8 - mode: OUTPUT - inverted: false - id: relay9 - interlock: &interlock_5 [relay9, relay10] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 9 - mode: OUTPUT - inverted: false - id: relay10 - interlock: *interlock_5 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 10 - mode: OUTPUT - inverted: false - id: relay11 - interlock: &interlock_6 [relay11, relay12] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 11 - mode: OUTPUT - inverted: false - id: relay12 - interlock: *interlock_6 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 12 - mode: OUTPUT - inverted: false - id: relay13 - interlock: &interlock_7 [relay13, relay14] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 13 - mode: OUTPUT - inverted: false - id: relay14 - interlock: *interlock_7 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 14 - mode: OUTPUT - inverted: false - id: relay15 - interlock: &interlock_8 [relay15, relay16] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_3 - number: 15 - mode: OUTPUT - inverted: false - id: relay16 - interlock: *interlock_8 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 0 - mode: OUTPUT - inverted: false - id: relay17 - interlock: &interlock_9 [relay17, relay18] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 1 - mode: OUTPUT - inverted: false - id: relay18 - interlock: *interlock_9 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 2 - mode: OUTPUT - inverted: false - id: relay19 - interlock: &interlock_10 [relay19, relay20] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 3 - mode: OUTPUT - inverted: false - id: relay20 - interlock: *interlock_10 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 4 - mode: OUTPUT - inverted: false - id: relay21 - interlock: &interlock_11 [relay21, relay22] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 5 - mode: OUTPUT - inverted: false - id: relay22 - interlock: *interlock_11 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 6 - mode: OUTPUT - inverted: false - id: relay23 - interlock: &interlock_12 [relay23, relay24] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 7 - mode: OUTPUT - inverted: false - id: relay24 - interlock: *interlock_12 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 8 - mode: OUTPUT - inverted: false - id: relay25 - interlock: &interlock_13 [relay25, relay26] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 9 - mode: OUTPUT - inverted: false - id: relay26 - interlock: *interlock_13 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 10 - mode: OUTPUT - inverted: false - id: relay27 - interlock: &interlock_14 [relay27, relay28] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 11 - mode: OUTPUT - inverted: false - id: relay28 - interlock: *interlock_14 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 12 - mode: OUTPUT - inverted: false - id: relay29 - interlock: &interlock_15 [relay29, relay30] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 13 - mode: OUTPUT - inverted: false - id: relay30 - interlock: *interlock_15 - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 14 - mode: OUTPUT - inverted: false - id: relay31 - interlock: &interlock_16 [relay31, relay32] - interlock_wait_time: 200ms - - platform: gpio - pin: - mcp23xxx: mcp_4 - number: 15 - mode: OUTPUT - inverted: false - id: relay32 - interlock: *interlock_16 - interlock_wait_time: 200ms - - - - -cover: - - platform: time_based - name: "Cover_01" - id: cover_01 - assumed_state: false - open_action: - - switch.turn_on: relay1 - open_duration: 30s - close_action: - - switch.turn_on: relay2 - close_duration: 30s - stop_action: - - switch.turn_off: relay1 - - switch.turn_off: relay2 - - platform: time_based - name: "Cover_02" - id: cover_02 - assumed_state: false - open_action: - - switch.turn_on: relay3 - open_duration: 30s - close_action: - - switch.turn_on: relay4 - close_duration: 30s - stop_action: - - switch.turn_off: relay3 - - switch.turn_off: relay4 - - platform: time_based - name: "Cover_03" - id: cover_03 - assumed_state: false - open_action: - - switch.turn_on: relay5 - open_duration: 30s - close_action: - - switch.turn_on: relay6 - close_duration: 30s - stop_action: - - switch.turn_off: relay5 - - switch.turn_off: relay6 - - platform: time_based - name: "Cover_04" - id: cover_04 - assumed_state: false - open_action: - - switch.turn_on: relay7 - open_duration: 30s - close_action: - - switch.turn_on: relay8 - close_duration: 30s - stop_action: - - switch.turn_off: relay7 - - switch.turn_off: relay8 - - platform: time_based - name: "Cover_05" - id: cover_05 - assumed_state: false - open_action: - - switch.turn_on: relay9 - open_duration: 30s - close_action: - - switch.turn_on: relay10 - close_duration: 30s - stop_action: - - switch.turn_off: relay9 - - switch.turn_off: relay10 - - platform: time_based - name: "Cover_06" - id: cover_06 - assumed_state: false - open_action: - - switch.turn_on: relay11 - open_duration: 30s - close_action: - - switch.turn_on: relay12 - close_duration: 30s - stop_action: - - switch.turn_off: relay11 - - switch.turn_off: relay12 - - platform: time_based - name: "Cover_07" - id: cover_07 - assumed_state: false - open_action: - - switch.turn_on: relay13 - open_duration: 30s - close_action: - - switch.turn_on: relay14 - close_duration: 30s - stop_action: - - switch.turn_off: relay13 - - switch.turn_off: relay14 - - platform: time_based - name: "Cover_08" - id: cover_08 - assumed_state: false - open_action: - - switch.turn_on: relay15 - open_duration: 30s - close_action: - - switch.turn_on: relay16 - close_duration: 30s - stop_action: - - switch.turn_off: relay15 - - switch.turn_off: relay16 - - platform: time_based - name: "Cover_09" - id: cover_09 - assumed_state: false - open_action: - - switch.turn_on: relay17 - open_duration: 30s - close_action: - - switch.turn_on: relay18 - close_duration: 30s - stop_action: - - switch.turn_off: relay17 - - switch.turn_off: relay18 - - platform: time_based - name: "Cover_10" - id: cover_10 - assumed_state: false - open_action: - - switch.turn_on: relay19 - open_duration: 30s - close_action: - - switch.turn_on: relay20 - close_duration: 30s - stop_action: - - switch.turn_off: relay19 - - switch.turn_off: relay20 - - platform: time_based - name: "Cover_11" - id: cover_11 - assumed_state: false - open_action: - - switch.turn_on: relay21 - open_duration: 30s - close_action: - - switch.turn_on: relay22 - close_duration: 30s - stop_action: - - switch.turn_off: relay21 - - switch.turn_off: relay22 - - platform: time_based - name: "Cover_12" - id: cover_12 - assumed_state: false - open_action: - - switch.turn_on: relay23 - open_duration: 35s - close_action: - - switch.turn_on: relay24 - close_duration: 29s - stop_action: - - switch.turn_off: relay23 - - switch.turn_off: relay24 - - platform: time_based - name: "Cover_13" - id: cover_13 - assumed_state: false - open_action: - - switch.turn_on: relay25 - open_duration: 35s - close_action: - - switch.turn_on: relay26 - close_duration: 29s - stop_action: - - switch.turn_off: relay25 - - switch.turn_off: relay26 - - platform: time_based - name: "Cover_14" - id: cover_14 - assumed_state: false - open_action: - - switch.turn_on: relay27 - open_duration: 35s - close_action: - - switch.turn_on: relay28 - close_duration: 29s - stop_action: - - switch.turn_off: relay27 - - switch.turn_off: relay28 - - platform: time_based - name: "Cover_15" - id: cover_15 - assumed_state: false - open_action: - - switch.turn_on: relay29 - open_duration: 35s - close_action: - - switch.turn_on: relay30 - close_duration: 29s - stop_action: - - switch.turn_off: relay29 - - switch.turn_off: relay30 - - platform: time_based - name: "Cover_16" - id: cover_16 - assumed_state: false - open_action: - - switch.turn_on: relay31 - open_duration: 17s - close_action: - - switch.turn_on: relay32 - close_duration: 14s - stop_action: - - switch.turn_off: relay31 - - switch.turn_off: relay32 - - - - -binary_sensor: - - - platform: gpio - name: "IN_01" - pin: - mcp23xxx: mcp_1 - number: 0 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_01 - on_release: - cover.stop: cover_01 - - platform: gpio - name: "IN_02" - pin: - mcp23xxx: mcp_1 - number: 1 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_01 - on_release: - cover.stop: cover_01 - - platform: gpio - name: "IN_03" - pin: - mcp23xxx: mcp_1 - number: 2 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_02 - on_release: - cover.stop: cover_02 - - platform: gpio - name: "IN_04" - pin: - mcp23xxx: mcp_1 - number: 3 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_02 - on_release: - cover.stop: cover_02 - - platform: gpio - name: "IN_05" - pin: - mcp23xxx: mcp_1 - number: 4 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_03 - on_release: - cover.stop: cover_03 - - platform: gpio - name: "IN_06" - pin: - mcp23xxx: mcp_1 - number: 5 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_03 - on_release: - cover.stop: cover_03 - - platform: gpio - name: "IN_07" - pin: - mcp23xxx: mcp_1 - number: 6 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_04 - on_release: - cover.stop: cover_04 - - platform: gpio - name: "IN_08" - pin: - mcp23xxx: mcp_1 - number: 7 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_04 - on_release: - cover.stop: cover_04 - - platform: gpio - name: "IN_09" - pin: - mcp23xxx: mcp_1 - number: 8 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_05 - on_release: - cover.stop: cover_05 - - platform: gpio - name: "IN_10" - pin: - mcp23xxx: mcp_1 - number: 9 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_05 - on_release: - cover.stop: cover_05 - - platform: gpio - name: "IN_11" - pin: - mcp23xxx: mcp_1 - number: 10 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_06 - on_release: - cover.stop: cover_06 - - platform: gpio - name: "IN_12" - pin: - mcp23xxx: mcp_1 - number: 11 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_06 - on_release: - cover.stop: cover_06 - - platform: gpio - name: "IN_13" - pin: - mcp23xxx: mcp_1 - number: 12 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_07 - on_release: - cover.stop: cover_07 - - platform: gpio - name: "IN_14" - pin: - mcp23xxx: mcp_1 - number: 13 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_07 - on_release: - cover.stop: cover_07 - - platform: gpio - name: "IN_15" - pin: - mcp23xxx: mcp_1 - number: 14 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_08 - on_release: - cover.stop: cover_08 - - platform: gpio - name: "IN_16" - pin: - mcp23xxx: mcp_1 - number: 15 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_08 - on_release: - cover.stop: cover_08 - - platform: gpio - name: "IN_17" - pin: - mcp23xxx: mcp_2 - number: 7 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_09 - on_release: - cover.stop: cover_09 - - platform: gpio - name: "IN_18" - pin: - mcp23xxx: mcp_2 - number: 6 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_09 - on_release: - cover.stop: cover_09 - - platform: gpio - name: "IN_19" - pin: - mcp23xxx: mcp_2 - number: 5 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_10 - on_release: - cover.stop: cover_10 - - platform: gpio - name: "IN_20" - pin: - mcp23xxx: mcp_2 - number: 4 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_10 - on_release: - cover.stop: cover_10 - - platform: gpio - name: "IN_21" - pin: - mcp23xxx: mcp_2 - number: 3 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_11 - on_release: - cover.stop: cover_11 - - platform: gpio - name: "IN_22" - pin: - mcp23xxx: mcp_2 - number: 2 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_11 - on_release: - cover.stop: cover_11 - - platform: gpio - name: "IN_23" - pin: - mcp23xxx: mcp_2 - number: 1 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.open: cover_12 - on_release: - cover.stop: cover_12 - - platform: gpio - name: "IN_24" - pin: - mcp23xxx: mcp_2 - number: 0 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - cover.close: cover_12 - on_release: - cover.stop: cover_12 - - platform: gpio - name: "IN_25" - pin: - mcp23xxx: mcp_2 - number: 8 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_13).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_13).is_fully_closed()) { - id(cover_13).open(); - } else { - id(cover_13).open(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_13).stop(); - } -# cover.open: cover_13 -# on_release: -# cover.stop: cover_13 - - platform: gpio - name: "IN_26" - pin: - mcp23xxx: mcp_2 - number: 9 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_13).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_13).is_fully_closed()) { - id(cover_13).open(); - } else { - id(cover_13).close(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_13).stop(); - } -# cover.close: cover_13 -# on_release: -# cover.stop: cover_13 - - platform: gpio - name: "IN_27" - pin: - mcp23xxx: mcp_2 - number: 10 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_14).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_14).is_fully_closed()) { - id(cover_14).open(); - } else { - id(cover_14).open(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_14).stop(); - } -# cover.open: cover_14 -# on_release: -# cover.stop: cover_14 - - platform: gpio - name: "IN_28" - pin: - mcp23xxx: mcp_2 - number: 11 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_14).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_14).is_fully_closed()) { - id(cover_14).open(); - } else { - id(cover_14).close(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_14).stop(); - } -# cover.close: cover_14 -# on_release: -# cover.stop: cover_14 - - platform: gpio - name: "IN_29" - pin: - mcp23xxx: mcp_2 - number: 12 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_15).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_15).is_fully_closed()) { - id(cover_15).open(); - } else { - id(cover_15).open(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_15).stop(); - } -# cover.open: cover_15 -# on_release: -# cover.stop: cover_15 - - platform: gpio - name: "IN_30" - pin: - mcp23xxx: mcp_2 - number: 13 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_15).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_15).is_fully_closed()) { - id(cover_15).open(); - } else { - id(cover_15).close(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_15).stop(); - } -# cover.close: cover_15 -# on_release: -# cover.stop: cover_15 - - platform: gpio - name: "IN_31" - pin: - mcp23xxx: mcp_2 - number: 14 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_16).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_16).is_fully_closed()) { - id(cover_16).open(); - } else { - id(cover_16).open(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_16).stop(); - } -# - cover.toggle: cover_16 -# else: -# - cover.stop: cover_16 - - - platform: gpio - name: "IN_32" - pin: - mcp23xxx: mcp_2 - number: 15 - mode: - input: true - pullup: false - inverted: true - on_press: - then: - # logic for cycling through movements: open->stop->close->stop->... - - lambda: | - if (id(cover_16).current_operation == COVER_OPERATION_IDLE) { - // Cover is idle, check current state and either open or close cover. - if (id(cover_16).is_fully_closed()) { - id(cover_16).open(); - } else { - id(cover_16).close(); - } - } else { - // Cover is opening/closing. Stop it. - id(cover_16).stop(); - } -# - cover.toggle: cover_16 -# - cover.stop: cover_16 - - - - platform: gpio - name: "IN_33" - pin: - number: GPIO33 - mode: - input: true - pullup: false - inverted: true - - - platform: gpio - name: "IN_34" - pin: - number: GPIO17 - mode: - input: true - pullup: false - inverted: true - - - platform: gpio - name: "IN_35" - pin: - number: GPIO12 - mode: - input: true - pullup: true - inverted: false - - - platform: gpio - name: "USER_SWITCH" - pin: - number: GPIO4 - mode: - input: true - pullup: true - inverted: true - on_press: - then: - - display.page.show_next: oled_display - - component.update: oled_display - - - -text_sensor: - - platform: template - name: ${node_name} Uptime - id: wt32_uptime - entity_category: diagnostic - icon: mdi:clock-start - - platform: template - name: "${node_name} IP" - id: ip_address - entity_category: diagnostic - icon: "mdi:ip-network" - lambda: return { id(eth).get_ip_address().str() }; - update_interval: 60s - -#dallas: -# - pin: GPIO32 - -sensor: - - platform: pct2075 - temperature: - id: led_temp - name: "${node_name} LM75B Temperature" - update_interval: 30s - - platform: uptime - name: ${node_name} uptime text - id: wt32_uptime_sensor - update_interval: 60s - on_raw_value: - then: - - text_sensor.template.publish: - id: wt32_uptime - state: !lambda |- - int seconds = round(id(wt32_uptime_sensor).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(); - - - -# - platform: mcp9808 -# name: "MCP9808 temp" -# update_interval: 60s - -# - platform: dallas -# address: 0x283c01d607d4df28 -# name: "Dallas Sensor 1" - -# - platform: dallas -# address: 0xdfe67a061e64ff28 -# name: "Dallas Sensor 2" - -# - platform: dallas -# address: 0xa7a89f071e64ff28 -# name: "Dallas Sensor 3" - - - - platform: ina219 - address: 0x40 - shunt_resistance: 0.1 ohm - current: - id: ina_current - name: "${node_name} INA219 Current" - power: - id: ina_power - name: "${node_name} INA219 Power" - bus_voltage: - id: ina_bus_voltage - name: "${node_name} INA219 Bus Voltage" - shunt_voltage: - id: ina_shunt_voltage - name: "${node_name} INA219 Shunt Voltage" - max_voltage: 32.0V - max_current: 3.2A - update_interval: 30s - - -# pin: GPIO36 -# name: "ADC_1" -# update_interval: 5s - -# - platform: adc -# pin: GPIO39 -# name: "ADC_2" -# update_interval: 5s - - -display: - - platform: ssd1306_i2c - id: oled_display - model: "SH1106 128x64" - address: 0x3C - contrast: 0.5 - pages: - - id: page1 - lambda: |- - it.printf(64,25, id(danube), TextAlign::BASELINE_CENTER, "boneIO"); - it.printf(64,40, id(fontSmall), TextAlign::BASELINE_CENTER, "take control"); - it.printf(64,50, id(fontSmall), TextAlign::BASELINE_CENTER, "of your home"); - - id: page2 - lambda: |- - it.rectangle(0, 0, 126, 15); - it.printf(64,12, id(danube1), TextAlign::BASELINE_CENTER, "BoneIO"); - it.strftime(64, 26, id(fontSmall), TextAlign::BASELINE_CENTER ,"%c", id(ds1307_time).now()); - it.printf(4, 38, id(fontSmall), TextAlign::BASELINE_LEFT ,"IP addr:"); - it.printf(124, 38, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str()); - it.printf(4, 50, id(fontSmall), TextAlign::BASELINE_LEFT ,"Uptime:"); - it.printf(124, 50, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); - it.printf(4, 62, id(fontSmall), TextAlign::BASELINE_LEFT ,"Temperature:"); - it.printf(124, 62, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(led_temp).state); - - id: page3 - lambda: |- - it.rectangle(0, 0, 126, 15); - it.printf(64,12, id(danube1), TextAlign::BASELINE_CENTER, "BoneIO"); - it.printf(4, 26, id(fontSmall), TextAlign::BASELINE_LEFT ,"Current:"); - it.printf(124, 26, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state); - it.printf(4, 38, id(fontSmall), TextAlign::BASELINE_LEFT ,"Power:"); - it.printf(124, 38, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state); - it.printf(4, 50, id(fontSmall), TextAlign::BASELINE_LEFT ,"Bus Volt:"); - it.printf(124, 50, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state); - it.printf(4, 62, id(fontSmall), TextAlign::BASELINE_LEFT ,"Shunt Volt:"); - it.printf(124, 62, id(fontSmall), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state); - -font: - - file: "fonts/DejaVuSans.ttf" - id: fontSmall - size: 9 - - file: "fonts/danube__.ttf" - id: danube - size: 20 - - file: "fonts/danube__.ttf" - id: danube1 - size: 9 diff --git a/devices/display.yaml b/devices/display.yaml index a651678..992233f 100644 --- a/devices/display.yaml +++ b/devices/display.yaml @@ -30,7 +30,7 @@ text_sensor: script: - id: screensaver_script - # screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked + # 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 @@ -63,7 +63,7 @@ binary_sensor: # 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 + # 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 @@ -71,7 +71,7 @@ binary_sensor: else: - if: condition: - # on the screensaver, show the logo for a while and display the first page + # on the screensaver, show the logo for a while and display the first page display.is_displaying_page: screensaver then: - display.page.show: logo_page @@ -80,16 +80,18 @@ binary_sensor: - display.page.show: first_page - component.update: oled_display else: - # not the last page and screensaver go to the next page + # 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(dejaVuSmall), TextAlign::BASELINE_LEFT ,"IP addr:"); + # it.printf(124, 37, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%s", id(eth).get_ip_addresses().str().c_str()); display: - platform: ssd1306_i2c id: oled_display - model: "SH1106 128x64" + model: 'SH1106 128x64' address: 0x3C i2c_id: bus_b contrast: 0.5 @@ -104,8 +106,6 @@ display: it.rectangle(0, 0, 126, 15); it.printf(64,11, id(danubeSmall), TextAlign::BASELINE_CENTER, "BoneIO"); it.strftime(64, 25, id(dejaVuSmall), TextAlign::BASELINE_CENTER ,"%c", id(ds1307_time).now()); - it.printf(4, 37, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"IP addr:"); - it.printf(124, 37, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%s", id(eth).get_ip_address().str().c_str()); it.printf(4, 49, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"Uptime:"); it.printf(124, 49, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str()); it.printf(4, 61, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"Temperature:"); @@ -128,12 +128,12 @@ display: it.fill(COLOR_OFF); font: - - file: "${dir_name}/fonts/DejaVuSans.ttf" + - file: '${dir_name}/fonts/DejaVuSans.ttf' id: dejaVuSmall size: 9 - - file: "${dir_name}/fonts/danube__.ttf" + - file: '${dir_name}/fonts/danube__.ttf' id: danubeBig size: 20 - - file: "${dir_name}/fonts/danube__.ttf" + - file: '${dir_name}/fonts/danube__.ttf' id: danubeSmall size: 9 diff --git a/devices/one_wire.yaml b/devices/one_wire.yaml index ff9b1af..9aff7a6 100644 --- a/devices/one_wire.yaml +++ b/devices/one_wire.yaml @@ -1,5 +1,5 @@ dallas: -- pin: GPIO4 +- pin: GPIO32 # sensor: # - platform: dallas diff --git a/devices/wt32_eth01.yaml b/devices/wt32_eth01.yaml index b10db76..31f5bfb 100644 --- a/devices/wt32_eth01.yaml +++ b/devices/wt32_eth01.yaml @@ -1,8 +1,3 @@ -esphome: - name: ${node_name} - platform: ESP32 - board: nodemcu-32s - i2c: - id: bus_a sda: GPIO14 @@ -15,6 +10,13 @@ i2c: scan: True frequency: 400kHz +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} + ethernet: id: eth type: LAN8720 @@ -23,3 +25,6 @@ ethernet: clk_mode: GPIO0_IN phy_addr: 1 power_pin: GPIO16 + + # uncomment this line and set your actual IP address before changing name of device + # use_address: xxx.xxx.xxx.xxx