HA - Integração com central de Alarme Intelbras

óia, isso é promissor hein… parabens

1 curtida

O código não é meu.
Achei e depois de muitas tentativas e erros consegui fazer funcionar.

Só que está programado para uma versão antiga do sdk e para a amt 2018.

Consegui arrumar algumas informações como:
Firmware, teclado (não testado), tamper (não testado), etc.

O que não consegui:

Partição 3 e 4, data e hora, quantidade de zona de 48 para 64, Bateria baixa em sensor sem fio na zona, e mais alguma coisa que não me vem a cabeça agora. rsrsrsrs

Todas funções que consegui testar funcionam, abertura de zona, anulação, zona com e sem fio.

+---------+----------+-------+----------+------------+--------+---------------+
|  ZONE   | ANULATED | OPEN  | VIOLATED | LOWBATTERY | TAMPER | SHORT CIRCUIT |
+---------+----------+-------+----------+------------+--------+---------------+
| Zone 1  | false    | false | false    | false      | false  | false         |
| Zone 2  | false    | false | false    | false      | false  | false         |
| Zone 3  | false    | false | false    | false      | false  | false         |
| Zone 4  | false    | false | false    | false      | false  | false         |
| Zone 5  | false    | false | false    | false      | false  | false         |
| Zone 6  | false    | false | false    | false      | false  | false         |
| Zone 7  | false    | false | false    | false      | false  | false         |
| Zone 8  | false    | false | false    | false      | false  | false         |
| Zone 9  | false    | false | false    | false      | false  | false         |
| Zone 10 | false    | false | false    | false      | false  | false         |
| Zone 11 | false    | false | false    | false      | false  | false         |
| Zone 12 | false    | false | false    | false      | false  | false         |
| Zone 13 | false    | false | false    | false      | false  | false         |
| Zone 14 | false    | false | false    | false      | false  | false         |
| Zone 15 | false    | false | false    | false      | false  | false         |
| Zone 16 | false    | false | false    | false      | false  | false         |
| Zone 17 | false    | true  | false    | false      | false  | false         |
| Zone 18 | false    | false | false    | false      | false  | false         |
| Zone 19 | false    | false | false    | false      | false  | false         |
| Zone 20 | false    | false | false    | false      | false  | false         |
| Zone 21 | false    | false | false    | false      | false  | false         |
| Zone 22 | false    | false | false    | false      | false  | false         |
| Zone 23 | false    | false | false    | false      | false  | false         |
| Zone 24 | false    | false | false    | false      | false  | false         |
| Zone 25 | false    | false | false    | false      | false  | false         |
| Zone 26 | false    | false | false    | false      | false  | false         |
| Zone 27 | false    | false | false    | false      | false  | false         |
| Zone 28 | false    | false | false    | false      | false  | false         |
| Zone 29 | false    | false | false    | false      | false  | false         |
| Zone 30 | false    | false | false    | false      | false  | false         |
| Zone 31 | false    | false | false    | false      | false  | false         |
| Zone 32 | false    | false | false    | false      | false  | false         |
| Zone 33 | false    | false | false    | false      | false  | false         |
| Zone 34 | false    | false | false    | false      | false  | false         |
| Zone 35 | false    | false | false    | false      | false  | false         |
| Zone 36 | false    | false | false    | false      | false  | false         |
| Zone 37 | false    | false | false    | false      | false  | false         |
| Zone 38 | false    | false | false    | false      | false  | false         |
| Zone 39 | false    | false | false    | false      | false  | false         |
| Zone 40 | false    | false | false    | false      | false  | false         |
| Zone 41 | false    | false | false    | false      | false  | false         |
| Zone 42 | false    | false | false    | false      | false  | false         |
| Zone 43 | false    | false | false    | false      | false  | false         |
| Zone 44 | false    | false | false    | false      | false  | false         |
| Zone 45 | false    | false | false    | false      | false  | false         |
| Zone 46 | false    | false | false    | false      | false  | false         |
| Zone 47 | false    | false | false    | false      | false  | false         |
| Zone 48 | false    | false | false    | false      | false  | false         |
+---------+----------+-------+----------+------------+--------+---------------+
+------------+-------+--------+----------------+
|  KEYBOARD  | ISSUE | TAMPER | RECEIVER ISSUE |
+------------+-------+--------+----------------+
| Keyboard 1 | false | false  | false          |
| Keyboard 2 | false | false  | false          |
| Keyboard 3 | false | false  | false          |
| Keyboard 4 | false | false  | false          |
+------------+-------+--------+----------------+
+-------------+---------+
|  PARTITION  | ENABLED |
+-------------+---------+
| Partition 1 | false   |
| Partition 2 | false   |
| Partition 3 | false   |
| Partition 4 | false   |
+-------------+---------+
YYYY-MM-DD:  2016-08-11 12:38:00 -0300 -03
Model: AMT4010, Firmware: 5.2
Central 
 Activated: false
 Alerting: true
 IssueWarning: true
Siren
 Enabled: false
 WireCut: true
 ShortCircuit false
External Power Failure: false
PhoneLineCut: false

Ta assim agora, mas ta no limite do meu conhecimento.
E depois ainda teria que mandar isso pro HA

1 curtida

Já é um grande trabalho!

Não seria possível / permitido fazer a integração / addon em código fechado?

Dessa forma a documentação não seria divulgada e os usuários teriam acesso a algum tipo de integração das centrais.


Lembrei de dois detalhes, a senha só funciona se for 4 dígitos e não tem status das pgm

até seria, mas aí vai contra a minha filosofia de fazer código aberto o máximo possível

Alguém tem conhecimento em python pra fazer o addon?

+---------+----------+---------+------------+------------+--------+----------------+
|  ZONAS  | ANULADAS | ABERTAS | DISPARADAS | BAT  BAIXA | TAMPER | CURTO CIRCUITO |
+---------+----------+---------+------------+------------+--------+----------------+
| Zona 1  | false    | false   | false      | false      | false  | false          |
| Zona 2  | false    | false   | false      | false      | false  | false          |
| Zona 3  | false    | false   | false      | false      | false  | false          |
| Zona 4  | false    | false   | false      | false      | false  | false          |
| Zona 5  | false    | false   | false      | false      | false  | false          |
| Zona 6  | false    | false   | false      | false      | false  | false          |
| Zona 7  | false    | false   | false      | false      | false  | false          |
| Zona 8  | false    | false   | false      | false      | false  | false          |
| Zona 9  | false    | false   | false      | false      | false  | false          |
| Zona 10 | false    | false   | false      | false      | false  | false          |
| Zona 11 | false    | false   | false      | false      | false  | false          |
| Zona 12 | false    | false   | false      | false      | false  | false          |
| Zona 13 | false    | false   | false      | false      | false  | false          |
| Zona 14 | false    | false   | false      | false      | false  | false          |
| Zona 15 | false    | false   | false      | false      | false  | false          |
| Zona 16 | false    | false   | false      | false      | false  | false          |
| Zona 17 | false    | false   | false      | false      | false  | false          |
| Zona 18 | false    | false   | false      | false      | false  | false          |
| Zona 19 | false    | false   | false      | false      | false  | false          |
| Zona 20 | false    | false   | false      | false      | false  | false          |
| Zona 21 | false    | false   | false      | false      | false  | false          |
| Zona 22 | false    | false   | false      | false      | false  | false          |
| Zona 23 | false    | false   | false      | false      | false  | false          |
| Zona 24 | false    | false   | false      | false      | false  | false          |
| Zona 25 | false    | false   | false      | false      | false  | false          |
| Zona 26 | false    | false   | false      | false      | false  | false          |
| Zona 27 | false    | false   | false      | false      | false  | false          |
| Zona 28 | false    | false   | false      | false      | false  | false          |
| Zona 29 | false    | false   | false      | false      | false  | false          |
| Zona 30 | false    | false   | false      | false      | false  | false          |
| Zona 31 | false    | false   | false      | false      | false  | false          |
| Zona 32 | false    | false   | false      | false      | false  | false          |
| Zona 33 | false    | false   | false      | false      | false  | false          |
| Zona 34 | false    | false   | false      | false      | false  | false          |
| Zona 35 | false    | false   | false      | false      | false  | false          |
| Zona 36 | false    | false   | false      | false      | false  | false          |
| Zona 37 | false    | false   | false      | false      | false  | false          |
| Zona 38 | false    | false   | false      | false      | false  | false          |
| Zona 39 | false    | false   | false      | false      | false  | false          |
| Zona 40 | false    | false   | false      | false      | false  | false          |
| Zona 41 | false    | false   | false      | false      | false  | false          |
| Zona 42 | false    | false   | false      | false      | false  | false          |
| Zona 43 | false    | false   | false      | false      | false  | false          |
| Zona 44 | false    | false   | false      | false      | false  | false          |
| Zona 45 | false    | false   | false      | false      | false  | false          |
| Zona 46 | false    | false   | false      | false      | false  | false          |
| Zona 47 | false    | false   | false      | false      | false  | false          |
| Zona 48 | false    | false   | false      | false      | false  | false          |
| Zona 49 | false    | false   | false      | false      | false  | false          |
| Zona 50 | false    | false   | false      | false      | false  | false          |
| Zona 51 | false    | false   | false      | false      | false  | false          |
| Zona 52 | false    | false   | false      | false      | false  | false          |
| Zona 53 | false    | false   | false      | false      | false  | false          |
| Zona 54 | false    | false   | false      | false      | false  | false          |
| Zona 55 | false    | false   | false      | false      | false  | false          |
| Zona 56 | false    | false   | false      | false      | false  | false          |
| Zona 57 | false    | false   | false      | false      | false  | false          |
| Zona 58 | false    | false   | false      | false      | false  | false          |
| Zona 59 | false    | false   | false      | false      | false  | false          |
| Zona 60 | false    | false   | false      | false      | false  | false          |
| Zona 61 | false    | false   | false      | false      | false  | false          |
| Zona 62 | false    | true    | false      | false      | false  | false          |
| Zona 63 | false    | false   | false      | false      | false  | false          |
| Zona 64 | false    | false   | false      | false      | false  | false          |
+---------+----------+---------+------------+------------+--------+----------------+
+-----------+----------+--------+-------------------+
|  TECLADO  | PROBLEMA | TAMPER | PROBLEMA RECEPTOR |
+-----------+----------+--------+-------------------+
| Teclado 1 | false    | false  | false             |
| Teclado 2 | false    | false  | false             |
| Teclado 3 | false    | false  | false             |
| Teclado 4 | false    | false  | false             |
+-----------+----------+--------+-------------------+
+------------+---------+
|  PARTIÇÃO  | ATIVADA |
+------------+---------+
| Partição 1 | false   |
| Partição 2 | false   |
| Partição 3 | false   |
| Partição 4 | false   |
+------------+---------+
+---------------+---------+
| PGM INVERTIDA | ATIVADA |
+---------------+---------+
| PGM 1         | false   |
| PGM 2         | false   |
| PGM 3         | true    |
+---------------+---------+
PGM Correta:
 PGM 1: true
 PGM 2: false
 PGM 3: false
Data:  2022-08-19 21:28:00 -0300 -03
Modelo: AMT4010, Firmware: 5.2
Central: 
 Ativada: false
 Houve Disparo?: true
 Problema na central: true
 Falta de rede elétrica: false
 Corte da linha telefônica: false
 Sobrecarga na saída auxiliar: false
Sirene:
 Ativada: false
 Corte Fiação: true
 Curto: false
Bateria:
 Bat. Baixa: false
 Ausente ou invertida: true
 Curto: false
Informação do funcionamento da central: ???
Nivel? da bateria: true

Consegui mudar a quantidade de zonas de 48 para 64,
incluir as partições 3 e 4, incluir as pgm, corrigi data e hora.

1 curtida

Sobe o código no github e vamos juntar uma galera na empreitada…

1 curtida

Mas ai entra no problema de publicação do SDK.

Esse é o código original

Esse é um projeto de emulação de expansão de zona, que achei interessante mas não consegui comunicação.

Bom dia,

Segue algumas atualizações…

Estava rodando o programa em uma VM com ubuntu e ontem consegui rodar no windows seguindo esse tutorial de instalação:

Consegui integrar mqtt no código e enviar os dados puros para um sensor.

Alguém sabe como transformar os dados de hexa para Bytes no HA?

Criei um “nível” de bateria, o ideal seria ter tbm a tensão dela como é exibida no AMT remoto.

Connected
Subscribed to topic: home/amt4010/zones
+---------+----------+---------+------------+------------+--------+----------------+
|  ZONAS  | ANULADAS | ABERTAS | DISPARADAS | BAT  BAIXA | TAMPER | CURTO CIRCUITO |
+---------+----------+---------+------------+------------+--------+----------------+
| Zona 1  | false    | true    | false      | false      | false  | false          |
| Zona 2  | false    | true    | false      | false      | false  | false          |
| Zona 3  | false    | false   | false      | false      | false  | false          |
| Zona 4  | false    | false   | false      | false      | false  | false          |
| Zona 5  | false    | false   | false      | false      | false  | false          |
| Zona 6  | false    | false   | false      | false      | false  | false          |
| Zona 7  | false    | false   | false      | false      | false  | false          |
| Zona 8  | false    | false   | false      | false      | false  | false          |
| Zona 9  | false    | false   | false      | false      | false  | false          |
| Zona 10 | false    | false   | false      | false      | false  | false          |
| Zona 11 | false    | false   | false      | false      | false  | false          |
| Zona 12 | false    | false   | false      | false      | false  | false          |
| Zona 13 | false    | false   | false      | false      | false  | false          |
| Zona 14 | false    | false   | false      | false      | false  | false          |
| Zona 15 | false    | false   | false      | false      | false  | false          |
| Zona 16 | false    | false   | false      | false      | false  | false          |
| Zona 17 | false    | false   | false      | false      | false  | false          |
| Zona 18 | false    | false   | false      | false      | false  | false          |
| Zona 19 | false    | false   | true       | false      | false  | false          |
| Zona 20 | false    | false   | false      | false      | false  | false          |
| Zona 21 | false    | false   | false      | false      | false  | false          |
| Zona 22 | false    | false   | false      | false      | false  | false          |
| Zona 23 | false    | false   | false      | false      | false  | false          |
| Zona 24 | false    | false   | false      | false      | false  | false          |
| Zona 25 | false    | false   | false      | false      | false  | false          |
| Zona 26 | false    | false   | false      | false      | false  | false          |
| Zona 27 | false    | false   | false      | false      | false  | false          |
| Zona 28 | false    | false   | false      | false      | false  | false          |
| Zona 29 | false    | false   | false      | false      | false  | false          |
| Zona 30 | false    | false   | false      | false      | false  | false          |
| Zona 31 | false    | false   | false      | false      | false  | false          |
| Zona 32 | false    | false   | false      | false      | false  | false          |
| Zona 33 | false    | false   | false      | false      | false  | false          |
| Zona 34 | false    | false   | false      | false      | false  | false          |
| Zona 35 | false    | false   | false      | false      | false  | false          |
| Zona 36 | false    | false   | false      | false      | false  | false          |
| Zona 37 | false    | false   | false      | false      | false  | false          |
| Zona 38 | false    | false   | false      | false      | false  | false          |
| Zona 39 | false    | false   | false      | false      | false  | false          |
| Zona 40 | false    | false   | false      | false      | false  | false          |
| Zona 41 | false    | false   | false      | false      | false  | false          |
| Zona 42 | false    | false   | false      | false      | false  | false          |
| Zona 43 | false    | false   | false      | false      | false  | false          |
| Zona 44 | false    | false   | false      | false      | false  | false          |
| Zona 45 | false    | false   | false      | false      | false  | false          |
| Zona 46 | false    | false   | false      | false      | false  | false          |
| Zona 47 | false    | false   | false      | false      | false  | false          |
| Zona 48 | false    | false   | false      | false      | false  | false          |
| Zona 49 | false    | false   | false      | false      | false  | false          |
| Zona 50 | false    | false   | false      | false      | false  | false          |
| Zona 51 | false    | false   | false      | false      | false  | false          |
| Zona 52 | false    | false   | false      | false      | false  | false          |
| Zona 53 | false    | false   | false      | false      | false  | false          |
| Zona 54 | false    | false   | false      | false      | false  | false          |
| Zona 55 | false    | false   | false      | false      | false  | false          |
| Zona 56 | false    | false   | false      | false      | false  | false          |
| Zona 57 | false    | false   | false      | false      | false  | false          |
| Zona 58 | false    | false   | false      | false      | false  | false          |
| Zona 59 | false    | false   | false      | false      | false  | false          |
| Zona 60 | false    | false   | false      | false      | false  | false          |
| Zona 61 | false    | false   | false      | false      | false  | false          |
| Zona 62 | false    | false   | false      | false      | false  | false          |
| Zona 63 | false    | false   | false      | false      | false  | false          |
| Zona 64 | false    | false   | false      | false      | false  | false          |
+---------+----------+---------+------------+------------+--------+----------------+
+-----------+----------+--------+-------------------+
|  TECLADO  | PROBLEMA | TAMPER | PROBLEMA RECEPTOR |
+-----------+----------+--------+-------------------+
| Teclado 1 | false    | false  | false             |
| Teclado 2 | false    | false  | false             |
| Teclado 3 | false    | false  | false             |
| Teclado 4 | false    | false  | false             |
+-----------+----------+--------+-------------------+
+------------+---------+
|  PARTIÇÃO  | ATIVADA |
+------------+---------+
| Partição 1 | false   |
| Partição 2 | false   |
| Partição 3 | false   |
| Partição 4 | false   |
+------------+---------+
+---------------+---------+
| PGM INVERTIDA | ATIVADA |
+---------------+---------+
| PGM 1         | false   |
| PGM 2         | false   |
| PGM 3         | false   |
+---------------+---------+
PGM Correta:
 PGM 1: false
 PGM 2: false
 PGM 3: false
Data:  2022-08-24 09:59:00 -0300 -03
Modelo: AMT4010, Firmware: 5.2
Central:
 Ativada: false
 Houve Disparo?: true
 Problema na central: true
 Falta de rede elétrica: false
 Corte da linha telefônica: false
 Sobrecarga na saída auxiliar: false
 Falha ao comunicar evento: false
Sirene:
 Ativada: false
 Corte Fiação: true
 Curto: false
Bateria:
 Nível: Carregada ou Carregando
 Bat. Baixa: false
 Ausente ou invertida: false
 Curto: false

Não consegui alterar a senha de 4 para 6 dígitos, mas é possível enviar comando com o mesmo comprimento, ex ativação e desativação total.
Caso alguém consiga deixar o comprimento dos comandos dinâmico, será possível ativar parcial, controlar pgm etc.

No android é possível pegar os dados enviados, então teoricamente mesmo sem documentação, seria possível incluir outros modelos de centrais.

@Carlos_AC Conseguiu alguma comunicação usando o ESP32?

1 curtida

Olá… eu consegui uma maneira de ativar e desativar apenas!!! Com um relê de contato seco e o módulo sem fio do alarme, porém só consigo isso para automação, não me aparece se está ligado ou desligado, somente pelo app da Intelbras!!!

Vc usou um sensor sem fio na função entrada liga?

Se sim, vc pode fazer a mesma coisa com algum sensor que tenha integração com o HA e ligar em uma saída PGM e configurar o acionamento dela na ativação e desativação.

Mas acho mais viável colocar um esp8266 para fazer as 2 funções.
Liga o relé no esp8266 e na saída PGM

Fiz o upload de 2 executáveis para a AMT 4010, um para windows outro para linux, caso alguém queira testar a comunicação com a central e repassar algum problema.

Comando a ser executado:

./isecnet-go partialStatus --alarm_host 192.168.0.80 --alarm_password 5152

Trocar o IP e só aceita senha de 4 dígitos

https://drive.google.com/file/d/15ifHS0lkgOz-fRcx5kS0YPrrmvvxZqz7/view?usp=sharing
senha:

habrazil
1 curtida

Olá, isso mesmo… então… eu estou querendo mesmo saber como programar o ESP numa saída para, para por exemplo acender as luzes quando disparar o alarme, estou começando a usar a placa esp agora, por hora só sei usar para WLED!!! Ficaria grato se alguém mandasse o esquema de ligação ou algum vídeo de como programar um esp para tal!!!

A saída da pgm é negativa (gnd) então vc pode alimentar o esp com uma fonte externa, interligar o gnd da saída auxiliar com o gnd do esp e ligar as saídas da pgm em 2 pinos do esp, um para status da ativação outro para o disparo.

O relé vc já sabe a ligação, basta ligar o acionamento dele em outro Pino do esp

Para programar sugiro o esphome.
Cria 2 sensores binários e um switch.

binary_sensor:
  - platform: gpio
    name: "AMT Status"
    device_class: lock
    pin:
      number: 33
      #inverted: true  
      mode:
        input: true
        pullup: true

  - platform: gpio
    name: "AMT Disparo"
    pin:
      number: 32
      inverted: true  
      mode:
        input: true
        pullup: true

switch:
  - platform: gpio
    pin: 25
    id: relay
    name: "AMT Controle"
    on_turn_on:
    - delay: 1000ms
    - switch.turn_off: relay

Na central configura a pgm 1 para “Ativação do Sistema” e pgm 2 para “Disparo ou pânico”.

Bom dia Walter, vou mandar uma foto da minha esp8266


minha central é a AMT 8000, a saída da ohm é na central ou naquela remota que acende a luz? Pois tenho uma unidade dessa ligada na PGM1 que acende um holofote quando dispara, mas queria que conversasse com meu HA, outra coisa, o relê no caso seria para ativar e desativar? Se sim, não há necessidade, pois já coloquei um relê com um dispositivo proprio sem fio da Intelbras, estou interessado em saber apenas o estado dela!!!

Para o 8266 é só mudar os pinos.

Pelo que vi a 8000 não tem pgm embutida.
Vc tem que verificar se consegue configurar a pgm para ativação do sistema, mas acredito que seja possível.

Cada modulo só tem uma saída, certo?
Então vc vai precisar de 2 módulos pgm, um para status e outro para disparo.

O de disparo vc pode usar o mesmo do holofote.
Vc pode colocar em relé de interface ligado em paralelo com o holofote.

Ai vc liga assim:

(Disparo) gnd do ESP8266 no COM do relé de interface e o pino XX no NO
(Status) gnd do ESP8266 no COM do da pgm 2 e o pino YY no NO

Alguém com amt 4010 com firmware 5.2 disposto a fazer um teste?
Chama no PV

1 curtida

eu tenho se ainda quiser chama ai!!

Consegui fazer a Integração central de Alarme Intelbras com o Home Assistant usando as portas PGM.

Essa integração permite verificar se o alarme está ativo ou com disparo.

Componentes utilizados:

  • Central de alarme Intelbras AMT 2018 EG
  • Arduino UNO
  • Ethernet Shield W5100
  • 2 Módulo Relé 1 Canal 5V 10A
  • 2 Mini Regulador de Tensão DC Ajustável(Regulado para saida com 5v)
  • Arduino IDE
  • Home Assistant
  • Add-ons Home Assistant: Mosquitto broker

OBS.: Se usar o módulo relé de 12v não precisa do mini regulador de tensão.

1º Passo: Configurar as portas PGM da central de Alarme:

2º Passo: Conectar os componentes usando o diagrama como base.

alt esquema eletrico

3º Passo: Gravar o programa na placa Arduino Uno usando o arquivo de exemplo: integracao-central-alarme-intelbras-ha/monitoramento-central-alarme.ino at main · renato-dias-lima/integracao-central-alarme-intelbras-ha · GitHub

O programa para rodar no arduino foi baseado no video do Lenadro, assista ao video para entender melhor o funcionamento: COMO fazer um interruptor universal MQTT com NodeMCU ESP8266 e Home Assistant - YouTube Esse programa pode ser usado no ESP8266 usando a biblioteca para Wifi no lugar da Ethernet.

Obs.: Alterar os parametros conforme a configuração do Home Assistant:

IPAddress ip(192, 168, 1, 198); // IP do Arduino na REDE

//Informações do Servidor MQTT const char* mqttuser = “”; const char* mqttpass = “”; IPAddress serverMqtt(192, 168, 1, 199); // Ip do Home Assistant para conectar o MQTT

4º Passo: Ligar o Arduino Uno na rede e fonte de alimentação para testar a integração.

alt projeto

  • Usei uma caixa que sobrou da instalação do alarme para colocar alguns componentes.
  • Usei o arduino com placa de rede porque o sinal do Wifi aonde fica a central de alarme é fraco.

Video do projeto funcionando: Integração central do Alarme Intelbras com o Home Assistant usando as portas PGM - YouTube

5º Passo: Verificar se aparece a entidade no Home Assitant

alt projeto

Com a entidade é possível adicionar o card na dashboard para exibir o status do alarme e criar rotinas.

Link do github: GitHub - renato-dias-lima/integracao-central-alarme-intelbras-ha: Integração central de Alarme Intelbras com o Home Assistant atraves das portas PGM.

Tenho uma 4010 e acredito que o funcionamento da pgm seja igual.
Na 4010 a saída pgm manda o sinal GND, dessa forma vc pode programar os pinos no arduino como pullup e ligar as pgms direto nos pinos.

Assim vc elimina o uso dos relés e do regular de tensão nas pgm.

Uso assim:

Regulador de tensão para alimentar o esp, fio vermelho e preto.
Fio roxo direto na pgm

Se a 2018 tiver a opção entrada liga vc pode usar com um relé para ativar e Desativar a central.