Doorbird integration

@psixilambda Did you find a solution. I have the same question. Seems like it should be possible to get a REST HTTP post GET to Home assistant… Would a Restful sensor work?

@basschipper posted a proxy which has instructions on how to get notifications into hass.

@basschipper Beste Bas, I hoped to use your solution. binary sensors set-up. DoorBird works. Curl command works. Docker basschipper doorbird-proxy installed. But no luck. Could this be due to Hassbian venv environment? Can I run it without docker? (As I am not so familiar with what goes on when runing a docker instance)? Met hartelijke groet, Casper

I’m running everything in Docker with Rancher, so never tested it with Hassbian. But I don’t think it is caused by venv as the Docker container is a isolated environment itself.

You could try starting the app by running:
FLASK_APP=main.py flask run
This will start the app in the foreground, so a great way for debugging. Keep in mind that it defaults to port 5000, see the last line in the main.py.

noticed today there is a pull request to integrate DoorBird in the next HASS release :heart_eyes:

Great! (actually i think is next release but there is definetly work on it!)

Hi, i have a Doorbird D202 running over PoE and it is rock solid. My only issue with it is that the first ever delivery we got the delivery guy pressed the motion sensor and caved it in cries. Can we start putting pressure on @doorbird on twitter to get If this then that and/or Zapier integration sorted.

what is that?

Do you have an image of what it looks like with the motion sensor that caved in? Maybe Doorbird can help you out with the issue.

Why do you want ifttt or zapier? Don’t you have it integrated with HomeAssistant?

Edit. Wow, you wouldn’t think he motion sensor would be so flimsy!

I want to be able to access my Doorbird via one of the above pieces of technology.

Here’s my Doorbird. I can’t believe it’s made this flimsy either and for it to happen on the first ever interaction, I was gutted. I have read other posts that this has happened as well. I emailed Doorbird about it,.they were not interested and said I’d have to pay for repair…

1 Like

Wow what a shitty response from Doorbird.

1 Like

This must be why their newer models they are releasing later this month are going to have flat sensors?

Hi everyone. Here’s the tweet Doorbird sent me:

An email address is in the tweet.

I just gave the new doorbird component a try, the camera (+last_visitor) is working nicely. But, the binary sensor which tracks the doorbell unfortunately not. When I press the doorbird button, nothing happens. Also, the logs show nothing when the button is pressed… :frowning:

2017-10-17 18:09:56 INFO (MainThread) [homeassistant.setup] Setting up doorbird
2017-10-17 18:09:56 INFO (SyncWorker_7) [homeassistant.components.doorbird] Connected to DoorBird at 192.168.. as ***
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.setup] Setup of domain doorbird took 0.1 seconds.
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.core] Bus:Handling <Event component_loaded[L]: component=doorbird>
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.doorbird
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.components.camera] Setting up camera.doorbird
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.components.camera.doorbird] Added DoorBird camera(s)
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=camera.doorbird_last_ring, old_state=None, new_state=<state camera.doorbird_last_ring=idle; access_token=, friendly_name=DoorBird Last Ring, entity_picture=/api/camera_proxy/camera.doorbird_last_ring?token= @ 2017-10-17T20:09:56.927480+02:00>>
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=camera.doorbird_live, old_state=None, new_state=<state camera.doorbird_live=idle; access_token=, friendly_name=DoorBird Live, entity_picture=/api/camera_proxy/camera.doorbird_live?token= @ 2017-10-17T20:09:56.928275+02:00>>
2017-10-17 18:09:56 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=binary_sensor.doorbell_ringing, old_state=None, new_state=<state binary_sensor.doorbell_ringing=off; friendly_name=Doorbell Ringing, icon=mdi:bell @ 2017-10-17T20:09:56.978251+02:00>>

Yes, I have the same problem with the doorbell not triggering. I ended up keeping my proxy running until this is resolved.

Did you raised a issue somewhere (eg. github)?

I dived into the code and, it seems like it’s polling the doorbird on: /bha-api/monitor.cgi?check=doorbell. The url is responding with doorbell=0, when pressing the button the url is responding with doorbell=1. But, ONLY WHEN PRESSING the button, there seems no latching/relaxation…
This means that during the press (<1 sec.) Home Assistant needs to poll the doorbird. So you need to poll the doorbird al lot to see the event. In the code I see a update interval variable of 250ms., I’m not quite sure how this works. It sounds like you almost have to DoS your doorbird?

To test my finding I pressed the doorbird button for a longer time (30 sec.), than the event is eventually received by Home Assistant.

I personally don’t like the polling mechanism, a lot unnecessary network traffic. The documentation indicates that there is also a stream available under: /bha-api/monitor.cgi?ring=doorbell. Or, like the proxy is doing, use the notification (push) method.

You’re going to hammer the API if you attempt to do anything more than 1 req. / second. Even DoorBird recommend against this. It ends up forcing a restart (a lot), happened to me more than I wanted. The monitor?check endpoint probably wasn’t devised for this … ever polling it is bad news. The ?ring endpoint is also next to pointless, it doesn’t always give you want or expected on doorbell events, also too flaky. The only stable one to use is the notification API. Pushing to the client works extremely well, its also how they setup cloud to cloud with vendor products e.g. Zipatile. DoorBird mentioned they will probably remove the ?monitor endpoint sometime.

How would you implement it via the notification API?

These guys seem to use HTTP GET for notifications:

Maybe the author (@Klikini) can help us?

When I get time, I was going to set up HA to host endpoints for various state changes, then configure the DoorBird device to call them when the doorbell rings.

I just haven’t had a chance to get my dev environment reset (I’m on Windows, so it’s not easy) and figure out how to host API endpoints in a component.

1 Like