O NasBlogKontakt
ProduktyESP DimmerESP Dimmer gen2Konfiguracja Oprogramowania

Edycja pliku konfiguracyjnego

Wszystko co powinieneś wiedzieć o pliku konfiguracyjnym

Plik konfiguracyjny

Plik konfiguracyjny wygląda na bardzo duży i skomplikowany, ale w rzeczywistości taki nie jest. Sam plik jest podzielony na sekcje. Opiszemy je poniżej. Za nasz przykład posłuży plik boneio-dimmer_gen2_8ch-v0_1.yaml

A więc zaczynajmy, oto cały plik konfiguracyjny:

substitutions:
  name: boneio-dr-gen2-8ch-01
  friendly_name: 'BoneIO Dimmer Gen2'
  serial_prefix: 'dim2' #Don't change it.
  firmware_manifest: 'https://boneio.eu/fwesp/boneio-dr-gen2-8ch-01.json'
esphome:
  name: '${name}'
  friendly_name: '${friendly_name}'
  name_add_mac_suffix: true
  project:
    name: boneio.dimmer-led-gen2
    version: '0.1'
  on_boot:
    priority: -100
    then:
      - delay: 5s
      - if:
          condition:
            lambda: 'return id(serial_no) != nullptr;'
          then:
            - component.update: serial_no
            - logger.log: "Serial No updated on boot"
          else:
            - logger.log: "Serial No component not found"

esp32:
  board: esp32-s3-devkitc-1
  framework:                                                                            
    type: esp-idf

ethernet:
  id: eth
  type: W5500
  clk_pin: GPIO13
  mosi_pin: GPIO39
  miso_pin: GPIO38
  cs_pin: GPIO12
  interrupt_pin: GPIO2
  reset_pin: GPIO1
  clock_speed: 25MHz

i2c:
  sda: GPIO10
  scl: GPIO11
  scan: True
  frequency: 400kHz



output:
  - platform: ledc
    pin: GPIO18
    frequency: 1000Hz
    inverted: false
    id: chl01
  - platform: ledc
    pin: GPIO17
    frequency: 1000Hz
    inverted: false
    id: chl02
  - platform: ledc
    pin: GPIO16
    frequency: 1000Hz
    inverted: false
    id: chl03
  - platform: ledc
    pin: GPIO15
    frequency: 1000Hz
    inverted: false
    id: chl04

  - platform: ledc
    pin: GPIO7
    frequency: 1000Hz
    inverted: false
    id: chr01
  - platform: ledc
    pin: GPIO6
    frequency: 1000Hz
    inverted: false
    id: chr02
  - platform: ledc
    pin: GPIO5
    frequency: 1000Hz
    inverted: false
    id: chr03
  - platform: ledc
    pin: GPIO4
    frequency: 1000Hz
    inverted: false
    id: chr04


# CAN gpio48 - tx, gpio47 rx, gpio35 stb
# uart:
#   id: boneio_uart
#   rx_pin: GPIO21
#   tx_pin: GPIO14
#   baud_rate: 9600
#   stop_bits: 1
# modbus:
#   send_wait_time: 80ms
#   uart_id: boneio_uart
#   id: boneio_modbus

packages:
  internals_packages:
    url: https://github.com/boneIO-eu/esphome
    ref: v1.7.1
    files: [
        'devices/serial_no.yaml',
      ]
  # boneiopackages:
  #   url: https://github.com/boneIO-eu/esphome_packages
  #   ref: main
  #   refresh: 1min
  #   files:
  #     - path: sdm630.yaml

dashboard_import:
  package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_8ch-v0_1.yaml@main
  import_full_config: true

pcf8574:
  - id: 'pcf_inputs'
    address: 0x38

logger:
  hardware_uart: UART0
api:
  reboot_timeout: 0s
ota:
  - platform: esphome
  - platform: web_server

web_server:
  port: 80
  version: 3
  local: true


light:
  - platform: monochromatic
    output: chl01
    name: 'CHL 01'
    id: chl_01
    default_transition_length: 2s
    gamma_correct: 0
  - platform: monochromatic
    output: chl02
    name: 'CHL 02'
    id: chl_02
    default_transition_length: 2s
    gamma_correct: 0
  - platform: monochromatic
    output: chl03
    name: 'CHL 03'
    id: chl_03
    default_transition_length: 2s
    gamma_correct: 0
  - platform: monochromatic
    output: chl04
    name: 'CHL 04'
    id: chl_04
    default_transition_length: 2s
    gamma_correct: 0

  - platform: monochromatic
    output: chr01
    name: 'CHR 01'
    id: chr_01
    default_transition_length: 2s
    gamma_correct: 0
  - platform: monochromatic
    output: chr02
    name: 'CHR 02'
    id: chr_02
    default_transition_length: 2s
    gamma_correct: 0
  - platform: monochromatic
    output: chr03
    name: 'CHR 03'
    id: chr_03
    default_transition_length: 2s
    gamma_correct: 0
  - platform: monochromatic
    output: chr04
    name: 'CHR 04'
    id: chr_04
    default_transition_length: 2s
    gamma_correct: 0

debug:
  update_interval: 15s

sensor:
  - platform: debug
    free:
      name: "Heap Free"
    block:
      name: "Heap Max Block"
    loop_time:
      name: "Loop Time"
  - platform: lm75b
    id: boneIO_temp
    name: 'Temperature'
    update_interval: 30s
    entity_category: diagnostic
    on_value_range:
      - above: 70.0
        then:
          - switch.turn_on: buzzer
      - below: 70.0
        then:
          - switch.turn_off: buzzer

switch:
  - platform: gpio
    id: buzzer
    name: 'Buzzer'
    pin:
      number: GPIO9
      mode:
        output: true
      inverted: false
  - platform: gpio
    id: can_bus_switch
    name: 'CAN Bus Switch'
    pin:
      number: GPIO35
      mode:
        output: true
      inverted: false

binary_sensor:
  - platform: gpio
    name: 'IN_01'
    id: in_01
    pin:
      pcf8574: pcf_inputs
      number: 0
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_02'
    id: in_02
    pin:
      pcf8574: pcf_inputs
      number: 1
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_03'
    id: in_03
    pin:
      pcf8574: pcf_inputs
      number: 2
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_04'
    id: in_04
    pin:
      pcf8574: pcf_inputs
      number: 3
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_05'
    id: in_05
    pin:
      pcf8574: pcf_inputs
      number: 4
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_06'
    id: in_06
    pin:
      pcf8574: pcf_inputs
      number: 5
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_07'
    id: in_07
    pin:
      pcf8574: pcf_inputs
      number: 6
      mode:
        input: true
      inverted: true

  - platform: gpio
    name: 'IN_08'
    id: in_08
    pin:
      pcf8574: pcf_inputs
      number: 7
      mode:
        input: true
      inverted: true

substitutions

substitutions:
  name: boneio-dr-gen2-8ch-01
  friendly_name: 'BoneIO Dimmer 8ch'
  serial_prefix: 'dim2' #Don't change it.
  firmware_manifest: 'https://boneio.eu/fwesp/boneio-dr-gen2-8ch-01.json'

Ta część jest głównie odpowiedzialna za nazwę Twojego sterownika.
Powinieneś skupić się na friendly_name:. Należy tam wpisać nazwę swojego boneIO.
Nazwa zależy od Ciebie, może to być 'boneIO Dimmer-G2', jeśli masz jeden sterownik, lub na przykład 'boneIO Dimmer-G2 Parter'.

esphome

esphome:
  name: '${name}'
  friendly_name: '${friendly_name}'
  name_add_mac_suffix: true
  project:
    name: boneio.dimmer-led-gen2
    version: '0.1'
  on_boot:
    priority: -100
    then:
      - delay: 5s
      - if:
          condition:
            lambda: 'return id(serial_no) != nullptr;'
          then:
            - component.update: serial_no
            - logger.log: "Serial No updated on boot"
          else:
            - logger.log: "Serial No component not found"

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

esp32

esp32:
  board: esp32-s3-devkitc-1
  framework:                                                                            
    type: esp-idf

Definicja mikrokontrolera ESP32 i wymaganego frameworku.

Ethernet

ethernet:
  id: eth
  type: W5500
  clk_pin: GPIO13
  mosi_pin: GPIO39
  miso_pin: GPIO38
  cs_pin: GPIO12
  interrupt_pin: GPIO2
  reset_pin: GPIO1
  clock_speed: 25MHz

Część odpowiedzialna za opis portu Ethernet Twojego sterownika - nie powinieneś niczego tutaj zmieniać.

dashboard_import

dashboard_import:
  package_import_url: github://boneIO-eu/esphome/boneio-dimmer_gen2_8ch-v0_1.yaml@main
  import_full_config: true

To jest miejsce, w którym zdefiniowany jest adres do naszego repozytorium na GitHub. Stamtąd pobierana jest konfiguracja i wszystkie dodatkowe pakiety. Niczego tutaj nie zmieniaj.

packages

packages:
  internals_packages:
    url: https://github.com/boneIO-eu/esphome
    ref: v1.7.1
    files: [
        'devices/serial_no.yaml',
      ]
  # boneiopackages:
  #   url: https://github.com/boneIO-eu/esphome_packages
  #   ref: main
  #   refresh: 1min
  #   files:
  #     - path: sdm630.yaml

Tutaj znajdują się definicje wszystkich pakietów używanych przez boneIO, wraz z adresem do naszego GitHuba. Możesz tu również odnaleźć definicje urządzęń modbus. W podanym przykładzie konfiguracją pozwalająca uruchomienie licznika SDM630 - wystarczy ją odkomentować!

logger

logger:
  hardware_uart: UART0

W przypadku rozwiązywania problemów możesz zwiększyć poziom logowania do INFO lub WARNING lub DEBUG. W niektórych przypadkach może to być bardzo przydatne.

api

api:
  reboot_timeout: 0s

Tutaj definiowany jest czas do ponownego uruchomienia, jeśli sterownik utraci połączenie z HA. Jeżeli chcesz aby Twoje boneIO zrestartowało się po utracie połączenia z Home Assistant, powinieneś wpisać tutaj wartość, która Ci odpowiada. W przypadku połączeń WiFi wartość nie powinna wynosić zero. W przypadku połączeń LAN brak ponownego uruchamiania nie wpływa negatywnie na połączeń z Home Assistant w większości przypadków.

ota

ota:
  - platform: esphome
  - platform: web_server

Część odpowiedzialna za aktualizacje Over The Air. Platforma 'web_server' umożliwia update poprzez web panel sterownika.

web_server

web_server:
  port: 80
  local: true
  version: 3

Część odpowiedzialna za włączenie serwera www sterownika.

Modbus

# CAN gpio48 - tx, gpio47 rx, gpio35 stb
# uart:
#   id: boneio_uart
#   rx_pin: GPIO21
#   tx_pin: GPIO14
#   baud_rate: 9600
#   stop_bits: 1
# modbus:
#   send_wait_time: 80ms
#   uart_id: boneio_uart
#   id: boneio_modbus

Sekcja odpowiedzialna za Modbus. Jeśli planujesz jej używać, powinieneś najpierw ją odkomentować. Następnie zapoznaj się z naszym poradnikiem dotyczącym Modbus.