Summary
The Doorbird D2102KV is a Video Door Station supporting IP-based control via HTTP/HTTPS API (LAN-2-LAN API), RTSP video streaming, SIP calling, and UDP event broadcasts. The device exposes doorbell, motion, RFID, and keypad events; supports door opener and light relay control; and supports audio intercom via G.711 μ-law codec.
Transport
protocols:
- http
- tcp
addressing:
port: 80 # HTTP
# UNRESOLVED: HTTPS port 443 stated but not populated as explicit port number
auth:
type: basic # Basic or Digest auth per RFC 2617; also supports http-user/http-password parameters
Traits
# Inferred from source command examples:
# - powerable: restart command present
# - queryable: info.cgi returns firmware/version state
# - levelable: mic_volume, spk_volume settings available via SIP
# - routable: SIP call initiation, door open/light relay triggers
Actions
- id: open_door
label: Open Door
kind: action
params:
- name: relay
type: string
description: "Relay identifier (optional). Default triggers physical relay 1. Format: relay number or doorcontrollerID@relay (e.g. '1', 'gggaaa@1')"
- id: light_on
label: Light On
kind: action
params: []
- id: live_video_mjpg
label: Live Video (MJPG)
kind: action
params: []
- id: live_image
label: Live Image Snapshot
kind: action
params: []
- id: history_image
label: History Image
kind: action
params:
- name: index
type: integer
description: History index (1 = latest, range 1-50)
- name: event
type: string
description: "Event type: 'doorbell' or 'motionsensor' (optional, default: doorbell for DoorBird, input trigger for BirdGuard)"
- id: monitor_events
label: Monitor Events
kind: action
params:
- name: ring
type: string
description: "Event types to monitor: 'doorbell' and/or 'motionsensor' (comma-separated)"
- id: audio_receive
label: Audio Receive
kind: action
params: []
- id: audio_transmit
label: Audio Transmit
kind: action
params: []
- id: get_info
label: Get Device Info
kind: action
params: []
- id: list_favorites
label: List Favorites
kind: action
params: []
- id: save_favorite
label: Save Favorite
kind: action
params:
- name: action
type: string
const: save
- name: type
type: string
description: "Favorite type: 'sip' or 'http'"
- name: title
type: string
description: Name/title of the favorite
- name: value
type: string
description: URL or SIP address
- name: id
type: integer
description: "(Optional) ID of existing favorite to update"
- id: delete_favorite
label: Delete Favorite
kind: action
params:
- name: action
type: string
const: remove
- name: type
type: string
description: "Favorite type: 'sip' or 'http'"
- name: id
type: integer
description: ID of the favorite to delete
- id: list_schedules
label: List Schedules
kind: action
params: []
- id: save_schedule
label: Save Schedule
kind: action
params:
- name: input
type: string
description: "Input event type: 'doorbell', 'motion', 'rfid', or 'fingerprint'"
- name: param
type: string
description: "Parameter value for the input (e.g. doorbell number, transponder ID, fingerprint ID)"
- name: output
type: array
description: "JSON array of output action configurations"
- id: delete_schedule
label: Delete Schedule
kind: action
params:
- name: action
type: string
const: remove
- name: input
type: string
description: "Input event type: 'doorbell', 'motion', or 'rfid'"
- name: param
type: string
description: "Doorbell number, transponder ID, or fingerprint ID"
- id: restart
label: Restart Device
kind: action
params: []
- id: sip_registration
label: SIP Registration
kind: action
params:
- name: action
type: string
const: registration
- name: user
type: string
description: SIP Proxy authentication user
- name: password
type: string
description: SIP Proxy authentication password
- name: url
type: string
description: IP/Hostname of the SIP Proxy
- id: sip_makecall
label: SIP Make Call
kind: action
params:
- name: action
type: string
const: makecall
- name: url
type: string
description: SIP URL to call (e.g. sip:108@192.168.123.22)
- id: sip_hangup
label: SIP Hangup
kind: action
params:
- name: action
type: string
const: hangup
- id: sip_settings
label: SIP Settings
kind: action
params:
- name: action
type: string
const: settings
- name: enable
type: integer
description: "0..1: Enable or disable SIP registration after reboot (default: 0)"
- name: mic_volume
type: integer
description: "1..100: Microphone volume (default: 33)"
- name: spk_volume
type: integer
description: "1..100: Speaker volume (default: 70)"
- name: dtmf
type: integer
description: "0..1: Enable or disable DTMF support (default: 0)"
- name: relay1_passcode
type: integer
description: "0..99999999: Pincode for triggering door open relay"
- name: incoming_call_enable
type: integer
description: "0..1: Enable or disable incoming calls (default: 0)"
- name: incoming_call_user
type: string
description: "Allowed SIP user (e.g. 'sip:10.0.0.1:5060')"
- name: anc
type: integer
description: "0..1: Enable or disable acoustic noise cancellation (default: 1)"
- name: ring_time_limit
type: integer
description: "10..300: Maximum ringing time in seconds (default: 300)"
- name: call_time_limit
type: integer
description: "30..300: Maximum call duration in seconds (default: 300)"
- id: sip_status
label: SIP Status
kind: action
params:
- name: action
type: string
const: status
- id: sip_reset
label: SIP Settings Reset
kind: action
params:
- name: action
type: string
const: reset
- id: get_session
label: Get Session ID
kind: action
params: []
- id: invalidate_session
label: Invalidate Session ID
kind: action
params:
- name: invalidate
type: string
description: Session ID to invalidate
Feedbacks
# HTTP status codes and JSON responses:
# - RETURNCODE in JSON responses indicates success/failure
# - 200: OK, 204: No permission or no data, 400: Invalid parameters
# - 401: Authentication required, 423: Blocked (wrong credentials)
# - 503: Busy (line in use), 507: Size limit exceeded
Variables
# Device info from /bha-api/info.cgi:
- id: firmware_version
label: Firmware Version
type: string
- id: build_number
label: Build Number
type: string
- id: primary_mac_addr
label: Primary MAC Address
type: string
- id: device_type
label: Device Type
type: string
- id: relays
label: Available Relays
type: array
description: "Array of relay identifiers including paired DoorController relays"
# SIP status from /bha-api/sip.cgi?action=status:
- id: sip_lasterrorcode
label: SIP Last Error Code
type: string
- id: sip_lasterrortext
label: SIP Last Error Text
type: string
# SIP settings (readable via sip.cgi?action=status):
- id: sip_mic_volume
label: SIP Microphone Volume
type: integer
- id: sip_spk_volume
label: SIP Speaker Volume
type: integer
- id: sip_enable
label: SIP Enabled
type: boolean
Events
# UDP event broadcasts on ports 6524 and 35344 (v2, ChaCha20-Poly1305 encrypted):
# Format after decryption:
# - INTERCOM_ID: 6 chars from username
# - EVENT: 8-char string ("doorbell", "motionsensor", etc., padded with spaces)
# - TIMESTAMP: Unix timestamp
#
# Monitor CGI (HTTP) returns:
# - doorbell:H / doorbell:L (HIGH/LOW state transitions)
# - motionsensor:H / motionsensor:L
Macros
# UNRESOLVED: no explicit multi-step macros described in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures stated in source
# Note: Door open relay triggers physical door release - user should verify safe operation
Notes
- HTTP API supports Basic or Digest authentication per RFC 2617, or
http-user/http-passwordquery parameters (less secure) - HTTPS uses self-signed certificate on port 443 (CA not issued for IP addresses)
- Session ID valid for 10 minutes; notification encryption key obtained via
getsession.cgi - Video streaming via MJPG (HTTP, up to 8 fps) or H.264 (RTSP on port 554, up to 12 fps)
- Audio: G.711 μ-law codec at 8000 Hz sampling; client must handle AEC/ANR
- SIP calls on port 5060; each call terminates after 180 seconds (auto-hangup)
- UDP event broadcasts on ports 6524 and 35344 (keep-alive packets every 7 seconds)
- Maximum 1 concurrent API connection per second; 1 concurrent video/audio call
- HTTP 423 response indicates IP blocked for 1 minute after excessive auth failures
- RTSP-over-HTTP on port 8557; RTSP standard port 554
- Firmware 000110+ required for favorites and schedules API
Provenance
source_domains:
- doorbird.com
source_urls:
- https://www.doorbird.com/downloads/api_lan.pdf
retrieved_at: 2026-04-30T04:32:22.286Z
last_checked_at: 2026-06-03T06:39:14.838Z
Verification Summary
verdict: verified
checked_at: 2026-06-03T06:39:14.838Z
matched_actions: 24
action_count: 24
confidence: medium
summary: "All 24 spec actions verified (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "electrical specifications (voltage, current, power consumption) not stated in source"
- "HTTPS port 443 stated but not populated as explicit port number"
- "no explicit multi-step macros described in source"
- "no safety warnings or interlock procedures stated in source"
- "firmware compatibility range not stated"
- "electrical specifications (voltage/current/power) not stated"
- "fault behavior and error recovery procedures not documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0