Initial commit

This commit is contained in:
2026-04-14 00:58:38 +02:00
commit 66f85682df
145 changed files with 13849 additions and 0 deletions

View File

@@ -0,0 +1,216 @@
output:
- platform: gpio
id: out_01
pin:
mcp23xxx: mcp_left
number: 8
mode:
output: true
inverted: false
- platform: gpio
id: out_02
pin:
mcp23xxx: mcp_left
number: 9
mode:
output: true
inverted: false
- platform: gpio
id: out_03
pin:
mcp23xxx: mcp_left
number: 10
mode:
output: true
inverted: false
- platform: gpio
id: out_04
pin:
mcp23xxx: mcp_left
number: 11
mode:
output: true
inverted: false
- platform: gpio
id: out_05
pin:
mcp23xxx: mcp_left
number: 12
mode:
output: true
inverted: false
- platform: gpio
id: out_06
pin:
mcp23xxx: mcp_left
number: 13
mode:
output: true
inverted: false
- platform: gpio
id: out_07
pin:
mcp23xxx: mcp_left
number: 14
mode:
output: true
inverted: false
- platform: gpio
id: out_08
pin:
mcp23xxx: mcp_left
number: 15
mode:
output: true
inverted: false
- platform: gpio
id: out_09
pin:
mcp23xxx: mcp_right
number: 8
mode:
output: true
inverted: false
- platform: gpio
id: out_10
pin:
mcp23xxx: mcp_right
number: 9
mode:
output: true
inverted: false
- platform: gpio
id: out_11
pin:
mcp23xxx: mcp_right
number: 10
mode:
output: true
inverted: false
- platform: gpio
id: out_12
pin:
mcp23xxx: mcp_right
number: 11
mode:
output: true
inverted: false
- platform: gpio
id: out_13
pin:
mcp23xxx: mcp_left
number: 7
mode:
output: true
inverted: false
- platform: gpio
id: out_14
pin:
mcp23xxx: mcp_left
number: 6
mode:
output: true
inverted: false
- platform: gpio
id: out_15
pin:
mcp23xxx: mcp_left
number: 5
mode:
output: true
inverted: false
- platform: gpio
id: out_16
pin:
mcp23xxx: mcp_left
number: 4
mode:
output: true
inverted: false
- platform: gpio
id: out_17
pin:
mcp23xxx: mcp_left
number: 3
mode:
output: true
inverted: false
- platform: gpio
id: out_18
pin:
mcp23xxx: mcp_left
number: 2
mode:
output: true
inverted: false
- platform: gpio
id: out_19
pin:
mcp23xxx: mcp_left
number: 1
mode:
output: true
inverted: false
- platform: gpio
id: out_20
pin:
mcp23xxx: mcp_left
number: 0
mode:
output: true
inverted: false
- platform: gpio
id: out_21
pin:
mcp23xxx: mcp_right
number: 12
mode:
output: true
inverted: false
- platform: gpio
id: out_22
pin:
mcp23xxx: mcp_right
number: 13
mode:
output: true
inverted: false
- platform: gpio
id: out_23
pin:
mcp23xxx: mcp_right
number: 14
mode:
output: true
inverted: false
- platform: gpio
id: out_24
pin:
mcp23xxx: mcp_right
number: 15
mode:
output: true
inverted: false

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_01_out01
pin:
pcf8574: pcf_left
number: 15
mode:
output: true
inverted: true
interlock: &cover_interlock_01 [cover_open_01_out01, cover_close_01_out02]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_01_out02
pin:
pcf8574: pcf_left
number: 14
mode:
output: true
inverted: true
interlock: *cover_interlock_01
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_02_out03
pin:
pcf8574: pcf_left
number: 13
mode:
output: true
inverted: true
interlock: &cover_interlock_02 [cover_open_02_out03, cover_close_02_out04]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_02_out04
pin:
pcf8574: pcf_left
number: 12
mode:
output: true
inverted: true
interlock: *cover_interlock_02
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_03_out05
pin:
pcf8574: pcf_left
number: 11
mode:
output: true
inverted: true
interlock: &cover_interlock_03 [cover_open_03_out05, cover_close_03_out06]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_03_out06
pin:
pcf8574: pcf_left
number: 10
mode:
output: true
inverted: true
interlock: *cover_interlock_03
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_04_out07
pin:
pcf8574: pcf_left
number: 9
mode:
output: true
inverted: true
interlock: &cover_interlock_04 [cover_open_04_out07, cover_close_04_out08]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_04_out08
pin:
pcf8574: pcf_left
number: 8
mode:
output: true
inverted: true
interlock: *cover_interlock_04
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_05_out09
pin:
pcf8574: pcf_right
number: 15
mode:
output: true
inverted: true
interlock: &cover_interlock_05 [cover_open_05_out09, cover_close_05_out10]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_05_out10
pin:
pcf8574: pcf_right
number: 14
mode:
output: true
inverted: true
interlock: *cover_interlock_05
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_06_out11
pin:
pcf8574: pcf_right
number: 13
mode:
output: true
inverted: true
interlock: &cover_interlock_06 [cover_open_06_out11, cover_close_06_out12]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_06_out12
pin:
pcf8574: pcf_right
number: 12
mode:
output: true
inverted: true
interlock: *cover_interlock_06
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_07_out13
pin:
pcf8574: pcf_right
number: 11
mode:
output: true
inverted: true
interlock: &cover_interlock_07 [cover_open_07_out13, cover_close_07_out14]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_07_out14
pin:
pcf8574: pcf_right
number: 10
mode:
output: true
inverted: true
interlock: *cover_interlock_07
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_08_out15
pin:
pcf8574: pcf_right
number: 9
mode:
output: true
inverted: true
interlock: &cover_interlock_08 [cover_open_08_out15, cover_close_08_out16]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_08_out16
pin:
pcf8574: pcf_right
number: 8
mode:
output: true
inverted: true
interlock: *cover_interlock_08
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_09_out17
pin:
pcf8574: pcf_left
number: 0
mode:
output: true
inverted: true
interlock: &cover_interlock_09 [cover_open_09_out17, cover_close_09_out18]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_09_out18
pin:
pcf8574: pcf_left
number: 1
mode:
output: true
inverted: true
interlock: *cover_interlock_09
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_10_out19
pin:
pcf8574: pcf_left
number: 2
mode:
output: true
inverted: true
interlock: &cover_interlock_10 [cover_open_10_out19, cover_close_10_out20]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_10_out20
pin:
pcf8574: pcf_left
number: 3
mode:
output: true
inverted: true
interlock: *cover_interlock_10
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_11_out21
pin:
pcf8574: pcf_left
number: 4
mode:
output: true
inverted: true
interlock: &cover_interlock_11 [cover_open_11_out21, cover_close_11_out22]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_11_out22
pin:
pcf8574: pcf_left
number: 5
mode:
output: true
inverted: true
interlock: *cover_interlock_11
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_12_out23
pin:
pcf8574: pcf_left
number: 6
mode:
output: true
inverted: true
interlock: &cover_interlock_12 [cover_open_12_out23, cover_close_12_out24]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_12_out24
pin:
pcf8574: pcf_left
number: 7
mode:
output: true
inverted: true
interlock: *cover_interlock_12
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_13_out25
pin:
pcf8574: pcf_right
number: 0
mode:
output: true
inverted: true
interlock: &cover_interlock_13 [cover_open_13_out25, cover_close_13_out26]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_13_out26
pin:
pcf8574: pcf_right
number: 1
mode:
output: true
inverted: true
interlock: *cover_interlock_13
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_14_out27
pin:
pcf8574: pcf_right
number: 2
mode:
output: true
inverted: true
interlock: &cover_interlock_14 [cover_open_14_out27, cover_close_14_out28]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_14_out28
pin:
pcf8574: pcf_right
number: 3
mode:
output: true
inverted: true
interlock: *cover_interlock_14
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_15_out29
pin:
pcf8574: pcf_right
number: 4
mode:
output: true
inverted: true
interlock: &cover_interlock_15 [cover_open_15_out29, cover_close_15_out30]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_15_out30
pin:
pcf8574: pcf_right
number: 5
mode:
output: true
inverted: true
interlock: *cover_interlock_15
restore_mode: always off

View File

@@ -0,0 +1,23 @@
switch:
- platform: gpio
id: cover_open_16_out31
pin:
pcf8574: pcf_right
number: 6
mode:
output: true
inverted: true
interlock: &cover_interlock_16 [cover_open_16_out31, cover_close_16_out32]
interlock_wait_time: 5ms
restore_mode: always off
- platform: gpio
id: cover_close_16_out32
pin:
pcf8574: pcf_right
number: 7
mode:
output: true
inverted: true
interlock: *cover_interlock_16
restore_mode: always off

View File

@@ -0,0 +1,42 @@
output:
- platform: ledc
pin: 33
frequency: 1000Hz
inverted: false
id: chl01
- platform: ledc
pin: 32
frequency: 1000Hz
inverted: false
id: chl02
- platform: ledc
pin: 12
frequency: 1000Hz
inverted: false
id: chl03
- platform: ledc
pin: 14
frequency: 1000Hz
inverted: false
id: chl04
- platform: ledc
pin: 13
frequency: 1000Hz
inverted: false
id: chr01
- platform: ledc
pin: 15
frequency: 1000Hz
inverted: false
id: chr02
- platform: ledc
pin: 2
frequency: 1000Hz
inverted: false
id: chr03
- platform: ledc
pin: 17
frequency: 1000Hz
inverted: false
id: chr04

View File

@@ -0,0 +1,431 @@
output:
- platform: gpio
id: out_01
pin:
pcf8574: pcf_left
number: 7
mode:
output: true
inverted: true
- platform: gpio
id: out_02
pin:
pcf8574: pcf_left
number: 6
mode:
output: true
inverted: true
- platform: gpio
id: out_03
pin:
pcf8574: pcf_left
number: 5
mode:
output: true
inverted: true
- platform: gpio
id: out_04
pin:
pcf8574: pcf_left
number: 4
mode:
output: true
inverted: true
- platform: gpio
id: out_05
pin:
pcf8574: pcf_left
number: 3
mode:
output: true
inverted: true
- platform: gpio
id: out_06
pin:
pcf8574: pcf_left
number: 2
mode:
output: true
inverted: true
- platform: gpio
id: out_07
pin:
pcf8574: pcf_left
number: 1
mode:
output: true
inverted: true
- platform: gpio
id: out_08
pin:
pcf8574: pcf_left
number: 0
mode:
output: true
inverted: true
- platform: gpio
id: out_09
pin:
pcf8574: pcf_middle
number: 7
mode:
output: true
inverted: true
- platform: gpio
id: out_10
pin:
pcf8574: pcf_middle
number: 6
mode:
output: true
inverted: true
- platform: gpio
id: out_11
pin:
pcf8574: pcf_middle
number: 5
mode:
output: true
inverted: true
- platform: gpio
id: out_12
pin:
pcf8574: pcf_middle
number: 4
mode:
output: true
inverted: true
- platform: gpio
id: out_13
pin:
pcf8574: pcf_middle
number: 3
mode:
output: true
inverted: true
- platform: gpio
id: out_14
pin:
pcf8574: pcf_middle
number: 2
mode:
output: true
inverted: true
- platform: gpio
id: out_15
pin:
pcf8574: pcf_middle
number: 1
mode:
output: true
inverted: true
- platform: gpio
id: out_16
pin:
pcf8574: pcf_middle
number: 0
mode:
output: true
inverted: true
- platform: gpio
id: out_17
pin:
pcf8574: pcf_right
number: 7
mode:
output: true
inverted: true
- platform: gpio
id: out_18
pin:
pcf8574: pcf_right
number: 6
mode:
output: true
inverted: true
- platform: gpio
id: out_19
pin:
pcf8574: pcf_right
number: 5
mode:
output: true
inverted: true
- platform: gpio
id: out_20
pin:
pcf8574: pcf_right
number: 4
mode:
output: true
inverted: true
- platform: gpio
id: out_21
pin:
pcf8574: pcf_right
number: 3
mode:
output: true
inverted: true
- platform: gpio
id: out_22
pin:
pcf8574: pcf_right
number: 2
mode:
output: true
inverted: true
- platform: gpio
id: out_23
pin:
pcf8574: pcf_right
number: 1
mode:
output: true
inverted: true
- platform: gpio
id: out_24
pin:
pcf8574: pcf_right
number: 0
mode:
output: true
inverted: true
- platform: gpio
id: out_25
pin:
pcf8574: pcf_left
number: 8
mode:
output: true
inverted: true
- platform: gpio
id: out_26
pin:
pcf8574: pcf_left
number: 9
mode:
output: true
inverted: true
- platform: gpio
id: out_27
pin:
pcf8574: pcf_left
number: 10
mode:
output: true
inverted: true
- platform: gpio
id: out_28
pin:
pcf8574: pcf_left
number: 11
mode:
output: true
inverted: true
- platform: gpio
id: out_29
pin:
pcf8574: pcf_left
number: 12
mode:
output: true
inverted: true
- platform: gpio
id: out_30
pin:
pcf8574: pcf_left
number: 13
mode:
output: true
inverted: true
- platform: gpio
id: out_31
pin:
pcf8574: pcf_left
number: 14
mode:
output: true
inverted: true
- platform: gpio
id: out_32
pin:
pcf8574: pcf_left
number: 15
mode:
output: true
inverted: true
- platform: gpio
id: out_33
pin:
pcf8574: pcf_middle
number: 8
mode:
output: true
inverted: true
- platform: gpio
id: out_34
pin:
pcf8574: pcf_middle
number: 9
mode:
output: true
inverted: true
- platform: gpio
id: out_35
pin:
pcf8574: pcf_middle
number: 10
mode:
output: true
inverted: true
- platform: gpio
id: out_36
pin:
pcf8574: pcf_middle
number: 11
mode:
output: true
inverted: true
- platform: gpio
id: out_37
pin:
pcf8574: pcf_middle
number: 12
mode:
output: true
inverted: true
- platform: gpio
id: out_38
pin:
pcf8574: pcf_middle
number: 13
mode:
output: true
inverted: true
- platform: gpio
id: out_39
pin:
pcf8574: pcf_middle
number: 14
mode:
output: true
inverted: true
- platform: gpio
id: out_40
pin:
pcf8574: pcf_middle
number: 15
mode:
output: true
inverted: true
- platform: gpio
id: out_41
pin:
pcf8574: pcf_right
number: 8
mode:
output: true
inverted: true
- platform: gpio
id: out_42
pin:
pcf8574: pcf_right
number: 9
mode:
output: true
inverted: true
- platform: gpio
id: out_43
pin:
pcf8574: pcf_right
number: 10
mode:
output: true
inverted: true
- platform: gpio
id: out_44
pin:
pcf8574: pcf_right
number: 11
mode:
output: true
inverted: true
- platform: gpio
id: out_45
pin:
pcf8574: pcf_right
number: 12
mode:
output: true
inverted: true
- platform: gpio
id: out_46
pin:
pcf8574: pcf_right
number: 13
mode:
output: true
inverted: true
- platform: gpio
id: out_47
pin:
pcf8574: pcf_right
number: 14
mode:
output: true
inverted: true
- platform: gpio
id: out_48
pin:
pcf8574: pcf_right
number: 15
mode:
output: true
inverted: true

View File

@@ -0,0 +1,17 @@
output:
- platform: gpio
id: out_01
pin:
pcf8574: pcf_left
number: 15
mode:
output: true
inverted: true
- platform: gpio
id: out_02
pin:
pcf8574: pcf_left
number: 14
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_03
pin:
pcf8574: pcf_left
number: 13
mode:
output: true
inverted: true
- platform: gpio
id: out_04
pin:
pcf8574: pcf_left
number: 12
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_05
pin:
pcf8574: pcf_left
number: 11
mode:
output: true
inverted: true
- platform: gpio
id: out_06
pin:
pcf8574: pcf_left
number: 10
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_07
pin:
pcf8574: pcf_left
number: 9
mode:
output: true
inverted: true
- platform: gpio
id: out_08
pin:
pcf8574: pcf_left
number: 8
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_09
pin:
pcf8574: pcf_right
number: 15
mode:
output: true
inverted: true
- platform: gpio
id: out_10
pin:
pcf8574: pcf_right
number: 14
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_11
pin:
pcf8574: pcf_right
number: 13
mode:
output: true
inverted: true
- platform: gpio
id: out_12
pin:
pcf8574: pcf_right
number: 12
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_13
pin:
pcf8574: pcf_right
number: 11
mode:
output: true
inverted: true
- platform: gpio
id: out_14
pin:
pcf8574: pcf_right
number: 10
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_15
pin:
pcf8574: pcf_right
number: 9
mode:
output: true
inverted: true
- platform: gpio
id: out_16
pin:
pcf8574: pcf_right
number: 8
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_17
pin:
pcf8574: pcf_left
number: 0
mode:
output: true
inverted: true
- platform: gpio
id: out_18
pin:
pcf8574: pcf_left
number: 1
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_19
pin:
pcf8574: pcf_left
number: 2
mode:
output: true
inverted: true
- platform: gpio
id: out_20
pin:
pcf8574: pcf_left
number: 3
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_21
pin:
pcf8574: pcf_left
number: 4
mode:
output: true
inverted: true
- platform: gpio
id: out_22
pin:
pcf8574: pcf_left
number: 5
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_23
pin:
pcf8574: pcf_left
number: 6
mode:
output: true
inverted: true
- platform: gpio
id: out_24
pin:
pcf8574: pcf_left
number: 7
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_25
pin:
pcf8574: pcf_right
number: 0
mode:
output: true
inverted: true
- platform: gpio
id: out_26
pin:
pcf8574: pcf_right
number: 1
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_27
pin:
pcf8574: pcf_right
number: 2
mode:
output: true
inverted: true
- platform: gpio
id: out_28
pin:
pcf8574: pcf_right
number: 3
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_29
pin:
pcf8574: pcf_right
number: 4
mode:
output: true
inverted: true
- platform: gpio
id: out_30
pin:
pcf8574: pcf_right
number: 5
mode:
output: true
inverted: true

View File

@@ -0,0 +1,18 @@
output:
- platform: gpio
id: out_31
pin:
pcf8574: pcf_right
number: 6
mode:
output: true
inverted: true
- platform: gpio
id: out_32
pin:
pcf8574: pcf_right
number: 7
mode:
output: true
inverted: true

View File

@@ -0,0 +1,9 @@
switch:
- platform: gpio
id: buzzer
name: 'Buzzer'
pin:
number: GPIO2
mode:
output: true
inverted: false

View File

@@ -0,0 +1,5 @@
i2c:
sda: GPIO4
scl: GPIO5
scan: True
frequency: 400kHz

View File

@@ -0,0 +1,37 @@
sensor:
- platform: ina219
address: 0x40
shunt_resistance: 0.005 ohm
bus_voltage:
name: 'VDDL Supply'
entity_category: diagnostic
power:
name: 'VDDL Power'
entity_category: diagnostic
current:
name: 'VDDL Current'
entity_category: diagnostic
shunt_voltage:
name: 'VDDL Shunt Voltage'
entity_category: diagnostic
max_voltage: 32V
max_current: 10A
update_interval: 5s
- platform: ina219
address: 0x41
shunt_resistance: 0.005 ohm
bus_voltage:
name: 'VDDR Supply'
entity_category: diagnostic
power:
name: 'VDDR Power'
entity_category: diagnostic
current:
name: 'VDDR Current'
entity_category: diagnostic
shunt_voltage:
name: 'VDDR Shunt Voltage'
entity_category: diagnostic
max_voltage: 32V
max_current: 10A
update_interval: 5s

View File

@@ -0,0 +1,42 @@
output:
- platform: ledc
pin: 33
frequency: 1000Hz
inverted: false
id: chl01
- platform: ledc
pin: 32
frequency: 1000Hz
inverted: false
id: chl02
- platform: ledc
pin: 12
frequency: 1000Hz
inverted: false
id: chl03
- platform: ledc
pin: 14
frequency: 1000Hz
inverted: false
id: chl04
- platform: ledc
pin: 13
frequency: 1000Hz
inverted: false
id: chr01
- platform: ledc
pin: 15
frequency: 1000Hz
inverted: false
id: chr02
- platform: ledc
pin: 2
frequency: 1000Hz
inverted: false
id: chr03
- platform: ledc
pin: 17
frequency: 1000Hz
inverted: false
id: chr04

View File

@@ -0,0 +1,10 @@
text_sensor:
- platform: template
name: 'Serial No.'
id: serial_no
lambda: |-
std::string mac = get_mac_address();
return std::string("${serial_prefix}") + mac.substr(mac.length()/2);
icon: mdi:expansion-card-variant
entity_category: diagnostic
update_interval: 60min

View File

@@ -0,0 +1,20 @@
sensor:
# Module power consmption
- platform: ina219
address: 0x40
shunt_resistance: 0.1 ohm
current:
id: ina_current
name: 'INA219 Current'
power:
id: ina_power
name: 'INA219 Power'
bus_voltage:
id: ina_bus_voltage
name: 'INA219 Bus Voltage'
shunt_voltage:
id: ina_shunt_voltage
name: 'INA219 Shunt Voltage'
max_voltage: 32.0V
max_current: 3.2A
update_interval: 30s

View File

@@ -0,0 +1,12 @@
#i2c address: 0x48 output lm75b temp
#LM75B
external_components:
- source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75
components: [lm75]
sensor:
# Lower board temperature
- platform: lm75
id: boneIO_temp
name: 'LM75B Temperature'
update_interval: 30s

View File

@@ -0,0 +1,15 @@
one_wire:
- platform: gpio
pin: GPIO32
# sensor:
# - platform: dallas_temp
# address: 0x283c01d607d4df28
# name: "Dallas Sensor 1"
#
# - platform: dallas_temp
# address: 0xdfe67a061e64ff28
# name: "Dallas Sensor 2"
#
# - platform: dallas_temp
# address: 0xa7a89f071e64ff28
# name: "Dallas Sensor 3"

View File

@@ -0,0 +1,21 @@
pcf8574:
- id: 'pcf_inputs_1to14'
i2c_id: i2c_bus
address: 0x20
pcf8575: true
- id: 'pcf_inputs_15to28'
i2c_id: i2c_bus
address: 0x21
pcf8575: true
- id: 'pcf_inputs_28to35_menu'
i2c_id: i2c_bus
address: 0x22
pcf8575: false
- id: 'pcf_left'
address: 0x23
pcf8575: true
i2c_id: i2c_bus
- id: 'pcf_right'
address: 0x24
pcf8575: true
i2c_id: i2c_bus

View File

@@ -0,0 +1,25 @@
pcf8574:
- id: 'pcf_inputs_1to14'
i2c_id: i2c_bus
address: 0x20
pcf8575: true
- id: 'pcf_inputs_15to28'
i2c_id: i2c_bus
address: 0x21
pcf8575: true
- id: 'pcf_inputs_28to35_menu'
i2c_id: i2c_bus
address: 0x22
pcf8575: false
- id: 'pcf_left'
address: 0x23
pcf8575: true
i2c_id: i2c_bus
- id: 'pcf_middle'
address: 0x24
pcf8575: true
i2c_id: i2c_bus
- id: 'pcf_right'
address: 0x25
pcf8575: true
i2c_id: i2c_bus

View File

@@ -0,0 +1,18 @@
pcf8574:
- id: 'pcf_inputs_1to14'
i2c_id: i2c_bus
address: 0x20
pcf8575: true
- id: 'pcf_inputs_15to28'
i2c_id: i2c_bus
address: 0x21
pcf8575: true
- id: 'pcf_inputs_28to35_menu'
i2c_id: i2c_bus
address: 0x22
pcf8575: false
mcp23017:
- id: 'mcp_left'
address: 0x23
- id: 'mcp_right'
address: 0x24

View File

@@ -0,0 +1,151 @@
#i2c address: 0x3C input oled
sensor:
- platform: uptime
id: wt32_uptime_seconds
update_interval: 60s
entity_category: diagnostic
on_raw_value:
then:
- text_sensor.template.publish:
id: wt32_uptime
state: !lambda |-
int seconds = round(id(wt32_uptime_seconds).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(to_string(minutes) + "m")
).c_str();
text_sensor:
- platform: template
name: Uptime
id: wt32_uptime
entity_category: diagnostic
icon: mdi:clock-start
- platform: template
name: 'IP Address'
id: ip_address
entity_category: diagnostic
icon: 'mdi:ip-network'
lambda: |-
return id(eth).get_ip_addresses().empty() ? "Unset" : id(eth).get_ip_addresses()[0].str();
update_interval: 60s
script:
- id: screensaver_script
# screensaver script, turn on screensaver after 30 seconds, restart counter each time when invoked
mode: restart
then:
# set the time after which the screensaver will be activated
- delay: 30s
- display.page.show: screensaver
- component.update: oled_display
esphome:
on_boot:
priority: 0
then:
- display.page.show: first_page
- component.update: ip_address
- component.update: oled_display
- script.execute: screensaver_script
binary_sensor:
- platform: gpio
entity_category: config
id: boneIO_button
pin:
pcf8574: pcf_inputs_28to35_menu
number: 7
mode:
input: true
inverted: true
on_press:
then:
# cycle through pages: first_page -> second_page -> third_page -> last_page -> first_page
# screensaver is excluded from the cycle — button press wakes it to first_page
- if:
condition:
# on the last page wrap around to the first page (skip screensaver)
display.is_displaying_page: last_page
then:
- display.page.show: first_page
- component.update: oled_display
else:
- if:
condition:
# button wakes screensaver — jump to first page
display.is_displaying_page: screensaver
then:
- display.page.show: first_page
- component.update: oled_display
else:
# advance to the next page (first -> second -> third -> last)
- display.page.show_next: oled_display
- component.update: oled_display
# restart screensaver script
- script.execute: screensaver_script
display:
- platform: ssd1306_i2c
id: oled_display
model: 'SH1106 128x64'
address: 0x3C
contrast: 0.5
pages:
- id: first_page
lambda: |-
it.rectangle(0, 0, 126, 15);
it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "Peak Control");
it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"IP addr:");
it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(ip_address).state.c_str());
it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Uptime:");
it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%s", id(wt32_uptime).state.c_str());
it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Temperature:");
it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2f°C", id(boneIO_temp).state);
# additional pages should be defined between the first and last page
- id: second_page
lambda: |-
it.rectangle(0, 0, 126, 15);
it.printf(64, 11, id(size_10), TextAlign::BASELINE_CENTER, "Network");
it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT, "Host:");
it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT, "%s", App.get_name().c_str());
it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT, "MAC:");
it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT, "%s", get_mac_address().c_str());
it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT, "ETH:");
it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT, "%s", id(eth).is_connected() ? "Connected" : "No link");
- id: third_page
lambda: |-
it.rectangle(0, 0, 126, 15);
it.printf(64, 11, id(size_10), TextAlign::BASELINE_CENTER, "System");
it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT, "Version:");
it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT, "%s", ESPHOME_VERSION);
it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT, "Free heap:");
it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT, "%u B", esp_get_free_heap_size());
it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT, "CPU freq:");
it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT, "%u MHz", esp_clk_cpu_freq() / 1000000);
- id: last_page
lambda: |-
it.rectangle(0, 0, 126, 15);
it.printf(64,11, id(size_10), TextAlign::BASELINE_CENTER, "Peak Control");
it.printf(4, 25, id(size_10), TextAlign::BASELINE_LEFT ,"Current:");
it.printf(124, 25, id(size_10), TextAlign::BASELINE_RIGHT ,"%.3fA", id(ina_current).state);
it.printf(4, 37, id(size_10), TextAlign::BASELINE_LEFT ,"Power:");
it.printf(124, 37, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fW", id(ina_power).state);
it.printf(4, 49, id(size_10), TextAlign::BASELINE_LEFT ,"Bus Volt:");
it.printf(124, 49, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_bus_voltage).state);
it.printf(4, 61, id(size_10), TextAlign::BASELINE_LEFT ,"Shunt Volt:");
it.printf(124, 61, id(size_10), TextAlign::BASELINE_RIGHT ,"%.2fV", id(ina_shunt_voltage).state);
- id: screensaver
lambda: |-
it.fill(COLOR_OFF);
font:
- file: 'gfonts://Ubuntu'
id: size_10
size: 10

View File

@@ -0,0 +1,6 @@
i2c:
- id: i2c_bus
sda: GPIO17
scl: GPIO33
scan: True
frequency: 400kHz

View File

@@ -0,0 +1,35 @@
text_sensor:
- platform: template
name: 'Wiegand 1 Tag'
id: wiegand_1_tag
icon: mdi:card-account-details
entity_category: ""
- platform: template
name: 'Wiegand 2 Tag'
id: wiegand_2_tag
icon: mdi:card-account-details
entity_category: ""
wiegand:
- id: wiegand_reader_1
d0: GPIO34
d1: GPIO35
on_tag:
- text_sensor.template.publish:
id: wiegand_1_tag
state: !lambda 'return x;'
on_key:
- lambda: |-
ESP_LOGI("wiegand1", "Klawisz: %c", x);
- id: wiegand_reader_2
d0: GPIO36
d1: GPIO39
on_tag:
- text_sensor.template.publish:
id: wiegand_2_tag
state: !lambda 'return x;'
on_key:
- lambda: |-
ESP_LOGI("wiegand2", "Klawisz: %c", x);