Bom dia, pessoal.
Adquiri recentemente uma placa de inputs e outputs no AliExpress (modelo HKL-EA8 ).
Encontrei na internet um código de configuração para ESPHome e realizei alguns testes.
Após os testes, verifiquei que:
Os relés estão funcionando corretamente
Porém, os inputs não mudam de estado , mesmo quando acionados
Segue abaixo a configuração utilizada no ESPHome, bem como os links de referência onde encontrei o código e as informações da placa.
Gostaria de saber se alguém já utilizou essa placa com ESPHome ou se existe alguma configuração adicional necessária para o funcionamento correto dos inputs (GPIOs, inversão de lógica, pull-up/pull-down, etc.).
Agradeço desde já pela ajuda.
Peixeiro
(Rui Peixeiro)
21 Janeiro , 2026 10:04
2
Olá, não intendi bem qual o problema.
Como fizeste as ligações aos Inputs para testar?
Se percebi o esquema e usando o método PNP, terias de ligar o S1 ao negativo e o botão entre o x1 e o positivo.
Não basta testar um chunt entre o S1 e os inputs…
Gostei da placa, muito completa para o preço.
Olá,
Ups, agora que falas, não fiz esse jumper entre o GND e o S1 .
Vou testar mais logo, mas provavelmente é isso (mesmo com o esquema à frente dos olhos, estava na horta e nem via as couves ).
Assim que possível, dou feedback do teste.
Obrigado!
Boa noite.
@Peixeiro , obrigado pelo apoio.
Era mesmo o que faltava para começar a funcionar.
Obrigado, assim que possível partilho aqui o projeto final.
Cumprimentos
Bom dia.
Projeto foi adiado mas seria para retirar uma central de alarme avaria e antiga e colocar aqui os sensores de momento e ligar uma sirene interior.
Deixo aqui o codigo atual:
# =========================
# CONFIGURAÇÃO BÁSICA
# =========================
esphome:
name: hankerila-ea8 # Nome do dispositivo no ESPHome
esp32:
variant: esp32 # Tipo de chip ESP32
framework:
type: esp-idf # Framework usado (mais estável para Ethernet)
# =========================
# LOGS E INTEGRAÇÃO
# =========================
logger: # Ativa logs via serial
api: # Permite integração com Home Assistant
ota:
- platform: esphome # Permite atualização OTA (sem cabo)
# =========================
# WEB SERVER
# =========================
web_server:
port: 80 # Interface web no IP do dispositivo
auth:
username: admin
password: admin123
# =========================
# WIFI (DESATIVADO)
# =========================
# Não usar ao mesmo tempo que Ethernet
#wifi:
# ssid: !secret wifi_ssid
# password: !secret wifi_password
# =========================
# I2C BUS
# =========================
i2c:
sda: 4 # Pino SDA
scl: 5 # Pino SCL
scan: true # Procura dispositivos automaticamente
id: bus_a # ID do barramento
# =========================
# ETHERNET (LAN8720)
# =========================
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk:
pin: GPIO17
mode: CLK_OUT
phy_addr: 0
# =========================
# DAC (SAÍDA ANALÓGICA)
# =========================
output:
- platform: mcp4725
address: 0x60 # Endereço I2C do DAC
min_power: 0
max_power: 1
id: dac_output
i2c_id: bus_a
# =========================
# ADC (ENTRADAS ANALÓGICAS)
# =========================
ads1115:
- address: 0x49
i2c_id: bus_a
# =========================
# ONE-WIRE (SENSORES TEMPERATURA)
# =========================
one_wire:
- platform: gpio
pin: GPIO15
id: tem01
- platform: gpio
pin: GPIO16
id: tem02
# =========================
# INFRAVERMELHO
# =========================
remote_receiver:
pin: GPIO33
# dump: raw # Ativar para debug de comandos IR
remote_transmitter:
pin: GPIO32
carrier_duty_percent: 50%
# =========================
# EXPANSORES I2C (PCF8574)
# =========================
pcf8574:
- id: pcf8574_hub_out_1 # Saídas (relés)
address: 0x24
- id: pcf8574_hub_in_1 # Entradas (botões)
address: 0x26
# =========================
# RELÉS (SAÍDAS)
# =========================
switch:
- platform: gpio
name: "a8-relay1"
id: relay1
pin:
pcf8574: pcf8574_hub_out_1
number: 0
mode: OUTPUT
inverted: true
# Repete para todos os relés (1–8)
- platform: gpio
name: "a8-relay2"
id: relay2
pin:
pcf8574: pcf8574_hub_out_1
number: 1
mode: OUTPUT
inverted: true
- platform: gpio
name: "a8-relay3"
id: relay3
pin:
pcf8574: pcf8574_hub_out_1
number: 2
mode: OUTPUT
inverted: true
- platform: gpio
name: "a8-relay4"
id: relay4
pin:
pcf8574: pcf8574_hub_out_1
number: 3
mode: OUTPUT
inverted: true
- platform: gpio
name: "a8-relay5"
id: relay5
pin:
pcf8574: pcf8574_hub_out_1
number: 4
mode: OUTPUT
inverted: true
- platform: gpio
name: "a8-relay6"
id: relay6
pin:
pcf8574: pcf8574_hub_out_1
number: 5
mode: OUTPUT
inverted: true
- platform: gpio
name: "a8-relay7"
id: relay7
pin:
pcf8574: pcf8574_hub_out_1
number: 6
mode: OUTPUT
inverted: true
- platform: gpio
name: "a8-relay8"
id: relay8
pin:
pcf8574: pcf8574_hub_out_1
number: 7
mode: OUTPUT
inverted: true
# =========================
# ENTRADAS DIGITAIS (BOTÕES)
# =========================
binary_sensor:
- platform: gpio
name: "a8-input1"
id: input1
pin:
pcf8574: pcf8574_hub_in_1
number: 0
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay1 # Alterna relé 1
# Repete padrão para inputs 2–8
- platform: gpio
name: "a8-input2"
id: input2
pin:
pcf8574: pcf8574_hub_in_1
number: 1
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay2
- platform: gpio
name: "a8-input3"
id: input3
pin:
pcf8574: pcf8574_hub_in_1
number: 2
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay3
- platform: gpio
name: "a8-input4"
id: input4
pin:
pcf8574: pcf8574_hub_in_1
number: 3
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay4
- platform: gpio
name: "a8-input5"
id: input5
pin:
pcf8574: pcf8574_hub_in_1
number: 4
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay5
- platform: gpio
name: "a8-input6"
id: input6
pin:
pcf8574: pcf8574_hub_in_1
number: 5
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay6
- platform: gpio
name: "a8-input7"
id: input7
pin:
pcf8574: pcf8574_hub_in_1
number: 6
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay7
- platform: gpio
name: "a8-input8"
id: input8
pin:
pcf8574: pcf8574_hub_in_1
number: 7
mode: INPUT
inverted: true
on_press:
then:
- switch.toggle: relay8
# =========================
# SENSORES ANALÓGICOS (ADS1115)
# =========================
sensor:
# - platform: ads1115
# multiplexer: 'A0_A1'
# gain: 6.144
# name: "SCT013-30A-1V"
# update_interval: 5s
# - platform: ads1115
# id: ads1115_02
# multiplexer: 'A2_GND'
# gain: 6.144
# name: "0-5V"
# update_interval: 2s
# SENSOR INTERNO (RAW)
# - platform: ads1115
# id: ads1115_03_raw
# multiplexer: 'A3_GND'
# gain: 6.144
# update_interval: 2s
# internal: true
# # Conversão de tensão → corrente (0-20mA)
# on_value:
# then:
# - lambda: |-
# const float sampling_resistor = 200.0;
# float current = (id(ads1115_03_raw).state / sampling_resistor) * 1000;
# id(ads1115_03_current).publish_state(current);
# # SENSOR FINAL EM mA
# - platform: template
# id: ads1115_03_current
# name: "0-20mA"
# unit_of_measurement: "mA"
# accuracy_decimals: 2
# state_class: measurement
# =========================
# TEMPERATURA (DS18B20)
# =========================
- platform: dallas_temp
one_wire_id: tem01
name: "ds18b20-1"
update_interval: 15s
- platform: dallas_temp
one_wire_id: tem02
name: "ds18b20-2"
update_interval: 15s