https://github.com/helpfulscripts/libhttpcam
Accessing webcams via REST API
https://github.com/helpfulscripts/libhttpcam
foscam home-assistant http-camera wansview
Last synced: about 1 month ago
JSON representation
Accessing webcams via REST API
- Host: GitHub
- URL: https://github.com/helpfulscripts/libhttpcam
- Owner: HelpfulScripts
- License: mit
- Created: 2019-03-24T17:20:40.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-08-03T01:45:38.000Z (almost 4 years ago)
- Last Synced: 2025-04-13T03:57:08.535Z (about 1 month ago)
- Topics: foscam, home-assistant, http-camera, wansview
- Language: Python
- Size: 41 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://www.home-assistant.io/) 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 portNext, 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 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`, and `Status.AUTO`- `async_set_night_mode(status: Status) -> Response`
sets the status of the passive infrered sensor. Valid settings are `Status.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 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