HA + MQTT + Shelly

Estou a tentar integrar o meu 1º Shelly 1, mas ao clicar no botão no HA, não faz nada:
image

Tenho configurado o Shelly para MQTT e o código é o seguinte (não deu erro):

  - platform: mqtt
    name: Portao Exterior
    state_topic: "shellies/shelly1-BCDDC2772252/relay/0"
    command_topic: "shellies/shelly1-BCDDC2772252/relay/0/command"
    payload_open: "open"
    payload_close: "close"
    payload_stop: "stop"
    payload_available: "true"
    payload_not_available: "false"
    optimistic: false
    qos: 0
    retain: false
    

Olá malta, desculpem a insistência, mas alguém tem alguma dica para este meu problema?
Obrigado

1 Curtiu

Boas, sem mais informações sobre o que colocas-te nas configurações do shelly não dá para ajudar muito, mas se tens bem configurada parte do mqtt tanto no shelly como no HA, e a não ser que tenhas modificado o “tópico” mqtt na app do shelly, parece-me que o código que tens à frente de “shelly1-”, tem muitos caracteres, por defeito não normalmente só 6 caracteres.

caro @finipini, quanto ao “topic”, não sei o que isso é…

Quanto ao nº de cartecteres na designação do Shelly, de facto já tinha reparado noutros sites que eram menos do que no meu caso. O que é verdade é que é esta a designação que aparece no meu router:
image

Ok. Nunca vi isso no router. Na app/webpage da shelly tem lá essa informação, em info sobre o dispositivo ou algo do género (agora não consigo confirmar). Também dá para ver na página onde se configura o mqtt do dispositivo tem lá a opção de mudar o nome do tópico (ou algo parecido) e ao escolheres isso aparece a designação do tópico por defeito. (depois volta a colocar como estava)

E é essa a designação que tens de colocar, não a que tens. De todos os shellys que tenho é sempre só com 6 dígitos.

@finipini obrigado pelas dicas.

No “device info” aparece a mesma designação:
image

Tenho um Shelly 2.5 e por acaso tem assim um comboio de dígitos e sempre funcionou bem:

cover:
 - platform: mqtt
   name: Estore Quarto Gs
   state_topic: "shellies/shellyswitch25-8CAAB505897A/roller/0"
   command_topic: "shellies/shellyswitch25-8CAAB505897A/roller/0/command"
   position_topic: "shellies/shellyswitch25-8CAAB505897A/roller/0/pos"
   set_position_topic: "shellies/shellyswitch25-8CAAB505897A/roller/0/command/pos"
   payload_available: "true"
   payload_not_available: "false"
   qos: 1
   retain: false
   optimistic: false
   payload_open: "open"
   payload_close: "close"
   payload_stop: "stop"
   position_open: 100
   position_closed: 0

Já está resolvido o teu problema?

@lopitos nope…

E se deixares o MQTT e usares o ShellyForHass? É uma solução simples com integração directa no Home Assistant.

Não conhecia…vou explorar

Penso que para tentares resolver o teu assunto deves tentar ver desde o básico ao complicado:

1º Verificar se o shelly tem o MQTT ativo (aceder à pagina do shelly via browser através do IP dele: exemplo: http://192.168.1.XXX).
Aceder a " Internet & Security" - opção " ADVANCED - DEVELOPER SETTINGS" e verificar se tens a opção seleccionada. Verificar se o endereço de servidor MQTT está correto, bem como user e psw.
Como verificação adicional a isto podes ir à opção " CLOUD". Tem que estar inativa. O Shelly não permite MQTT e Cloud ao mesmo tempo.

2º Verificar se o shelly está a emitir em MQTT. Eu utilizo o MQTT.fx para windows. Tens que preencher igualmente os dados da tua base de dados MQTT e user/password. Depois vais a “Subscribe” e pressionas onde diz “Scan”.
Após isto no MQTT.fx vão aparecer todos os tópicos que estão a ser enviados.
No caso dos shelly apenas tens que copiar o tópico que pretendes para o ficheiro yaml.

Espero ter ajudado em alguma coisa.

Tens esse shelly configurado como switch, certo?
Penso que não podes usar esse código. Isso é para estores…

Para switch tenho por exemplo o seguinte:

switch:
  - platform: mqtt
    name: "controlo_acumulador"
    state_topic: "shellies/shelly1pm-XXXXX/relay/0"
    command_topic: "shellies/shelly1pm-XXXXX/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: false

No meu caso é o tópico do Shelly 1PM. Vê qual é o teu tópico para o Shelly 1.

Caro @lopitos obrigado pela ajuda e pelo tempo!!

1 - Desculpa a minha ignorância mas não sei o que é um “tópico”. Já pesquisei sobre o assunto, mas continuo a navegar
2 - Inicialmente experimentei o “payload_on” mas dá-me erro.


3 - No shelly tenho activado o MQTT. Quanto ao endereço do MQTT, referes-te ao IP? Realmente aparece em “Server” um IP, mas não o estou a utilizar para nada.
4 - Na utilização do mqtt.fx, nem sei o que colocar no “broker server”…

Tens aqui um vídeo do @francisco que ajuda a entender o MQTT.

Se quiseres ir pelo ShellyForHass tens de instalar o HACS. E para isso tens aqui um tutorial.

1 Curtiu

Isto são os tópicos.

Tenta substituir o que tens:

- platform: mqtt
    name: Portao Exterior
    state_topic: "shellies/shelly1-BCDDC2772252/relay/0"
    command_topic: "shellies/shelly1-BCDDC2772252/relay/0/command"
    payload_open: "open"
    payload_close: "close"
    payload_stop: "stop"
    payload_available: "true"
    payload_not_available: "false"
    optimistic: false
    qos: 0
    retain: false

Por isto sff e vê se dá:

switch:
  - platform: mqtt
    name: "Portao Exterior"
    state_topic: "shellies/shelly1-BCDDC2772252/relay/0"
    command_topic: "shellies/shelly1-BCDDC2772252/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: false

@lopitos

Obrigado mais uma vez.
Coloquei em “switch” em vez de “cover” como indicaste e corrigi o código.
Agora não deu erro, mas o botão que criei no lovelace, não faz nada…
image

Só para dar o feedback após ter identificado o problema: o IP indicado no server das configurações do shelly não era o correcto.

1 Curtiu

Olá…instalei outro Shelly um e testei na app e está a funcionar.
Na integração no HA via MQTT já configurei tudo no shelly (escolhida a opção MQTT, inserido user e pass e inserido o IP do HA).
O meu código está assim, mas o botão não faz nada:

switch:
  - platform: mqtt
    name: Portao Exterior
    state_topic: "shellies/shelly1-BCDDC2772252/relay/0"
    command_topic: "shellies/shelly1-BCDDC2772252/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: false
  - platform: mqtt
    name: Portao Garagem
    state_topic: "shellies/shelly1-500291F04A37/relay/0"
    command_topic: "shellies/shelly1-500291F04A37/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: false

O de baixo é o novo

Já experimentaste ver se as configurações do Shelly estão bem?
Utiliza o MQTT.fx ou MQTT explorer para veres se o shelly está a emitir.
Como já tens um bem configurado por MQTT esse tem que aparecer.

Bom…mais uma vez um engano no IP :woozy_face:
Em vez de terminar com “:1883” tinha colocado a mesma terminação do HA “:8123”…


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


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