O zigbee2mqtt suportado numa CC2531 permite criar uma rede ZigBee não proprietária. Isto tem duas vantagens:
1 - Possibilidade de ligar equipamentos de diferentes fabricantes a uma única rede ZigBee;
2 - Deixarmos de utilizar (ou poupar dinheiro para quem não tem) gateways que dependem ou comunicam com o exterior da nossa rede.
Embora exista aqui muita informação sobre o CC2531 e o zigbee2mqtt temos encontrado algumas dificuldades recorrentes entre alguns utilizadores pelo que surgiu a necessidade de criar este step-by-step.
1º Instalação e configuração do addon
Adicionam o seguinte repositório ao hassio:
https://github.com/danielwelch/hassio-zigbee2mqtt
De seguida instalam o addon
Depois de instalado devem adicionar alguns parâmetros à config do addon:
{
"data_path": "/share/zigbee2mqtt",
"homeassistant": true,
"permit_join": false,
"mqtt_base_topic": "zigbee2mqtt",
"mqtt_server": "mqtt://IP-DO-MQTT:1883",
"serial_port": "/dev/ttyACM0",
"mqtt_user": "USER-MOSQUITTO",
"mqtt_pass": "PASSWORD-MOSQUITTO",
"log_level": "info"
"devices": [],
"network_key": []
}
Save-> Restart ao addon
2 - Adicionar painel de Join ao HA
Esta parte de cima já devem ter no configuration.yaml
mqtt:
broker: localhost
port: 1883
client_id: hassio
keepalive: 60
username: !secret username_mqtt
password: !secret password_mqtt
protocol: 3.1.1
discovery: true
Offtopic: o !secret é utilizado para retirar dos ficheiros de configuração dados sensiveis como passwords, ips, coordenadas, etc. Utilizando o ficheiro secrets.yaml podem tranquilamente partilhar as vossas configurações com terceiros que estes dados ficam protegidos (por não estarem lá). Podem ver aqui como utilizar.
No vosso configuration.yaml ou no package (aconselho vivamente que seja em package) para o zigbee2mqtt adicionam o seguinte:
input_boolean:
zigbee_permit_join:
name: Allow devices to join
initial: off
icon: mdi:cellphone-wireless
timer:
zigbee_permit_join:
name: Time remaining
duration: 600 # Updated this to the number of seconds you wish
sensor:
- platform: mqtt
name: Bridge state
state_topic: "zigbee2mqtt/bridge/state"
icon: mdi:router-wireless
group:
zigbee_group:
name: Zigbee
entities:
- input_boolean.zigbee_permit_join
- timer.zigbee_permit_join
- sensor.bridge_state
automation:
- id: enable_zigbee_join
alias: Enable Zigbee joining
hide_entity: true
trigger:
platform: state
entity_id: input_boolean.zigbee_permit_join
to: 'on'
action:
- service: mqtt.publish
data:
topic: zigbee2mqtt/bridge/config/permit_join
payload: 'true'
- service: timer.start
data:
entity_id: timer.zigbee_permit_join
- id: disable_zigbee_join
alias: Disable Zigbee joining
trigger:
- entity_id: input_boolean.zigbee_permit_join
platform: state
to: 'off'
action:
- data:
payload: 'false'
topic: zigbee2mqtt/bridge/config/permit_join
service: mqtt.publish
- data:
entity_id: timer.zigbee_permit_join
service: timer.cancel
hide_entity: true
- id: disable_zigbee_join_timer
alias: Disable Zigbee joining by timer
hide_entity: true
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.zigbee_permit_join
action:
- service: mqtt.publish
data:
topic: zigbee2mqtt/bridge/config/permit_join
payload: 'false'
- service: input_boolean.turn_off
data:
entity_id: input_boolean.zigbee_permit_join
Restart ao Hassio e vai-vos aparecer o seguinte:
Isto permite activar/desactivar o join por períodos de 10 minutos (o tempo é configurável no código acima) sem terem de reinicar o módulo e acima de tudo garante que não se esquecem do join activado.
3 - Emparelhar dispositivo
Em primeiro lugar activar o join no painel.
De seguida, o mais próximo possível do CC2531 devem iniciar o procedimento de join do dispositivo que querem adicionar. Não é possível explicar todos os devices, mas encontram facilmente os procedimentos no tio Google.
A título de exemplo, nos sensores da Xiaomi o processo de emparelhamento passa por carregar durante 5 segundos no botão (ou com agulha) e dependendo do modelo podem ter de passados esses 5 segundos ir carregando a cada 1 segundo (pe. sensor de porta) até aparecer no log.
Concluído o processo de emparelhamento, começam a ver os dispositivos no log do addon.
4 - Notas
a) Aconselho vivamente que usem o firmware CC2531ZNP-Pro-Secure_LinkKeyJoin.zip (212.0 KB)
para o CC2531. Só com esse é que consegui emparelhar as lâmpadas do IKEA por exemplo.
b) antes de começarem a comprar devices ZigBee consultem a lista de hardware suportado. Podem adicionar suporte a novos dispositivos, mas têm de saber se é um caminho que querem precorrer
c) as palavras a azul têm links que achei importantes e portanto fui colocando ao longo do texto.
d) para o CC2531 funcionar, tem de ser flashado com um firmware próprio utilizando o CC Debugger e o downloader cable. Se não quiserem comprar isto, vejam neste post uma lista de pessoas que têm e que não se importam de vos flashar o CC
Qualquer dúvida ou sugestão estejam à vontade.
Queria deixar o meu muito obrigado a:
@dgomes - Que nos deu a conhecer a CC2531 e apoiou a configuração do mesmo no já longo tópico da CC2531 que vos convido a ler
@Nuno Miguel do Movimento Maker - Pela paciência e tempo que perdeu a flashar o meu (e do @j_assuncao) primeiro CC2531 com recurso a arduino. Como não podia deixar de ser, o meu cc debugger chegou no dia em que ele conseguiu flashar os nossos CCs.