Files
ESP32-Hub/Kuba/main-hub_do zrobienia.yaml
2026-04-18 01:39:05 +02:00

2520 lines
70 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ESPHome Firmware
# ESP32-PoE Main-Hub — Peak Control / Jan Kocoń
# Hardware: ESP32dev, Ethernet LAN8720, 2x PCA9685, 3x MCP23017 IN, 3x MCP23017 OUT
# Description:
# Centralny hub oświetlenia dla całego domu. Steruje lokalnie 26 wyjściami (przekaźniki/MCP)
# oraz 9 kanałami LED (PCA9685 cwww/rgbww/mono). 48 wejść fizycznych z logiką on_multi_click.
# Zewnętrzne encje (WLED, wentylatory) sterowane przez homeassistant.service.
#
# Wymagane wpisy w secrets.yaml:
# api_key: "<32-byte-base64>"
# ota_key: "<password>"
# web_password: "<password>"
#
# Adresy I2C:
# 0x20 mcp23xxx_hub1_IN | 0x21 mcp23xxx_hub1_OUT
# 0x22 mcp23xxx_hub2_IN | 0x23 mcp23xxx_hub2_OUT
# 0x24 mcp23xxx_hub3_IN | 0x25 mcp23xxx_hub3_OUT
# 0x40 pca9685_hub1 | 0x41 pca9685_hub2
#
# Statyczne IP: 10.10.0.5 Gateway: 10.10.0.1
substitutions:
device_name: "main-hub"
friendly_name: "Main Hub"
device_make: "Peak Control - Jan Kocoń"
device_model: "ESP32-PoE Main-Hub"
project_version: "1.1"
log_level: "INFO"
static_ip: "10.10.0.5"
gateway: "10.10.0.1"
subnet: "255.255.255.0"
esphome:
name: "${device_name}"
friendly_name: "${friendly_name}"
comment: "${device_model} by ${device_make}"
name_add_mac_suffix: false
min_version: "2024.6.0"
project:
name: "${device_make}.${device_model}"
version: "${project_version}"
on_boot:
priority: -100
then:
- light.turn_on:
id: status_led
red: 0%
green: 0%
blue: 100%
brightness: 100%
effect: "Slow Pulse"
esp32:
board: esp32dev
variant: esp32
framework:
type: esp-idf
version: recommended
sdkconfig_options:
CONFIG_ESP32_REV_MIN_FULL: "300"
# Enable logging
logger:
level: "${log_level}"
logs:
atc_mithermometer: WARN
esp32_ble_tracker: WARN
ble_advertise: WARN
# Uncomment below when log_level is DEBUG to suppress noise:
#sensor: WARN
#text_sensor: WARN
#internal_temperature: WARN
#binary_sensor: WARN
#switch: WARN
#light: WARN
#component: WARN
# Enable Home Assistant API
api:
encryption:
key: !secret api_key
reboot_timeout: 0s
on_client_connected:
- logger.log:
level: INFO
format: "HA client connected"
- light.turn_on:
id: status_led
red: 0%
green: 100%
blue: 0%
brightness: 50%
on_client_disconnected:
- logger.log:
level: WARN
format: "HA client disconnected"
- light.turn_on:
id: status_led
red: 100%
green: 0%
blue: 0%
brightness: 100%
effect: "Slow Pulse"
ota:
- platform: esphome
password: !secret ota_key
- platform: web_server
#wifi:
# ssid: !secret wifi_ssid
# password: !secret wifi_password
#
# # Enable fallback hotspot (captive portal) in case wifi connection fails
# ap:
# ssid: "Main-Hub Fallback Hotspot"
# password: "y0LGSOyT5tjJ"
#captive_portal:
web_server:
port: 80
auth:
username: admin
password: !secret web_password
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk:
mode: CLK_OUT
pin: 17
phy_addr: 0
power_pin: GPIO12
manual_ip:
static_ip: "${static_ip}"
gateway: "${gateway}"
subnet: "${subnet}"
button:
- platform: restart
name: '${friendly_name} Restart'
i2c:
sda: 13
scl: 16
scan: False
frequency: 200kHz
pca9685:
- frequency: 1500
address: 0x40
id: "pca9685_hub1"
- frequency: 1500
address: 0x41
id: "pca9685_hub2"
mcp23017:
- id: "mcp23xxx_hub1_IN"
address: 0x20
- id: "mcp23xxx_hub1_OUT"
address: 0x21
- id: "mcp23xxx_hub2_IN"
address: 0x22
- id: "mcp23xxx_hub2_OUT"
address: 0x23
- id: "mcp23xxx_hub3_IN"
address: 0x24
- id: "mcp23xxx_hub3_OUT"
address: 0x25
output:
- platform: ledc
id: output_blue
pin: 5
- platform: ledc
id: output_green
pin: 14
- platform: ledc
id: output_red
pin: 15
#deklaracja LED
- platform: pca9685
id: 'PWM1_1_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 0
max_power: 100%
- platform: pca9685
id: 'PWM1_2_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 1
max_power: 100%
- platform: pca9685
id: 'PWM2_1_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 2
max_power: 100%
- platform: pca9685
id: 'PWM2_2_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 3
max_power: 100%
- platform: pca9685
id: 'PWM3_1_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 4
max_power: 100%
- platform: pca9685
id: 'PWM3_2_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 8
max_power: 100%
- platform: pca9685
id: 'PWM4_1_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 6
min_power: 0%
max_power: 100%
- platform: pca9685
id: 'PWM4_2_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 7
min_power: 0%
max_power: 100%
- platform: pca9685
id: 'PWM5_1_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 12
max_power: 100%
- platform: pca9685
id: 'PWM5_2_Hub1'
pca9685_id: 'pca9685_hub1'
channel: 13
max_power: 100%
- platform: pca9685
id: 'PWM1_1_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 0
max_power: 100%
- platform: pca9685
id: 'PWM1_2_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 1
max_power: 100%
- platform: pca9685
id: 'PWM2_1_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 2
max_power: 100%
- platform: pca9685
id: 'PWM2_2_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 3
max_power: 100%
- platform: pca9685
id: 'PWM3_1_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 4
max_power: 100%
- platform: pca9685
id: 'PWM3_2_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 5
max_power: 95%
- platform: pca9685
id: 'PWM4_1_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 10
max_power: 100%
- platform: pca9685
id: 'PWM4_2_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 13
max_power: 100%
- platform: pca9685
id: 'PWM5_1_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 11
max_power: 100%
- platform: pca9685
id: 'PWM5_2_Hub2'
pca9685_id: 'pca9685_hub2'
channel: 15
max_power: 100%
light:
- platform: rgb
name: "Status LED"
id: status_led
red: output_red
green: output_green
blue: output_blue
effects:
- pulse:
name: "Fast Pulse"
transition_length: 0.5s
update_interval: 0.5s
- pulse:
name: "Slow Pulse"
transition_length: 1s
update_interval: 1s
- random:
name: "Random Effect"
transition_length: 1s
update_interval: 2s
#LEDY przez PCSA9685
- platform: cwww
name: "Serwer LED"
id: serwer_led
cold_white: PWM2_1_Hub1
warm_white: PWM2_2_Hub1
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
default_transition_length: 2.0s
- platform: cwww
name: "Jadalnia LED"
id: jadalnia_led
cold_white: PWM4_2_Hub1
warm_white: PWM4_1_Hub1
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
default_transition_length: 2.0s
- platform: cwww
name: "Biała Łazienka wanna LED"
id: biala_lazienka_wanna_led
cold_white: PWM5_2_Hub1
warm_white: PWM5_1_Hub1
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
default_transition_length: 2.0s
- platform: monochromatic
name: "Kuchnia Łezka LED"
id: kuchnia_lezka_led
output: PWM2_1_Hub2
default_transition_length: 2.0s
- platform: cwww
name: "SPA Ledy"
id: "SPA_Ledy"
cold_white: PWM5_2_Hub2
warm_white: PWM5_1_Hub2
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
default_transition_length: 2.0s
- platform: cwww
name: "Pokój dla gości LED"
id: pokoj_dla_gosci_led
cold_white: PWM3_2_Hub2
warm_white: PWM4_1_Hub2
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
default_transition_length: 2.0s
- platform: monochromatic
name: "TEST LED 1"
output: PWM1_2_Hub2
- platform: monochromatic
name: "TEST LED 2"
id: test_led_2
output: PWM3_1_Hub2
- platform: rgbww
name: "Sypialnia LED"
id: sypialnia_led
red: PWM1_1_Hub1
green: PWM1_2_Hub1
blue: PWM3_1_Hub1
cold_white: PWM3_2_Hub1
warm_white: PWM1_1_Hub2
cold_white_color_temperature: 6536 K
warm_white_color_temperature: 2000 K
color_interlock: false
default_transition_length: 2.0s
time:
- platform: homeassistant
timezone: Europe/Warsaw
id: ha_time
esp32_ble_tracker:
switch:
#mcp23xxx_hub1_OUT
- platform: gpio
name: "hub1_out0" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 0
mode: OUTPUT
inverted: False
id: hub1_out0
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out1" # SPA Kinkiet Lustro
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 1
mode: OUTPUT
inverted: False
id: hub1_out1
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out2" # Biuro
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 2
mode: OUTPUT
inverted: False
id: hub1_out2
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out3" # Kuchnia Halogen
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 3
mode: OUTPUT
inverted: False
id: hub1_out3
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out4" # SPA Wentylator [FAN]
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 4
mode: OUTPUT
inverted: False
id: hub1_out4
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out5" # Kanciapa pod schodami
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 5
mode: OUTPUT
inverted: False
id: hub1_out5
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out6" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 6
mode: OUTPUT
inverted: False
id: hub1_out6
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out7" # Garderoba Duża
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 7
mode: OUTPUT
inverted: False
id: hub1_out7
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out8" # Jadalnia
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 8
mode: OUTPUT
inverted: False
id: hub1_out8
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out9" # WC Lustro
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 9
mode: OUTPUT
inverted: False
id: hub1_out9
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out10" # SPA Halogeny
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 10
mode: OUTPUT
inverted: False
id: hub1_out10
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out11" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 11
mode: OUTPUT
inverted: False
id: hub1_out11
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out12" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 12
mode: OUTPUT
inverted: False
id: hub1_out12
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out13" # Mały Korytarz Kinkiet
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 13
mode: OUTPUT
inverted: False
id: hub1_out13
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out14" # Korytarz Halogeny
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 14
mode: OUTPUT
inverted: False
id: hub1_out14
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub1_out15" # Wejście Halogeny
pin:
mcp23xxx: mcp23xxx_hub1_OUT
number: 15
mode: OUTPUT
inverted: False
id: hub1_out15
restore_mode: ALWAYS_OFF
#mcp23xxx_hub2_OUT
- platform: gpio
name: "hub2_out0" # Łazienka Sufit
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 0
mode: OUTPUT
inverted: False
id: hub2_out0
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out1" # Sypialnia Łóżko Prawa strona
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 1
mode: OUTPUT
inverted: False
id: hub2_out1
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out2" # WC Sufit
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 2
mode: OUTPUT
inverted: False
id: hub2_out2
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out3" # Mały Korytarz Sufit
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 3
mode: OUTPUT
inverted: False
id: hub2_out3
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out4" # Łazienka Skos
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 4
mode: OUTPUT
inverted: False
id: hub2_out4
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out5" # WC Wentylator [FAN]
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 5
mode: OUTPUT
inverted: False
id: hub2_out5
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out6" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 6
mode: OUTPUT
inverted: False
id: hub2_out6
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out7" # Sypialnia Halogen
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 7
mode: OUTPUT
inverted: False
id: hub2_out7
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out8" # Łazienka Sufit (Biała Łazienka Wentylator) [FAN]
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 8
mode: OUTPUT
inverted: False
id: hub2_out8
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out9" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 9
mode: OUTPUT
inverted: False
id: hub2_out9
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out10" # Pokój Gościnny Sufit
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 10
mode: OUTPUT
inverted: False
id: hub2_out10
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out11" # Salon Plafon
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 11
mode: OUTPUT
inverted: False
id: hub2_out11
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out12" # Sypialnia Łóżko Lewa strona
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 12
mode: OUTPUT
inverted: False
id: hub2_out12
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out13" # SPA Zwisy
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 13
mode: OUTPUT
inverted: False
id: hub2_out13
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out14" # Mała Garderoba
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 14
mode: OUTPUT
inverted: False
id: hub2_out14
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub2_out15" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub2_OUT
number: 15
mode: OUTPUT
inverted: False
id: hub2_out15
restore_mode: ALWAYS_OFF
#mcp23xxx_hub3_OUT
- platform: gpio
name: "hub3_out0" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 0
mode: OUTPUT
inverted: False
id: hub3_out0
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out1" # (wolne)
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 1
mode: OUTPUT
inverted: False
id: hub3_out1
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out2" # Wentylator Główny Obieg [FAN]
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 2
mode: OUTPUT
inverted: False
id: hub3_out2
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out3" # Ogrzewanie Kuchnia
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 3
mode: OUTPUT
inverted: False
id: hub3_out3
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out4" # Ogrzewanie Jadalnia/Salon
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 4
mode: OUTPUT
inverted: False
id: hub3_out4
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out5" # Ogrzewanie Salon kanapa
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 5
mode: OUTPUT
inverted: False
id: hub3_out5
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out6" # Ogrzewanie SPA
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 6
mode: OUTPUT
inverted: False
id: hub3_out6
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out7" # Ogrzewanie Korytarz
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 7
mode: OUTPUT
inverted: False
id: hub3_out7
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out8" # Ogrzewanie Pokój Dziecka 2
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 8
mode: OUTPUT
inverted: False
id: hub3_out8
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out9" # Ogrzewanie Biuro/Serwer
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 9
mode: OUTPUT
inverted: False
id: hub3_out9
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out10" # Ogrzewanie Biuro
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 10
mode: OUTPUT
inverted: False
id: hub3_out10
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out11" # Ogrzewanie Pokój Dziecka 1
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 11
mode: OUTPUT
inverted: False
id: hub3_out11
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out12" # Ogrzewanie Garderoba
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 12
mode: OUTPUT
inverted: False
id: hub3_out12
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out13" # Ogrzewanie Sypialnia 2
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 13
mode: OUTPUT
inverted: False
id: hub3_out13
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out14" # Ogrzewanie Biała Łazienka/WC
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 14
mode: OUTPUT
inverted: False
id: hub3_out14
restore_mode: ALWAYS_OFF
- platform: gpio
name: "hub3_out15" # Ogrzewanie Sypialnia 1
pin:
mcp23xxx: mcp23xxx_hub3_OUT
number: 15
mode: OUTPUT
inverted: False
id: hub3_out15
restore_mode: ALWAYS_OFF
text_sensor:
- platform: ethernet_info
ip_address:
name: "IP Address"
icon: "mdi:wan"
entity_category: diagnostic
- platform: template
name: "Firmware Version"
icon: "mdi:tag"
entity_category: diagnostic
lambda: return {"${project_version}"};
- platform: version
name: "ESPHome Version"
icon: "mdi:information-outline"
entity_category: diagnostic
hide_timestamp: true
script:
- id: off_all
then:
- switch.turn_off: hub1_out1
- switch.turn_off: hub1_out2
- switch.turn_off: hub1_out3
- switch.turn_off: hub1_out4
- switch.turn_off: hub1_out5
- switch.turn_off: hub1_out7
- switch.turn_off: hub1_out8
- switch.turn_off: hub1_out9
- switch.turn_off: hub1_out10
- switch.turn_off: hub1_out13
- switch.turn_off: hub1_out14
- switch.turn_off: hub1_out15
- switch.turn_off: hub2_out0
- switch.turn_off: hub2_out1
- switch.turn_off: hub2_out2
- switch.turn_off: hub2_out3
- switch.turn_off: hub2_out4
- switch.turn_off: hub2_out5
- switch.turn_off: hub2_out7
- switch.turn_off: hub2_out8
- switch.turn_off: hub2_out10
- switch.turn_off: hub2_out11
- switch.turn_off: hub2_out12
- switch.turn_off: hub2_out13
- switch.turn_off: hub2_out14
- switch.turn_off: hub3_out2
- light.turn_off: serwer_led
- light.turn_off: jadalnia_led
- light.turn_off: biala_lazienka_wanna_led
- light.turn_off: kuchnia_lezka_led
- light.turn_off: SPA_Ledy
- light.turn_off: pokoj_dla_gosci_led
- light.turn_off: sypialnia_led
binary_sensor:
- platform: status
name: "Status"
entity_category: diagnostic
#Mains detector
#- platform: gpio
# pin:
# number: 39
# inverted: True
# name: "Mains detector"
##################
#mcp23xxx_hub1_IN#
##################
- platform: gpio
name: "hub1_in0" # Wejście 1
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 0
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in0
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out15 # Wejście Halogeny
- logger.log:
level: INFO
format: "Wejście 1 [1×] → Wejście Halogeny"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Wejście 1 [1×]"
entity_id: "switch.hub1_out15"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Wejście 1 [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Wejście 1 [długi]"
entity_id: "binary_sensor.hub1_in0"
- platform: gpio
name: "hub1_in1" # Wejście 3
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 1
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in1
- platform: gpio
name: "hub1_in2" # Wejście 2
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 2
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in2
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out14 # Korytarz Halogeny
- logger.log:
level: INFO
format: "Wejście 2 [1×] → Korytarz Halogeny"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Wejście 2 [1×]"
entity_id: "light.korytarz_kinkiety"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Wejście 2 [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Wejście 2 [długi]"
entity_id: "binary_sensor.hub1_in2"
- platform: gpio
name: "hub1_in3" # Sypialnia 3
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 3
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in3
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- if:
condition:
and:
- switch.is_on: hub2_out12
- switch.is_on: hub2_out1
then:
- switch.turn_off: hub2_out12 # Sypialnia Łóżko Lewa strona
- switch.turn_off: hub2_out1 # Sypialnia Łóżko Prawa strona
else:
- switch.turn_on: hub2_out12
- switch.turn_on: hub2_out1
- logger.log:
level: INFO
format: "Sypialnia 3 [1×] → Sypialnia Łóżko Lewa strona, Sypialnia Łóżko Prawa strona"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia 3 [1×]"
entity_id: "switch.hub2_out12"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia 3 [1×]"
entity_id: "switch.hub2_out1"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.turn_off: hub2_out12 # Sypialnia Łóżko Lewa strona
- switch.turn_off: hub2_out1 # Sypialnia Łóżko Prawa strona
- logger.log:
level: INFO
format: "Sypialnia 3 [2×] → Sypialnia Łóżko Lewa strona, Sypialnia Łóżko Prawa strona"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia 3 [2×]"
entity_id: "switch.hub2_out12"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia 3 [2×]"
entity_id: "switch.hub2_out1"
- platform: gpio
name: "hub1_in4" # Sypialnia 1
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 4
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in4
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: sypialnia_led # Sypialnia LED
- logger.log:
level: INFO
format: "Sypialnia 1 [1×] → Sypialnia LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia 1 [1×]"
entity_id: "light.sypialnia_led"
- platform: gpio
name: "hub1_in5" # Sypialnia 2
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 5
mode: INPUT
inverted: True
filters:
- delayed_on_off: 100ms
id: hub1_in5
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out7 # Sypialnia Halogen
- logger.log:
level: INFO
format: "Sypialnia 2 [1×] → Sypialnia Halogen"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia 2 [1×]"
entity_id: "switch.hub2_out7"
- platform: gpio
name: "hub1_in6" # Sypialnia Łóżko Prawa Strona
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 6
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in6
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out1 # Sypialnia Łóżko Prawa strona
- logger.log:
level: INFO
format: "Sypialnia Łóżko Prawo [1×] → Sypialnia Łóżko Prawa strona"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Prawo [1×]"
entity_id: "switch.hub2_out1"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out12 # Sypialnia Łóżko Lewa strona
- switch.toggle: hub2_out1 # Sypialnia Łóżko Prawa strona
- logger.log:
level: INFO
format: "Sypialnia Łóżko Prawo [2×] → Sypialnia Łóżko Lewa strona, Sypialnia Łóżko Prawa strona"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Prawo [2×]"
entity_id: "switch.hub2_out12"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Prawo [2×]"
entity_id: "switch.hub2_out1"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Sypialnia Łóżko Prawo [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Prawo [długi]"
entity_id: "binary_sensor.hub1_in6"
- platform: gpio
name: "hub1_in7" # Sypialnia Łóżko Lewa Strona
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 7
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in7
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out12 # Sypialnia Łóżko Lewa strona
- logger.log:
level: INFO
format: "Sypialnia Łóżko Lewo [1×] → Sypialnia Łóżko Lewa strona"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Lewo [1×]"
entity_id: "switch.hub2_out12"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out12 # Sypialnia Łóżko Lewa strona
- switch.toggle: hub2_out1 # Sypialnia Łóżko Prawa strona
- logger.log:
level: INFO
format: "Sypialnia Łóżko Lewo [2×] → Sypialnia Łóżko Lewa strona, Sypialnia Łóżko Prawa strona"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Lewo [2×]"
entity_id: "switch.hub2_out12"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Lewo [2×]"
entity_id: "switch.hub2_out1"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Sypialnia Łóżko Lewo [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Sypialnia Łóżko Lewo [długi]"
entity_id: "binary_sensor.hub1_in7"
- platform: gpio
name: "hub1_in8" # Pokój dla Gości Lewy
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 8
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in8
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out10 # Pokój Gościnny Sufit
- logger.log:
level: INFO
format: "Pokój Gości Lewy [1×] → Pokój Gościnny Sufit"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Pokój Gości Lewy [1×]"
entity_id: "switch.hub2_out10"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out7 # Garderoba Duża
- logger.log:
level: INFO
format: "Pokój Gości Lewy [2×] → Garderoba Duża"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Pokój Gości Lewy [2×]"
entity_id: "switch.hub1_out7"
- platform: gpio
name: "hub1_in9" # Pokój dla Gości Prawy
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 9
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in9
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: pokoj_dla_gosci_led # Pokój dla Gości LED
- logger.log:
level: INFO
format: "Pokój Gości Prawy [1×] → Pokój dla Gości LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Pokój Gości Prawy [1×]"
entity_id: "light.pokoj_dla_gosci_led"
- platform: gpio
name: "hub1_in10" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 10
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in10
- platform: gpio
name: "hub1_in11" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 11
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in11
- platform: gpio
name: "hub1_in12" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 12
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in12
- platform: gpio
name: "hub1_in13" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 13
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in13
- platform: gpio
name: "hub1_in14" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 14
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in14
- platform: gpio
name: "hub1_in15" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub1_IN
number: 15
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub1_in15
##################
#mcp23xxx_hub2_IN#
##################
- platform: gpio
name: "hub2_in0" # Korytarz 2
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 0
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in0
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out15 # Wejście Halogeny
- logger.log:
level: INFO
format: "Korytarz 2 [1×] → Wejście Halogeny"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Korytarz 2 [1×]"
entity_id: "switch.hub1_out15"
- platform: gpio
name: "hub2_in1" # Korytarz 3
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 1
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in1
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.korytarz_kinkiety # Korytarz Kinkiety
- logger.log:
level: INFO
format: "Korytarz 3 [1×] → Korytarz Kinkiety"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Korytarz 3 [1×]"
entity_id: "light.korytarz_kinkiety"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Korytarz 3 [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Korytarz 3 [długi]"
entity_id: "binary_sensor.hub2_in1"
- platform: gpio
name: "hub2_in2" # Korytarz 1
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 2
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in2
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out14 # Korytarz Halogeny
- logger.log:
level: INFO
format: "Korytarz 1 [1×] → Korytarz Halogeny"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Korytarz 1 [1×]"
entity_id: "switch.hub1_out14"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Korytarz 1 [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Korytarz 1 [długi]"
entity_id: "binary_sensor.hub2_in2"
- platform: gpio
name: "hub2_in3" # Mały Korytarz
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 3
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in3
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out13 # Mały Korytarz Kinkiet
- switch.toggle: hub2_out3 # Mały Korytarz Sufit
- logger.log:
level: INFO
format: "Mały Korytarz [1×] → Mały Korytarz Kinkiet, Mały Korytarz Sufit"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Mały Korytarz [1×]"
entity_id: "switch.hub1_out13"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Mały Korytarz [1×]"
entity_id: "switch.hub2_out3"
- platform: gpio
name: "hub2_in4" # Garderoba Mała
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 4
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in4
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out14 # Mała Garderoba
- logger.log:
level: INFO
format: "Garderoba Mała [1×] → Mała Garderoba"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Garderoba Mała [1×]"
entity_id: "switch.hub2_out14"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub3_out2 # Wentylator Główny Obieg
- logger.log:
level: INFO
format: "Garderoba Mała [2×] → Wentylator Główny Obieg"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Garderoba Mała [2×]"
entity_id: "switch.hub3_out2"
- platform: gpio
name: "hub2_in5" # Kuchnia 3_1
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 5
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in5
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out8 # Jadalnia
- logger.log:
level: INFO
format: "Kuchnia Filar 3_1 [1×] → Jadalnia"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 3_1 [1×]"
entity_id: "switch.hub1_out8"
- platform: gpio
name: "hub2_in6" # Kuchnia 3_2
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 6
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in6
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: jadalnia_led # Jadalnia LED
- logger.log:
level: INFO
format: "Kuchnia Filar 3_2 [1×] → Jadalnia LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 3_2 [1×]"
entity_id: "light.jadalnia_led"
- platform: gpio
name: "hub2_in7" # Kuchnia 2_1
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 7
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in7
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out3 # Kuchnia Halogen
- logger.log:
level: INFO
format: "Kuchnia Filar 2_1 [1×] → Kuchnia Halogen"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 2_1 [1×]"
entity_id: "switch.hub1_out3"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Kuchnia Filar 2_1 [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 2_1 [długi]"
entity_id: "binary_sensor.hub2_in7"
- platform: gpio
name: "hub2_in8" # Kuchnia 2_2
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 8
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in8
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: kuchnia_lezka_led # Kuchnia Łezka LED
- logger.log:
level: INFO
format: "Kuchnia Filar 2_2 [1×] → Kuchnia Łezka LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 2_2 [1×]"
entity_id: "light.kuchnia_lezka_led"
- platform: gpio
name: "hub2_in9" # Kuchnia 1_1
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 9
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in9
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out11 # Salon Plafon
- logger.log:
level: INFO
format: "Kuchnia Filar 1_1 [1×] → Salon Plafon"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 1_1 [1×]"
entity_id: "switch.hub2_out11"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: switch.toggle
data:
entity_id: switch.salon_wentylator # Salon Wentylator
- logger.log:
level: INFO
format: "Kuchnia Filar 1_1 [2×] → Salon Wentylator"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 1_1 [2×]"
entity_id: "switch.salon_wentylator"
- platform: gpio
name: "hub2_in10" # Kuchnia 1_2
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 10
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in10
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.komin_led # Komin LED
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiety_led # Salon Kinkiety LED
- logger.log:
level: INFO
format: "Kuchnia Filar 1_2 [1×] → Komin LED, Salon Kinkiety LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 1_2 [1×]"
entity_id: "light.komin_led"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 1_2 [1×]"
entity_id: "light.salon_kinkiety_led"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.komin_led # Komin LED
- logger.log:
level: INFO
format: "Kuchnia Filar 1_2 [2×] → Komin LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 1_2 [2×]"
entity_id: "light.komin_led"
- timing:
- ON for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.komin_led # Komin LED
- logger.log:
level: INFO
format: "Kuchnia Filar 1_2 [długi] → Komin LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Kuchnia Filar 1_2 [długi]"
entity_id: "light.komin_led"
- platform: gpio
name: "hub2_in11" # Schody 3
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 11
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in11
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.oczka_taras_2 # Oczka Taras
- homeassistant.service:
service: light.toggle
data:
entity_id: light.skrzynia_2 # Skrzynia
- homeassistant.service:
service: light.toggle
data:
entity_id: light.tunel_2 # Tunel
- homeassistant.service:
service: light.toggle
data:
entity_id: light.zwis_schody_2 # Zwis Schody
- logger.log:
level: INFO
format: "Schody 3 [1×] → Oczka Taras, Skrzynia, Tunel, Zwis Schody"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 3 [1×]"
entity_id: "light.oczka_taras_2"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 3 [1×]"
entity_id: "light.skrzynia_2"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 3 [1×]"
entity_id: "light.tunel_2"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 3 [1×]"
entity_id: "light.zwis_schody_2"
- platform: gpio
name: "hub2_in12" # Schody 1
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 12
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in12
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out11 # Salon Plafon
- logger.log:
level: INFO
format: "Schody 1 [1×] → Salon Plafon"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 1 [1×]"
entity_id: "switch.hub2_out11"
- platform: gpio
name: "hub2_in13" # Schody 2
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 13
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in13
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiet_1_led # Salon Kinkiet 1
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiet_2_led # Salon Kinkiet 2
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiet_3_led # Salon Kinkiet 3
- logger.log:
level: INFO
format: "Schody 2 [1×] → Salon Kinkiet 1, Salon Kinkiet 2, Salon Kinkiet 3"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [1×]"
entity_id: "light.salon_kinkiet_1_led"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [1×]"
entity_id: "light.salon_kinkiet_2_led"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [1×]"
entity_id: "light.salon_kinkiet_3_led"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiety_led # Salon Kinkiety LED (grupa)
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiet_1_led # Salon Kinkiet 1
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiet_2_led # Salon Kinkiet 2
- homeassistant.service:
service: light.toggle
data:
entity_id: light.salon_kinkiet_3_led # Salon Kinkiet 3
- logger.log:
level: INFO
format: "Schody 2 [2×] → Salon Kinkiety LED (grupa), Salon Kinkiet 1, Salon Kinkiet 2, Salon Kinkiet 3"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [2×]"
entity_id: "light.salon_kinkiety_led"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [2×]"
entity_id: "light.salon_kinkiet_1_led"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [2×]"
entity_id: "light.salon_kinkiet_2_led"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [2×]"
entity_id: "light.salon_kinkiet_3_led"
- timing:
- ON for at least 350ms
then:
- homeassistant.service:
service: light.toggle
data:
entity_id: light.komin_led # Komin LED
- logger.log:
level: INFO
format: "Schody 2 [długi] → Komin LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Schody 2 [długi]"
entity_id: "light.komin_led"
- platform: gpio
name: "hub2_in14" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 14
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in14
- platform: gpio
name: "hub2_in15" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub2_IN
number: 15
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub2_in15
##################
#mcp23xxx_hub3_IN#
##################
- platform: gpio
name: "hub3_in0" # Garderoba Duża Lewy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 0
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in0
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out7 # Garderoba Duża
- logger.log:
level: INFO
format: "Garderoba Duża Lewy [1×] → Garderoba Duża"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Garderoba Duża Lewy [1×]"
entity_id: "switch.hub1_out7"
- platform: gpio
name: "hub3_in1" # Garderoba Duża Prawy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 1
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in1
- platform: gpio
name: "hub3_in2" # SPA Lewy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 2
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in2
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out13 # SPA Zwisy
- logger.log:
level: INFO
format: "SPA Lewy [1×] → SPA Zwisy"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Lewy [1×]"
entity_id: "switch.hub2_out13"
- timing:
- ON for at least 350ms
then:
- switch.toggle: hub1_out4 # SPA Wentylator
- logger.log:
level: INFO
format: "SPA Lewy [długi] → SPA Wentylator"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Lewy [długi]"
entity_id: "switch.hub1_out4"
- platform: gpio
name: "hub3_in3" # SPA Prawy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 3
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in3
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out4 # SPA Wentylator
- switch.toggle: hub1_out10 # SPA Halogeny
- logger.log:
level: INFO
format: "SPA Prawy [1×] → SPA Wentylator, SPA Halogeny"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Prawy [1×]"
entity_id: "switch.hub1_out4"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Prawy [1×]"
entity_id: "switch.hub1_out10"
- timing:
- ON for at least 350ms
then:
- light.toggle: SPA_Ledy # SPA Ledy
- logger.log:
level: INFO
format: "SPA Prawy [długi] → SPA Ledy"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Prawy [długi]"
entity_id: "light.spa_ledy"
- platform: gpio
name: "hub3_in4" # Biała Łazienka Ściana
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 4
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in4
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out0 # Łazienka Sufit
- logger.log:
level: INFO
format: "Biała Łazienka [1×] → Łazienka Sufit"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Biała Łazienka [1×]"
entity_id: "switch.hub2_out0"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: biala_lazienka_wanna_led # Biała Łazienka Wanna LED
- logger.log:
level: INFO
format: "Biała Łazienka [2×] → Biała Łazienka Wanna LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Biała Łazienka [2×]"
entity_id: "light.biala_lazienka_wanna_led"
- timing:
- ON for at least 350ms
then:
- switch.toggle: hub2_out8 # Łazienka Wentylator
- logger.log:
level: INFO
format: "Biała Łazienka [długi] → Łazienka Wentylator"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Biała Łazienka [długi]"
entity_id: "switch.hub2_out8"
- platform: gpio
name: "hub3_in5" # Małe WC Lustro Prawy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 5
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in5
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out5 # WC Wentylator
- switch.toggle: hub2_out2 # WC Sufit
- homeassistant.service:
service: light.toggle
data:
entity_id: light.wc_led # WC LED
- logger.log:
level: INFO
format: "WC Prawy [1×] → WC Wentylator, WC Sufit, WC LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "WC Prawy [1×]"
entity_id: "switch.hub2_out5"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "WC Prawy [1×]"
entity_id: "switch.hub2_out2"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "WC Prawy [1×]"
entity_id: "light.wc_led"
- platform: gpio
name: "hub3_in6" # Małe WC Lustro Lewy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 6
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in6
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out9 # WC Lustro
- logger.log:
level: INFO
format: "WC Lewy [1×] → WC Lustro"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "WC Lewy [1×]"
entity_id: "switch.hub1_out9"
- platform: gpio
name: "hub3_in7" # Biała Łazienka Skos
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 7
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in7
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub2_out4 # Łazienka Skos
- logger.log:
level: INFO
format: "Biała Łazienka Skos [1×] → Łazienka Skos"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Biała Łazienka Skos [1×]"
entity_id: "switch.hub2_out4"
- platform: gpio
name: "hub3_in8" # SPA Lustro Lewy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 8
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in8
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out5 # Kanciapa pod schodami
- logger.log:
level: INFO
format: "SPA Lustro Lewy [1×] → Kanciapa pod schodami"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Lustro Lewy [1×]"
entity_id: "switch.hub1_out5"
- platform: gpio
name: "hub3_in9" # SPA Lustro Prawy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 9
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in9
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out1 # SPA Kinkiet Lustro
- logger.log:
level: INFO
format: "SPA Lustro Prawy [1×] → SPA Kinkiet Lustro"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "SPA Lustro Prawy [1×]"
entity_id: "switch.hub1_out1"
- platform: gpio
name: "hub3_in10" # Biuro Skos
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 10
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in10
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out2 # Biuro
- logger.log:
level: INFO
format: "Biuro Skos [1×] → Biuro"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Biuro Skos [1×]"
entity_id: "switch.hub1_out2"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: serwer_led # Serwer LED
- logger.log:
level: INFO
format: "Biuro Skos [2×] → Serwer LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Biuro Skos [2×]"
entity_id: "light.serwer_led"
- platform: gpio
name: "hub3_in11" # Serwer Prawy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 11
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in11
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: serwer_led # Serwer LED
- logger.log:
level: INFO
format: "Serwer Prawy [1×] → Serwer LED"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Prawy [1×]"
entity_id: "light.serwer_led"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- light.toggle: test_led_2 # TEST LED 2
- logger.log:
level: INFO
format: "Serwer Prawy [2×] → TEST LED 2"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Prawy [2×]"
entity_id: "light.test_led_2"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub3_out2 # Wentylator Główny Obieg
- logger.log:
level: INFO
format: "Serwer Prawy [3×] → Wentylator Główny Obieg"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Prawy [3×]"
entity_id: "switch.hub3_out2"
- platform: gpio
name: "hub3_in12" # Serwer Lewy
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 12
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in12
on_multi_click:
- timing:
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out14 # Korytarz Halogeny
- logger.log:
level: INFO
format: "Serwer Lewy [1×] → Korytarz Halogeny"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Lewy [1×]"
entity_id: "switch.hub1_out14"
- timing:
- ON for at most 350ms
- OFF for at most 350ms
- ON for at most 350ms
- OFF for at least 350ms
then:
- switch.toggle: hub1_out14 # Korytarz Halogeny
- switch.toggle: hub1_out2 # Biuro
- logger.log:
level: INFO
format: "Serwer Lewy [2×] → Korytarz Halogeny, Biuro"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Lewy [2×]"
entity_id: "switch.hub1_out14"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Lewy [2×]"
entity_id: "switch.hub1_out2"
- timing:
- ON for at least 350ms
then:
- script.execute: off_all
- logger.log:
level: INFO
format: "Serwer Lewy [długi] → off_all"
- homeassistant.service:
service: logbook.log
data:
name: "Main Hub"
message: "Serwer Lewy [długi]"
entity_id: "binary_sensor.hub3_in12"
- platform: gpio
name: "hub3_in13" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 13
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in13
- platform: gpio
name: "hub3_in14" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 14
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in14
- platform: gpio
name: "hub3_in15" # (niepodpięte)
pin:
mcp23xxx: mcp23xxx_hub3_IN
number: 15
mode: INPUT
inverted: True
filters:
- delayed_on_off: 50ms
id: hub3_in15
sensor:
- platform: internal_temperature
name: "ESP32 Temperatura"
entity_category: diagnostic
update_interval: 60s
- platform: uptime
type: seconds
name: "Uptime"
icon: "mdi:clock-outline"
entity_category: diagnostic
update_interval: 300s
- platform: atc_mithermometer
mac_address: "A4:C1:38:C5:11:58"
temperature:
name: "Biuro Temperatura"
humidity:
name: "Biuro Nawilżenie"
battery_level:
name: "Biuro Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:5C:4F:38"
temperature:
name: "Serwer Temperatura"
humidity:
name: "Serwer Nawilżenie"
battery_level:
name: "Serwer Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:67:6B:94"
temperature:
name: "Kuchnia Temperatura"
humidity:
name: "Kuchnia Nawilżenie"
battery_level:
name: "Kuchnia Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:C9:FE:CA"
temperature:
name: "WC Temperatura"
humidity:
name: "WC Nawilżenie"
battery_level:
name: "WC Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:63:6D:DB"
temperature:
name: "Łazienka Temperatura"
humidity:
name: "Łazienka Nawilżenie"
battery_level:
name: "Łazienka Bateria"