Summary

The Doorbird D2105V is a video door station with IP-based control via HTTP LAN API. Supports door opening, lighting control, live audio/video streaming, motion/doorbell event monitoring, SIP calling, and automation scheduling. Control is HTTP-based on TCP ports 80 (HTTP) and 443 (HTTPS); events are pushed via UDP broadcasts on ports 6524 and 35344. RTSP streaming is available on port 554.

Transport

protocols:
  - http
  - udp
addressing:
  port: 80   # HTTP
  # UNRESOLVED: HTTPS port 443 stated but not as configurable; omitted per N/A rule
auth:
  type: basic  # Basic or Digest auth per RFC 2617, or http-user/http-password parameters

Traits

- powerable       # restart.cgi command present
- queryable       # info.cgi, sip.cgi?action=status, monitor.cgi
- routable        # open-door.cgi, light-on.cgi
- levelable       # sip.cgi mic_volume/spk_volume parameters

Actions

- id: open_door
  label: Open Door
  kind: action
  params:
    - name: r
      type: string
      description: "Relay to trigger (optional). Format: relay number or doorcontrollerID@relay (e.g. '1' or 'gggaaa@1'). Defaults to relay 1."

- id: light_on
  label: Light On
  kind: action
  params: []

- id: live_video
  label: Live Video Stream
  kind: action
  params: []

- id: live_image
  label: Live Image
  kind: action
  params: []

- id: history_image
  label: History Image
  kind: action
  params:
    - name: index
      type: integer
      description: "History index 1..50, where 1 is latest"
    - name: event
      type: string
      description: "Event type: doorbell or motionsensor (optional)"

- id: monitor
  label: Monitor Events
  kind: action
  params:
    - name: ring
      type: string
      description: "Event types to monitor: doorbell,motionsensor"

- id: audio_receive
  label: Receive Audio
  kind: action
  params: []

- id: audio_transmit
  label: Transmit Audio
  kind: action
  params: []

- id: get_info
  label: Get Device Info
  kind: query
  params: []

- id: list_favorites
  label: List Favorites
  kind: query
  params: []

- id: save_favorite
  label: Add or Change Favorite
  kind: action
  params:
    - name: action
      type: string
      const: save
    - name: type
      type: string
      description: sip or http
    - name: title
      type: string
    - name: value
      type: string
    - name: id
      type: integer
      description: optional, for updating existing favorite

- id: remove_favorite
  label: Delete Favorite
  kind: action
  params:
    - name: action
      type: string
      const: remove
    - name: type
      type: string
    - name: id
      type: integer

- id: list_schedules
  label: List Schedules
  kind: query
  params: []

- id: save_schedule
  label: Add or Update Schedule
  kind: action
  params:
    - name: input
      type: string
      description: "doorbell, motion, rfid, or fingerprint"
    - name: param
      type: string
      description: doorbell number, transponder id, or fingerprint id
    - name: output
      type: array
      description: JSON array of output action configurations

- id: remove_schedule
  label: Delete Schedule
  kind: action
  params:
    - name: action
      type: string
      const: remove
    - name: input
      type: string
    - name: param
      type: string

- id: restart
  label: Restart Device
  kind: action
  params: []

- id: sip_registration
  label: SIP Register
  kind: action
  params:
    - name: action
      type: string
      const: registration
    - name: user
      type: string
    - name: password
      type: string
    - name: url
      type: string

- id: sip_makecall
  label: SIP Make Call
  kind: action
  params:
    - name: action
      type: string
      const: makecall
    - name: url
      type: string

- 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 SIP after reboot"
    - name: mic_volume
      type: integer
      description: "1..100, microphone volume"
    - name: spk_volume
      type: integer
      description: "1..100, speaker volume"
    - name: dtmf
      type: integer
      description: "0..1, enable DTMF support"
    - name: relay1_passcode
      type: integer
      description: "0..99999999, pincode for door open relay"
    - name: incoming_call_enable
      type: integer
      description: "0..1"
    - 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, acoustic noise cancellation"
    - name: ring_time_limit
      type: integer
      description: "10..300 seconds"
    - name: call_time_limit
      type: integer
      description: "30..300 seconds"

- id: sip_status
  label: SIP Status
  kind: query
  params:
    - name: action
      type: string
      const: status

- id: sip_reset
  label: SIP Reset
  kind: action
  params:
    - name: action
      type: string
      const: reset

- id: get_session
  label: Create Session
  kind: action
  params: []

- id: invalidate_session
  label: Invalidate Session
  kind: action
  params:
    - name: invalidate
      type: string
      description: Session ID to invalidate

Feedbacks

- id: doorbell_event
  type: string
  values: [doorbell, motionsensor, rfid, keypad]
- id: relay_state
  type: string
  description: "Relay identifiers returned by info.cgi, e.g. ['1','2','gggaaa@1','gggaaa@2']"
- id: sip_registration_status
  type: enum
  values: [registered, not_registered]
- id: sip_last_error
  type: string
  description: "LASTERRORCODE from sip status response"

Variables

# UNRESOLVED: no discrete settable parameters documented as separate variables;
# SIP settings are action-based (sip.cgi?action=settings)

Events

# UDP broadcast events on ports 6524 and 35344
# ChaCha20-Poly1305 encrypted (v2, since November 2023)
# v1 (Argon2i) deprecated
- id: doorbell_ring
  type: string
  description: Doorbell event, includes doorbell number padded with spaces
- id: motion_detected
  type: string
  description: Motion sensor event
- id: rfid_event
  type: string
  description: RFID transponder event (future)
- id: keypad_event
  type: string
  description: Keypad event (future)
# Fields per UDP packet:
#   INTERCOM_ID: first 6 chars of username
#   EVENT: 8-byte string
#   TIMESTAMP: Unix timestamp (4 bytes)

Macros

# No explicit multi-step macros documented; schedule.cgi implements
# event-action-timewindow bindings that could be considered macro-like.

Safety

confirmation_required_for: []
interlocks:
  - description: "Door opening should be performed while watching live image to verify identity"
    source: "open-door.cgi documentation"
# UNRESOLVED: no explicit safety interlocks or confirmation requirements found in source

Notes

  • HTTP API supports Basic/Digest auth (RFC 2617) or plaintext http-user/http-password parameters
  • HTTPS uses self-signed certificate on port 443 (CA not issued for IP addresses)
  • Session IDs valid for 10 minutes; obtained via getsession.cgi
  • Video/audio streaming not available over HTTPS in LAN — requires session ID workaround
  • RTSP available on port 554; RTSP-over-HTTP on port 8557
  • SIP uses port 5060; supports peer-to-peer and proxy-based calls
  • Maximum 1 concurrent API connection per second; rate limit blocks IPs on 423 after repeated auth failures
  • Device busy (only one A/V call at a time) returns 503; up to 8 monitor streams, 509 when full
  • Audio codec: G.711 μ-law only; client must handle AEC/ANR
  • UDP event monitoring v2 uses ChaCha20-Poly1305 with 32-byte key from NOTIFICATION_ENCRYPTION_KEY

Provenance

source_domains:
  - doorbird.com
source_urls:
  - https://www.doorbird.com/downloads/api_lan.pdf
retrieved_at: 2026-04-30T04:32:22.644Z
last_checked_at: 2026-06-03T06:39:15.694Z

Verification Summary

verdict: verified
checked_at: 2026-06-03T06:39:15.694Z
matched_actions: 24
action_count: 24
confidence: medium
summary: "All 24 actions present (8 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "Serial/RS-232 not mentioned in source — not applicable to this model"
- "HTTPS port 443 stated but not as configurable; omitted per N/A rule"
- "no discrete settable parameters documented as separate variables;"
- "no explicit safety interlocks or confirmation requirements found in source"
- "Serial/RS-232 configuration not applicable to D2105V (IP-only model)"
- "Firmware version compatibility range not explicitly stated"
- "Voltage/power specifications not provided in source"
- "Specific fault behavior and error recovery sequences not documented"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0