项目作者: HelpfulScripts

项目描述 :
Accessing webcams via REST API
高级语言: Python
项目地址: git://github.com/HelpfulScripts/libhttpcam.git
创建时间: 2019-03-24T17:20:40Z
项目社区:https://github.com/HelpfulScripts/libhttpcam

开源协议:MIT License

下载


Web Cam Access via HTTP REST-API

A Python3 library that unified acess to various web cams with integrated HTTP servers.
The intended use is for connecting cameras with built-in REST servers to the
home-assistant platform.

Installation

libhttpcam

  1. pip3 install libhttpcam

or as update:

  1. pip3 install --upgrade libhttpcam

Usage

Use createCam to create a camera instance.

  1. from libhttpcam import createCam
  2. model = 'foscam'
  3. ip = '10.0.0.30'
  4. cam, port = createCam('foscam', ip) # use model's default port

Next, you might want to set credentials for the camera:

  1. user = 'me'
  2. password = 'youllneverguess'
  3. cam.set_credentials(user, password)

Support

Currently, only Foscam and Wansview cameras are supported.

  • Foscam C1
  • Wansview K2
  • Wansview Q3S (X Series)

API

  • createCam(brand:str, ip:str, port:int=None) -> (HttpCam, int)

    creates a HttpCam instance for the supplied brand, ip address, and port.
    If port is omitted, the camera brand’s default port will be used.

returns the camera instance and the port used as a tuple

Device Properties

  • brand()

    returns the camera instance’s brand

  • model()

    returns the camera instance’s model
    Note: for Wansview cameras this call returns 'unknown'

  • host()

    returns the camera instance’s ip address

  • port()

    returns the camera instance’s port

Device Configuration

  • set_credentials(user='', password='')

    sets the credentials used to access the camera.

  • set_sensitivities(motion=0, audio=0)

Sets the sensitivities for motion detection and audio detection. Both take values between 0 (off) and 100 (sensitive).

  • async_reboot() -> Response

    reboots the camera.

  • async_set_system_time() -> Response

    sets the current local time on the camera. This is used for overlays in the snapshots and feeds.

  • async_set_irled(status: Status) -> Response

    sets the status of the active infrared light on the camera. Valid settings are Status.ON',Status.OFF, andStatus.AUTO`

  • async_set_night_mode(status: Status) -> Response

    sets the status of the passive infrered sensor. Valid settings are Status.ON',Status.OFF, andStatus.AUTO`

  • async_set_ftp_config(server, port, user, passwd) -> Response

    configures the ftp client to allow snapshots and recordings to be stored on a server via FTP.

  • async_set_audio_volumes(audio_in=50, audio_out=50) -> Response

    configures audio volumes for the camera:

  • audio_in: microphone volume
  • audio_out: speaker and alert volume

Device Queries

  • async_get_model() -> str

    queries and returns the brand’s model number as a string

  • async_get_night_mode() -> IRmode

    queries and returns the sensor night mode setting:

    • bool result.LED
    • bool result.Sensor
  • async_get_alarm_trigger() -> Trigger

    queries and returns the alarm trigger setting:

    • bool result.motion
    • bool result.audio
  • async_get_alarm_action() -> Action

    queries and returns the alarm action setting:

    • bool result.audio - sound the siren
    • bool result.ftp_snap - store snapshots to FTP server
    • bool result.ftp_rec - store recordings to FTP server
  • async_get_alarm_triggered() -> bool

    queries and returns True if an alram was detected.

    Currently not implemented, returns False

  • async_get_ftp_config()

    queries and returns the current FTP configuration

Device Actions

  • async_snap_picture()

    snaps a picture and returns the byte array

  • async_mjpeg_stream(request)

    requests and returns a motion JPEG stream

  • async_set_alarm(trigger: Trigger, action: Action) -> Response

    Arms or disarms the camera by7 setting the trigger and action settings

  • async_ptz_preset(preset_pos:int)

    moves the camera to the specified preprogrammed position if PTX is available