diff --git a/docs/widgets/services/esphome.md b/docs/widgets/services/esphome.md index 6038cb61f..0ae854ba0 100644 --- a/docs/widgets/services/esphome.md +++ b/docs/widgets/services/esphome.md @@ -13,4 +13,5 @@ Allowed fields: `["total", "online", "offline", "unknown"]`. widget: type: esphome url: http://esphome.host.or.ip:port + refreshInterval: 30000 # optional - in milliseconds, defaults to 30s. Minimal allowed: 10000. ``` diff --git a/src/widgets/esphome/component.jsx b/src/widgets/esphome/component.jsx index c44352fa4..caa52b4ec 100644 --- a/src/widgets/esphome/component.jsx +++ b/src/widgets/esphome/component.jsx @@ -4,11 +4,17 @@ import Block from "components/services/widget/block"; import Container from "components/services/widget/container"; import useWidgetAPI from "utils/proxy/use-widget-api"; +const defaultInterval = 30000; +const minRefreshInterval = 10000; + export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; - const { data: resultData, error: resultError } = useWidgetAPI(widget); + const { refreshInterval = defaultInterval } = widget; + const { data: resultData, error: resultError } = useWidgetAPI(widget, "devices", { + refreshInterval: Math.max(minRefreshInterval, refreshInterval), + }); if (resultError) { return ;