O NasBlogKontakt
ProduktyESP 24x16APierwsze Uruchomienie

Jak edytować plik konfiguracyjny?

Wszystko, co powinieneś wiedzieć o pliku konfiguracyjnym

Plik konfiguracyjny

Plik konfiguracyjny może wydawać się duży i skomplikowany, ale w rzeczywistości tak nie jest. Sam plik jest podzielony na sekcje, które opiszemy poniżej. Jako przykładu użyjemy boneio-24x16_switches_v0_7.yaml.

A więc zaczynajmy. Oto cały plik konfiguracyjny:

substitutions:
  name: boneio-24-sw-07
  friendly_name: 'BoneIO ESP 24x16 Switches'
  serial_prefix: 'esp' #Don't change it.

esphome:
  name: '${name}'
  friendly_name: '${friendly_name}'
  name_add_mac_suffix: true
  project:
    name: boneio.24x16-switches
    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-24x16_switches_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_with_mcp.yaml',
        'boards/24x16_output.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

switch:
  - platform: output
    name: 'Switch 01'
    output: out_01
    id: switch_01
  - platform: output
    name: 'Switch 02'
    output: out_02
    id: switch_02
  - platform: output
    name: 'Switch 03'
    output: out_03
    id: switch_03
  - platform: output
    name: 'Switch 04'
    output: out_04
    id: switch_04
  - platform: output
    name: 'Switch 05'
    output: out_05
    id: switch_05
  - platform: output
    name: 'Switch 06'
    output: out_06
    id: switch_06
  - platform: output
    name: 'Switch 07'
    output: out_07
    id: switch_07
  - platform: output
    name: 'Switch 08'
    output: out_08
    id: switch_08
  - platform: output
    name: 'Switch 09'
    output: out_09
    id: switch_09
  - platform: output
    name: 'Switch 10'
    output: out_10
    id: switch_10
  - platform: output
    name: 'Switch 11'
    output: out_11
    id: switch_11
  - platform: output
    name: 'Switch 12'
    output: out_12
    id: switch_12
  - platform: output
    name: 'Switch 13'
    output: out_13
    id: switch_13
  - platform: output
    name: 'Switch 14'
    output: out_14
    id: switch_14
  - platform: output
    name: 'Switch 15'
    output: out_15
    id: switch_15
  - platform: output
    name: 'Switch 16'
    output: out_16
    id: switch_16
  - platform: output
    name: 'Switch 17'
    output: out_17
    id: switch_17
  - platform: output
    name: 'Switch 18'
    output: out_18
    id: switch_18
  - platform: output
    name: 'Switch 19'
    output: out_19
    id: switch_19
  - platform: output
    name: 'Switch 20'
    output: out_20
    id: switch_20
  - platform: output
    name: 'Switch 21'
    output: out_21
    id: switch_21
  - platform: output
    name: 'Switch 22'
    output: out_22
    id: switch_22
  - platform: output
    name: 'Switch 23'
    output: out_23
    id: switch_23
  - platform: output
    name: 'Switch 24'
    output: out_24
    id: switch_24

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:
        - switch.toggle: switch_01

  - platform: gpio
    name: 'IN_02'
    id: in_02
    pin:
      pcf8574: pcf_inputs_1to14
      number: 1
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_02

  - platform: gpio
    name: 'IN_03'
    id: in_03
    pin:
      pcf8574: pcf_inputs_1to14
      number: 2
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_03

  - platform: gpio
    name: 'IN_04'
    id: in_04
    pin:
      pcf8574: pcf_inputs_1to14
      number: 3
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_04

  - platform: gpio
    name: 'IN_05'
    id: in_05
    pin:
      pcf8574: pcf_inputs_1to14
      number: 4
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_05

  - platform: gpio
    name: 'IN_06'
    id: in_06
    pin:
      pcf8574: pcf_inputs_1to14
      number: 5
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_06

  - platform: gpio
    name: 'IN_07'
    id: in_07
    pin:
      pcf8574: pcf_inputs_1to14
      number: 6
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_07

  - platform: gpio
    name: 'IN_08'
    id: in_08
    pin:
      pcf8574: pcf_inputs_1to14
      number: 8
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_08

  - platform: gpio
    name: 'IN_09'
    id: in_09
    pin:
      pcf8574: pcf_inputs_1to14
      number: 9
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_09

  - platform: gpio
    name: 'IN_10'
    id: in_10
    pin:
      pcf8574: pcf_inputs_1to14
      number: 10
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_10

  - platform: gpio
    name: 'IN_11'
    id: in_11
    pin:
      pcf8574: pcf_inputs_1to14
      number: 11
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_11

  - platform: gpio
    name: 'IN_12'
    id: in_12
    pin:
      pcf8574: pcf_inputs_1to14
      number: 12
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_12

  - platform: gpio
    name: 'IN_13'
    id: in_13
    pin:
      pcf8574: pcf_inputs_1to14
      number: 13
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_13

  - platform: gpio
    name: 'IN_14'
    id: in_14
    pin:
      pcf8574: pcf_inputs_1to14
      number: 14
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_14

  - platform: gpio
    name: 'IN_15'
    id: in_15
    pin:
      pcf8574: pcf_inputs_15to28
      number: 6
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_15

  - platform: gpio
    name: 'IN_16'
    id: in_16
    pin:
      pcf8574: pcf_inputs_15to28
      number: 5
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_16

  - platform: gpio
    name: 'IN_17'
    id: in_17
    pin:
      pcf8574: pcf_inputs_15to28
      number: 4
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_17

  - platform: gpio
    name: 'IN_18'
    id: in_18
    pin:
      pcf8574: pcf_inputs_15to28
      number: 3
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_18

  - platform: gpio
    name: 'IN_19'
    id: in_19
    pin:
      pcf8574: pcf_inputs_15to28
      number: 2
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_19

  - platform: gpio
    name: 'IN_20'
    id: in_20
    pin:
      pcf8574: pcf_inputs_15to28
      number: 1
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_20

  - platform: gpio
    name: 'IN_21'
    id: in_21
    pin:
      pcf8574: pcf_inputs_15to28
      number: 0
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_21

  - platform: gpio
    name: 'IN_22'
    id: in_22
    pin:
      pcf8574: pcf_inputs_15to28
      number: 8
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_22

  - platform: gpio
    name: 'IN_23'
    id: in_23
    pin:
      pcf8574: pcf_inputs_15to28
      number: 9
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_23

  - platform: gpio
    name: 'IN_24'
    id: in_24
    pin:
      pcf8574: pcf_inputs_15to28
      number: 10
      mode:
        input: true
      inverted: true
    on_press:
      then:
        - switch.toggle: switch_24

  - platform: gpio
    name: 'IN_25'
    id: in_25
    pin:
      pcf8574: pcf_inputs_15to28
      number: 11
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_26'
    id: in_26
    pin:
      pcf8574: pcf_inputs_15to28
      number: 12
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_27'
    id: in_27
    pin:
      pcf8574: pcf_inputs_15to28
      number: 13
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_28'
    id: in_28
    pin:
      pcf8574: pcf_inputs_15to28
      number: 14
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_29'
    id: in_29
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 0
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_30'
    id: in_30
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 1
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_31'
    id: in_31
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 2
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_32'
    id: in_32
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 3
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_33'
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 4
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_34'
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 5
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_35'
    pin:
      pcf8574: pcf_inputs_28to35_menu
      number: 6
      mode:
        input: true
      inverted: true
######################
### MODBUS SECTION ###
######################
# UNCOMMENT BELOW TO USE 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

# modbus_controller:
#   - id: YOURDEVICE ID
#     address: 0x09
#     modbus_id: mod_bus
#     setup_priority: -10
#     update_interval: 60s

substitutions

substitutions:
  name: boneio-24-sw-07
  friendly_name: 'BoneIO ESP 24x16 Switches'
  serial_prefix: 'esp' #Don't change it.

Ta część jest głównie odpowiedzialna za nazwę Twojego kontrolera.
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 24x16", jeśli masz jeden kontroler boneIO ESP, lub na przykład "boneIO ESP 1 piętro".

esphome

esphome:
  name: '${name}'
  friendly_name: '${friendly_name}'
  name_add_mac_suffix: true
  project:
    name: boneio.24x16-switches
    version: '0.7'

Tutaj znajdują się definicje dla Twojego kontrolera. Nie powinieneś zmieniać name ani friendly_name. Linia name_add_mac_suffix: doda do nazwy kontrolera sufiks MAC, co jest przydatne do jego identyfikacji. project: to miejsce, w którym definiujesz typ i wersję swojego kontrolera.

esp32

esp32:
  board: nodemcu-32s
  framework:                                                                            
    type: esp-idf

Definicja płytki ESP32 i wymaganego frameworka.

ethernet

ethernet:
  id: eth
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk:
    pin: GPIO0
    mode: CLK_EXT_IN
  phy_addr: 1
  power_pin: GPIO16

Ta część jest odpowiedzialna za opis portu Ethernet Twojego kontrolera - nie powinieneś niczego tutaj zmieniać.

dashboard_import

dashboard_import:
  package_import_url: github://boneIO-eu/esphome/boneio-24x16_switches_v0_7.yaml@latest
  import_full_config: true

To miejsce, w którym zdefiniowany jest adres naszego repozytorium na GitHubie. Stamtąd pobierana jest konfiguracja i wszystkie dodatkowe pakiety. Nie ma tu nic do zmiany.

packages

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_with_mcp.yaml',
        'boards/24x16_output.yaml',
        # 'devices_v0_7-v0_9/one_wire.yaml',
      ]

Tutaj znajdują się definicje wszystkich pakietów używanych 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

logger:

W przypadku rozwiązywania problemów możesz zwiększyć poziom logów na INFO, WARN lub DEBUG. Może to być bardzo przydatne w niektórych przypadkach.

api

api:
  reboot_timeout: 0s

Tutaj zdefiniowany jest limit czasu ponownego uruchomienia, gdy kontroler straci połączenie z HA. Jeśli chcesz, aby Twoje boneIO restartowało się po utracie połączenia z Home Assistant, powinieneś wpisać tutaj wartość, która Ci odpowiada. Dla połączeń WiFi wartość nie powinna wynosić zero. Dla połączeń LAN, brak restartu w większości przypadków nie wpływa negatywnie na połączenie z Home Assistant.

ota

ota:
  - platform: esphome
  - platform: web_server

Część odpowiedzialna za aktualizacje Over The Air. Platforma web_server pozwala na aktualizację przez panel webowy urządzenia.

web_server

web_server:
  port: 80
  local: true

Część odpowiedzialna za włączenie serwera WWW kontrolera.

time

time:
  - platform: homeassistant
    timezone: Europe/Warsaw
    id: homeassistant_time

Ta sekcja jest odpowiedzialna za wybór strefy czasowej Twojego kontrolera. Dostosuj ją do swojej lokalizacji.

Sekcja Modbus

######################
### MODBUS SECTION ###
######################
# UNCOMMENT BELOW TO USE 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

# modbus_controller:
#   - id: YOURDEVICE ID
#     address: 0x09
#     modbus_id: mod_bus
#     setup_priority: -10
#     update_interval: 60s

Ta sekcja jest odpowiedzialna za Modbus. Jeśli planujesz go używać, powinieneś najpierw ją odkomentować.
Następnie zapoznaj się z naszym tutorialem Modbus: Modbus z pakietami Esphome