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

222
main-hub.yaml Normal file
View File

@@ -0,0 +1,222 @@
substitutions:
name: main-hub
friendly_name: 'Main Hub'
project_version: '1.0'
esphome:
name: '${name}'
friendly_name: '${friendly_name}'
name_add_mac_suffix: true
project:
name: peakcontrol.main-hub
version: '${project_version}'
on_boot:
- priority: 1001
then:
- lambda: |-
gpio_reset_pin((gpio_num_t)5);
gpio_reset_pin((gpio_num_t)14);
gpio_reset_pin((gpio_num_t)15);
esp32:
board: esp32-poe
framework:
type: esp-idf
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0
power_pin: GPIO12
dashboard_import:
package_import_url: github://gitea.domowyasystent.com/jkocon/ESP32-Hub/main-hub.yaml@main
import_full_config: true
logger:
api:
reboot_timeout: 0s
encryption:
key: "" # TODO: wygeneruj nowy klucz: esphome generate-api-key
ota:
- platform: esphome
password: "" # TODO: ustaw hasło OTA
- platform: web_server
web_server:
port: 80
local: true
#wifi:
# ssid: !secret wifi_ssid
# password: !secret wifi_password
#
# ap:
# ssid: '${friendly_name} Fallback'
# password: ""
#captive_portal:
time:
- platform: homeassistant
timezone: Europe/Warsaw
id: homeassistant_time
button:
- platform: restart
name: '${friendly_name} Restart'
packages:
main_hub_packages:
url: https://gitea.domowyasystent.com/jkocon/ESP32-Hub
ref: main
files: [
# ── Zawsze aktywne ────────────────────────────────────────────────────
'packages/main_hub/i2c.yaml',
'packages/main_hub/status_led.yaml',
'packages/main_hub/scripts.yaml',
# ── PCA9685 PWM ───────────────────────────────────────────────────────
# Zworki A0A5 ustawiają adres: A0=+1, A1=+2, A2=+4, A3=+8, A4=+16, A5=+32
# Baza adresów: 0x40. Uwaga: 0x700x73 zarezerwowane przez protokół.
# Odkomentuj linię zgodną z fizycznym adresem modułu.
#
# 'packages/main_hub/pca9685/0x40.yaml', # A0=0 A1=0 A2=0 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x41.yaml', # A0=1 A1=0 A2=0 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x42.yaml', # A0=0 A1=1 A2=0 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x43.yaml', # A0=1 A1=1 A2=0 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x44.yaml', # A0=0 A1=0 A2=1 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x45.yaml', # A0=1 A1=0 A2=1 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x46.yaml', # A0=0 A1=1 A2=1 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x47.yaml', # A0=1 A1=1 A2=1 A3=0 A4=0 A5=0
# 'packages/main_hub/pca9685/0x48.yaml', # A0=0 A1=0 A2=0 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x49.yaml', # A0=1 A1=0 A2=0 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x4a.yaml', # A0=0 A1=1 A2=0 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x4b.yaml', # A0=1 A1=1 A2=0 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x4c.yaml', # A0=0 A1=0 A2=1 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x4d.yaml', # A0=1 A1=0 A2=1 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x4e.yaml', # A0=0 A1=1 A2=1 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x4f.yaml', # A0=1 A1=1 A2=1 A3=1 A4=0 A5=0
# 'packages/main_hub/pca9685/0x50.yaml', # A0=0 A1=0 A2=0 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x51.yaml', # A0=1 A1=0 A2=0 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x52.yaml', # A0=0 A1=1 A2=0 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x53.yaml', # A0=1 A1=1 A2=0 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x54.yaml', # A0=0 A1=0 A2=1 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x55.yaml', # A0=1 A1=0 A2=1 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x56.yaml', # A0=0 A1=1 A2=1 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x57.yaml', # A0=1 A1=1 A2=1 A3=0 A4=1 A5=0
# 'packages/main_hub/pca9685/0x58.yaml', # A0=0 A1=0 A2=0 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x59.yaml', # A0=1 A1=0 A2=0 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x5a.yaml', # A0=0 A1=1 A2=0 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x5b.yaml', # A0=1 A1=1 A2=0 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x5c.yaml', # A0=0 A1=0 A2=1 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x5d.yaml', # A0=1 A1=0 A2=1 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x5e.yaml', # A0=0 A1=1 A2=1 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x5f.yaml', # A0=1 A1=1 A2=1 A3=1 A4=1 A5=0
# 'packages/main_hub/pca9685/0x60.yaml', # A0=0 A1=0 A2=0 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x61.yaml', # A0=1 A1=0 A2=0 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x62.yaml', # A0=0 A1=1 A2=0 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x63.yaml', # A0=1 A1=1 A2=0 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x64.yaml', # A0=0 A1=0 A2=1 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x65.yaml', # A0=1 A1=0 A2=1 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x66.yaml', # A0=0 A1=1 A2=1 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x67.yaml', # A0=1 A1=1 A2=1 A3=0 A4=0 A5=1
# 'packages/main_hub/pca9685/0x68.yaml', # A0=0 A1=0 A2=0 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x69.yaml', # A0=1 A1=0 A2=0 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x6a.yaml', # A0=0 A1=1 A2=0 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x6b.yaml', # A0=1 A1=1 A2=0 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x6c.yaml', # A0=0 A1=0 A2=1 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x6d.yaml', # A0=1 A1=0 A2=1 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x6e.yaml', # A0=0 A1=1 A2=1 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x6f.yaml', # A0=1 A1=1 A2=1 A3=1 A4=0 A5=1
# 'packages/main_hub/pca9685/0x74.yaml', # A0=0 A1=0 A2=1 A3=0 A4=1 A5=1
# 'packages/main_hub/pca9685/0x75.yaml', # A0=1 A1=0 A2=1 A3=0 A4=1 A5=1
# 'packages/main_hub/pca9685/0x76.yaml', # A0=0 A1=1 A2=1 A3=0 A4=1 A5=1
# 'packages/main_hub/pca9685/0x77.yaml', # A0=1 A1=1 A2=1 A3=0 A4=1 A5=1
# 'packages/main_hub/pca9685/0x78.yaml', # A0=0 A1=0 A2=0 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x79.yaml', # A0=1 A1=0 A2=0 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x7a.yaml', # A0=0 A1=1 A2=0 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x7b.yaml', # A0=1 A1=1 A2=0 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x7c.yaml', # A0=0 A1=0 A2=1 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x7d.yaml', # A0=1 A1=0 A2=1 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x7e.yaml', # A0=0 A1=1 A2=1 A3=1 A4=1 A5=1
# 'packages/main_hub/pca9685/0x7f.yaml', # A0=1 A1=1 A2=1 A3=1 A4=1 A5=1
# ── MCP23017 OUTPUTS ──────────────────────────────────────────────────
# Zworki A0A2 ustawiają adres: A0=+1, A1=+2, A2=+4. Baza: 0x20.
# Odkomentuj linię zgodną z fizycznym adresem modułu skonfigurowanego jako OUTPUT.
#
# 'packages/main_hub/mcp23017/outputs/0x20.yaml', # A2=0 A1=0 A0=0
# 'packages/main_hub/mcp23017/outputs/0x21.yaml', # A2=0 A1=0 A0=1
# 'packages/main_hub/mcp23017/outputs/0x22.yaml', # A2=0 A1=1 A0=0
# 'packages/main_hub/mcp23017/outputs/0x23.yaml', # A2=0 A1=1 A0=1
# 'packages/main_hub/mcp23017/outputs/0x24.yaml', # A2=1 A1=0 A0=0
# 'packages/main_hub/mcp23017/outputs/0x25.yaml', # A2=1 A1=0 A0=1
# 'packages/main_hub/mcp23017/outputs/0x26.yaml', # A2=1 A1=1 A0=0
# 'packages/main_hub/mcp23017/outputs/0x27.yaml', # A2=1 A1=1 A0=1
# ── MCP23017 INPUTS ───────────────────────────────────────────────────
# Odkomentuj linię zgodną z fizycznym adresem modułu skonfigurowanego jako INPUT.
#
# 'packages/main_hub/mcp23017/inputs/0x20.yaml', # A2=0 A1=0 A0=0
# 'packages/main_hub/mcp23017/inputs/0x21.yaml', # A2=0 A1=0 A0=1
# 'packages/main_hub/mcp23017/inputs/0x22.yaml', # A2=0 A1=1 A0=0
# 'packages/main_hub/mcp23017/inputs/0x23.yaml', # A2=0 A1=1 A0=1
# 'packages/main_hub/mcp23017/inputs/0x24.yaml', # A2=1 A1=0 A0=0
# 'packages/main_hub/mcp23017/inputs/0x25.yaml', # A2=1 A1=0 A0=1
# 'packages/main_hub/mcp23017/inputs/0x26.yaml', # A2=1 A1=1 A0=0
# 'packages/main_hub/mcp23017/inputs/0x27.yaml', # A2=1 A1=1 A0=1
]
esp32_ble_tracker:
sensor:
- platform: uptime
type: seconds
name: Uptime Sensor
- platform: atc_mithermometer
mac_address: "A4:C1:38:C5:11:58"
temperature:
name: "Biuro Temperatura"
humidity:
name: "Biuro Nawilzenie"
battery_level:
name: "Biuro Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:5C:4F:38"
temperature:
name: "Serwer Temperatura"
humidity:
name: "Serwer Nawilzenie"
battery_level:
name: "Serwer Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:67:6B:94"
temperature:
name: "Kuchnia Temperatura"
humidity:
name: "Kuchnia Nawilzenie"
battery_level:
name: "Kuchnia Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:C9:FE:CA"
temperature:
name: "WC Temperatura"
humidity:
name: "WC Nawilzenie"
battery_level:
name: "WC Bateria"
- platform: atc_mithermometer
mac_address: "A4:C1:38:63:6D:DB"
temperature:
name: "Lazienka Temperatura"
humidity:
name: "Lazienka Nawilzenie"
battery_level:
name: "Lazienka Bateria"