Thanks @Moriarty.
I’ve removed the thing and recreated it with the new binding version and can see the URL now. For me it all appears to be working: Going to the URL does show the swim lanes and I am also able to play back videos. Have just tried arming the system and walking around and I also get images for the motion thumbnail and can actually see a recent motion thumbnail from one of the cameras from last night also! Clcicking teh refresh thumbnail updated the saved thumbnail, as expected.
Maybe this only works with a subscription? I don’t have one. It’s probably only possible to display the cloud clips?!
That could well be the reason - I do have a subscription running at the moment (Mainly because I seem to have an issue with any storage attached to the sync modules which all seem to get corrupted and then cannot be accessed or used after a short while! Have tried USB sticks, USB-SD card and even a small USB hard drive).
@Moriarty I also have a subscription (free, I’m grandfathered in from owning these cameras for so many years), so I haven’t tested a sync module with local storage. But I would like to help! Can you enable TRACE level debugging and look in the openhab.log file? When you hover over a box in a swim lane, then click on it, and then click Watch Video, there should be log lines like this:
2026-02-09 12:57:04.714 [TRACE] [.blink.internal.servlet.MediaServlet] - Client requests image thumbnail: /image/xxx25
2026-02-09 12:57:10.066 [TRACE] [.blink.internal.servlet.MediaServlet] - Client requests image thumbnail: /image/xxx34
2026-02-09 12:57:10.066 [TRACE] [internal.service.BaseBlinkApiService] - making raw request to https://rest-u008.immedia-semi.com/api/v3/media/accounts/xx6/networks/xx9/camera/xxx6/pir/xxx34.jpg?ext=
2026-02-09 12:57:10.191 [INFO ] [internal.service.BaseBlinkApiService] - Received 7082 / 7082 bytes in /api/v3/media/accounts/xxx6/networks/xxx9/camera/xxx6/pir/1xxx34.jpg?ext=
2026-02-09 12:57:13.739 [TRACE] [.blink.internal.servlet.MediaServlet] - Client requests full video: /video/xxx34
2026-02-09 12:57:13.740 [TRACE] [internal.service.BaseBlinkApiService] - making raw request to https://rest-u008.immedia-semi.com/api/v3/media/accounts/xxx6/networks/xxx9/camera/xxx6/pir/xxx34.mp4?ext=
2026-02-09 12:57:15.208 [INFO ] [internal.service.BaseBlinkApiService] - Received 12995981 / 12995981 bytes in /api/v3/media/accounts/xxx6/networks/xxx9/camera/xxx6/pir/xxx34.mp4?ext=
Note that I obscured my account/network/camera numbers in the output. They aren’t a secret, but they are unique to me and I might be slightly paranoid. Let me know if your output shows any errors or unexpected differences (the rest-u008 portion of my URL shown here is derived from your account “tier”, as shown in your Account thing properties… I do wonder if accessing videos from local USB storage goes through a different tier or some other type of proxy. If you/anyone uses blink local storage and could log URLs through their firewall/wireshark as they use the retail Blink app on their phone to watch a locally stored video, this might be helpful).
You might notice that my last two log lines show that it took about 1.5 seconds to retrieve the 12 MB video file from the blink cloud servers. However, when using local storage, Blink has to pull the video from your local storage, and then push it back down to your browser, so it will take a lot longer than 1.5 seconds depending on your internet bandwidth, and file size.
I’m sure you know this but for the benefit of other/future readers, enabling TRACE would be done by using the openhab-cli (or ssh to the karaf console via ssh -p 8101 openhab@localhost) and enter the command: log:set TRACE org.openhab.binding.blink, and then watch the log file potentially located at /var/log/openhab/openhab.log (could be different depending on how you installed, or if you’re on windows). Revert to less verbose logging via log:set INFO org.openhab.binding.blink or log:set WARN org.openhab.binding.blink
This is what it currently looks like for me. Does that help?
19:47:02.691[TRACE] [org.openhab.binding.blink.internal.servlet.MediaServlet] - Sent json: { "lanes": [ { "id": 0, "label": "Haustür", "numClips": 0 }, { "id": 1, "label": "Klingel", "numClips": 0 }, { "id": 2, "label": "Terrasse ", "numClips": 0 } ], "items": [] }
19:47:02.709[TRACE] [org.openhab.binding.blink.internal.servlet.MediaServlet] - Client requests cache update: /cache
19:47:02.710[DEBUG] [org.openhab.binding.blink.internal.servlet.MediaServlet] - Sent cache stats to browser 192.168.178.90: { "image_count": 3, "image_size_bytes": 561876, "video_count": 0, "video_size_bytes": 0, "max_cache_bytes": 104857600 }
19:47:38.869[DEBUG] [org.openhab.binding.blink.internal.handler.AccountHandler] - Loading devices from Blink API
19:47:38.871[TRACE] [org.openhab.binding.blink.internal.service.BaseBlinkApiService] - making request to https://rest-e002.immedia-semi.com/api/v3/accounts/xxxx7/homescreen
19:47:39.031[TRACE] [org.openhab.binding.blink.internal.handler.AccountHandler] - There are 4 Things which are listening to events
19:47:39.033[TRACE] [org.openhab.binding.blink.internal.handler.CameraHandler] - Camera Klingel (35xxxx) checking for state updates
19:47:39.078[TRACE] [org.openhab.binding.blink.internal.handler.CameraHandler] - Camera Haustür (11xxxx) checking for state updates
19:47:39.080[TRACE] [org.openhab.binding.blink.internal.service.BaseBlinkApiService] - making request to https://rest-e002.immedia-semi.com/network/xxxx/camera/xxx/config
19:47:39.183[TRACE] [org.openhab.binding.blink.internal.handler.NetworkHandler] - Sync Module BlinkNetworkxxxxt (Network 6xxx) checking for state updates
19:47:39.185[TRACE] [org.openhab.binding.blink.internal.handler.CameraHandler] - Camera Terrasse (10xxxx) checking for state updates
19:47:39.186[TRACE] [org.openhab.binding.blink.internal.service.BaseBlinkApiService] - making request to https://rest-e002.immedia-semi.com/network/xxx/camera/xxx/config
19:47:39.299[DEBUG] [org.openhab.binding.blink.internal.handler.AccountHandler] - Loading events from Blink API since 1970-01-01T00:00Z
19:47:39.299[TRACE] [org.openhab.binding.blink.internal.service.BaseBlinkApiService] - making request to https://rest-e002.immedia-semi.com/api/v1/accounts/4xxxx7/media/changed
19:47:39.355[DEBUG] [org.openhab.binding.blink.internal.MediaManager] - Returning latest motion event for 0 cameras
19:47:39.356[TRACE] [org.openhab.binding.blink.internal.handler.AccountHandler] - Handler (3xxxx) is scheduling another refresh in 120 seconds
19:48:02.795[TRACE] [org.openhab.binding.blink.internal.servlet.MediaServlet] - Client requests cache update: /cache
19:48:02.797[DEBUG] [org.openhab.binding.blink.internal.servlet.MediaServlet] - Sent cache stats to browser 192.168.178.90: { "image_count": 3, "image_size_bytes": 561876, "video_count": 0, "video_size_bytes": 0, "max_cache_bytes": 104857600 }
19:48:42.785[TRACE] [org.openhab.binding.blink.internal.servlet.MediaServlet] - Sent json: { "lanes": [ { "id": 0, "label": "Haustür", "numClips": 0 }, { "id": 1, "label": "Klingel", "numClips": 0 }, { "id": 2, "label": "Terrasse ", "numClips": 0 } ], "items": [] }
You can also set trace and other logging settings via the UI.
Settings → Add-on Settings → select add-on → select log setting → Save
yikes, it doesn’t even show any recordings/clips. hmmm. Do you have an older sync module with a USB-A port on it? (I’m guessing so since you said your cameras are gen3). I wonder if there’s a way for me to use local storage even though I have a “subscription”. I clearly need to build in more TRACE statements to see what’s being returned from the API calls. There aren’t any exceptions that I see in your output, but also no evidence that the call worked either.
I didn’t know you could set the log levels through the UI, lol, thanks!!
@Moriarty hmmm, when I go to
Settings → Add-On Settings → select the Blink Binding →
The page is blank (there’s a Save and Back button but nothing to configure). Is there a master setting which would globally enable the selection of log levels graphically for each add on?
I also notice your title is different from mine (Configure Blink Binding, 2026 [5.1.0.0,6.0.0.0))
@dashrb
Once again I congratulate you on the work done.
I, like you have multiple sync modules and multiple cameras attached to each module and am so happy that I now have rules and control over my blink cameras like never before. Fantastic!!
Could I ask for an enhancement in a future release?
One of my newer indoor cameras has a built in light which you can control from the ‘official’ app, would it be possible to expose this functionality to a switch channel in a future release?
Probably!
Is it a small blue “I’m recording you” led, or a white “light up the room” led?
Could you send the camera model details (from the openhab Camera Thing → Properties), and also the name of the setting in the Blink app that you’re referring to, e.g. VideoSettings->IlluminatorIntensity (High, Medium, Low), VideoSettings->NightVision (Auto, On, Off), or GeneralSettings->StatusLED (When Recording, Always Off).
Strange. I’m using openHABian with openHAB version 5.1.1 and the JAR file in the add-ons folder.
And yes, I’m using the Outdoor Cameras (3rd generation) with a Sync Module 2 with a USB-A port.
Sure: this is what it shows:
- Firmware Version 17.45
- Color black
- Date Added to Network 2024-10-20T15:17:24+00:00
- Camera Model hawk
- Camera Revision 01
The LED is a white LED on the front of the camera, I think supposed to be a room illuminator but I’m not sure how good it would be for that, but I use the camera to monitor my 3D Printer and the illumination is perfect for that ![]()
In the App, clicking on the … of the thumbnail of the camera brings you directly to this menu:
Weird menu (I Know) as the ‘Turn Lights On’ and ‘Turn Lights Off’ menus are both displayed all the time, no matter what the status of the light is (and for some reason the menu shows the plural ‘lights’, but this might be something to do with the ‘Pair’ option - but I only have one of these cameras).
Hope this helps.
huh! I’ve never seen those buttons and never heard of a “hawk” type of camera. Is the camera visible on the commercial Cameras and Systems — Blink Smart Security website as a current product?
Is there any way you could determine what URL is accessed when you press Turn Lights On (or Off)?
I wonder what the Pair with another camera button does. Is that the android app? I wonder how the pan/tilt products are controlled too. Yikes I have a lot of learning to do!
Really not sure why it’s reported as a “Hawk” as it’s a Blink Mini 2, one of these: Amazon.co.uk which are the previous versions (I think) of the ones currently shown on the link you supplied (as the version I have is 1080p not 2K resolution).
It’s the only one of those that I own, all the others are the previous Gen Blink Minis, and the Blink Outdoor modules (These: Amazon.co.uk)
These are all reported as Mini (owl) and Gen 3 (catalina) in the Things properties.
I also have a Doorbell, which is reported as a Doorbell (lotus)
I have no idea how I find out what URL is accessed, is there a way that I can determine this for you?
The code has a big if / else block which translates the blink code names (e.g. sedona) to the retail camera model (e.g. “gen 4”). I’ll add a block for hawk to be translated as “mini 2”. Thanks!
For the URL capture, I’ve never done it (maybe others could chime in), but this StackOverflow post has some suggestions – in the first answer, bullet number 5 seems the most straightforward for me, but the second answer suggests an android emulator on your PC to run the blink app in the emulator.
Also curious about the hawk / mini2. In the Camera Thing, in the CONFIGURATION section (not properties), does it show as a CAMERA or an OWL?
OWLs (mini gen 1) do not report:
- camera temperature
- battery level (they are USB powered)
- battery voltage
- WIFI level / RSSI
- sync module level / RSSI (they don’t need sync modules)
I’d eventually like to determine for sure whether the mini 2 / hawk also doesn’t support those items. We can come back to that!
It shows as OWL

Will take a look at the link you have supplied and see if I can discover anything for you.





