O NasBlogKontakt
ProduktyESP CoverPierwsze Uruchomienie

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_modbus

substitutions

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ń platform z time_based na venetian_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_out02

3. 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!

  1. Ustaw open_duration i close_duration na bezpieczną, długą wartość (np. 60s) i skompiluj oprogramowanie.
  2. 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ść.
  3. 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ój open_duration).
  4. 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