Home Assistant (docker) + mosquitto + shelly

Olá boa tarde,

Já uso à alguns meses shelly’s para controlar alguns dispositivos em casa, no entanto e a medida que me sinto mais à vontade gostava de deixar de depender da aplicação da shelly e passar a integrar os shelly’s no home assistant.

Estou a correr o home assistant em docker dentro de um qnap.

Até aqui tudo bem e até ja instalei o mosquitto de forma a integrar o mesmo no home assistant e assim comunicar com os shelly’s.

Consigo ver nos log’s no mosquitto ele a receber ligações dos shelly’s e do home assistant por isso essa parte parece estar ok. Note-se que ainda estou a trabalhar com anonymous para simplificar ao máximo as coisas.

Dúvida de iniciante agora:

como é que adiciono cada shelly ao home assistant? já tentei “n” templates e nada!

tentei também o shellyforhass e embora detecte os shelly’s não os detecta na sua totalidade… o que me deixa de pé atrás. já tentei também com discovery by ip e nada nesses que não me aparecem.

Estou sem ideias se puderem ajudar… agradeço!

configuration.yaml

#IP’s dos Shelly’s
shelly:
discover_by_ip:
- ‘192.168.1.164’ #shelly i3

no mosquitto.conf tenho apenas isto

allow_anonymous true
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

Viva Ricardo,

Tens 2 caminhos que eu conheça e tenha usado:
1- Mosquito Broker + MQTT
2- ShellyforHass

Resumidamente:
Pelo primeiro caminho, que é o que tenho porque aparenta ser mais fiavel:

  1. Instalar Mosquito Broker
  2. Aceder às Shellys por IP
  3. Configurar para usar MQTT
  4. Usar um programa estilo MQTT Explorer para veres se o Broker recebe as comunicações
  5. Configuar as shellys via YAML
    Fica aqui um expemplo:
switch:
  - platform: mqtt
    name: "Kitchen Lights"
    state_topic: "shellies/shelly1-E09806968033/relay/0"
    command_topic: "shellies/shelly1-E09806968033/relay/0/command"
    payload_on: "on"
    payload_off: "off"
    retain: "false"
    qos: 1

cover:
  - platform: mqtt
    name: "Living Room Blinds"
    state_topic: "shellies/shellyswitch25-E098069548D9/roller/0"
    command_topic: "shellies/shellyswitch25-E098069548D9/roller/0/command"
    position_topic: "shellies/shellyswitch25-E098069548D9/roller/0/pos"
    set_position_topic: "shellies/shellyswitch25-E098069548D9/roller/0/command/pos"
    #availability_topic: "shellies/shellyswitch25-E098069548D9/online"
    payload_available: "true"
    payload_not_available: "false"
    qos: 1
    retain: false
    payload_open: "open"
    payload_close: "close"
    payload_stop: "stop"
    position_open: 100
    position_closed: 0
    optimistic: false

binary_sensor:
  - platform: mqtt
    state_topic: "shellies/shellydw2-D8BFC01A7909/sensor/state"
    name: "Front Door Sensor"
    payload_on: 'open'
    payload_off: 'close'
    qos: 1
    device_class: door
  
sensor:
  - platform: mqtt
    name: "Front Door Lux"
    state_topic: "shellies/shellydw2-D8BFC01A7909/sensor/lux"
    value_template: '{{ value|round(0) }}'
    qos: 1
    device_class: illuminance
    unit_of_measurement: 'lux'

Para a segunda forma, ShellyforHass.

  1. Tens que instalar o HACS - https://www.youtube.com/watch?v=hdbYf36lfOc
  2. Tens que instalar o ShellyforHASS - https://www.youtube.com/watch?v=_TeJlUPoOTI&t=398s

é exactamente isso que eu pretendo… fiável…
por isso opção 1

esse exemplo que tu ai tens se eu pegar no exemplo e o copiar para o meu configuration.yaml

continuo sem apanhar nada!

espera… é suposto isto ser assim? shelly1-E09806968033??? não era só os ultimos 6 caracteres?

Tens que que trocar pelo teu ID esqueceu-me de referir isso

shelly1-[REPLACE_ID]

sim isso eu percebo mas estava a tentar assim

shellies/shellyswitch25-FB17AB/roller/0
em vez de
shellies/shellyswitch25-68C63AFB17AB/roller/0

mas mesmo pondo completo não trabalha!

  - platform: mqtt
    name: "Living Room Blinds"
    state_topic: "shellies/shellyswitch25-68C63AFB17AB/roller/0"
    command_topic: "shellies/shellyswitch25-68C63AFB17AB/roller/0/command"
    position_topic: "shellies/shellyswitch25-68C63AFB17AB/roller/0/pos"
    set_position_topic: "shellies/shellyswitch25-68C63AFB17AB/roller/0/command/pos"
    #availability_topic: "shellies/shellyswitch25-68C63AFB17AB/online"
    payload_available: "true"
    payload_not_available: "false"
    qos: 1
    retain: false
    payload_open: "open"
    payload_close: "close"
    payload_stop: "stop"
    position_open: 100
    position_closed: 0
    optimistic: false

Esse ID parece-me curto. Tenta usar o MQTT Explorer para ver os IDS.

Sim mas mesmo com o completo não consigo

@Ricardo_Rocha e @Carlos.Lourenco

Se esperarem pelo update do Home Assistant de hoje (17/09/2020) os Shelly vão passar a integrar directamente com o HA e deixa de ser necessário o MQTT ou o HACS.

Ui… Assim directo? Mas como ele tem que chegar a eles de alguma forma!!!

@j_assuncao Sim, estou a par. Mas pergunto-me que vantagens tenho em trocar de MQTT que sei que funciona para a integração…

Eu também gostava de independentemente de vir a ser suportado de integrar com mqtt quanto mais n fosse para bem da ciência

A integração já lá está e a funcionar perfeitamente.

@Ricardo_Rocha o MQTT não é a unica forma de o Shelly comunicar, existe também o HTTP e o CoAP.

Já testei a nova integração. Está a funcionar.
Testei 1 shelly1pm com 3 sensores de temperatura. Todos os dados estão coincidentes com os do MQTT.

Qdo tiver tempo vou adicionar mais.

Também já testei… Os i3 não reconhece qualquer entidade nos 2.5 configurados como estores parece estar OK.


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


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