Edycja pliku konfiguracyjnego
Wszystko, co musisz wiedzieć o pliku konfiguracyjnym dla boneIO ESP Cover.
Plik konfiguracyjny
Plik konfiguracyjny może wydawać się duży i skomplikowany, ale w rzeczywistości jest całkiem prosty. Plik jest podzielony na sekcje, które opiszemy poniżej.
Jako przykładu użyjemy boneio-cover_v0_7.yaml.
Oto kompletny plik konfiguracyjny:
substitutions:
name: boneio-c-07
friendly_name: 'BoneIO ESP Cover'
serial_prefix: 'esp' #Don't change it.
esphome:
name: '${name}'
friendly_name: '${friendly_name}'
name_add_mac_suffix: true
project:
name: boneio.32x10-cover
version: '0.7'
esp32:
board: nodemcu-32s
framework:
type: esp-idf
ethernet:
id: eth
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk:
pin: GPIO0
mode: CLK_EXT_IN
phy_addr: 1
power_pin: GPIO16
dashboard_import:
package_import_url: github://boneIO-eu/esphome/boneio-cover_v0_7.yaml@latest
import_full_config: true
packages:
internals_packages:
url: https://github.com/boneIO-eu/esphome
ref: v1.7.1
files: [
'devices/buzzer.yaml',
'devices/serial_no.yaml',
'devices_v0_7/display.yaml',
'devices_v0_7/i2c.yaml',
'devices_v0_7-v0_9/ina219.yaml',
'devices_v0_7-v0_9/lm75b.yaml',
'devices_v0_7-v0_9/pcf.yaml',
'boards/cover/out01_02.yaml',
'boards/cover/out03_04.yaml',
'boards/cover/out05_06.yaml',
'boards/cover/out07_08.yaml',
'boards/cover/out09_10.yaml',
'boards/cover/out11_12.yaml',
'boards/cover/out13_14.yaml',
'boards/cover/out15_16.yaml',
'boards/cover/out17_18.yaml',
'boards/cover/out19_20.yaml',
'boards/cover/out21_22.yaml',
'boards/cover/out23_24.yaml',
'boards/cover/out25_26.yaml',
'boards/cover/out27_28.yaml',
'boards/cover/out29_30.yaml',
'boards/cover/out31_32.yaml',
# 'devices_v0_7-v0_9/one_wire.yaml',
]
logger:
api:
reboot_timeout: 0s
ota:
- platform: esphome
- platform: web_server
web_server:
port: 80
local: true
time:
- platform: homeassistant
timezone: Europe/Warsaw
id: homeassistant_time
cover:
- platform: time_based
name: 'Cover 01'
id: cover_01
open_action:
- switch.turn_on: cover_open_01_out01
open_duration: 10s
close_action:
- switch.turn_on: cover_close_01_out02
close_duration: 10s
stop_action:
- switch.turn_off: cover_open_01_out01
- switch.turn_off: cover_close_01_out02
# ... (konfiguracje dla rolet od 02 do 16 są podobne)
binary_sensor:
- platform: gpio
name: 'IN_01'
id: in_01
pin:
pcf8574: pcf_inputs_1to14
number: 0
mode:
input: true
inverted: true
on_press:
then:
- cover.open: cover_01
on_release:
then:
- cover.stop: cover_01
- platform: gpio
name: 'IN_02'
id: in_02
pin:
pcf8574: pcf_inputs_1to14
number: 1
mode:
input: true
inverted: true
on_press:
then:
- cover.close: cover_01
on_release:
then:
- cover.stop: cover_01
# ... (konfiguracje dla wejść od IN_03 do IN_32 są podobne)
######################
### SEKCJA MODBUS ###
######################
# ODKOMENTUJ PONIŻEJ, ABY UŻYWAĆ MODBUS
# uart:
# id: uart_pin14_15
# rx_pin: GPIO14
# tx_pin: GPIO15
# baud_rate: 9600
# stop_bits: 1
# modbus:
# send_wait_time: 200ms
# uart_id: uart_pin14_15
# id: boneio_modbussubstitutions
Ta sekcja służy głównie do nazwania Twojego sterownika. Powinieneś skupić się na friendly_name. Wpisz tutaj dokładną nazwę swojego boneIO. Nazwa zależy od Twoich potrzeb. Może to być "boneIO ESP Cover", jeśli masz jeden, lub na przykład "boneIO Cover 1 piętro".
esphome
Zawiera definicje dla Twojego sterownika. Nie powinieneś zmieniać name ani friendly_name. Linia name_add_mac_suffix: doda do nazwy sterownika sufiks MAC, co jest przydatne do identyfikacji. project: to miejsce, w którym definiujesz typ i wersję swojego sterownika.
ethernet
Ta sekcja opisuje port Ethernet Twojego sterownika — nie powinieneś niczego tutaj zmieniać.
packages
Ta sekcja definiuje wszystkie pakiety używane przez boneIO, wraz z adresem do naszego GitHuba. Jedną rzeczą, która może Cię zainteresować, jest odkomentowanie sekcji # 'devices_v0_7-v0_9/one_wire.yaml', jeśli chcesz używać czujnika one-wire.
logger, api, ota, web_server, time
To standardowe sekcje ESPHome. Możesz zwiększyć poziom logów w logger w celu rozwiązywania problemów, ustawić limit czasu ponownego uruchomienia w api, jeśli sterownik straci połączenie z HA, i ustawić swoją strefę czasową w time.
cover
To główna sekcja do konfiguracji Twoich rolet. Każda encja cover jest tutaj zdefiniowana.
platform: time_based: Oznacza to, że pozycja rolety jest szacowana na podstawie czasu potrzebnego na jej otwarcie lub zamknięcie.name: 'Cover 01': Przyjazna nazwa, która pojawi się w Home Assistant.open_duration/close_duration: To jest ważne! Musisz zmierzyć czas potrzebny na pełne otwarcie i zamknięcie rolety i wpisać te wartości tutaj (np.25s).open_action/close_action/stop_action: Definiują, które przekaźniki są aktywowane do sterowania silnikiem. Jest to wstępnie skonfigurowane i nie powinno być zmieniane.
Zaawansowane: Żaluzje Weneckie z Kontrolą Pochylenia
Standardowa integracja rolet w ESPHome nie obsługuje kontroli pochyłu lameli. Aby włączyć tę funkcjonalność, używamy niestandardowego komponentu stworzonego przez bruxy70, który dodaje platformę venetian_blinds.
1. Dodaj niestandardowy komponent
Najpierw musisz poinformować ESPHome, skąd ma pobrać niestandardowy komponent. Dodaj poniższy blok external_components na samym początku pliku konfiguracyjnego:
external_components:
- source:
type: git
url: https://github.com/bruxy70/Venetian-Blinds-Control
ref: master
components: [venetian_blinds]
# ... reszta Twojej konfiguracji (substitutions, esphome, itp.)2. Skonfiguruj roletę jako żaluzję wenecką
Następnie znajdź roletę, którą chcesz zmodyfikować, i wprowadź następujące zmiany:
- Zmień
platformztime_basednavenetian_blinds. - Dodaj parametr
tilt_duration. Jest to czas w milisekundach, jakiego lamele potrzebują na przejście od pełnego zamknięcia do pełnego otwarcia.
cover:
- platform: venetian_blinds # Zmieniono z time_based
name: 'Blind 01'
id: blind_01
open_action:
- switch.turn_on: cover_open_01_out01
open_duration: 60s # Użyj bezpiecznej, długiej wartości do kalibracji
close_action:
- switch.turn_on: cover_close_01_out02
close_duration: 60s # Użyj bezpiecznej, długiej wartości do kalibracji
tilt_duration: 2000ms # Dodano do kontroli pochyłu
stop_action:
- switch.turn_off: cover_open_01_out01
- switch.turn_off: cover_close_01_out023. Skalibruj czasy trwania
Aby pochył i pozycja działały dokładnie, musisz skalibrować open_duration, close_duration i tilt_duration.
Zawsze miej żaluzję w pełni otwartą przed rozpoczęciem!
- Ustaw
open_durationiclose_durationna bezpieczną, długą wartość (np.60s) i skompiluj oprogramowanie. - Zmierz czas zamykania: Użyj stopera i zmierz, ile czasu zajmuje żaluzji przejście od pełnego otwarcia do pełnego zamknięcia. Zanotuj tę wartość.
- Zmierz czas otwierania i pochyłu: Rozpocznij otwieranie żaluzji. Zanotuj czas potrzebny na zmianę pochyłu lameli z zamkniętych na otwarte (to jest Twój
tilt_duration). Następnie pozwól jej kontynuować i zanotuj całkowity czas potrzebny na pełne otwarcie (to jest Twójopen_duration). - Zaktualizuj swoją konfigurację o zmierzone czasy, ponownie skompiluj i wgraj. Twoja żaluzja wenecka jest teraz skalibrowana!
binary_sensor
Ta sekcja definiuje fizyczne wejścia (np. przełączniki ścienne). Każde wejście jest połączone z akcją rolety.
on_press: Definiuje, co się dzieje po naciśnięciu przycisku (np.cover.open: cover_01).on_release: Definiuje, co się dzieje po zwolnieniu przycisku (np.cover.stop: cover_01). Jest to przydatne do zatrzymywania rolety w dowolnej pozycji.
Możesz dowolnie przypisać, które wejście steruje którą roletą, zmieniając id w akcjach on_press i on_release.
Sekcja Modbus
Ta sekcja jest przeznaczona dla Modbus. Jeśli planujesz go używać, powinieneś najpierw ją odkomentować. Następnie zapoznaj się z naszym poradnikiem Modbus: Modbus z pakietami Esphome