Já está resolvido o teu problema?
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.
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
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…
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.
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
Em vez de terminar com “:1883” tinha colocado a mesma terminação do HA “:8123”…