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

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

Примечание

Конфигурация использует синтаксис ESPHome 2024.6.0 или более новых версий (секция ota с platform: esphome).

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

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

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

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

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

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

  • Шина 1-wire.

Примечание

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

jethub_e1_pd76_r5_v2.yaml
  1esphome:
  2  name: e1-pd76-r5
  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 I2C bus
 41i2c:
 42  sda: 5
 43  scl: 4
 44  frequency: 400kHz
 45  scan: true
 46  id: i2c1
 47
 48# Enable UART1
 49uart:
 50  - tx_pin: 33
 51    rx_pin: 34
 52    baud_rate: 115200
 53    id: uart_1
 54
 55# Enable I2C GPIO expanders
 56pcf8574:
 57  - id: cpu_gpio_exp
 58    address: 0x20
 59    pcf8575: true
 60  - id: mb_gpio_exp
 61    address: 0x22
 62    pcf8575: true
 63
 64# Enable digital outputs: LEDs and relays
 65switch:
 66  - platform: gpio
 67    name: "Red LED"
 68    id: red_led
 69    pin:
 70      pcf8574: cpu_gpio_exp
 71      number: 0
 72      mode: OUTPUT
 73      inverted: true
 74  - platform: gpio
 75    name: "Green LED"
 76    id: green_led
 77    pin:
 78      pcf8574: cpu_gpio_exp
 79      number: 1
 80      mode: OUTPUT
 81      inverted: true
 82  - platform: gpio
 83    name: "Relay 1"
 84    id: relay_1
 85    pin:
 86      pcf8574: mb_gpio_exp
 87      number: 8
 88      mode: OUTPUT
 89      inverted: true
 90  - platform: gpio
 91    name: "Relay 2"
 92    id: relay_2
 93    pin:
 94      pcf8574: mb_gpio_exp
 95      number: 9
 96      mode: OUTPUT
 97      inverted: true
 98  - platform: gpio
 99    name: "Relay 3"
100    id: relay_3
101    pin:
102      pcf8574: mb_gpio_exp
103      number: 10
104      mode: OUTPUT
105      inverted: true
106  - platform: gpio
107    name: "Relay 4"
108    id: relay_4
109    pin:
110      pcf8574: mb_gpio_exp
111      number: 11
112      mode: OUTPUT
113      inverted: true
114  - platform: gpio
115    name: "Relay 5"
116    id: relay_5
117    pin:
118      pcf8574: mb_gpio_exp
119      number: 12
120      mode: OUTPUT
121      inverted: true
122
123# Enable inputs: button and discrete inputs
124binary_sensor:
125  - platform: gpio
126    name: "FN button"
127    pin:
128      number: 0
129      inverted: true
130  - platform: gpio
131    name: "Input 1"
132    pin:
133      pcf8574: mb_gpio_exp
134      number: 0
135      inverted: false
136  - platform: gpio
137    name: "Input 2"
138    pin:
139      pcf8574: mb_gpio_exp
140      number: 1
141      inverted: false
142  - platform: gpio
143    name: "Input 3"
144    pin:
145      pcf8574: mb_gpio_exp
146      number: 2
147      inverted: false
148  - platform: gpio
149    name: "Input 4"
150    pin:
151      pcf8574: mb_gpio_exp
152      number: 3
153      inverted: false
154  - platform: gpio
155    name: "Input 5"
156    pin:
157      pcf8574: mb_gpio_exp
158      number: 4
159      inverted: false
160  - platform: gpio
161    name: "Input 6"
162    pin:
163      pcf8574: mb_gpio_exp
164      number: 5
165      inverted: false
166
167# Enable 1-Wire bus on external connector
168one_wire:
169  - platform: gpio
170    pin: GPIO16
171
172## Configure individual sensors
173#sensor:
174#  - platform: dallas_temp
175#    address: 0x1c0000031edd2a28
176#    name: "Livingroom Temperature"

Разъяснения

Примечание

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

Реле

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

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

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

Примечание

При изменении состояния выходов, через некоторое время (~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:
      pcf8574: mb_gpio_exp
      number: 0
      inverted: false
  - platform: gpio
    name: "Input 2"
    pin:
      pcf8574: mb_gpio_exp
      number: 1
      inverted: false
  - platform: gpio
    name: "Input 3"
    pin:
      pcf8574: mb_gpio_exp
      number: 2
      inverted: false
  - platform: gpio
    name: "Input 4"
    pin:
      pcf8574: mb_gpio_exp
      number: 3
      inverted: false
  - platform: gpio
    name: "Input 5"
    pin:
      pcf8574: mb_gpio_exp
      number: 4
      inverted: false
  - platform: gpio
    name: "Input 6"
    pin:
      pcf8574: 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 - адрес датчика температуры.