modular config

This commit is contained in:
Bartłomiej Tomala
2022-09-19 19:57:58 +02:00
parent 016c277e99
commit 15a1223be7
15 changed files with 2793 additions and 0 deletions

103
boards/cover.yaml Executable file
View File

@@ -0,0 +1,103 @@
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
tilt_action:
- cover.close: this cover
- delay: 2s
- switch.turn_on: open_cover_switch
- lambda: |- wyliczenie czasu z zadanej pozycji
- delay: X
- switch.turn_off: open_cover_switch
- 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

485
boards/cover16_inputs.yaml Executable file
View File

@@ -0,0 +1,485 @@
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:
then:
cover.close: cover_01
on_release:
then:
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

297
boards/cover16_outputs.yaml Executable file
View File

@@ -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

559
boards/dimmer_led8x4_inputs.yaml Executable file
View File

@@ -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

140
boards/dimmer_led8x4_outputs.yaml Executable file
View File

@@ -0,0 +1,140 @@
# i2c address: 0x41 output pca pwm
# i2c address: 0x42 output pca pwm
pca9685:
- address: 0x41
id: pca_hub_1to16
frequency: 500
- address: 0x42
id: pca_hub_17to32
frequency: 500
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

161
boards/monochromatic_lights.yaml Executable file
View File

@@ -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

455
boards/relay32_inputs.yaml Executable file
View File

@@ -0,0 +1,455 @@
#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_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

327
boards/relay32_outputs.yaml Executable file
View File

@@ -0,0 +1,327 @@
mcp23017:
- id: 'mcp_outputs_1to16'
address: 0x21
- id: 'mcp_outputs_17to32'
address: 0x20
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

42
boneIOsample.yml Normal file
View File

@@ -0,0 +1,42 @@
substitutions:
node_name: boneio
packages:
# 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.yaml
# input: !include boards/relay32_inputs.yaml
# 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 boards/cover16_outputs.yaml
# input: !include boards/cover16_inputs.yaml
cover: !include boards/cover.yaml
logger:
baud_rate: 0
api:
ota:
password: secret_ota_password
# disable web server - for testing only
web_server:
port: 80
local: true
time:
- platform: homeassistant
timezone: Europe/Warsaw
id: homeassistant_time
# instead try to synchronize via network repeatedly ...
on_time_sync:
then:
# ... and update the RTC when the synchronization was successful
ds1307.write_time:

34
devices/boneio_board.yaml Executable file
View File

@@ -0,0 +1,34 @@
#i2c address: 0x26 input mcp io
#i2c address: 0x27 input mcp io
#i2c address: 0x40 input ina219 power
#i2c address: 0x68 input rtc ds1307
time:
- platform: ds1307
id: ds1307_time
sensor:
# Module power consmption
- 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
mcp23017:
- id: 'mcp_inputs_1to16'
address: 0x26
- id: 'mcp_inputs_17to32'
address: 0x27

138
devices/display.yaml Executable file
View File

@@ -0,0 +1,138 @@
#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: ${node_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:
number: GPIO4
mode:
input: true
pullup: 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: logo_page
- component.update: oled_display
- delay: 500ms
- display.page.show: first_page
- component.update: oled_display
else:
# not the last page and screensaver go to the next page
- display.page.show_next: oled_display
- component.update: oled_display
# restart screensaver script
- script.execute: screensaver_script
display:
- platform: ssd1306_i2c
id: oled_display
model: "SH1106 128x64"
address: 0x3C
contrast: 0.5
pages:
- id: logo_page
lambda: |-
it.printf(64,25, id(danubeBig), TextAlign::BASELINE_CENTER, "BoneIO");
it.printf(64,40, id(dejaVuSmall), TextAlign::BASELINE_CENTER, "take control");
it.printf(64,50, id(dejaVuSmall), TextAlign::BASELINE_CENTER, "of your home");
- id: first_page
lambda: |-
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:");
it.printf(124, 61, id(dejaVuSmall), 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(danubeSmall), TextAlign::BASELINE_CENTER, "BoneIO");
it.printf(4, 25, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"Current:");
it.printf(124, 25, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state);
it.printf(4, 37, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"Power:");
it.printf(124, 37, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state);
it.printf(4, 49, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"Bus Volt:");
it.printf(124, 49, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state);
it.printf(4, 61, id(dejaVuSmall), TextAlign::BASELINE_LEFT ,"Shunt Volt:");
it.printf(124, 61, id(dejaVuSmall), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state);
- id: screensaver
lambda: |-
it.fill(COLOR_OFF);
font:
- file: "fonts/DejaVuSans.ttf"
id: dejaVuSmall
size: 9
- file: "fonts/danube__.ttf"
id: danubeBig
size: 20
- file: "fonts/danube__.ttf"
id: danubeSmall
size: 9

12
devices/lm75b.yaml Normal file
View File

@@ -0,0 +1,12 @@
#i2c address: 0x48 output lm75b temp
#LM75B
external_components:
- source: github://btomala/esphome-LM75@v1.0
components: [ lm75 ]
sensor:
# Lower board temperature
- platform: lm75
id: boneIO_temp
name: "${node_name} LM75B Temperature"
update_interval: 30s

15
devices/one_wire.yaml Executable file
View File

@@ -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"

6
devices/uart.yaml Executable file
View File

@@ -0,0 +1,6 @@
uart:
id: uart
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 9600
stop_bits: 1

19
devices/wt32_eth01.yaml Executable file
View File

@@ -0,0 +1,19 @@
esphome:
name: ${node_name}
platform: ESP32
board: nodemcu-32s
i2c:
sda: GPIO14
scl: GPIO15
scan: True
frequency: 100kHz
ethernet:
id: eth
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO0_IN
phy_addr: 1
power_pin: GPIO16