StyraHem / ShellyForHASS

Shelly smart home platform for Home Assistant
MIT License
616 stars 111 forks source link

[BUG] Update state using MQTT not Polling #690

Open omarbentata opened 2 years ago

omarbentata commented 2 years ago

Environment

Describe the bug

I am little bit confused, I configued my Shelly 2.5 (shutter) to use MQTT using ShellyForHASS. The commands open/close/stop work fine. But the status is not instant, and I am obliged to set Poll interval to lower value. My question, after configuring MQTT, HA is still using HTTP or CoAP to update status in UI? or only MQTT?

Steps to Reproduce

Configure Mosquitto broker Add-ons Configure MQTT settings in ShellyForHass UI Integrate Shelly 2.5 using ShellyForHass Open or Close the roller

Expected behavior

The status (closed or opened, %, ..) of the roller should be updated instally in Home Assistant Dashbord. I don't want to use polling for state update, but MQTT instead

Screenshots

Traceback/Error logs

Additional context

omarbentata commented 1 year ago

Dear Community,

Could you please support this? Are any further details needed?

jweberch commented 1 year ago

I experience the same. The status is not instant, it takes up to a minute to update. When you configure the shellies manually via MQTT, this problem does not exist.

It looks like the status is not updated via MQTT.

omarbentata commented 1 year ago

@jweberch Many thanks for your feedback. The status takes up to 1 minute because in the Shelly config UI: the Poll interval (sec) value by default is 60 s. I tried to put it to 0s, it's now instant but I am not sure if the update use HTTP or MQTT.

SciLor commented 1 year ago

If you set the Poll interval to 0 makes shellyforhass send GetStatus to the shellies all the time. But this also means more power usage by hass and the shellies. Maybe a dynamic polling (for example if a shutter is driving) or a variable that will be exposed to hass that allows to poll. If you check the mqtt output for a roller you see, that the positions isn't updated, just if the roller is open or closed. But even that isn't shown in hass.

{
  "id": 123,
  "src": "shelly4hass",
  "method": "Shelly.GetStatus",
  "params": null
}
hakana commented 1 year ago

If you set the poll interval to 0 you will disable the http polling.

Från: 0xbadbee @.> Skickat: den 15 september 2022 20:30 Till: StyraHem/ShellyForHASS @.> Kopia: Subscribed @.***> Ämne: Re: [StyraHem/ShellyForHASS] [BUG] Update state using MQTT not Polling (Issue #690)

If you set the Poll interval to 0 makes shellyforhass send GetStatus to the shellies all the time. But this also means more power usage by hass and the shellies. Maybe a dynamic polling (for example if a shutter is driving) or a variable that will be exposed to hass that allows to poll.

{

"id": 123,

"src": "shelly4hass",

"method": "Shelly.GetStatus",

"params": null

}

— Reply to this email directly, view it on GitHubhttps://github.com/StyraHem/ShellyForHASS/issues/690#issuecomment-1248454188, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAI5KDRJ23VQA62UHNY3Z33V6NTJBANCNFSM5ZXON3YA. You are receiving this because you are subscribed to this thread.Message ID: @.**@.>>