Board Hankerila EA8

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.

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.

2 Curtiram

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 :sweat_smile:).

Assim que possível, dou feedback do teste.

Obrigado!

1 Curtiu

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

2 Curtiram

Bom dia.

Projeto foi adiado :slight_smile: 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


Copyright © 2017-. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade