Beward Cameras and Doorbells integration

Home Assistant Beward devices integration.

https://github.com/Limych/ha-beward

Features:

  • Per device settings.
  • Ability to take photos or watch live video from the camera.
  • Photos of last movement and last visitor.
  • Binary sensors which monitoring movement and ding conditions states.
  • Sensors that save timestamps of the last movement, ding and activity in general.
2 Likes

Released version 0.4.0.
Some bugs are fixed…

And now you can use photos of the last motion and the last ding outside this integration.
For example, send it via Telegram.

Automation example (see the Telegram and Beward documentations for more details):

# Example configuration.yaml entry
homeassistant:
  whitelist_external_dirs:
    - /config/.storage/beward  # Required for Home Assistant version 0.48+

automation:
  - alias: "Front door Ding"
    trigger:
      platform: state
      entity_id: binary_sensor.front_door_ding
      to: 'on'
    action:
      - service: notify.NOTIFIER_NAME
        data:
          message: "The doorbell is ringing!"
          data:
            photo:
              file: /config/.storage/beward/front_door_last_ding.jpg
              caption: "The doorbell is ringing!"

Beward integration v0.5.0 released

New version released. Be careful! Config scheme has major changes.

New features:

  • More compact configuration scheme.
  • Ability to set sensors configs for each device separately.
  • New binary sensor which measure availability of device.

https://www.patreon.com/posts/29065144

Hello,

I am using hassio and own a Beward DS06AP doorbell but I don’t manage to get the integration to work.
I have downloaded and added the component like described on github and added the following configuration to my configuration file:

beward:
  - host: ip_address
    username: username
    password: password
    name: "Doorbell"
    rtsp_port: 554
    cameras:
      - live
      - last_motion

Do you know what is causing the issue?
Thank you.

Thank you for your appeal.

The settings look correct.

Most likely the reason is that your device is not yet recognized by the library. I am developing a component without official support and do not have access to technical documentation.

I just released version 1.0.6, which in case of a device identification error creates a notification in the Home Assistant with all the data necessary for me to add support for the new device.
Please update the component and tell me the text of that error message. Or just run this python script:

from beward import BewardGeneric

host_ip = 'YOUR_DEVICE_IP_HERE'
username = 'YOUR_USERNAME_HERE'
password = 'YOUR_PASSWORD_HERE'

bwd = BewardGeneric(host_ip, username, password)
model = bwd.system_info.get('DeviceModel')
dev_type = bwd.get_device_type(model)

print('Device detection "%s" (%s)' % (model, dev_type))

Here is the error that I get:

Error: Unknown device "DS06A(P)" (None)
Please [contact the developers of the component](https://github.com/Limych/ha-beward/issues/new/choose) to solve this problem

Thank you.
I published a new version of the Python Beward library.
In theory, it itself should be updated after a short time and everything will work.

Hello,

a bit offtopic but where did you buy this doorbell?

Regards,
Dirk

@Limych It is now working! Thank you for your hard work !

@DirkTas67 Yes I did, I was looking for a PoE doorbell SIP compatible and this is the only one that I could find. Right now it is installed but I am struggling with the configuration of the SIP server/client so it is still a work in progress.
EDIT: I bought it from Alibaba, I am located in Ireland so I had pay for the customs fees etc…

1 Like

Привет.
А можно ли сделать открывание замка?

Можно повторить всё, что умеет делать официальный клиент. Но документации нет, потому приходится исследовать команды методом реверс-инжиниринга. А это не самая приятная работа…

Попробую что-нибудь придумать.

1 Like

https://docviewer.yandex.ru/view/0/?page=98&*=6kG1S4DyXXzhok8sRVKCAPDVM9d7InVybCI6InlhLWRpc2stcHVibGljOi8vYWlucXVuL0N5aVA0bFFVcVgxd0dtUVN0Nm52QXAwVFRTV1RZWmpmRGVNUT06L0FQSS9BUEksIEhUVFAgLSBJbnRlcmZhY2UgU3BlY2lmaWNhdGlvbl8yMDE2MTIxMi5wZGYiLCJ0aXRsZSI6IkFQSSwgSFRUUCAtIEludGVyZmFjZSBTcGVjaWZpY2F0aW9uXzIwMTYxMjEyLnBkZiIsIm5vaWZyYW1lIjpmYWxzZSwidWlkIjoiMCIsInRzIjoxNTcyMzc3ODg4MzcwLCJ5dSI6IjY5MzcyNDQ0OTE1Mzg3NTgxMTMifQ%3D%3D

48 страница
Только у меня не получается подобрать параметры открытия замка

Интерфейс, который Beward предлагает для пользователей, не всегда совпадает с интерфейсом, который они используют внутри своих программ. Их внутренняя версия обычно более экономична по трафику и более надёжна.

Дальнейшие обсуждения предлагаю перенести сюда:

Big code update of component

  • Improved component stability;
  • Improved stability of HA core when Beward component are enabled.

https://www.patreon.com/posts/big-code-update-37197248

  • Could not read camera Beward <Future pending cb=[_chain_future.._call_check_cancel() at /usr/local/lib/python3.7/asyncio/futures.py:351]> Last Ding image from file: '/config/.storage/beward/beward_future_pending_cb_chain_future_locals_call_check_cancel_at_usr_local_lib_python3_7_asyncio_futures_py_351_last_ding.jpg
  • Could not read camera Beward <Future pending cb=[_chain_future.._call_check_cancel() at /usr/local/lib/python3.7/asyncio/futures.py:351]> Last Motion image from file: /config/.storage/beward/beward_future_pending_cb_chain_future_locals_call_check_cancel_at_usr_local_lib_python3_7_asyncio_futures_py_351_last_motion.jpg’

Please, report it here: https://github.com/Limych/ha-beward/issues/new?assignees=&labels=Bug&template=bug_report.md&title=

hello, I don’t know if you still have your Beward doorbell under Home assistant, because I have one and I would like to use it under beward but it does not work yet I think I have respected the configuration

beward:
  - host: 192.168.1.25
    username: xxxx
    password: xxxxxxxxx
    name: "Doorbell"
    port: 80
    rtsp_port: 554
    cameras:
      - live
      - last_motion
Invalid config
The following integrations and platforms could not be set up:

beward
Please check your config and logs.
Error during setup of component beward
17:49:54 – custom_components/beward/__init__.py (ERROR)
Error! HTTPConnectionPool(host='192.168.1.25', port=80): Max retries exceeded with url: /cgi-bin/systeminfo_cgi?action=get (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x712f74d8>: Failed to establish a new connection: [Errno 111] Connection refused'))
17:49:51 – /usr/local/lib/python3.8/site-packages/beward/core.py (ERROR)

Thank you

I answer to myself and for those who will be interested, my port was 8080 I reset it by default to 80 and remove the line port and rstp_port and the case was solved everything works thank you

Hello Andrey, is there any chance to add support of DK103 device? I got a error message: ‘Unknown device “DK103”’ during initialization.

Please open new issue here: https://github.com/Limych/py-beward/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=

I’m getting the below error. Does anyone has any idea what I did wrong? Thanks in advanced.

2021-08-01 13:17:56 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration beward which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

2021-08-01 13:18:30 ERROR (MainThread) [homeassistant.setup] Error during setup of component beward

Traceback (most recent call last):

File "/usr/src/homeassistant/homeassistant/setup.py", line 249, in _async_setup_component

result = await task

File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run

result = self.fn(*self.args, **self.kwargs)

File "/config/custom_components/beward/__init__.py", line 117, in setup

device = beward.Beward.factory(

File "/usr/local/lib/python3.9/site-packages/beward/__init__.py", line 185, in factory

model = bwd.system_info.get("DeviceModel")

File "/usr/local/lib/python3.9/site-packages/beward/core.py", line 242, in system_info

self._sysinfo = self.get_info("systeminfo")

File "/usr/local/lib/python3.9/site-packages/beward/core.py", line 227, in get_info

data = self.query(function, extra_params={"action": "get"}).text

AttributeError: 'NoneType' object has no attribute 'text'