I got myself a blink camera on Black Friday and since there’s no binding, I decided to seize the opportunity and write one myself.
Most recent version is now always available from the OpenHAB marketplace. Blink Binding
So far I have implemented:
The blink account as a bridge (using the two factor login), with auto-discovery for these things:
A “network” thing, which corresponds to the blink sync modules, this allows
arming/disarming the system
A camera thing with the following channels
enabling/disabling motion detection
low battery
temperature
create a new snapshot
retrieve current snapshot
This will probably be sufficient for me. The API (unofficial documentation) offers a couple of more options, the most interesting probably being retrieving the latest recordings (in mp4 format).
Unfortunately, the API only returns a proprietary stream format for the blink app and Echo Shows, so streaming a live video with the binding currently won’t be possible.
Now, before submitting the add-on as a pull-request (still have to go over my unit tests, internationalization and documentation before that, anyway), I have a couple of questions to you all:
Is there anyone out there who is interested in beta-testing my binding? I only have one sync module and one camera. In theory, it should also work in larger setups, but I’d be happy if someone would test this for me.
If you would use this add-on, what additional functionality would you be interested in?
Using the API is, in theory, not allowed by third party clients. However, other home automation systems have plugins using the API. At some point, using the API might not be possible if restrictions are enforced. Should I still submit it to the official add-on repository or might that be a problem? Of course I’ll emphasize this point in the documentation, too.
I’ll be glad to hear your opinions and maybe find some willing guinea pigs
I’ll add some documentation and tie up some loose ends. I guess I could send you the jar this weekend. Unless you would like to check the code and build it yourself. Then, I would send you a GitHub link.
These are awesome news! Like you I bought a Blink camera on Black Friday and started playing around with IFTTT, but involving a cloud service just for arming/disarming feels really like a workaround.
I haven‘t studied the unofficial API documentation yet, but do you think that a ‚presence detected‘ trigger would be possible to add to the binding?
on the one hand, I have to disappoint you. The binding is still using the blink API, calling the blink servers. I don’t think the blinks were designed with “offline” usage in mind. However there is more functionality available from the API than from IFTT.
A presence detected trigger, for example, should be possible. I have seen it in other plugins. However, the reply won’t be immediate since it won’t be triggered by the Blink servers, but the servers are polled regularly. I still haven’t found a good advice on how short this interval can be set without upsetting the blink servers and getting locked out temporarily.
It‘s fine to use their servers. But IFTTT is a component that I somehow dislike in my process chain and that will be obsolete .
Also understood that a trigger could only be realized by a poll. I assume that could affect quite negative the energy handling of the system. Afaik doing so would tell the sync module to call the camera by radio signal to wake up and connect to wifi for communication with the cloud servers.
Polling regularly might drain the cameras batteries in a short time.
So probably polling the state is not a good idea.
If this is against the community rules, please remove the link.
If you feel intimidated to install an addon from a dubious source (you should, actually), I understand.
However, the pull request for the addon won’t be ready till the end of the week and then, it’ll be available in the 3.2.0 version if everything works out, unless you want to build it from source. I don’t know what the best practice for providing early access is in this case. If there’s a better way, please let me know. If nobody is interested in early access anyway, please let me know, too. In that case, I’ll just walk the pull request road without providing a jar in the meantime.
This version contains all the above-mentioned channels and should be pretty self-explanatory, even the 2-factor-authentication part. Just drop it in your openhab/addons folder and add a blink account thing.
The 2-factor-authentication form is still basic html (= ugly) and the getThumbnail channel is still a little buggy. Other than that, everything should work as expected. Negative impact on your OpenHAB is highly unlikely.
Unfortunately, it looks like the Javascript of the verification page isn’t loading correctly on Linux in the version I have uploaded due to incorrect line endings (since I built it in Windows). This problem won’t occur in the officially built version. An updated version will be available from the link in a couple of minutes.
Alright, updated version is online and verified as working on Linux.
I had to switch back to the “ugly” validation form as there was something else amiss, too. I’ll fix it when I have a little more time.
By the way, I submitted the pull request, so the documentation is online:
I’m struggeling a bit with the Network ID - isn’t that the IP V4 adress? I don’t kno what you mean with " Required Interne Network ID (bitte per Discovery ermitteln)." ->x Class C ?
I have 3 camera systems installed, however, data is only received once ( after the varaibles have been initialized) writing works, so if I e.g press the “take a picture” button", the Blink camera is doing it, but no response…
If I make a change on one of the Blink items and store it, all Blink items receive an update for on time (mabe a tempreature has changed, or a new picture was stored)
Hi Matthias,
I’m interested in your binding. I currently have 4 cameras and 1 sync module working with their trial subscription.
Thank you so much for doing this!!!