ESPHome - конфигурация JetHub E1-PD76-R5-[AC/DC] (v3)

Конфигурация контроллеров JetHub E1-PD76-R5-AC (v3) и JetHub E1-PD76-R5-DC (v3) для ESPHome.

Примечание

Для сборки прошивки для контроллеров JetHub E1-PD76-R5-[AC/DC] (v3) необходимо использовать версии ESPHome 2024.6.0 или более новые: в 2023.11.0 была добавлена поддержка расширителей портов PCA9535 и аналогичных, а начиная с 2024.6.0 действует новый синтаксис секции ota (platform: esphome), используемый в этой конфигурации.

Конфигурация

В данной конфигурации реализованы:
  • Настройка Ethernet с автоматическим определением IP-адреса.

  • Интеграция с Home Assistant.

  • Настройка светодиодов STAT (красный и зеленый).

  • Настройка реле.

  • Определение событий от кнопки FN.

  • Определение событий от всех дискретных входов.

  • Шина 1-wire.

Примечание

После загрузки контроллера и получения IP-адреса контроллер будет автоматически доступен в Home Assistant, работающем в этой же сети.

jethub_e1_pd76_r5_v3.yaml
  1esphome:
  2  name: e1-pd76-r5-v3
  3  name_add_mac_suffix: true # This option adds MAC address to the end of the device name
  4
  5esp32:
  6  board: nodemcu-32s
  7  framework:
  8    type: esp-idf
  9
 10## WARNING: Disable WiFi and captive_portal if Ethernet enabled
 11#wifi:
 12#  ssid: "***"
 13#  password: "***"
 14#
 15#  # Enable fallback hotspot (captive portal) in case wifi connection fails
 16#  ap:
 17#    ssid: "JetHub E1 Fallback Hotspot"
 18#    password: "***"
 19#
 20#captive_portal:
 21
 22# Enable Ethernet
 23ethernet:
 24  type: LAN8720
 25  mdc_pin: GPIO23
 26  mdio_pin: GPIO18
 27  clk_mode: GPIO17_OUT
 28  phy_addr: 1
 29
 30# Enable logging
 31logger:
 32
 33# Enable Home Assistant API
 34api:
 35
 36# Enable OTA firmware update
 37ota:
 38  - platform: esphome
 39
 40# Enable internal WEB server
 41web_server:
 42  port: 80
 43
 44# Enable I2C bus
 45i2c:
 46  sda: 5
 47  scl: 4
 48  frequency: 400kHz
 49  scan: true
 50  id: i2c1
 51
 52# Enable UART1
 53uart:
 54  - tx_pin: 33
 55    rx_pin: 34
 56    baud_rate: 115200
 57    id: uart_1
 58
 59# Enable I2C GPIO expanders
 60pca9554:
 61  - id: cpu_gpio_exp
 62    pin_count: 16
 63    address: 0x20
 64  - id: mb_gpio_exp
 65    pin_count: 16
 66    address: 0x22
 67
 68# Enable digital outputs: LEDs and relays
 69switch:
 70  - platform: gpio
 71    name: "Red LED"
 72    id: red_led
 73    pin:
 74      pca9554: cpu_gpio_exp
 75      number: 0
 76      mode: OUTPUT
 77      inverted: false
 78  - platform: gpio
 79    name: "Green LED"
 80    id: green_led
 81    pin:
 82      pca9554: cpu_gpio_exp
 83      number: 1
 84      mode: OUTPUT
 85      inverted: false
 86  - platform: gpio
 87    name: "Relay 1"
 88    id: relay_1
 89    pin:
 90      pca9554: mb_gpio_exp
 91      number: 8
 92      mode: OUTPUT
 93      inverted: false
 94  - platform: gpio
 95    name: "Relay 2"
 96    id: relay_2
 97    pin:
 98      pca9554: mb_gpio_exp
 99      number: 9
100      mode: OUTPUT
101      inverted: false
102  - platform: gpio
103    name: "Relay 3"
104    id: relay_3
105    pin:
106      pca9554: mb_gpio_exp
107      number: 10
108      mode: OUTPUT
109      inverted: false
110  - platform: gpio
111    name: "Relay 4"
112    id: relay_4
113    pin:
114      pca9554: mb_gpio_exp
115      number: 11
116      mode: OUTPUT
117      inverted: false
118  - platform: gpio
119    name: "Relay 5"
120    id: relay_5
121    pin:
122      pca9554: mb_gpio_exp
123      number: 12
124      mode: OUTPUT
125      inverted: false
126
127# Enable inputs: button and discrete inputs
128binary_sensor:
129  - platform: gpio
130    name: "FN button"
131    pin:
132      number: 0
133      inverted: true
134  - platform: gpio
135    name: "Input 1"
136    pin:
137      pca9554: mb_gpio_exp
138      number: 0
139      inverted: false
140  - platform: gpio
141    name: "Input 2"
142    pin:
143      pca9554: mb_gpio_exp
144      number: 1
145      inverted: false
146  - platform: gpio
147    name: "Input 3"
148    pin:
149      pca9554: mb_gpio_exp
150      number: 2
151      inverted: false
152  - platform: gpio
153    name: "Input 4"
154    pin:
155      pca9554: mb_gpio_exp
156      number: 3
157      inverted: false
158  - platform: gpio
159    name: "Input 5"
160    pin:
161      pca9554: mb_gpio_exp
162      number: 4
163      inverted: false
164  - platform: gpio
165    name: "Input 6"
166    pin:
167      pca9554: mb_gpio_exp
168      number: 5
169      inverted: false
170
171# Enable 1-Wire bus on external connector
172one_wire:
173  - platform: gpio
174    pin: GPIO16
175
176## Configure individual sensors
177#sensor:
178#  - platform: dallas_temp
179#    address: 0x1c0000031edd2a28
180#    name: "Livingroom Temperature"

Разъяснения

Примечание

В данном разделе описаны разъяснения только к тем опциям, которые отличаются от стандартных для процессорного модуля E1-CPU.

Расширитель портов

В контроллере JetHub E1-PD76-R5-[AC/DC] (v3) используются микросхемы расширителя портов PCA9535. Для них можно использовать драйвер pca9554:

# Enable I2C GPIO expanders
pca9554:
  - id: cpu_gpio_exp
    pin_count: 16
    address: 0x20
  - id: mb_gpio_exp
    pin_count: 16
    address: 0x22

Реле

Реле подключены к расширителю портов на периферийной плате.

Для управления реле используется прямая логика:

# Enable digital outputs: LEDs and relays
switch:
  - platform: gpio
    name: "Relay 1"
    id: relay_1
    pin:
      pca9554: mb_gpio_exp
      number: 8
      mode: OUTPUT
      inverted: false
  - platform: gpio
    name: "Relay 2"
    id: relay_2
    pin:
      pca9554: mb_gpio_exp
      number: 9
      mode: OUTPUT
      inverted: false
  - platform: gpio
    name: "Relay 3"
    id: relay_3
    pin:
      pca9554: mb_gpio_exp
      number: 10
      mode: OUTPUT
      inverted: false
  - platform: gpio
    name: "Relay 4"
    id: relay_4
    pin:
      pca9554: mb_gpio_exp
      number: 11
      mode: OUTPUT
      inverted: false
  - platform: gpio
    name: "Relay 5"
    id: relay_5
    pin:
      pca9554: mb_gpio_exp
      number: 12
      mode: OUTPUT
      inverted: false

Примечание

При изменении состояния выходов, через некоторое время (~40 сек) ESPHome по-умолчанию автоматически сохраняет их состояние и после перезагрузки восстанавливает состояния выходов на сохраненные ранее.

Если данный функционал не нужен, то необходимо изменить эту функцию, задав состояние выхода при загрузке с помощью опции restore_mode, например:

switch:
  - platform: gpio
    ...
    restore_mode: ALWAYS_OFF
    ...

Дискретные входы

Дискретные входы подключены к расширителю портов на периферийной плате.

Пример конфигурации дискретного входа:

# Enable inputs: button and discrete inputs
binary_sensor:
  - platform: gpio
    name: "Input 1"
    pin:
      pca9554: mb_gpio_exp
      number: 0
      inverted: false
  - platform: gpio
    name: "Input 2"
    pin:
      pca9554: mb_gpio_exp
      number: 1
      inverted: false
  - platform: gpio
    name: "Input 3"
    pin:
      pca9554: mb_gpio_exp
      number: 2
      inverted: false
  - platform: gpio
    name: "Input 4"
    pin:
      pca9554: mb_gpio_exp
      number: 3
      inverted: false
  - platform: gpio
    name: "Input 5"
    pin:
      pca9554: mb_gpio_exp
      number: 4
      inverted: false
  - platform: gpio
    name: "Input 6"
    pin:
      pca9554: mb_gpio_exp
      number: 5
      inverted: false

1-Wire

Шина 1-Wire подключена к выводу GPIO16 микроконтроллера.

Задействование шины 1-Wire в файле конфигурации:

# Enable 1-Wire bus on external connector
one_wire:
  - platform: gpio
    pin: GPIO16

Примечание

Для каждого подключенного к шине датчика температуры необходимо добавить в файл конфигурации:

sensor:
  - platform: onewire
    address: 0x28XXXXXXXXXXXXXX
    name: "Livingroom Temperature"

где 0x28XXXXXXXXXXXXXX - адрес датчика температуры.