Accessing webcams via REST API
Project description
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
pip3 install libhttpcam
or as update:
pip3 install --upgrade libhttpcam
Usage
Use createCam
to create a camera instance.
from libhttpcam import createCam
model = 'foscam'
ip = '10.0.0.30'
cam, port = createCam('foscam', ip) # use model's default port
Next, you might want to set credentials for the camera:
user = 'me'
password = 'youllneverguess'
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 suppliedbrand
,ip
address, andport
. Ifport
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: forWansview
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 areStatus.ON',
Status.OFF, and
Status.AUTO` -
async_set_night_mode(status: Status) -> Response
sets the status of the passive infrered sensor. Valid settings areStatus.ON',
Status.OFF, and
Status.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 returnsTrue
if an alram was detected.
Currently not implemented, returnsFalse
-
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 thetrigger
andaction
settings -
async_ptz_preset(preset_pos:int)
moves the camera to the specified preprogrammed position if PTX is available
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for libhttpcam-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 487e75757d045ec29129ae11f2ffb2db853952b9d7d47dcba99bb578951dea64 |
|
MD5 | 6f66b3b3ad0b87c93a5860e819fe3263 |
|
BLAKE2b-256 | 2bb4c73c16d269ca570b3b03b942410fbb72cca847bd07277bd4130d77a75b17 |