22 Commits

Author SHA1 Message Date
Brett Jia
30d28f543c arlo: boolean settings + publish (#713) 2023-04-09 14:49:43 -07:00
Brett Jia
b8d06fada5 arlo: toggle for wired power + audio sensors (#679)
* remove hints to force prebuffer snapshots to fetch stream

* cleanup exception guard + catch prebuffer snapshot errors

* settings to remove Battery interface

* delayed init to load battery percentage

* fix plugin crash due to missing smart features dict

* properly add toggle for wired power

* fix race condition when multiple settings are updated at once

* bump 0.7.10 for beta

* audio detection + clean up battery/no-battery settings

* bump 0.7.11 for beta

* remove basestation models from camera class

* bump 0.7.12 for release
2023-04-01 14:28:54 -07:00
Brett Jia
527714e434 arlo: camera [spot,flood]lights, sirens + only use interfaces when hardware supports it (#660)
* only create vss and siren for supported basestation models

* VideoClips only if camera has cloud recording + start of Cameras as DeviceProviders

* make verbose logging a boolean toggle

* camera spotlights and floodlights

* tweak video clip delete warning

* bump 0.7.5 for beta

* bump 0.7.6 for release + pin deps

* expose sirens on supported cameras

* bump 0.7.7 for release
2023-03-27 16:43:23 -07:00
Brett Jia
3854b75c6e arlo: video clips + virtual security system for sirens (#656)
* fix doorbell device type

* bump 0.7.1 for beta

* standalone camera fixes

* bump 0.7.2 for beta

* more type annotations + trickle discover all devices

* fetch arlo library clips

* log options

* cache library at lower level and fetch clips on demand

* move library timedelta range lower in stack

* wip siren as security system

* virtual security system and tweaks

* vss documentation and settings

* expand vss usage docs

* more docs changes

* force homekit and scrypted to update given vss and siren state

* RE-ENABLING SIREN!!!

* bump 0.7.3 for beta

* bump 0.7.3 for release
2023-03-25 11:13:28 -07:00
Brett Jia
8a56e789b7 arlo: add basestation and basestation siren + other tweaks (#636)
* configure stream refresh

* use modelId directly

* bump 0.6.8

* lower refresh rate to 20 min

* basestations as DeviceProviders + various type annotations

* reorder

* trickle discover basestations to avoid clobbering cameras

* generalize device creation + start of siren

* functional basestation siren

* bump 0.7.0 for beta
2023-03-18 10:26:02 -07:00
Brett Jia
9015af4902 arlo: optimize event handling (#601)
* optimize event waiting by keying on properties

* bump 0.6.6

* interrupt cleanup for other tasks

* bump 0.6.7 for race condition fix
2023-03-05 19:25:47 -08:00
Brett Jia
7d0bf91177 arlo: mark 2way as experimental + new refresh/re-login features (#551)
* remove unused dependencies

* expose configs to enable/disable two-way as experimental

* remove Few logging and clean up settings

* initial imap settings scaffolding and 90-min stream refresh

* fix sse refresh and make it configurable

* fix double printing in provider

* clean up logger names

* safer imap re-login and proper SSE exits

* some more logging with ids

* fix MQTT refresh and cleanly cancel tasks on restart

* document IMAP requirements

* bump 0.6.3 for release

* fix new device load error

* bump 0.6.4 for release
2023-02-11 18:48:09 -08:00
Brett Jia
9cb6b12798 beta: arlo talkback w/ native webrtc to arlo servers (#543)
* parse endpoint and ffmpeg args

* aiortc logging, detect ffmpeg input source format

* log intercom source

* bump

* write sdp to file

* bump

* stop loop correctly

* run ffmpeg to convert inputs to known format

* options don't seem to do anything

* bump

* refactoring to use webrtc for video

* pass through ffmpeg to clean up stream for PyAV

* relay talkback audio

* cachebust

* mute talkback with silence

* cleanly exit orphaned subprocesses

* rename class

* bump minor version

* fetch webrtc stream from prebuffer

* prebuffer still not working

* Revert "prebuffer still not working"

This reverts commit b30ccebb17.

* Revert "fetch webrtc stream from prebuffer"

This reverts commit 8dbd308c59.

* try to fix buffer overrun

* expose option to purge pip cache and reinstall deps

* some more logging

* use v1 pypi

* bump 0.5.2

* per-camera settings to toggle webrtc implementation

* change setting name

* wire up existing push to talk for Intercom

* documentation

* bump 0.5.3

* 0.5.4 with new python dependency versioning

* bump av build

* 0.5.5

* optimize event waiting by reducing polling

* more minor optimizations

* tweak performance and requirements.txt

* reimplement with pion webrtc

* bump 0.6.0

* fix interfaces for doorbells
2023-02-01 07:58:19 -08:00
Brett Jia
217007a7b2 beta: arlo talkback (basestation only) (#475)
* initial research

* experimental

* sdp seems to work, stopIntercom is broken

* converting to separate rtc device

* standalone rtc speaker implemented but not working

* minor cleanup

* webrtc troubleshooting and improvements

* wait for sdp response before sending candidates

* logging changes, rtc troubleshooting

* use a future

* restore aiortc and run RTC in a background thread

* documentation

* documentation

* typo

* comments + simplify background coroutine calls

* simplify future

* only enable intercom for basestation cameras

* bump 0.4.0

* backward compatible headers

* bump 0.4.1

* pin cryptography to latest without rust

* monkey patch binary deps and pin cryptography for armv7l

* hacks to use ffmpeg but fails due to dependency on pylibsrtp

* revert back to 0.4.2

* 0.4.3 fix for M1 Macs

* use pre-built armv7l wheels

* publish 0.4.4

* use custom pypi index for armv7l wheels
2023-01-10 21:20:15 -08:00
Brett Jia
bae7d92692 arlo: wired doorbell fix, reduce event latency (#465)
* fix avd1001 battery indicator

* reduce latency of checking for events
2022-12-13 20:14:52 -08:00
Brian Schrameck
b442c3b3cc feat: allow Arlo basestations that identify as sirens (e.g. VMB4000) (#437)
* feat: allow basestations that identify as sirens (e.g. VMB4000)

* docs: adjust comment for proper_basestations
2022-11-22 19:34:02 -08:00
Brett Jia
74cec57655 arlo: 0.3.4 with bugfixes, SSE, and experimental doorbell (#418)
* bump and enable new doorbell press detection

* sse debugging, hwVersion optional, avd1001 excludes battery

* bump 0.3.3

* patch SSE iterator to handle broken connection

* I am silly and don't know how six lib works
2022-11-06 16:51:26 -08:00
Brett Jia
b646faa976 arlo: beta 0.3.1 w/ SSE, arloqs, and doorbell pings (#389)
* initial beta for doorbells

* clarify comments

* temporarily disable ArloDoorbell and add arloqs

* re-add SSE as transport option

* bump

* generate event id and timestamp when sending requests

* ping doorbells
2022-10-01 19:32:54 -07:00
Brett Jia
668118e5e3 arlo: battery events, delete unused code, start of doorbell refactor (#370)
* battery events, delete unused code, start of doorbell refactor

* publish
2022-09-05 20:13:31 -05:00
Brett Jia
fb7462b4c2 arlo: various fixes and use correct api url for snapshots (#256)
* remove Refresh, extend internal timeout, add new action to snapshots

* lower timeout, properly listen for last image url

* tweak arlo endpoint

* promote to official release
2022-05-21 20:32:14 -07:00
Brett Jia
87130d263d arlo: more mqtt subs, basestation keep-alive, more efficient motion listener (#225)
* more mqtt subscriptions

* bump

* send heartbeats to real basestations

* bump

* fix basestation registration race condition, make single action subscriptions more efficient

* bump

* remove Online interface since it's broken for basestation cameras

* bump
2022-04-16 15:04:10 -07:00
Brett Jia
adf5f644bc arlo: disable audio for VMC3030 and readme (#221)
* disable audio for VMC3030

* bump

* readme

* bump
2022-04-14 17:04:26 -07:00
Brett Jia
60c3ae25da arlo 0.2.3 (#219) 2022-04-13 00:21:34 -07:00
Brett Jia
473f2738cc arlo: 0.2.0 with mqtt under the hood (#215)
* REST timeouts, infrequent heartbeats, fix queue cycling bug

* cache auth headers in storage

* bump

* heartbeat all basestations on motion subscription, return rtsp url immediately, fix dropped event bug

* bump

* consolidate basestation heartbeats

* bump

* handle new streamURL event

* bump

* return stream url on startUserStream event too

* bump

* settings change for docker debugging

* snapshot from prebuffer when available

* bump

* reduce latency of checking for events

* bump

* initial testing

* working mqtt implementation

* bump to 0.2.0
2022-04-09 17:35:04 -07:00
Brett Jia
25661add94 Arlo 0.1.3 (#211)
* more reliable internal event queue management

* timeout at higher level

* motion detection

* better motion event logic, add Battery

* bump version

* remove debug prints for publish

* configurable logging

* bump version

* document verbosity settings

* bump version properly

* wait for arlo stream to start before returning rtsps url

* bump

* clean up accidental imports

* implement Online, Refresh + clean up duplicate logging issue

* bump
2022-04-03 12:47:38 -07:00
Brett Jia
a55424ed80 Arlo improvements (#208)
* log number of discovered devices, skip cameras without basestations

* remove monkey patch, don't crash when creating cameras before they are loaded

* use storage api, significant cleanup

* more cleanup
2022-03-29 19:29:23 -07:00
Koushik Dutta
8062bc7d4e Arlo (#205)
* start of arlo plugin

* use a logger

* patch missing method onto devicemanager

* arlo camera link should be done on camera settings page

* consolidate

* log formatter

* log formatter

* discover devices as cameras. snapshot not working

* take arlo pictures

* implement video camera stream

* pull in custom arlo module and try to fix session bugs

* proxy arlo rtsp to stop stream when no clients

* snapshot ongoing stream

* cache image snapshots

* use host ip addr

* use cached if error

* using live555ProxyServer

* build live555ProxyServer, use cached pictures more

* cache pic on video, threaded

* fix issue of snapshot turning off stream

* more async

* significant cleanup, vendoring, first attempt at getting async arlo lib

* works, but problem with async and queue juggling

* timeout, queues per resource/action

* subscribe to multiple queues

* distinguish cameras and basestations, remove dependence on gmail

* some cleanup

* some cleanup

* some cleanup

* support SMS MFA

* event queue garbage collection

* video stream options

* add dependencies per koush's suggestion

Co-authored-by: Brett Jia <dev.bjia56@gmail.com>
2022-03-29 10:10:30 -07:00