mirror of
https://github.com/boneIO-eu/esphome.git
synced 2026-04-10 20:50:02 +02:00
1291 lines
29 KiB
YAML
1291 lines
29 KiB
YAML
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]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 1
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay2
|
|
interlock: *interlock_1
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 2
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay3
|
|
interlock: &interlock_2 [relay3, relay4]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 3
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay4
|
|
interlock: *interlock_2
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 4
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay5
|
|
interlock: &interlock_3 [relay5, relay6]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 5
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay6
|
|
interlock: *interlock_3
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 6
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay7
|
|
interlock: &interlock_4 [relay7, relay8]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 7
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay8
|
|
interlock: *interlock_4
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 8
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay9
|
|
interlock: &interlock_5 [relay9, relay10]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 9
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay10
|
|
interlock: *interlock_5
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 10
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay11
|
|
interlock: &interlock_6 [relay11, relay12]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 11
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay12
|
|
interlock: *interlock_6
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 12
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay13
|
|
interlock: &interlock_7 [relay13, relay14]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 13
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay14
|
|
interlock: *interlock_7
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 14
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay15
|
|
interlock: &interlock_8 [relay15, relay16]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_3
|
|
number: 15
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay16
|
|
interlock: *interlock_8
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 0
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay17
|
|
interlock: &interlock_9 [relay17, relay18]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 1
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay18
|
|
interlock: *interlock_9
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 2
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay19
|
|
interlock: &interlock_10 [relay19, relay20]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 3
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay20
|
|
interlock: *interlock_10
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 4
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay21
|
|
interlock: &interlock_11 [relay21, relay22]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 5
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay22
|
|
interlock: *interlock_11
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 6
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay23
|
|
interlock: &interlock_12 [relay23, relay24]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 7
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay24
|
|
interlock: *interlock_12
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 8
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay25
|
|
interlock: &interlock_13 [relay25, relay26]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 9
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay26
|
|
interlock: *interlock_13
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 10
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay27
|
|
interlock: &interlock_14 [relay27, relay28]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 11
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay28
|
|
interlock: *interlock_14
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 12
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay29
|
|
interlock: &interlock_15 [relay29, relay30]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 13
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay30
|
|
interlock: *interlock_15
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 14
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay31
|
|
interlock: &interlock_16 [relay31, relay32]
|
|
- platform: gpio
|
|
pin:
|
|
mcp23xxx: mcp_4
|
|
number: 15
|
|
mode: OUTPUT
|
|
inverted: false
|
|
id: relay32
|
|
interlock: *interlock_16
|
|
|
|
|
|
|
|
|
|
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
|