# Image update button

**URL:** <https://community.homey.app/t/image-update-button/157327>\
**Category:** Developers\
**Created:** [July 18, 2026, 4:49pm UTC](https://community.homey.app/t/image-update-button/157327 "2026-07-18T16:49:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)\
**Post date:** [July 18, 2026, 4:49pm UTC](https://community.homey.app/t/image-update-button/157327/1 "2026-07-18T16:49:30Z")

</div>

Hi,

I am building an app for OSAIO (GNCC, WOLFANG) security cameras. On each event (motion or sound), the camera takes a snapshot and uploads it to Backblaze B2. The API for the cameras provides the URL to the snapshot on Backblaze B2. I can’t use the image.setUrl() function, because the URL expires after 30 minutes, so I used image.setStream() instead.

I see this refresh button here:

![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/5/65a15d9a6f5d139e45780acb7fae702edb493f58.png)

What capability is this? I can’t find it anywhere. I want my app to check for and download a new image whenever that button is pressed. Is that possible? Or is it only to refresh the image from a URL?

---

<div class="post-metadata">

**Author:** ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)\
**Post date:** [July 19, 2026, 1:53am UTC](https://community.homey.app/t/image-update-button/157327/2 "2026-07-19T01:53:01Z")

</div>

For now I solved it using a custom capability.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/4/4/44afae082b21a9a9c6f29edb89a5408cea0c3da9.jpeg)

The app also auto-refreshes every 5 minutes via polling.

While it works just fine, I’d rather have it use the refresh button under the image for that since that’s easier to use, instead of constantly having to switch between buttons and camera view. Is there any way to use the small refresh button under the image instead?.

---

<div class="post-metadata">

**Author:** ![RonnyW](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/ronnyw/32/10879_2.png) [@RonnyW](https://community.homey.app/u/RonnyW)\
**Post date:** [July 19, 2026, 3:40pm UTC](https://community.homey.app/t/image-update-button/157327/3 "2026-07-19T15:40:07Z")

</div>

This icon?

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/a/fac1634b8b049fb6a538e631ab0442f5aa06d046.jpeg)

It’s a Homey core function.

It triggers the image handler automatically. Also using the image flow tag triggers the image handler.

So your image.setStream( ) should be called every time a user

- opens the image tab of the device
- presses the refresh button
- an image tag is used in a flow (to send a push meaasge including the image)

> <https://github.com/RonnyWinkler/homey.blink/blob/62080f7fd2bfeb408d67373d4a9d05972df23ac4/drivers/camera/device.js#L90>

---

<div class="post-metadata">

**Author:** ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)\
**Post date:** [July 19, 2026, 6:16pm UTC](https://community.homey.app/t/image-update-button/157327/4 "2026-07-19T18:16:47Z")

</div>

> [@RonnyW](#):
>
> So your image.setStream( ) should be called every time a user
> 
> - opens the image tab of the device
> - presses the refresh button
> - an image tag is used in a flow (to send a push meaasge including the image)

Ah okay, my app only streamed the image from the object storage URL there, my app didn’t fetch the new URLs so I never noticed that. Thanks for pointing it out!  
.

OSAIO app is in testing here for anyone looking for the app:

> **[OSAIO | Homey](https://homey.app/en-us/app/net.osaio/OSAIO/test/)**
>
> Your Home. Safely in One Place.
