Suporte das Yale YMC 420W ou YMF 40A no ZHA?

Ainda bem que deu certo, o passo-a-passo. Sobre o Node-RED, infelizmente não consigo ajudar.

1 curtida

Consegui fazer funcionar no Node-RED, o ChatGPT me ajudou! kkkkkkkkkk
Depois coloco aqui como fiz!

Usei a sua automação como base!

Amigos, fiz assim a automação no Node-RED, no meu caso eu só queria o userID pra saber quem usou a fechadura! Então ficou assim:

No node mqttin coloquei o tópico da fechadura e o Qos no 0.

No 1° node function ficou desse jeito, lembrando que não sei nada de programação, o ChatGPT que fez pra mim, só joguei a automação do colega e pedi pra fazer em Node-RED!

const data = msg.payload;

if (
  !data ||
  data.action_source_name === undefined ||
  data.action_source_user === undefined
) {
  // Não atende às condições → descarta
  return null;
}

const userId = parseInt(data.action_source_user, 10) || 0;

if (userId <= 0) {
  // Falha na segunda condição
  return null;
}

// Se passou, segue o fluxo
msg.userId = userId;
msg.sourceName = String(data.action_source_name);
return msg;

O 2° node function ficou assim:

const userMap = {
  '0': 'Auto-lock',
  '1': 'Alicia',
  '2': 'dona Márcia',
  '3': 'Alexandra'
};

const sourceMap = {
  '0': 'password',
  '1': 'unlock',
  '2': 'autolock',
  '3': 'RFID',
  'fingerprint_unlock': 'a Digital',
  'auto_lock': 'Trava Automática',
  'keypad': '(Teclado)',
  'rfid': '(RFID)',
  'manual': '(Manual)',
  'password_unlock': '(Teclado)'
};

const userId = String(msg.userId);
const sourceName = msg.sourceName;

const userDisplay = userMap[userId] !== undefined && userMap[userId] !== ''
  ? userMap[userId]
  : 'Desconhecido';

const sourceDisplay = sourceMap[sourceName] !== undefined
  ? sourceMap[sourceName]
  : (sourceName || 'Desconhecido');

msg.tts_message = `Alicia, ${userDisplay} abriu a porta usando ${sourceDisplay}.`;
return msg;

Depois vem um nó change que pego o userID e transforma ele no payload, que passa a dar o id como payload, então consigo filtrar e saber quem entrou!

Depois o nó switch que separa o userID pra cada automação!

Acho que usando o sourcename ao invés do userID consegue filtrar se foi usado o teclado, o cartão e tal…

É isso amigos, espero ter ajudado!

1 curtida

Fala ai pessoal,

Eu li a thread toda pq estava procurando por fechaduras digitais que são facilmente integradas no HA. Eu vi que a YMC 420W ou YMC 420D são suportadas como esta descrito no site do Z2M. O problema eh que essa fechadura nao me atende pq ela não tem tranca para criança.

Bom, depois de ler muitas coisas e fazer muitas perguntar ao GPT eu decidi comprar a Yale YDM 60, no qual não tem suporte descrito no site, porem estou acreditando que a Yale implementa a especificação Zigbee corretamente e não terei problemas de integração. Se assim for eu vou abrir um request para deixar essa fechadura oficialmente suportada.

Se alguem aqui quiser se aventurar nessa iniciativa, me da um ping que vamos compartilhando os resultados.

3 curtidas

Postando uma atualização de status.

A minha fechadura já esta instalada aqui, tudo funcionando o Home Assistent com z2m, como eu havia imaginado.

A fechadura ainda não aparece com foto e todas as informações do produto pq ela ainda não é reconhecida oficialmente, nos proximos dias vou criar uma configuração customizada para resolver isso no meu local e tambem vou submeter um merge request para o Z2M tornar essa fechadura oficial suportada, enviarei updates aqui quando terminar.

Como a fechadura funciou por padrão, isso significa que a Yale seguiu, pelo menos pra essa fechadura, mas eu apostaria que para todas as outras tambem, que eles seguem a especificação Zigbee corretamente.

Um detalhe que eu gostaria de destacar: Todas as fechaduras que eu vi da Yale vem um módulo Zigbee que vc compra separado e acopla na fechadura. A minha nao veio, mas ela vem com o módulo embutido. Não sei se esse modulo separado vai ser descontinuado, tem que acompanhar o lançamento dos proximos produtos. A minha fechadura veio com o HUB que é o que faz a conexão entre o aplicativo e a fechadura, essa comunicação é Zigbee e se vc quiser conectar a sua fechadura no HA vc vai perder o acesso ao aplicativo. Simplesmente é um ou outro, se vc mudar de configuração todas os cadastros da fechadura são deletados. Então se vc a tem uma fechadura com tudo cadastrado e quer deixar de usar o app para usar o HA, saiba que todos os dados cadsatrados serão perdidos. A unica coisa que não é deletada é a senha master.

Eu já integrei as notificação de lock e unlock no meu HA, mas ainda não consegui pegar o codigo do usuário que fez o unlock. Postarei aqui se descobrir com faz.

3 curtidas

Tenta fazer como o colega fez pra pegar pra YMC 420W, pode ser parecido!

1 curtida

Estou com uma 420W e as vezes no z2m ela vai pro estado not_fully_locked (lockState:0), eu tenho a impressão que se ficar 48hrs toda sem ser usada, nos logs parece um fluxo de reconexão:

z2m: Device 'fechadura_sala' announced itself
z2m: Retrieving state of 'fechadura_sala' after reconnect
z2m: Received Zigbee message from 'fechadura_sala', type 'readResponse', cluster 'closuresDoorLock', data '{"lockState":0}' from endpoint 1 with groupID 0

Ai ela fica inoperante remotamente, mas basta destravar ela presencialmente que volta tudo ao normal.

Alguém mais com esse problema?

E por favor se alguém tiver o kit de conexão da Yale lá sabem se tem algum firmware mais novo? Aqui no z2m mostra 02.03.03 (data 230308)

Valeu!

Não consigo fazer de jeito nenhum com que a Y420W mande os ID’s pro Z2M.
Será que a última alternativa seja fazer o reset total dela e exclui-la do Z2M?

Adiciona ela no Z2M e depois segue o tutorial do VPC92! Na aba State no Z2M vai aparecer o ID quando vc abrir a fechadura

Deu certo!!
Eu pensei que não precisava colocar a automação e que iria aparecer no painel no Z2M.
Quando fiz a notificação começou a ser notificado.
Obrigado demais à melhor comunidade!

1 curtida

A única coisa que não ficou funcionando de forma completa foi que não consigo mais adicionar usuários diretamente no Z2M, porém isso é galho fraco. O que importa mesmo é ter a identificação do usuário que está efetuando o destravamento.

Quer um quirk ZHA melhor?

Por um acaso alguém conseguiu fazer funcionar uma Yale Digital Compact Rolete? Fechadura Digital Compact Rolete com Biometria e Senha| Yale

Esse modelo acima.

É uma bela confusão essas fechaduras yale, não tem documentação direito, etc. eu sequer sei se esse modelo tem zigbee integrado na fechadura (tenho 99% de certeza que sim), mas enfim. Eu cheguei a comprar o Hub da Yale também, que acredito que faz uma ponte Zigbee->Wi-fi mas também não tenho certeza mas de qualquer maneira o app é HORRíVEL, 0 opções de configuração, notificações horríveis, etc., então eu gostaria de aposentar esse hub e ligar direto no HA, se possível.

Alguém sabe se é possível dar um reset na fechadura (até ai acredito que sim) e conectar ela diretamente no HA, modulo zigbee sem passar pelo hub wifi. Eu tenho um coordenador zigbee2MQTT instalado e rodando já com diversos outros sensores zigbee (Aqara/Sonoff).

Não acho nada desse modelo especifico na gringa, parece que sequer existe, e gostaria de um norte antes de resetar tudo de novo aqui e não conseguir instalar de novo kkk

Fala irmão, cara comprei uma Yale Digital Compact Rolete, e vi seu post agora, parece que a sua fechadura é parecida com a minha - bem dificil de achar info online, diferente das mais famosinhas deles.

Peguei o manual da sua e da minha e ao menos os menus são parecidos.

Eu tenho a minha no Hub hoje mas quero sacar isso fora, achei uma MERDA o app, sem nenhuma opção praticamente ,etc.

Até onde eu entendi a fechadura realmente já tem um modulo zigbee integrado nela, e o hub faz o papel da ponte zigbee-wifi.

Bom, pra mim não é necessário pq já tenho uma ponte zigbee, com zigbee2mqtt rodando.

A dúvida é, como vc fez pra resetar ela e tirar ela fora do hub e depois parear no zigbee?

E em seguida: o que vc consegue fazer pelo HA? Abrir/Fechar remoto, cadastrar usuário novo, ter o status de qual usuário destrancou?

Igual vc já adiantou to receoso de resetar tudo, perder todos os acesso que vai ser um saco pra recadastrar e ainda o negócio não funcionar ou ter um suporte tosco no HA, pois parece ser uma fechadura mais diferentona do que as que vendem no mercado norteamericano/europa.

Agradeço a ajuda.

1 curtida

Olá. Sugiro você dar uma olhada neste vídeo do Leandro

Não precisa excluir/resetar a fechadura e perder as senhas dos usuários, visto que estes dados ficam armazenados na própria fechadura e não no HUB. Basta excluir a conexão com o HUB e depois reconhecer no Z2MQTT do HA. Da uma olda no manual que se não me engano vc coloca ela em modo de “pareamento” via teclado da fechadura (a minha pelo menos eu fiz via teclado).
A automação dela é tudo “no braço”, visto que não existe integração. Você tem que dar o comando na fechadura (ex. abrir a porta com a senha/tag/bio do “usuario 1”) e observar no MQTT qual string que foi publicada. Depois usa essa publicação como trigger em uma automação para gerar uma variável que você desejar (ex. nome do usuario 1).

Da pra fazer umas automações bem legais. Por exemplo, eu tenho uma automação que quando é detectada abertura da fechadura com a senha da diarista, o HA manda uma notificação pro meu celular avisando que ela entrou em casa, e ao mesmo tempo dispara um texto para a IA do Google Gemini “cumprimente a Fulana de maneira engraçada”. A resposta da IA é armazenada em texto, e depois esse texto é enviado via text-to-speech para a Echo Show da cozinha cumprimentar a diarista.

2 curtidas

Opa, o Tobias foi mais rapido que eu no gatilho :flexed_biceps:

O que eu fiz foi exatemente isso, na epoca eu procurei, mas não encontrei algum video que pudesse me ajudar. Que otimo que agora tem mais conteudo.

Eu coloquei a fechadura em modo “pareamento” e fui no HA e pedi para aceitar novos dispositivos na interface fo Z2M. Fazendo isso a sua fechadura sera pareada com o seu HA e ela sera automaticamente identificada como uma fechadura.

O HA vai habilitar algumas coisas default para fechaduras, mas sim vc vai conseguir abrir a porta, vai conseguir fazer integrações facilmente.

Me avisa se precisar de mais info, estou por aqui.

1 curtida

Agradeço os replies,

Sim existe a opção que usei originalmente para parear com o Hub, Tecla 8 para vincular com rede sem fio e depois 1 para confirmar.

Quer dizer que se eu fizer essa combinação novamente ela vai sair do hub e entrar em pair mode? Aí eu dou o join no Z2M…

Se eu conseguir o básico que é abrir/fechar e saber o status por padrão/receber notificação através de uma automação já estou feliz, melhor que o maldito app deles. Idealmente gostaria de saber quem abriu, mas isso posso deixar mais pra frente.

1 curtida

Isso eu consegui facilmente. Se eles implementaram o protocolo Zigbee assim com implementaram na versão da minha, vc vai ter a mesma experiencia que eu. Tudo vai funcionar de primeira. O que por sinal eu acho muito provavel, seria um custo alto para eles ficarem gerando versões de software para cada fechadura que eles lançam. Acredito que eles tem um base de software compartilhada e tudo isso ja eh incluido em todas as fechaduras.

O processo eh exatamente esse que vc descreveu: Coloca a fechadura em modo pareamento e da um Join la no seu Z2M. Uma coisa que vc deve ficar atento eh que se vc voltar o pareamento com o app eu acho que vc perde o DB que foi gerado na fechadura. Pelo menos foi isso que eu entendi quando estava pesquisando sobre como isso funcionava.

Isso acontece pq a fechadura registra apenas ID do usuario e os metodos de acesso do usuario como senha, impressão digital e outros meios se houverem. Dado isso, quem adiciona nome e outras informações é o app, onde basicamente ele cria um banco de dados no app e toda vez que vc cadastra um usuario novo no app ele salva essa informações adicionais no banco de dados do app e envia o comando para a fechadura salvar o novo usuario. Por conta disso, toda vez que vc parea a fechadura com o app ela perde o banco de dados pq o app envia um comando para zerar fechadura. Isso pq o app não conseguiria detectar os usuario ja cadastrados quando vc nao usava o app.

Eu ainda não coloquei o codigo que permite vc detectar quem abriu a porta, nao fiz pq fiquei com preguiça mesmo, mas tem um codigo que vc coloca no HA que vc passa a receber o ID do usuario quando ele abre a fechadura.

1 curtida

Sim, quando pareia com o Hub deleta tudo exceto a chave mestre, tive essa infelicidade. Aí lá fui eu a esposa tudo cadastrar digital de novo haha.

Vou ver quando arrumo um tempo pra tentar essa pareamento novamente e dou um feedback aqui, porque não achei UMA info sequer desse modelo especifico meu… aí quem sabe o google indexa e salva o próximo que estiver nessa loucura kkk

Vou dar uma mão com a automação que grava o nome dos usuários em uma variável de texto criada como entidade auxiliar (input_select.porta_lavanderia_ultimo_abrir). Só precisa verificar se os strings capturados na publicação do MQTT da fechadura (payload) são iguais aos da minha YRD 226 e alterar o nome dos “User_”.
A fechadura grava a sequencia de cadastro das senhas/tag/bio como uma sequencia numérica. A senha mestra será salva como “action_user == 0”, e a partir daí as senhas/tags/bios dos próximos usuários cadastrados serão salvas na sequencia como “action_user == 1”, 2, 3, etc.
Essa automação abaixo reconhece o número da sequencia e atribui a um nome de usuário.

alias: "[lavanderia]_abertura_fechadura_teclado"
description: Joga o nome da pessoa que abriu pelo teclado na entidade auxiliar
mode: single
triggers:
  - topic: zigbee2mqtt/[fechadura]_lavanderia
    trigger: mqtt
conditions:
  - condition: template
    value_template: |-
      {{
        trigger.payload_json.action == 'unlock'
        and trigger.payload_json.action_source_name == 'keypad'
        and trigger.payload_json.action_user|int(-1) >= 0
      }}
actions:
  - variables:
      pessoa: |-
        {{
          [
            'User_0(mestre)',
            'User_1',
            'User_2',
            'User_3',
            'User_4',
          ][trigger.payload_json.action_user] or 'desconhecido'
        }}
  - target:
      entity_id: input_select.porta_lavanderia_ultimo_abrir
    data:
      option: "{{ pessoa }}"
    action: input_select.select_option

Como a minha fechadura só tem opção de abertura física pelo teclado numérico, a string “action_source_name” sempre vai ser ‘keypad’. Imagino que nas fechaduras que tem tag/bio deve aparecer as outras formas de abertura ali, aí da pra ir alterando na automação de forma que seja possível registrar " ‘User_1’ abriu a fechadura utilizando ‘tag’ / ‘bio’ / ‘teclado’ "

2 curtidas