O NasBlogKontakt
ProduktyESP Input24 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-01.yaml

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

substitutions:
  #name: boneio-dr-gen2-8ch-01
  friendly_name: 'BoneIO Input24'
  #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

external_components:
  - source: github://boneIO-eu/esphome-LM75@main #Original source and thank you note for BTomala https://github.com/boneIO-eu/esphome-lm75
    components: [lm75]

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

uart:
  id: boneio_uart
  rx_pin: GPIO21
  tx_pin: GPIO14
  baud_rate: 9600
  stop_bits: 1


  ##CAN gpio48 - tx, gpio47 rx, gpio35 stb

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',
#        # 'devices/dimmer_i2c.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

# http_request:
#   timeout: 7s
#   verify_ssl: false
logger:
  hardware_uart: UART0
api:
  reboot_timeout: 0s
ota:
  - platform: esphome
  - platform: web_server
  # - platform: http_request

# update:
#   - id: update_std
#     platform: http_request
#     name: boneIO FW Update
#     update_interval: 3 minutes
#     source: ${firmware_manifest}

web_server:
  port: 80
  version: 3
  local: true


debug:
  update_interval: 15s

sensor:
  - platform: debug
    free:
      name: "Heap Free"
    block:
      name: "Heap Max Block"
    loop_time:
      name: "Loop Time"
  - platform: lm75
    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
  - platform: gpio
    name: "CAN RX"
    pin: GPIO47
  - platform: gpio
    name: "CAN TX"
    pin: GPIO48

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
  - platform: template
    name: CAN Bus Button
    id: can_bus_button


# canbus:
#   - platform: esp32_can
#     tx_pin: GPIO48
#     rx_pin: GPIO47
#     can_id: 4
#     bit_rate: 50kbps
#     on_frame:
#       - can_id: 5
#         then:
#           - lambda: |-
#               if(x.size() > 0) {
#                 switch(x[0]) {
#                   case 0x12:  // button release
#                     id(can_bus_button).publish_state(false);
#                     break;
#                   case 0x11:  // button press
#                     id(can_bus_button).publish_state(true);
#                     break;
#                 }
#               }

# button:
#   - platform: template
#     name: 'CAN Sensor ON'
#     on_press:
#       - logger.log: Button Pressed
#       - canbus.send: [0x11, 0x22, 0x33]
#   - platform: template
#     name: 'CAN Sensor OFF'
#     on_press:
#       - logger.log: Button Pressed
#       - canbus.send: [0x12, 0x22, 0x33]

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',
        # 'devices/dimmer_i2c.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ądzeń modbus.

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
  # - platform: http_request

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.

time

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

Sekcja odpowiedzialna za wybór strefy czasowej Twojego sterownika, 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

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