Il forum ha dei contenuti che sono disponibili SOLO ED ESCLUSIVAMENTE per gli utenti registrati.
Pertanto se si vuole fruire a pieno di tutte le funzionalità e conoscere i TUTTI i contenuti è richiesta la registrazione.

Integrazione SHELLY tramite MQTT

Un pò di chiarezza per come muovere i primi passi
Bloccato
Avatar utente
Samuele
Messaggi: 284
Iscritto il: 04/01/2021, 15:52

E' giusto ricordare che integrando gli shelly in questo modo IL CLOUD VERRA' DISATTIVATO .

Per integrare i nostri amati shelly tramite MQTT quindi dobbiamo aprire tramite PC e non da APP la sua pagina di configurazione immettendo nella barra del motore di ricerca il suo indirizzo IP.

Rechiamoci poi nel menu INTERNET E SICUREZZA / AVANZATE – IMPOSTAZIONI SVILUPPATORE

Immagine

Da cui attiveremo il protocollo MQTT mettendo al spunta su: ABLITA L'ESECUZIONE DELL'AZIONE TRAMITE MQTT e poi compileremo ciò che viene proposto come indicato di seguito.

Immagine

Alla voce USERNAME e PASSWORD mettiamo le stesse credenziali che usiamo per MQTT nel nostro raspberry dove abbiamo Home Assistant.

Alla voce SERVER mettiamo l’indirizzo Ip del nostro raspberry seguito dalla porta di default dedicata al servizio mqtt (per esempio: 192.168.1.999:1883).

Alla voce WILL TOPIC mettiamo il nome ( ID ) del nostro dispositivo Shelly che possiamo trovare nel menù IMPOSTAZIONI / INFORMAZIONI SUL DISPOSITIVO

Immagine

Nell'esempio è questo: "2BE6DC"

Salviamo la configurazione e usciamo.

Ora siamo pronti per passare a lavorare su Home assistant per far riconoscere i nuovi dispositivi appena configurati.

Per fare ciò dobbiamo andare "per esempio se il nostro shelly accende comanda una lampada" nel file /config/lights.yaml e inserire all'interno di esso la configurazione del dispositivo come da esempio:

Codice: Seleziona tutto

      #SHELLY1 - pulsante luce camera
- platform: mqtt
  name: "Luce camera"
  state_topic: "shellies/shelly1-2BE6DC/relay/0"     
  command_topic: "shellies/shelly1-2BE6DC/relay/0/command"
  qos: 0
  payload_on: "on"
  payload_off: "off"
  optimistic: false
  retain: false
Una volta fatto salviamo il file, convalidiamo la configurazione di Home assistant e riavviamo e se tutto è andato per il meglio troveremo il nostro dispositivo integrato pronto per essere usato.

In questo caso verrà creata una entità di tipo light col nome: light.luce_camera che potremmo visualizzare su hassio inserendo nel file LOVELACE.YAML la voce: - entity: light.luce_camera

Di seguito vi lasciamo alcune configurazioni tipo per i vari modelli di shelly


Shelly 1

Codice: Seleziona tutto

switch:
  - platform: mqtt
    name: "nome a piacere vostro"
    state_topic: "shellies/shelly1-XXXXXX/relay/0"
    command_topic: "shellies/shelly1-XXXXXX/relay/0/command"
    qos: 0
    payload_on: "on"
    payload_off: "off"
    retain: false

Shelly 1PM:

Codice: Seleziona tutto

switch:
  - platform: mqtt
    name: "nome a piacere vostro"
    state_topic: "shellies/shelly1pm-XXXXXX/relay/0"
    command_topic: "shellies/shelly1pm-XXXXXX/relay/0/command"
    qos: 0
    payload_on: "on"
    payload_off: "off"
    retain: false

Shelly 2.5 modalità roller shotters

Codice: Seleziona tutto

cover:
  - platform: mqtt
    name: "nome a piacere vostro"
    command_topic: "shellies/shellyswitch25-XXXXXXXXX/roller/0/command"
    position_topic: "shellies/shellyswitch25-XXXXXXXXX/roller/0/pos"
    set_position_topic: "shellies/shellyswitch25-XXXXXXXX/roller/0/command/pos"
    availability_topic: "shellies/shellyswitch25-XXXXXXXX/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

Shelly 2.5 modalità relè

Codice: Seleziona tutto

light:
  - platform: mqtt
    name: "nome a piacere vostro"
    state_topic: "shellies/shellyswitch25-XXXXXXXXX/relay/0"
    command_topic: "shellies/shellyswitch25-XXXXXXX/relay/0/command"
    qos: 0
    payload_on: "on"
    payload_off: "off"
    optimistic: false
    retain: false
  - platform: mqtt
    name: "nome a piacere vostro"
    state_topic: "shellies/shellyswitch25-XXXXXXXX/relay/1"
    command_topic: "shellies/shellyswitch25-XXXXXXXXX/relay/1/command"
    qos: 0
    payload_on: "on"
    payload_off: "off"
    retain: false

sensor:
  - platform: mqtt
    name: "Potenza Istantanea uscita_uno"
    state_topic: "shellies/shellyswitch25-XXXXXXXXXX/relay/0/power"
    qos: 0
    unit_of_measurement: "W"
  - platform: mqtt
    name: "Potenza Totale uscita_uno"
    state_topic: "shellies/shellyswitch25-XXXXXXXXX/relay/0/energy"
    qos: 0
    unit_of_measurement: "W"
  - platform: mqtt
    name: "Potenza Istantanea uscita_due"
    state_topic: "shellies/shellyswitch25-XXXXXXXXX/relay/1/power"
    qos: 0
    unit_of_measurement: "W"
  - platform: mqtt
    name: "Potenza Totale uscita_due"
    state_topic: "shellies/shellyswitch25-XXXXXXXXX/relay/1/energy"
    qos: 0
    unit_of_measurement: "W"
  - platform: mqtt
    name: "Temperatura shelly2.5"
    state_topic: "shellies/shellyswitch25-XXXXXXXXX/temperature"
    qos: 0
    unit_of_measurement: "°C"
  - platform: mqtt
    name: "Sovratemperatura shelly2.5"
    state_topic: "shellies/shellyswitch25-XXXXXXXXX/overtemperature"
    qos: 0

Shelly Dimmer

Codice: Seleziona tutto

light:
  - platform: mqtt
    schema: template
    name: prova dimmer
    command_topic: "shellies/shellydimmer-<deviceid>/light/0/set"
    state_topic: "shellies/shellydimmer-<deviceid>/light/0/status"
    command_on_template: >
      {"turn": "on"
      {%- if brightness is defined -%}
      , "brightness": {{brightness | float | multiply(0.3922) | round(0)}}
      {%- endif -%}
      }
    state_template: '{%- if value_json.ison %}on{% else %}off{% endif %}'
    brightness_template: '{{ value_json.brightness | float | multiply(2.55) | round(0) }}'
    command_off_template: '{"turn":"off"}'
    qos: 0

Shelly EM

Codice: Seleziona tutto

sensor:
  - platform: mqtt
    name: "Potenza Canale1"
    state_topic: "shellies/shellyem-XXXXXX/emeter/0/power"
    unit_of_measurement: "W"
  - platform: mqtt
    name: "Tensione Canale1"
    state_topic: "shellies/shellyem-XXXXXX/emeter/0/voltage"
    unit_of_measurement: "V"
  - platform: mqtt
    name: "Reactive Canale1"
    state_topic: "shellies/shellyem-XXXXXX/emeter/0/reactive_power"
    unit_of_measurement: "PR"
  - platform: mqtt
    name: "Potenza Canale2"
    state_topic: "shellies/shellyem-XXXXXX/emeter/1/power"
    unit_of_measurement: "W"
  - platform: mqtt
    name: "Tensione Canale2"
    state_topic: "shellies/shellyem-XXXXXX/emeter/1/voltage"
    unit_of_measurement: "V"
  - platform: mqtt
    name: "Reactive Canale2"
    state_topic: "shellies/shellyem-XXXXXX/emeter/1/reactive_power"
    unit_of_measurement: "PR"

switch:
  - platform: mqtt
    name: "nome a  piacere vostro"
    state_topic: "shellies/shellyem-XXXXXX/relay/0"
    command_topic: "shellies/shellyem-XXXXXX/relay/0/command"
    qos: 0
    payload_on: "on"
    payload_off: "off"
    retain: false
W L F
Bloccato