HA - Integração com central de Alarme Intelbras

Obrigado Walber, na verdade eu tinha esquecido de salvar nos ajustes do File Editor para ele acessar as pastas anteriores…depois de mudar a chave e salvar eu fui no caminho que indicou e achei.

Não entendi o passo 5, os posteriores eu sei como fazer pois já tive um Alarme com o nodered configurado em outra residência.

Em que local eu crio a pasta “python_scripts” e como eu uso o “set_state.py”? Sou bem iniciante com o nodered .

Aqui depois de inserir os dados e implementar me apareceram esses 2 erros, alguma dica? Em algum lugar fiz algo errado…

Dentro da pasta config do HA

1 Like

Boa pessoal. Obrigado pela integração, já tenho usado por algum tempo, provavelmente um ano e tem funcionado perfeitamente.

Uma dúvida: como funciona a lógica para anulação de zonas abertas antes de ativar a AMT?

vi que tem um botão chamado Anular zonas abertas, mas quando pressiono ele e em seguida Armar AMT ou Armar Partições A ou B, ela arma com as zonas não anuladas. Tem alguma lógica por trás disso que posso implementar num script ou no nodered pra garantir que essas zonas sejam anuladas?

's

A lógica é essa mesma.
Clica no botão de anular zonas abertas e depois ativa a central ou a partição.

Na 4010 está funcionando.

Qual o modelo da central?

É uma AMT 2018 E/SMART.

Eu uso a integração pra ajudar na automação da casa, como detecção de portas e janelas, movimento etc. Não uso STAY nela, uso 2 partições, sendo partição A pras zonas externas e a B para as internas que seriam Stay. Fiz isso porque a central não reporta ao node-red nenhum estado de zona em partição ativa. Assim eu consigo monitorar as zonas internas enquanto a partição externa tá armada.

Vou tentar o método que você falou. Tentei ontem mas era tarde da noite, não queria correr o risco de disparar as zonas e aí eu desativava antes do timer de saída. Porém, não aparecia o nome das zonas na entidade de zonas anuladas.

Abraços!

Não entendi. Explica melhor.

No nó “Comandos” verifica a ordem dos comandos:

var comando_status_0 = Buffer.from([0x5a]);
var comando_status_1 = Buffer.from([0x5b]);
var comando_status_2 = Buffer.from([0x5d]);

Apaga o arquivo /addon_configs/a0d7b954_nodered/node-red/amt_comandos.txt, reinicia o node red e posta o log do node red

30 Mar 15:11:27 - [AMT] Comando 1: Descontinuado.
30 Mar 15:11:27 - [AMT] Comando 2: Status OK
30 Mar 15:11:27 - [AMT] Comando 3: Inválido.

Quando tá armada, a minha AMT não reporta o estado de zonas. Digamos que seu armar a central inteira, ela não vai reportar o estado de nenhuma zona, ficam todas como zonas fechadas. Se eu colocar o modo stay e passar na frente de um sensor infravermelho interno, ele continua como fechado no homeassistant. Porém se eu dividir ela em 2 partições consigo ver o estado das zonas na partição que não tá armada. MAS ISSO NÃO É UM PROBLEMA DO FLOW (eu acho), é só uma limitação da central mesmo pelo que parece.

Voltando ao ponto da anulação, fiz um teste aqui pelo nodered e pelo lovelace e deu certo. Aparentemente precisa ter um delay de cerca de 3s entre pressionar a anulação e pressionar a ativação. To usando 5 pra garantir que funcione. Abaixo desse tempo ela ignora o comando mais antigo e executa só o mais recente.

Depois faço um teste, mas acredito que seja uma limitação da central.
Ela reporta as zonas abertas separadamente das zonas disparadas.
Como todas as zonas precisam estar fechadas para que ela arme, imagino que passe a ignorar o setor da zona aberta.

Ai vc tem que usar os sensores CENTRAL DISPARADA (geral) ou Zonas Disparadas para saber onde foi o movimento.

Aqui tbm uso 3s, não lembro se cheguei a testar com menos

Estou utilizando este flow na 2018 EG, com 2 canais, que está rodando perfeitamente há quase 2 anos.

Uso sensores magnéticos e de movimento (IVP) para diversas automações – são rápidos, estáveis e funcionam muito bem.

Recentemente, adquiri um sensor magnético sem fio (um dos mais baratos do Mercado Livre) e consegui cadastrá-lo através do teclado.

Uma curiosidade é que a 2018 suporta teoricamente até 128 dispositivos RF (sensores e controles), mas dispõe de apenas 24 zonas para sensores sem fio (da 25 à 48).

É possível cadastrar múltiplos sensores em uma mesma zona, embora não seja possível monitorar individualmente qual sensor foi acionado.

Contudo, encontrei um problema: consigo monitorar apenas a abertura do sensor sem fio, não seu fechamento.

Não sei exatamente se isso se deve ao sensor ou a uma limitação da central para sensores sem fio.

Alguém aqui sabe algo sobre isso? Ou utiliza sensores sem fio?

Para cadastrar o sensor diretamente pelo teclado:

  • Digite #ENTER#.
  • Insira a SENHA DO INSTALADOR.
  • Pressione #ENTER# novamente.
  • Digite 61 seguido do NÚMERO DA ZONA (entre 25 e 48, no caso da 2018).
  • Pressione #ENTER#.
  • Separe o sensor magnético para parear.
  • Para sair do modo de programação, digite novamente a senha do instalador.

Para apagar todos os sensores de uma zona:

  • Utilize o código 71 seguido da ZONA correspondente (em vez de 61). Esse comando excluirá todos os sensores cadastrados naquela zona.

Mas esse comportamento é dos sensores originais, os do ML ou os 2 modelos?
E esse comportamento acontece apenas quando tem mais de um sensor gravado na mesma zona?
Não consegue fechar a zona de nenhuma maneira?

Eu acho que é limitação dos sensores.
Já vi no forum da intelbras que os sensores sem fio, não ficam enviando o status de tempo em tempo, então se tiver uma perda de pacote, a central fica dessincronizada.
Aqui acontece de vez em quando (muito pouco) de algum sensor de movimento ficar “aberto”, ai tem que passar novamente pelo sensor para ele fazer o ciclo de abertura > fechamento novamente.

Testei apenas com sensor sem fio do ML. Os originais (com fio) funcionam perfeitamente. Acontece com 1 unico sensor na zona. Ao abrir o sensor, a zona abre e cerca de 1 segundo depois ela se fecha (mesmo que o sensor fisicamente continue aberto). Ao fechar o sensor (fisicamente), nada acontece, pois a zona já estava fechada…

Então é limitação do sensor.
Aqui uso os originais e funcionam normal.
Se tivesse mais de um sensor na mesma zona poderia ser algum conflito, mas como só tem 1 sensor e ele fecha sozinho após 1 segundo, certeza ser o sensor.

A não ser que tenha algum bug na central. Aí vc teria que ver o change log dos firmwares ou testar com um original pra ter certeza.

Comprei um Intelbras XAS 4010, amanhã descubro se é isso!

Boa tarde,

Alguma novidade sobre anular zonas na AMT 8000?

Testei com Sensor original da Intelbras, mesmo comportamento.

Aparentemente só o modelo 2018 E Smart monitora o sem fio corretamente.

Descobri que os sensores magneticos (somente os originais da Intelbras) possuem 2 modos de operação: OOK - padrão, que só transmite a abertura, FSK - transmite abertura, fechamento, status da bateria, etc. Para usar o FSK você precisa romper uma trilha na placa do controle, porém, além disso a central precisa ser compatível, o que, infelizmente não é o meu caso.

Os meus estão em FSK desde que instalei a central.
Na minha memoria eu achava que era só para melhor possíveis interferências e sensor de bateria baixa.

Não sei se vai funcionar…

Habilita os botões e as configs abaixo

E adiciona o novo nó entre o link e o debug
image

[{"id":"9d0c3434d9ba639f","type":"function","z":"49a2514a19eb7c58","name":"Comandos Anular","func":"if (Buffer.isBuffer(msg.payload)) {\n    function extrairBuffer(baseIndex, tamanho) {\n        return Buffer.from(msg.payload.subarray(baseIndex, baseIndex + tamanho));\n    }\n\n    // Extrai os bytes necessários\n    const anular_abertas = extrairBuffer(46, 8);    // 7 + 39\n    const anular_disparadas = extrairBuffer(54, 8); // 7 + 47\n    const anular_ab_disp = Buffer.from(anular_abertas.map((b, i) => b | anular_disparadas[i]));\n\n    // Cabeçalho fixo da central\n    const start = Buffer.from([0x00, 0x00, 0x00, 0x01, 0x00, 0x42, 0x40, 0x1F, 0xFF]);\n\n    const zonas_anular = [anular_abertas, anular_disparadas, anular_ab_disp];\n    let buffer_full_comandos = [];\n\n    zonas_anular.forEach((zona, index) => {\n        if (zona) {\n            // Converte os 8 bytes em 64 bytes (1 byte por zona)\n            let zonaBytes = [];\n            for (let byte of zona) {\n                for (let bit = 0; bit < 8; bit++) {\n                    zonaBytes.push(((byte >> bit) & 1) ? 0x01 : 0x00);\n                }\n            }\n\n            const zonaBuffer = Buffer.from(zonaBytes);\n\n            // Junta o buffer sem checksum\n            const buffer_sem_checksum = Buffer.concat([start, zonaBuffer, Buffer.from([0xFF])]);\n\n            // Calcula o XOR de todos os bytes (incluindo o 0xFF final)\n            const checksum = buffer_sem_checksum.reduce((acc, val) => acc ^ val, 0);\n\n            // Substitui o último byte (0xFF) pelo checksum\n            const comando_buffer = Buffer.concat([\n                buffer_sem_checksum.subarray(0, buffer_sem_checksum.length - 1),\n                Buffer.from([checksum])\n            ]);\n\n            buffer_full_comandos.push(comando_buffer);\n            flow.set(`zonas_anular${index}`, comando_buffer);\n        }\n    });\n\n    msg.payload = buffer_full_comandos;\n    return msg;\n}\n","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1310,"y":620,"wires":[["fb84ee54e74802e4"]]}]