HA + MQTT + Shelly

Olá a todos,

gostaria da vossa ajuda a ultrapassar o problema de configuração dos meus shellies no HASSIO.

HA - HASSIO
Shelly 1
MQTT - Eclipse mosquitto docker

Configurações:
configuration.yaml

# MQTT Setup
mqtt:
  broker: !secret mqtt_url
  port: !secret mqtt_port
  client_id: home-assistant
  discovery: true
  discovery_prefix: homeassistant

#config Shelly 1 test
switch:
  - platform: mqtt
    name: "Shelly1 Sala de Estar Luzes Laterais"
    state_topic: "shellies/shelly1-b95df7/relay/0"
    command_topic: "shellies/shelly1-b95df7/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: "false"
    qos: 1

  - platform: mqtt
    name: "Shelly1 Sala de Estar - Luz Tecto"
    state_topic: "shellies/shelly1-b920d5/relay/0"
    command_topic: "shellies/shelly1-b920d5/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: "false"
    qos: 1

  - platform: mqtt
    name: "Shelly1 Sala de Estar Luzes Laterais"
    state_topic: "shellies/shelly1-b95df7/input/0"
    command_topic: "shellies/shelly1-b95df7/input/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: "false"
    qos: 1

Configuração Shelly

MQTT:

persistence true
persistence_location /mqtt/data/
#password_file /mqtt/config/passwd_file
allow_anonymous true
#user mosquitto
# Port to use for the default listener.
port 1883
log_dest file /mqtt/log/mosquitto.log
log_dest stdout

Testes realizados
Testar publicações via MQTT.fx e HA




image

Na última imagem, sempre que activo Shelly não tenho qualquer resultado.

O que me está a escapar?

Obrigado

Tens dois switch com o mesmo nome: Shelly1 Sala de Estar Luzes Laterais tenta la mudar o nome a 1 deles… Reinicia o HA e tenta de novo.

comentei a publicaçao input , ficou só o relay, não funcionou.

Não sei se faz diferença, mas como há linguagens que não gostam de hifens, experimenta colocar o client_id: homeassistant

Estive a comparar com um shelly 1 que tenho com firmware original e está tudo igual ao teu

Pergunta para prémio: porquê esse Eclipse-coiso-e-tal se o hassio tem um addon oficial para MQTT?

Porque acho que já testei e tive resultados piores… Mas poderá ser uma opção, depois de saber a solução desta, não faz sentido não funcionar.

O problema que tens não tem a ver com o broker, tal como disse o @RodolfoVieira tens dois switches com o mesmo nome. Muda o nome de um deles e reinicia o HA.

# MQTT Setup
mqtt:
  broker: !secret mqtt_url
  port: !secret mqtt_port
  client_id: homeassistant
  discovery: true
  discovery_prefix: homeassistant

#config Shelly 1 test
switch:
  - platform: mqtt
    name: "Shelly1 Sala de Estar Luzes Laterais"
    state_topic: "shellies/shelly1-b95df7/relay/0"
    command_topic: "shellies/shelly1-b95df7/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: "false"
    qos: 1

  - platform: mqtt
    name: "Shelly1 Sala de Estar - Luz Tecto"
    state_topic: "shellies/shelly1-b920d5/relay/0"
    command_topic: "shellies/shelly1-b920d5/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: "false"
    qos: 1

Continuo com os mesmos resultados :pensive:

Já tinha feito essa alteração, já postei as novas configs no configuration.yaml

A mim o que me está a escapar é como tens o cartão do Lovelace configurado. E já agora experimenta meteres a configuração do tópico exactamente como aparece no MQTT.fx, com as letras em maiúsculas (shelly1-B95DF7)

acabei de reconfigurar um do shellies, vejo o anuncio no MQTT Explorer

{"id":"shelly1-B95DF7","mac":"98F4ABB95DF7","ip":"192.168.131.73","new_fw":false, "fw_ver":"20191216-090109/v1.5.7@c30657ba"}

Vê a minha reposta acima :point_up_2:

spot on!!! resolveu!!

Muito obrigado, vou replicar para os outros.

Em quase todas as linguagens de programação adeus, Adeus, ADEUS, AdEuS são sempre coisas diferentes.

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

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


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