mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 17:51:20 +00:00
1691 lines
79 KiB
HTML
1691 lines
79 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
|
|
<meta name="generator" content="pdoc 0.5.1" />
|
|
<title>arlo API documentation</title>
|
|
<meta name="description" content="Copyright 2016 Jeffrey D. Walter …" />
|
|
<link href='https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.min.css' rel='stylesheet'>
|
|
<link href='https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/8.0.0/sanitize.min.css' rel='stylesheet'>
|
|
<style>.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id=^header-]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:1px solid #ddd;margin:1em 0 1em 4ch}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{font-weight:bold}#index h4 + ul{margin-bottom:.6em}#index .two-column{column-count:2}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.name small{font-weight:normal}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary{background:#ffc;font-weight:400;font-size:.8em;width:11em;text-transform:uppercase;padding:0px 8px;border:1px solid #fd6;border-radius:5px;cursor:pointer}.source summary:hover{background:#fe9 !important}.source[open] summary{background:#fda}.source pre{max-height:500px;overflow-y:scroll;margin-bottom:15px}.hlist{list-syle:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}.admonition{padding:.1em .5em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink;]</style>
|
|
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:45%}#content{width:55%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
|
|
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
|
|
</head>
|
|
<body>
|
|
<main>
|
|
<article id="content">
|
|
<header>
|
|
<h1 class="title"><code>arlo</code> module</h1>
|
|
</header>
|
|
<section id="section-intro">
|
|
<p>Copyright 2016 Jeffrey D. Walter</p>
|
|
<p>Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at</p>
|
|
<p>http://www.apache.org/licenses/LICENSE-2.0</p>
|
|
<p>Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS ISBASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.</p>
|
|
</section>
|
|
<section>
|
|
</section>
|
|
<section>
|
|
</section>
|
|
<section>
|
|
</section>
|
|
<section>
|
|
<h2 class="section-title" id="header-classes">Classes</h2>
|
|
<dl>
|
|
<dt id="arlo.Arlo"><code class="flex name class">
|
|
<span>class <span class="ident">Arlo</span></span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
<h3>Class variables</h3>
|
|
<dl>
|
|
<dt id="arlo.Arlo.TRANSID_PREFIX"><code class="name">var <span class="ident">TRANSID_PREFIX</span></code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
</dl>
|
|
<h3>Methods</h3>
|
|
<dl>
|
|
<dt id="arlo.Arlo.__init__"><code class="name flex">
|
|
<span>def <span class="ident">__init__</span></span>(<span>self, username, password)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Initialize self.
|
|
See help(type(self)) for accurate signature.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.AddFriend"><code class="name flex">
|
|
<span>def <span class="ident">AddFriend</span></span>(<span>self, firstname, lastname, email, devices={}, admin=False)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This API will send an email to a user and if they accept, will give them access to the devices you specify.
|
|
NOTE: XXX-XXXXXXX_XXXXXXXXXXXX is the uniqueId field in your device object.</p>
|
|
<p>{adminUser:false,firstName:John,lastName:Doe,email:john.doe@example.com,devices:{XXX-XXXXXXX_XXXXXXXXXXXX:Camera1,XXX-XXXXXXX_XXXXXXXXXXXX:Camera2}}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.AdjustBrightness"><code class="name flex">
|
|
<span>def <span class="ident">AdjustBrightness</span></span>(<span>self, basestation, camera, brightness=0)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>NOTE: Brightness is between -2 and 2 in increments of 1 (-2, -1, 0, 1, 2).
|
|
Setting it to an invalid value has no effect.</p>
|
|
<p>Returns:
|
|
{
|
|
"action": "is",
|
|
"from": "XXXXXXXXXXXXX",
|
|
"properties": {
|
|
"brightness": -2
|
|
},
|
|
"resource": "cameras/XXXXXXXXXXXXX",
|
|
"to": "336-XXXXXXX_web",
|
|
"transId": "web!XXXXXXXX.389518!1514956240683"
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.AlertNotificationMethods"><code class="name flex">
|
|
<span>def <span class="ident">AlertNotificationMethods</span></span>(<span>self, basestation, action='disabled', email=False, push=False)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><dl>
|
|
<dt><strong><code>action</code></strong> : <code>disabled</code> <code>OR</code> <code>recordSnapshot</code> <code>OR</code> <code>recordVideo</code></dt>
|
|
<dd> </dd>
|
|
</dl></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Arm"><code class="name flex">
|
|
<span>def <span class="ident">Arm</span></span>(<span>self, device)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.BatchDeleteRecordings"><code class="name flex">
|
|
<span>def <span class="ident">BatchDeleteRecordings</span></span>(<span>self, recordings)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Delete a batch of video recordings from Arlo.</p>
|
|
<p>The GetLibrary() call response json can be passed directly to this method if you'd like to delete the same list of videos you queried for.
|
|
If you want to delete some other batch of videos, then you need to send an array of objects representing each video you want to delete.</p>
|
|
<p>[
|
|
{
|
|
"createdDate":"20160904",
|
|
"utcCreatedDate":1473010280395,
|
|
"deviceId":"XXXXXXXXXXXXX"
|
|
},
|
|
{
|
|
"createdDate":"20160904",
|
|
"utcCreatedDate":1473010280395,
|
|
"deviceId":"XXXXXXXXXXXXX"
|
|
}
|
|
]</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Calendar"><code class="name flex">
|
|
<span>def <span class="ident">Calendar</span></span>(<span>self, basestation, active=True)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API appears to still do stuff, but I don't see it called in the web UI anymore when switching the mode to a schedule.</p>
|
|
<p>NOTE: The Arlo API seems to disable calendar mode when switching to other modes, if it's enabled.
|
|
You should probably do the same, although, the UI reflects the switch from calendar mode to say armed mode without explicitly setting calendar mode to inactive.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.CustomMode"><code class="name flex">
|
|
<span>def <span class="ident">CustomMode</span></span>(<span>self, device, mode, schedules=[])</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>device can be any object that has parentId == deviceId. i.e., not a camera</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.DeleteMode"><code class="name flex">
|
|
<span>def <span class="ident">DeleteMode</span></span>(<span>self, device, mode)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>device can be any object that has parentId == deviceId. i.e., not a camera</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.DeleteRecording"><code class="name flex">
|
|
<span>def <span class="ident">DeleteRecording</span></span>(<span>self, recording)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Delete a single video recording from Arlo.
|
|
All of the date info and device id you need to pass into this method are given in the results of the GetLibrary() call.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Disarm"><code class="name flex">
|
|
<span>def <span class="ident">Disarm</span></span>(<span>self, device)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.DownloadRecording"><code class="name flex">
|
|
<span>def <span class="ident">DownloadRecording</span></span>(<span>self, url, to)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Writes a video to a given local file path.</p>
|
|
<dl>
|
|
<dt><strong><code>url</code></strong> : <code>presignedContentUrl</code></dt>
|
|
<dd> </dd>
|
|
<dt><strong><code>to</code></strong> : <code>path</code> <code>where</code> <code>the</code> <code>file</code> <code>should</code> <code>be</code> <code>written</code></dt>
|
|
<dd> </dd>
|
|
</dl></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.DownloadSnapshot"><code class="name flex">
|
|
<span>def <span class="ident">DownloadSnapshot</span></span>(<span>self, url, to, chunk_size=4096)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Writes a snapshot to a given local file path.</p>
|
|
<dl>
|
|
<dt><strong><code>url</code></strong> : <code>presignedContentUrl</code> or <code>presignedFullFrameSnapshotUrl</code></dt>
|
|
<dd> </dd>
|
|
<dt><strong><code>to</code></strong> : <code>path</code> <code>where</code> <code>the</code> <code>file</code> <code>should</code> <code>be</code> <code>written</code></dt>
|
|
<dd> </dd>
|
|
</dl></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Geofencing"><code class="name flex">
|
|
<span>def <span class="ident">Geofencing</span></span>(<span>self, location_id, active=True)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Get location_id is the id field from the return of GetLocations()
|
|
NOTE: The Arlo API seems to disable geofencing mode when switching to other modes, if it's enabled.
|
|
You should probably do the same, although, the UI reflects the switch from calendar mode to say armed mode without explicitly setting calendar mode to inactive.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetAudioPlayback"><code class="name flex">
|
|
<span>def <span class="ident">GetAudioPlayback</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetAutomationActivityZones"><code class="name flex">
|
|
<span>def <span class="ident">GetAutomationActivityZones</span></span>(<span>self, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetAutomationDefinitions"><code class="name flex">
|
|
<span>def <span class="ident">GetAutomationDefinitions</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetBaseStationState"><code class="name flex">
|
|
<span>def <span class="ident">GetBaseStationState</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetCalendar"><code class="name flex">
|
|
<span>def <span class="ident">GetCalendar</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetCameraState"><code class="name flex">
|
|
<span>def <span class="ident">GetCameraState</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetCameraTempReading"><code class="name flex">
|
|
<span>def <span class="ident">GetCameraTempReading</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetCvrPlaylist"><code class="name flex">
|
|
<span>def <span class="ident">GetCvrPlaylist</span></span>(<span>self, camera, fromDate, toDate)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This function downloads a Cvr Playlist file for the period fromDate to toDate.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetDeviceCapabilities"><code class="name flex">
|
|
<span>def <span class="ident">GetDeviceCapabilities</span></span>(<span>self, device)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetDeviceSupport"><code class="name flex">
|
|
<span>def <span class="ident">GetDeviceSupport</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p>
|
|
<p>This API looks like it's mainly used by the website, but I'm including it for completeness sake.
|
|
It returns something like the following:
|
|
{
|
|
"devices": [
|
|
{
|
|
"deviceType": "arloq",
|
|
"urls": {
|
|
"troubleshoot": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/pc_troubleshoot.html",
|
|
"plugin": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/pc_plugin.html",
|
|
"connection": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/pc_connection.html",
|
|
"connectionFailed": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/pc_connection_fail.html",
|
|
"press_sync": "https://vzs3-prod-common.s3. amazonaws.com/static/html/en/pc_press_sync.html",
|
|
"resetDevice": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/reset_arloq.html",
|
|
"qr_how_to": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/pc_qr_how_to.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "basestation",
|
|
"urls": {
|
|
"troubleshoot": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/bs_troubleshoot.html",
|
|
"connection": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/bs_connection.html",
|
|
"sync": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/bs_sync_camera.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "arloqs",
|
|
"urls": {
|
|
"ethernetSetup": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/ethernet_setup.html",
|
|
"plugin": "https://
|
|
vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/aqp_plugin.html",
|
|
"connectionWiFi": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/connection_in_progress_wifi.html",
|
|
"poeSetup": "https://vzs3-prod-common.s3.
|
|
amazonaws.com/static/html/en/arloqs/poe_setup.html",
|
|
"connection": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/connection_in_progress.html",
|
|
"connectionFailed": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/connection_fail.html",
|
|
"press_sync": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/press_sync.html",
|
|
"connectionType": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/connection_type.html",
|
|
"resetDevice": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/reset_device.html",
|
|
"qr_how_to": "https://vzs3-prod-common.s3.amazonaws.com/static/html/en/arloqs/qr_how_to.html"
|
|
}
|
|
}
|
|
]
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetDeviceSupportV3"><code class="name flex">
|
|
<span>def <span class="ident">GetDeviceSupportV3</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This is the latest version of the device support api.
|
|
It returns something like the following:
|
|
{
|
|
"data": {
|
|
"devices": {
|
|
"camera": {
|
|
"modelIds": [
|
|
"VMC3010",
|
|
"VMC3030",
|
|
"VMC4030",
|
|
"VMC4030P",
|
|
"VMC5040",
|
|
"VZC3010",
|
|
"VZC3030"
|
|
],
|
|
"connectionTypes": {
|
|
"WPS": true,
|
|
"BLE": true
|
|
},
|
|
"kbArticles": {
|
|
"insertBatteries": "https://kb.arlo.com/980150/Safety-Rules-for-Arlo-Wire-Free-Camera-Batteries",
|
|
"syncBasestation": "https://kb.arlo.com/987/How-do-I-set-up-and-sync-my-Arlo-Wire-Free-cameras",
|
|
"sync": "https://kb.arlo.com/987/How-do-I-set-up-and-sync-my-Arlo-Wire-Free-camera",
|
|
"firmwareUpdate": "https://kb.arlo.com/4736/How-do-I-update-my-Arlo-firmware-manually"
|
|
}
|
|
},
|
|
"arloq": {
|
|
"modelIds": [
|
|
"VMC3040",
|
|
"VMC3040S"
|
|
],
|
|
"kbArticles": {
|
|
"power": "https://kb.arlo.com/1001944/How-do-I-set-up-Arlo-Q-on-iOS",
|
|
"qrCode": "https://kb.arlo.com/1001944/How-do-I-set-up-Arlo-Q-on-iOS",
|
|
"power_android": "https://kb.arlo.com/1002006/How-do-I-set-up-Arlo-Q-on-Android",
|
|
"qrCode_android":
|
|
"https://kb.arlo.com/1002006/How-do-I-set-up-Arlo-Q-on-Android"
|
|
}
|
|
},
|
|
"basestation": {
|
|
"modelIds": [
|
|
"VMB3010",
|
|
"VMB4000",
|
|
"VMB3010r2",
|
|
"VMB3500",
|
|
"VZB3010",
|
|
"VMB4500",
|
|
"VMB5000"
|
|
],
|
|
"smartHubs": [
|
|
"VMB5000"
|
|
],
|
|
"kbArticles": {
|
|
"pluginNetworkCable": "https://kb.arlo.com/1179139/How-do-I-connect-my-Arlo-or-Arlo-Pro-base-station-to-the-Internet",
|
|
"power": "https://kb.arlo.com/1179139/How-do-I-connect-my-Arlo-or-Arlo-Pro-base-station-to-the-Internet",
|
|
"led": "https://kb.arlo.com/1179139/How-do-I-connect-my-Arlo-or-Arlo-Pro-base-station-to-the-Internet",
|
|
"learnMore": "https://kb.arlo.com/000062124/How-do-I-record-4K-videos-to-a-microSD-card"
|
|
}
|
|
},
|
|
"arlobaby": {
|
|
"modelIds": [
|
|
"ABC1000"
|
|
],
|
|
"kbArticles": {
|
|
"power": "https://kb.arlo.com/1282682/How-do-I-power-cycle-my-Arlo-Baby-camera",
|
|
"qrCode": "https://kb.arlo.com/1282700/How-do-I-set-up-my-Arlo-Baby-camera"
|
|
}
|
|
},
|
|
"lteCamera":{
|
|
"modelIds":[
|
|
"VML4030"
|
|
],
|
|
"kbArticles":{
|
|
"servicePlan":"https://kb.arlo.com/1286865/What-Arlo-Mobile-service-plans-are-available",
|
|
"simActivation":"https://kb.arlo.com/1286865/What-Arlo-Mobile-service-plans-are-available",
|
|
"qrCode":"https://kb.arlo.com/1201822/How-do-I-set-up-my-Arlo-Go-camera"
|
|
}
|
|
},
|
|
"bridge": {
|
|
"modelIds": [
|
|
"ABB1000"
|
|
],
|
|
"kbArticles": {
|
|
"power": "https://kb.arlo.com/000062047",
|
|
"sync": "https://kb.arlo.com/000062037",
|
|
"qrCode": "https://kb.arlo.com/000061886",
|
|
"factoryReset": "https://kb.arlo.com/000061837"
|
|
}
|
|
},
|
|
"lights": {
|
|
"modelIds": [
|
|
"AL1101"
|
|
],
|
|
"kbArticles": {
|
|
"sync": "https://kb.arlo.com/000062005",
|
|
"insertBatteries": "https://kb.arlo.com/000061952",
|
|
"qrCode": "https://kb.arlo.com/000061886"
|
|
}
|
|
},
|
|
"routerM1":{
|
|
"modelIds":[
|
|
"MR1100"
|
|
],
|
|
"kbArticles":{
|
|
"lookupFailed":"https://kb.arlo.com/1179130/Arlo-can-t-discover-my-base-station-during-installation-what-do-I-do"
|
|
}
|
|
},
|
|
"chime": {
|
|
"modelIds": [
|
|
"AC1001"
|
|
],
|
|
"kbArticles": {
|
|
"ledNotBlinking":"https://kb.arlo.com/000061924",
|
|
"led":"https://kb.arlo.com/000061847",
|
|
"factoryReset":"https://kb.arlo.com/000061879",
|
|
"connectionFailed":"https://kb.arlo.com/000061880"
|
|
}
|
|
},
|
|
"doorbell": {
|
|
"modelIds": [
|
|
"AAD1001"
|
|
],
|
|
"kbArticles": {
|
|
"led":"https://kb.arlo.com/000061847",
|
|
"factoryReset":"https://kb.arlo.com/000061842",
|
|
"pairCamera":"https://kb.arlo.com/000061897",
|
|
"existingChime":"https://kb.arlo.com/000061856",
|
|
"noWiring":"https://kb.arlo.com/000061859",
|
|
"connectionFailed":"https://kb.arlo.com/000061868",
|
|
"pairCameraFailed":"https://kb.arlo.com/000061893",
|
|
"testChimeFailed":"https://kb.arlo.com/000061944"
|
|
},
|
|
"videos": {
|
|
"chimeType": "https://youtu.be/axytuF63VC0",
|
|
"wireDoorbell": "https://youtu.be/_5D2n3iPqW0",
|
|
"switchSetting": "https://youtu.be/BUmd4fik2RE"
|
|
},
|
|
"arloVideos": {
|
|
"chimeType": "https://vzs3-prod-common.s3.amazonaws.com/static/devicesupport/Arlo_Audio_Doorbell_Chime.mp4",
|
|
"wireDoorbell": "https://vzs3-prod-common.s3.amazonaws.com/static/devicesupport/Arlo_Audio_Doorbell_Wired.mp4",
|
|
"switchSetting": "https://vzs3-prod-common.s3.amazonaws.com/static/devicesupport/Arlo_Audio_Doorbell_Switch.mp4"
|
|
}
|
|
}
|
|
},
|
|
"arlosmart": {
|
|
"kbArticles": {
|
|
"e911": "https://www.arlo.com/en-us/landing/arlosmart/",
|
|
"callFriend": "https://www.arlo.com/en-us/landing/arlosmart/",
|
|
"4kAddOnPopup": "https://www.arlo.com/en-us/landing/arlosmart/",
|
|
"cloudRecording": "https://www.arlo.com/en-us/landing/arlosmart/",
|
|
"manageArloSmart": "https://kb.arlo.com/000062115",
|
|
"otherVideo": "https://kb.arlo.com/000062115",
|
|
"packageDetection": "https://kb.arlo.com/000062114",
|
|
"whereIsBasicSubscriptionGone": "https://kb.arlo.com/000062163"
|
|
}
|
|
}
|
|
},
|
|
"success":true
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetDeviceSupportv2"><code class="name flex">
|
|
<span>def <span class="ident">GetDeviceSupportv2</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p>
|
|
<p>It returns something like the following:
|
|
{
|
|
"devices": [
|
|
{
|
|
"deviceType": "arloq",
|
|
"modelId": [
|
|
"VMC3040"
|
|
],
|
|
"urls": {
|
|
"troubleshoot": "arloq/troubleshoot.html",
|
|
"plugin": "arloq/plugin.html",
|
|
"qrHowTo": "arloq/qrHowTo.html",
|
|
"connection": "arloq/connection.html",
|
|
"connectionInProgress": "arloq/connectionInProgress.html",
|
|
"connectionFailed": "arloq/connectionFailed.html",
|
|
"pressSync": "arloq/pressSync.html",
|
|
"resetDevice": "arloq/resetDevice.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "basestation",
|
|
"modelId": [
|
|
"VMB3010",
|
|
"VMB3010r2",
|
|
"VMB3500",
|
|
"VMB4000",
|
|
"VMB4500",
|
|
"VZB3010"
|
|
],
|
|
"urls": {
|
|
"troubleshoot": "basestation/troubleshoot.html",
|
|
"plugin": "basestation/plugin.html",
|
|
"sync3": "basestation/sync3.html",
|
|
"troubleshootBS": "basestation/troubleshootBS.html",
|
|
"connection": "basestation/connection.html",
|
|
"connectionInProgress": "basestation/connectionInProgress.html",
|
|
"sync2": "basestation/sync2.html",
|
|
"connectionFailed": "basestation/connectionFailed.html",
|
|
"sync1": "basestation/sync1.html",
|
|
"resetDevice": "basestation/resetDevice.html",
|
|
"syncComplete": "basestation/syncComplete.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "arlobaby",
|
|
"modelId": [
|
|
"ABC1000"
|
|
],
|
|
"urls": {
|
|
"bleSetupError": "arlobaby/bleSetupError.html",
|
|
"troubleshoot": "arlobaby/troubleshoot.html",
|
|
"homekitCodeInstruction": "arlobaby/homekitCodeInstruction.html",
|
|
"connectionInProgress": "arlobaby/connectionInProgress.html",
|
|
"connectionFailed": "arlobaby/connectionFailed.html",
|
|
"resetDevice": "arlobaby/resetDevice.html",
|
|
"plugin": "arlobaby/plugin.html",
|
|
"qrHowTo": "arlobaby/qrHowTo.html",
|
|
"warning": "arlobaby/warning.html",
|
|
"connection": "arlobaby/connection.html",
|
|
"pressSync": "arlobaby/pressSync.html",
|
|
"bleInactive": "arlobaby/bleInactive.html",
|
|
"pluginIOS": "arlobaby/pluginIOS.html",
|
|
"homekitSetup": "arlobaby/homekitSetup.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "lteCamera",
|
|
"modelId": [
|
|
"VML4030"
|
|
],
|
|
"urls": {
|
|
"troubleshoot": "lteCamera/troubleshoot.html",
|
|
"resetHowTo": "lteCamera/resetHowTo.html",
|
|
"plugin": "lteCamera/plugin.html",
|
|
"qrHowTo": "lteCamera/qrHowTo.html",
|
|
"connectionInProgress": "lteCamera/connectionInProgress.html",
|
|
"connectionFailed": "lteCamera/connectionFailed.html",
|
|
"resetDevice": "lteCamera/resetHowTo.html",
|
|
"resetComplete": "lteCamera/resetComplete.html",
|
|
"syncComplete": "lteCamera/syncComplete.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "arloqs",
|
|
"modelId": [
|
|
"VMC3040S"
|
|
],
|
|
"urls": {
|
|
"ethernetSetup": "arloqs/ethernetSetup.html",
|
|
"troubleshoot": "arloqs/troubleshoot.html",
|
|
"plugin": "arloqs/plugin.html",
|
|
"poeSetup": "arloqs/poeSetup.html",
|
|
"connectionInProgressWiFi": "arloqs/connectionInProgressWifi.html",
|
|
"qrHowTo": "arloqs/qrHowTo.html",
|
|
"connectionInProgress": "arloqs/connectionInProgress.html",
|
|
"connectionFailed": "arloqs/connectionFailed.html",
|
|
"pressSync": "arloqs/pressSync.html",
|
|
"connectionType": "arloqs/connectionType.html",
|
|
"resetDevice": "arloqs/resetDevice.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "bridge",
|
|
"modelId": [
|
|
"ABB1000"
|
|
],
|
|
"urls": {
|
|
"troubleshoot": "bridge/troubleshoot.html",
|
|
"fwUpdateInProgress": "bridge/fwUpdateInProgress.html",
|
|
"qrHowToUnplug": "bridge/qrHowToUnplug.html",
|
|
"fwUpdateDone": "bridge/fwUpdateDone.html",
|
|
"fwUpdateAvailable": "bridge/fwUpdateAvailable.html",
|
|
"needHelp": "https://www.arlo.com/en-us/support/#support_arlo_light",
|
|
"wifiError": "bridge/wifiError.html",
|
|
"bleAndroid": "bridge/bleInactiveAND.html",
|
|
"bleIOS": "bridge/bleInactiveIOS.html",
|
|
"connectionInProgress": "bridge/connectionInProgress.html",
|
|
"connectionFailed": "bridge/connectionFailed.html",
|
|
"manualPair": "bridge/manualPairing.html",
|
|
"resetDevice": "bridge/resetDevice.html",
|
|
"lowPower": "bridge/lowPowerZoneSetup.html",
|
|
"fwUpdateFailed": "bridge/fwUpdateFailed.html",
|
|
"fwUpdateCheckFailed": "bridge/fwUpdateCheckFailed.html",
|
|
"plugin": "bridge/plugin.html",
|
|
"qrHowTo": "bridge/qrHowTo.html",
|
|
"pressSync": "bridge/pressSync.html",
|
|
"pluginNoLED": "bridge/pluginNoLED.html",
|
|
"fwUpdateCheck": "bridge/fwUpdateCheck.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "lights",
|
|
"modelId": [
|
|
"AL1101"
|
|
],
|
|
"urls": {
|
|
"troubleshoot": "lights/troubleshoot.html",
|
|
"needHelp": "https://kb.netgear.com/000053159/Light-discovery-failed.html",
|
|
"bleInactiveAND": "lights/bleInactiveAND.html",
|
|
"connectionInProgress": "lights/connectionInProgress.html",
|
|
"connectionFailed": "lights/connectionFailed.html",
|
|
"addBattery": "lights/addBattery.html",
|
|
"tutorial1": "lights/tutorial1.html",
|
|
"plugin": "lights/plugin.html",
|
|
"tutorial2": "lights/tutorial2.html",
|
|
"tutorial3": "lights/tutorial3.html",
|
|
"configurationInProgress": "lights/configurationInProgress.html",
|
|
"qrHowTo": "lights/qrHowTo.html",
|
|
"pressSync": "lights/pressSync.html",
|
|
"bleInactiveIOS": "lights/bleInactiveIOS.html",
|
|
"syncComplete": "lights/syncComplete.html"
|
|
}
|
|
},
|
|
{
|
|
"deviceType": "routerM1",
|
|
"modelId": [
|
|
"MR1100"
|
|
],
|
|
"urls": {
|
|
"troubleshoot": "routerM1/troubleshoot.html",
|
|
"help": "routerM1/help.html",
|
|
"pairingFailed": "routerM1/pairingFailed.html",
|
|
"needHelp": "https://acupdates.netgear.com/help/redirect.aspx?url=m1arlo-kbb",
|
|
"plugin": "routerM1/plugin.html",
|
|
"pairing": "routerM1/pairing.html",
|
|
"connectionInProgress": "routerM1/connectionInProgress.html",
|
|
"sync2": "routerM1/sync2.html",
|
|
"connectionFailed": "routerM1/connectionFailed.html",
|
|
"sync1": "routerM1/sync1.html",
|
|
"sync": "routerM1/sync.html",
|
|
"syncComplete": "routerM1/syncComplete.html"
|
|
}
|
|
}
|
|
],
|
|
"selectionUrls": {
|
|
"addDevice": "addDeviceBsRuAqAqpLteAbcMrBgLt.html",
|
|
"selectBasestation": "selectBsMr.html",
|
|
"deviceSelection": "deviceBsAqAqpLteAbcMrLtSelection.html",
|
|
"selectLights": "selectBgLt.html"
|
|
},
|
|
"baseUrl": "https://vzs3-prod-common.s3.amazonaws.com/static/v2/html/en/"
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetDevices"><code class="name flex">
|
|
<span>def <span class="ident">GetDevices</span></span>(<span>self, device_type=None, filter_provisioned=None)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This method returns an array that contains the basestation, cameras, etc. and their metadata.
|
|
If you pass in a valid device type, as a string or a list, this method will return an array of just those devices that match that type. An example would be ['basestation', 'camera']
|
|
To filter provisioned or unprovisioned devices pass in a True/False value for filter_provisioned. By default both types are returned.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetEmergencyLocations"><code class="name flex">
|
|
<span>def <span class="ident">GetEmergencyLocations</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetFriends"><code class="name flex">
|
|
<span>def <span class="ident">GetFriends</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetLibrary"><code class="name flex">
|
|
<span>def <span class="ident">GetLibrary</span></span>(<span>self, from_date, to_date)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This call returns the following:
|
|
presignedContentUrl is a link to the actual video in Amazon AWS.
|
|
presignedThumbnailUrl is a link to the thumbnail .jpg of the actual video in Amazon AWS.</p>
|
|
<p>[
|
|
{
|
|
"mediaDurationSecond": 30,
|
|
"contentType": "video/mp4",
|
|
"name": "XXXXXXXXXXXXX",
|
|
"presignedContentUrl": "https://arlos3-prod-z2.s3.amazonaws.com/XXXXXXX_XXXX_XXXX_XXXX_XXXXXXXXXXXXX/XXX-XXXXXXX/XXXXXXXXXXXXX/recordings/XXXXXXXXXXXXX.mp4?AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Expires=1472968703&Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
"lastModified": 1472881430181,
|
|
"localCreatedDate": XXXXXXXXXXXXX,
|
|
"presignedThumbnailUrl": "https://arlos3-prod-z2.s3.amazonaws.com/XXXXXXX_XXXX_XXXX_XXXX_XXXXXXXXXXXXX/XXX-XXXXXXX/XXXXXXXXXXXXX/recordings/XXXXXXXXXXXXX_thumb.jpg?AWSAccessKeyId=XXXXXXXXXXXXXXXXXXXX&Expires=1472968703&Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
"reason": "motionRecord",
|
|
"deviceId": "XXXXXXXXXXXXX",
|
|
"createdBy": "XXXXXXXXXXXXX",
|
|
"createdDate": "20160903",
|
|
"timeZone": "America/Chicago",
|
|
"ownerId": "XXX-XXXXXXX",
|
|
"utcCreatedDate": XXXXXXXXXXXXX,
|
|
"currentState": "new",
|
|
"mediaDuration": "00:00:30"
|
|
}
|
|
]</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetLibraryMetaData"><code class="name flex">
|
|
<span>def <span class="ident">GetLibraryMetaData</span></span>(<span>self, from_date, to_date)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetLocations"><code class="name flex">
|
|
<span>def <span class="ident">GetLocations</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This call returns the following:
|
|
{
|
|
"id":"XXX-XXXXXXX_20160823042047",
|
|
"name":"Home",
|
|
"ownerId":"XXX-XXXXXXX",
|
|
"longitude":X.XXXXXXXXXXXXXXXX,
|
|
"latitude":X.XXXXXXXXXXXXXXXX,
|
|
"address":"123 Middle Of Nowhere Bumbfuck, EG, 12345",
|
|
"homeMode":"schedule",
|
|
"awayMode":"mode1",
|
|
"geoEnabled":false,
|
|
"geoRadius":150.0,
|
|
"uniqueIds":[
|
|
"XXX-XXXXXXX_XXXXXXXXXXXXX"
|
|
],
|
|
"smartDevices":[
|
|
"XXXXXXXXXX",
|
|
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
|
|
],
|
|
"pushNotifyDevices":[
|
|
"XXXXXXXXXX"
|
|
]
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetModes"><code class="name flex">
|
|
<span>def <span class="ident">GetModes</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This is the older API for getting the "mode". It still works, but GetModesV2 is the way the Arlo software does it these days.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetModesV2"><code class="name flex">
|
|
<span>def <span class="ident">GetModesV2</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This is the newer API for getting the "mode". This method also returns the schedules.
|
|
Set a non-schedule mode to be active: {"activeAutomations":[{"deviceId":"XXXXXXXXXXXXX","timestamp":1532015622105,"activeModes":["mode1"],"activeSchedules":[]}]}
|
|
Set a schedule to be active: {"activeAutomations":[{"deviceId":"XXXXXXXXXXXXX","timestamp":1532015790139,"activeModes":[],"activeSchedules":["schedule.1"]}]}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetOCProfile"><code class="name flex">
|
|
<span>def <span class="ident">GetOCProfile</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetPaymentBilling"><code class="name flex">
|
|
<span>def <span class="ident">GetPaymentBilling</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetPaymentOffers"><code class="name flex">
|
|
<span>def <span class="ident">GetPaymentOffers</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetPaymentOffersV2"><code class="name flex">
|
|
<span>def <span class="ident">GetPaymentOffersV2</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetPaymentOffersV3"><code class="name flex">
|
|
<span>def <span class="ident">GetPaymentOffersV3</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetPaymentOffersV4"><code class="name flex">
|
|
<span>def <span class="ident">GetPaymentOffersV4</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetProfile"><code class="name flex">
|
|
<span>def <span class="ident">GetProfile</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetRecording"><code class="name flex">
|
|
<span>def <span class="ident">GetRecording</span></span>(<span>self, url, chunk_size=4096)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Returns the whole video from the presignedContentUrl.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetRules"><code class="name flex">
|
|
<span>def <span class="ident">GetRules</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetSensorConfig"><code class="name flex">
|
|
<span>def <span class="ident">GetSensorConfig</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetServiceLevel"><code class="name flex">
|
|
<span>def <span class="ident">GetServiceLevel</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetServiceLevelSettings"><code class="name flex">
|
|
<span>def <span class="ident">GetServiceLevelSettings</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetServiceLevelV2"><code class="name flex">
|
|
<span>def <span class="ident">GetServiceLevelV2</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetServiceLevelV3"><code class="name flex">
|
|
<span>def <span class="ident">GetServiceLevelV3</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>DEPRECATED: This API still works, but I don't see it being called in the web UI anymore.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetServiceLevelV4"><code class="name flex">
|
|
<span>def <span class="ident">GetServiceLevelV4</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetSession"><code class="name flex">
|
|
<span>def <span class="ident">GetSession</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Returns something like the following:
|
|
{
|
|
"userId": "XXX-XXXXXXX",
|
|
"email": "jeffreydwalter@gmail.com",
|
|
"token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
"paymentId": "XXXXXXXX",
|
|
"accountStatus": "registered",
|
|
"serialNumber": "XXXXXXXXXXXXXX",
|
|
"countryCode": "US",
|
|
"tocUpdate": false,
|
|
"policyUpdate": false,
|
|
"validEmail": true,
|
|
"arlo": true,
|
|
"dateCreated": 1463975008658
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetSmartAlerts"><code class="name flex">
|
|
<span>def <span class="ident">GetSmartAlerts</span></span>(<span>self, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetSmartFeatures"><code class="name flex">
|
|
<span>def <span class="ident">GetSmartFeatures</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.GetUpdateFeatures"><code class="name flex">
|
|
<span>def <span class="ident">GetUpdateFeatures</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.HandleEvents"><code class="name flex">
|
|
<span>def <span class="ident">HandleEvents</span></span>(<span>self, basestation, callback, timeout=120)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Use this method to subscribe to the event stream and provide a callback that will be called for event event received.
|
|
This function will allow you to potentially write a callback that can handle all of the events received from the event stream.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Login"><code class="name flex">
|
|
<span>def <span class="ident">Login</span></span>(<span>self, username, password)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This call returns the following:
|
|
{
|
|
"userId":"XXX-XXXXXXX",
|
|
"email":"user@example.com",
|
|
"token":"2_5HicFJMXXXXX-S_7IuK2EqOUHXXXXXXXXXXX1CXKWTThgU18Va_XXXXXX5S00hUafv3PV_if_Bl_rhiFsDHYwhxI3CxlVnR5f3q2XXXXXX-Wnt9F7D82uN1f4cXXXXX-FMUsWF_6tMBqwn6DpzOaIB7ciJrnr2QJyKewbQouGM6",
|
|
"paymentId":"XXXXXXXX",
|
|
"authenticated":1472961381,
|
|
"accountStatus":"registered",
|
|
"serialNumber":"XXXXXXXXXXXXX",
|
|
"countryCode":"US",
|
|
"tocUpdate":false,
|
|
"policyUpdate":false,
|
|
"validEmail":true
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Logout"><code class="name flex">
|
|
<span>def <span class="ident">Logout</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Notify"><code class="name flex">
|
|
<span>def <span class="ident">Notify</span></span>(<span>self, basestation, body)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>The following are examples of the json you would need to pass in the body of the Notify() call to interact with Arlo:</p>
|
|
<h6 id="_1"></h6>
|
|
<h6 id="_2"></h6>
|
|
<dl>
|
|
<dt><strong><code>NOTE</code></strong> : <code>While</code> <code>you</code> <code>can</code> <code>call</code> <code>Notify</code>() <code>directly</code>, <code>responses</code> <code>from</code> <code>these</code> <code>notify</code> <code>calls</code> <code>are</code> <code>sent</code> <code>to</code> <code>the</code> <code>EventStream</code> (<code>see</code> <code>Subscribe</code>()),</dt>
|
|
<dd> </dd>
|
|
</dl>
|
|
<p>and so it's better to use the Get/Set methods that are implemented using the NotifyAndGetResponse() method.</p>
|
|
<h6 id="_3"></h6>
|
|
<h6 id="_4"></h6>
|
|
<p>Set System Mode (Armed, Disarmed) - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"set","resource":"modes","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"active":"mode0"}}
|
|
Set System Mode (Calendar) - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"set","resource":"schedule","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"active":true}}
|
|
Configure The Schedule (Calendar) - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"set","resource":"schedule","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"schedule":[{"modeId":"mode0","startTime":0},{"modeId":"mode2","startTime":28800000},{"modeId":"mode0","startTime":64800000},{"modeId":"mode0","startTime":86400000},{"modeId":"mode2","startTime":115200000},{"modeId":"mode0","startTime":151200000},{"modeId":"mode0","startTime":172800000},{"modeId":"mode2","startTime":201600000},{"modeId":"mode0","startTime":237600000},{"modeId":"mode0","startTime":259200000},{"modeId":"mode2","startTime":288000000},{"modeId":"mode0","startTime":324000000},{"modeId":"mode0","startTime":345600000},{"modeId":"mode2","startTime":374400000},{"modeId":"mode0","startTime":410400000},{"modeId":"mode0","startTime":432000000},{"modeId":"mode0","startTime":518400000}]}
|
|
Create Mode -
|
|
{"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"add","resource":"rules","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"name":"Record video on Camera 1 if Camera 1 detects motion","id":"ruleNew","triggers":[{"type":"pirMotionActive","deviceId":"XXXXXXXXXXXXX","sensitivity":80}],"actions":[{"deviceId":"XXXXXXXXXXXXX","type":"recordVideo","stopCondition":{"type":"timeout","timeout":15}},{"type":"sendEmailAlert","recipients":["<strong>OWNER_EMAIL</strong>"]},{"type":"pushNotification"}]}}
|
|
{"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"add","resource":"modes","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"name":"Test","rules":["rule3"]}}
|
|
Delete Mode - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"delete","resource":"modes/mode3","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true}
|
|
Camera Off - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"set","resource":"cameras/XXXXXXXXXXXXX","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"privacyActive":false}}
|
|
Night Vision On - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"set","resource":"cameras/XXXXXXXXXXXXX","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"zoom":{"topleftx":0,"toplefty":0,"bottomrightx":1280,"bottomrighty":720},"mirror":true,"flip":true,"nightVisionMode":1,"powerSaveMode":2}}
|
|
Motion Detection Test - {"from":"XXX-XXXXXXX_web","to":"XXXXXXXXXXXXX","action":"set","resource":"cameras/XXXXXXXXXXXXX","transId":"web!XXXXXXXX.XXXXXXXXXXXXXXXXXXXX","publishResponse":true,"properties":{"motionSetupModeEnabled":true,"motionSetupModeSensitivity":80}}</p>
|
|
<p>device_id = locations.data.uniqueIds</p>
|
|
<p>System Properties: ("resource":"modes")
|
|
active (string) - Mode Selection (mode2 = All Motion On, mode1 = Armed, mode0 = Disarmed, etc.)</p>
|
|
<p>System Properties: ("resource":"schedule")
|
|
active (bool) - Mode Selection (true = Calendar)</p>
|
|
<p>Camera Properties: ("resource":"cameras/{id}")
|
|
privacyActive (bool) - Camera On/Off
|
|
zoom (topleftx (int), toplefty (int), bottomrightx (int), bottomrighty (int)) - Camera Zoom Level
|
|
mirror (bool) - Mirror Image (left-to-right or right-to-left)
|
|
flip (bool) - Flip Image Vertically
|
|
nightVisionMode (int) - Night Mode Enabled/Disabled (1, 0)
|
|
powerSaveMode (int) - PowerSaver Mode (3 = Best Video, 2 = Optimized, 1 = Best Battery Life)
|
|
motionSetupModeEnabled (bool) - Motion Detection Setup Enabled/Disabled
|
|
motionSetupModeSensitivity (int 0-100) - Motion Detection Sensitivity</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.NotifyAndGetResponse"><code class="name flex">
|
|
<span>def <span class="ident">NotifyAndGetResponse</span></span>(<span>self, basestation, body, timeout=120)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.PauseTrack"><code class="name flex">
|
|
<span>def <span class="ident">PauseTrack</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Ping"><code class="name flex">
|
|
<span>def <span class="ident">Ping</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.PlayTrack"><code class="name flex">
|
|
<span>def <span class="ident">PlayTrack</span></span>(<span>self, basestation, track_id='2391d620-e491-4412-99f6-e9a40d6046ed', position=0)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Defaulting to 'hugh little baby', which is a supplied track. I hope the ID is the same for all.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.PushToTalk"><code class="name flex">
|
|
<span>def <span class="ident">PushToTalk</span></span>(<span>self, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.RemoveFriend"><code class="name flex">
|
|
<span>def <span class="ident">RemoveFriend</span></span>(<span>self, email)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Removes a person you've granted access to.</p>
|
|
<p>email: email of user you want to revoke access from.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.ResendFriendInvite"><code class="name flex">
|
|
<span>def <span class="ident">ResendFriendInvite</span></span>(<span>self, friend)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><dl>
|
|
<dt>This API will resend an invitation email to a user that you've AddFriend'd. You will need to get the friend object by calling GetFriend() because it includes a token that must be passed to this API.</dt>
|
|
<dt><strong><code>friend</code></strong> : {<code>"ownerId"</code>:<code>"XXX</code>-<code>XXXXXXX"</code>,<code>"token"</code>:<code>"really</code> <code>long</code> <code>string</code> <code>that</code> <code>you</code> <code>get</code> <code>from</code> <code>the</code> <code>GetFriends</code>() <code>API"</code>,<code>"firstName"</code>:<code>"John"</code>,<code>"lastName"</code>:<code>"Doe"</code>,<code>"devices"</code>:{<code>"XXX</code>-<code>XXXXXXX_XXXXXXXXXXXX"</code>:<code>"Camera1"</code>,<code>"XXX</code>-<code>XXXXXXX_XXXXXXXXXXXX"</code>:<code>"Camera2"</code>},<code>"lastModified"</code>:<code>1548470485419</code>,<code>"adminUser"</code>:<code>false</code>,<code>"email"</code>:<code>"john.doe</code>@<code>example.com"</code>}</dt>
|
|
<dd> </dd>
|
|
</dl></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Reset"><code class="name flex">
|
|
<span>def <span class="ident">Reset</span></span>(<span>self)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.RestartBasestation"><code class="name flex">
|
|
<span>def <span class="ident">RestartBasestation</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAirQualityAlertOff"><code class="name flex">
|
|
<span>def <span class="ident">SetAirQualityAlertOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAirQualityAlertOn"><code class="name flex">
|
|
<span>def <span class="ident">SetAirQualityAlertOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAirQualityAlertThresholdMax"><code class="name flex">
|
|
<span>def <span class="ident">SetAirQualityAlertThresholdMax</span></span>(<span>self, basestation, number=700)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAirQualityAlertThresholdMin"><code class="name flex">
|
|
<span>def <span class="ident">SetAirQualityAlertThresholdMin</span></span>(<span>self, basestation, number=400)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAirQualityRecordingOff"><code class="name flex">
|
|
<span>def <span class="ident">SetAirQualityRecordingOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAirQualityRecordingOn"><code class="name flex">
|
|
<span>def <span class="ident">SetAirQualityRecordingOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAudioAlertsOff"><code class="name flex">
|
|
<span>def <span class="ident">SetAudioAlertsOff</span></span>(<span>self, basestation, sensitivity=3)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAudioAlertsOn"><code class="name flex">
|
|
<span>def <span class="ident">SetAudioAlertsOn</span></span>(<span>self, basestation, sensitivity=3)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetAutomationActivityZones"><code class="name flex">
|
|
<span>def <span class="ident">SetAutomationActivityZones</span></span>(<span>self, camera, zone, coords, color)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>An activity zone is the area you draw in your video in the UI to tell Arlo what part of the scene to "watch".
|
|
This method takes 4 arguments.
|
|
camera: the camera you want to set an activity zone for.
|
|
name: "Zone 1" - the name of your activity zone.
|
|
coords: [{"x":0.37946943483275664,"y":0.3790983606557377},{"x":0.8685121107266436,"y":0.3790983606557377},{"x":0.8685121107266436,"y":1},{"x":0.37946943483275664,"y":1}] - these coordinates are the bonding box for the activity zone.
|
|
color: 45136 - the color for your bounding box.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetHumidityAlertOff"><code class="name flex">
|
|
<span>def <span class="ident">SetHumidityAlertOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetHumidityAlertOn"><code class="name flex">
|
|
<span>def <span class="ident">SetHumidityAlertOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetHumidityAlertThresholdMax"><code class="name flex">
|
|
<span>def <span class="ident">SetHumidityAlertThresholdMax</span></span>(<span>self, basestation, number=800)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetHumidityAlertThresholdMin"><code class="name flex">
|
|
<span>def <span class="ident">SetHumidityAlertThresholdMin</span></span>(<span>self, basestation, number=400)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetHumidityRecordingOff"><code class="name flex">
|
|
<span>def <span class="ident">SetHumidityRecordingOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetHumidityRecordingOn"><code class="name flex">
|
|
<span>def <span class="ident">SetHumidityRecordingOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetLoopBackModeContinuous"><code class="name flex">
|
|
<span>def <span class="ident">SetLoopBackModeContinuous</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetLoopBackModeSingleTrack"><code class="name flex">
|
|
<span>def <span class="ident">SetLoopBackModeSingleTrack</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetMotionAlertsOff"><code class="name flex">
|
|
<span>def <span class="ident">SetMotionAlertsOff</span></span>(<span>self, basestation, sensitivity=5)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetMotionAlertsOn"><code class="name flex">
|
|
<span>def <span class="ident">SetMotionAlertsOn</span></span>(<span>self, basestation, sensitivity=5)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightBrightness"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightBrightness</span></span>(<span>self, basestation, level=200)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightColor"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightColor</span></span>(<span>self, basestation, red=255, green=255, blue=255)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightMode"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightMode</span></span>(<span>self, basestation, mode='rainbow')</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>mode: rainbow or rgb.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightOff"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightOn"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightTimerOff"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightTimerOff</span></span>(<span>self, basestation, time=0, timediff=300)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetNightLightTimerOn"><code class="name flex">
|
|
<span>def <span class="ident">SetNightLightTimerOn</span></span>(<span>self, basestation, time=1576435472, timediff=0)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetOCProfile"><code class="name flex">
|
|
<span>def <span class="ident">SetOCProfile</span></span>(<span>self, firstName, lastName, country='United States', language='en', spam_me=0)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetSchedule"><code class="name flex">
|
|
<span>def <span class="ident">SetSchedule</span></span>(<span>self, basestation, schedule)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>The following json is what was sent to the API when I edited my schedule. It contains all of the data necessary to configure a whole week. It's a little convoluted, but you can just play around with the scheduler in Chrome and watch the schema that gets sent.</p>
|
|
<p>{
|
|
"schedule": [
|
|
{
|
|
"duration": 600,
|
|
"startActions": {
|
|
"disableModes": [
|
|
"mode0"
|
|
],
|
|
"enableModes": [
|
|
"mode1"
|
|
]
|
|
},
|
|
"days": [
|
|
"Mo",
|
|
"Tu",
|
|
"We",
|
|
"Th",
|
|
"Fr",
|
|
"Sa",
|
|
"Su"
|
|
],
|
|
"startTime": 0,
|
|
"type": "weeklyAction",
|
|
"endActions": {
|
|
"disableModes": [
|
|
"mode1"
|
|
],
|
|
"enableModes": [
|
|
"mode0"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"duration": 360,
|
|
"startActions": {
|
|
"disableModes": [
|
|
"mode0"
|
|
],
|
|
"enableModes": [
|
|
"mode2"
|
|
]
|
|
},
|
|
"days": [
|
|
"Mo",
|
|
"Tu",
|
|
"We",
|
|
"Th",
|
|
"Fr",
|
|
"Sa",
|
|
"Su"
|
|
],
|
|
"startTime": 1080,
|
|
"type": "weeklyAction",
|
|
"endActions": {
|
|
"disableModes": [
|
|
"mode2"
|
|
],
|
|
"enableModes": [
|
|
"mode0"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"duration": 480,
|
|
"startActions": {
|
|
"disableModes": [
|
|
"mode0"
|
|
],
|
|
"enableModes": [
|
|
"mode3"
|
|
]
|
|
},
|
|
"days": [
|
|
"Tu"
|
|
],
|
|
"startTime": 600,
|
|
"type": "weeklyAction",
|
|
"endActions": {
|
|
"disableModes": [
|
|
"mode3"
|
|
],
|
|
"enableModes": [
|
|
"mode0"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"name": "",
|
|
"id": "schedule.1",
|
|
"enabled": true
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetShuffleOff"><code class="name flex">
|
|
<span>def <span class="ident">SetShuffleOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetShuffleOn"><code class="name flex">
|
|
<span>def <span class="ident">SetShuffleOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetSleepTimerOff"><code class="name flex">
|
|
<span>def <span class="ident">SetSleepTimerOff</span></span>(<span>self, basestation, time=0, timediff=300)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetSleepTimerOn"><code class="name flex">
|
|
<span>def <span class="ident">SetSleepTimerOn</span></span>(<span>self, basestation, time=1576435472, timediff=0)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempAlertOff"><code class="name flex">
|
|
<span>def <span class="ident">SetTempAlertOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempAlertOn"><code class="name flex">
|
|
<span>def <span class="ident">SetTempAlertOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempAlertThresholdMax"><code class="name flex">
|
|
<span>def <span class="ident">SetTempAlertThresholdMax</span></span>(<span>self, basestation, number=240)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempAlertThresholdMin"><code class="name flex">
|
|
<span>def <span class="ident">SetTempAlertThresholdMin</span></span>(<span>self, basestation, number=200)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempRecordingOff"><code class="name flex">
|
|
<span>def <span class="ident">SetTempRecordingOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempRecordingOn"><code class="name flex">
|
|
<span>def <span class="ident">SetTempRecordingOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetTempUnit"><code class="name flex">
|
|
<span>def <span class="ident">SetTempUnit</span></span>(<span>self, uniqueId, unit='C')</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SetVolume"><code class="name flex">
|
|
<span>def <span class="ident">SetVolume</span></span>(<span>self, basestation, mute=False, volume=50)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SirenOff"><code class="name flex">
|
|
<span>def <span class="ident">SirenOff</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SirenOn"><code class="name flex">
|
|
<span>def <span class="ident">SirenOn</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SkipTrack"><code class="name flex">
|
|
<span>def <span class="ident">SkipTrack</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.StartRecording"><code class="name flex">
|
|
<span>def <span class="ident">StartRecording</span></span>(<span>self, basestation, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This function causes the camera to start recording.
|
|
You can get the timezone from GetDevices().</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.StartStream"><code class="name flex">
|
|
<span>def <span class="ident">StartStream</span></span>(<span>self, basestation, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This function returns the url of the rtsp video stream.
|
|
This stream needs to be called within 30 seconds or else it becomes invalid.
|
|
It can be streamed with: ffmpeg -re -i 'rtsps://<url>' -acodec copy -vcodec copy test.mp4
|
|
The request to /users/devices/startStream returns: { url:rtsp://<url>:443/vzmodulelive?egressToken=b<xx>&userAgent=iOS&cameraId=<camid>}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.StopRecording"><code class="name flex">
|
|
<span>def <span class="ident">StopRecording</span></span>(<span>self, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This function causes the camera to stop recording.
|
|
You can get the timezone from GetDevices().</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.StopStream"><code class="name flex">
|
|
<span>def <span class="ident">StopStream</span></span>(<span>self, basestation, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.StreamRecording"><code class="name flex">
|
|
<span>def <span class="ident">StreamRecording</span></span>(<span>self, url, chunk_size=4096)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Returns a generator that is the chunked video stream from the presignedContentUrl.</p>
|
|
<dl>
|
|
<dt><strong><code>url</code></strong> : <code>presignedContentUrl</code></dt>
|
|
<dd> </dd>
|
|
</dl></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Subscribe"><code class="name flex">
|
|
<span>def <span class="ident">Subscribe</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Arlo uses the EventStream interface in the browser to do pub/sub style messaging.
|
|
Unfortunately, this appears to be the only way Arlo communicates these messages.</p>
|
|
<p>This function makes the initial GET request to /subscribe, which returns the EventStream socket.
|
|
Once we have that socket, the API requires a POST request to /notify with the "subscriptionsresource.
|
|
This call "registersthe device (which should be the basestation) so that events will be sent to the EventStream
|
|
when subsequent calls to /notify are made.</p>
|
|
<p>Since this interface is asynchronous, and this is a quick and dirty hack to get this working, I'm using a thread
|
|
to listen to the EventStream. This thread puts events into a queue. Some polling is required (see NotifyAndGetResponse()) because
|
|
the event messages aren't guaranteed to be delivered in any specific order, but I wanted to maintain a synchronous style API.</p>
|
|
<p>You generally shouldn't need to call Subscribe() directly, although I'm leaving it "publicfor now.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.SubscribeToMotionEvents"><code class="name flex">
|
|
<span>def <span class="ident">SubscribeToMotionEvents</span></span>(<span>self, basestation, callback, timeout=120)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Use this method to subscribe to motion events. You must provide a callback function which will get called once per motion event.</p>
|
|
<p>The callback function should have the following signature:
|
|
def callback(self, event)</p>
|
|
<p>This is an example of handling a specific event, in reality, you'd probably want to write a callback for HandleEvents()
|
|
that has a big switch statement in it to handle all the various events Arlo produces.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.ToggleCamera"><code class="name flex">
|
|
<span>def <span class="ident">ToggleCamera</span></span>(<span>self, basestation, camera, active=True)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>active: True - Camera is off.
|
|
active: False - Camera is on.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.TriggerAndHandleEvent"><code class="name flex">
|
|
<span>def <span class="ident">TriggerAndHandleEvent</span></span>(<span>self, basestation, trigger, callback, timeout=120)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>Use this method to subscribe to the event stream and provide a callback that will be called for event event received.
|
|
This function will allow you to potentially write a callback that can handle all of the events received from the event stream.
|
|
NOTE: Use this function if you need to run some code after subscribing to the eventstream, but before your callback to handle the events runs.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.TriggerFullFrameSnapshot"><code class="name flex">
|
|
<span>def <span class="ident">TriggerFullFrameSnapshot</span></span>(<span>self, basestation, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This function causes the camera to record a fullframe snapshot.
|
|
The presignedFullFrameSnapshotUrl url is returned.
|
|
Use DownloadSnapshot() to download the actual image file.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.TriggerStreamSnapshot"><code class="name flex">
|
|
<span>def <span class="ident">TriggerStreamSnapshot</span></span>(<span>self, basestation, camera)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This function causes the camera to snapshot while recording.
|
|
NOTE: You MUST call StartStream() before calling this function.
|
|
If you call StartStream(), you have to start reading data from the stream, or streaming will be cancelled
|
|
and taking a snapshot may fail (since it requires the stream to be active).</p>
|
|
<p>NOTE: You should not use this function is you just want a snapshot and aren't intending to stream.
|
|
Use TriggerFullFrameSnapshot() instead.</p>
|
|
<p>NOTE: Use DownloadSnapshot() to download the actual image file.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.UnPauseTrack"><code class="name flex">
|
|
<span>def <span class="ident">UnPauseTrack</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.Unsubscribe"><code class="name flex">
|
|
<span>def <span class="ident">Unsubscribe</span></span>(<span>self, basestation)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This method stops the EventStream subscription and removes it from the event_stream collection.</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.UpdateDeviceName"><code class="name flex">
|
|
<span>def <span class="ident">UpdateDeviceName</span></span>(<span>self, device, name)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.UpdateDisplayOrder"><code class="name flex">
|
|
<span>def <span class="ident">UpdateDisplayOrder</span></span>(<span>self, body)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This is an example of the json you would pass in the body to UpdateDisplayOrder() of your devices in the UI.</p>
|
|
<p>XXXXXXXXXXXXX is the device id of each camera. You can get this from GetDevices().
|
|
{
|
|
"devices":{
|
|
"XXXXXXXXXXXXX":1,
|
|
"XXXXXXXXXXXXX":2,
|
|
"XXXXXXXXXXXXX":3
|
|
}
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.UpdateFriend"><code class="name flex">
|
|
<span>def <span class="ident">UpdateFriend</span></span>(<span>self, body)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"><p>This is an example of the json you would pass in the body:
|
|
{
|
|
"firstName":"Some",
|
|
"lastName":"Body",
|
|
"devices":{
|
|
"XXXXXXXXXXXXX":"Camera 1",
|
|
"XXXXXXXXXXXXX":"Camera 2 ",
|
|
"XXXXXXXXXXXXX":"Camera 3"
|
|
},
|
|
"lastModified":1463977440911,
|
|
"adminUser":true,
|
|
"email":"user@example.com",
|
|
"id":"XXX-XXXXXXX"
|
|
}</p></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.UpdatePassword"><code class="name flex">
|
|
<span>def <span class="ident">UpdatePassword</span></span>(<span>self, password)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.UpdateProfile"><code class="name flex">
|
|
<span>def <span class="ident">UpdateProfile</span></span>(<span>self, first_name, last_name)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.genTransId"><code class="name flex">
|
|
<span>def <span class="ident">genTransId</span></span>(<span>self, trans_type='web')</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.interrupt_handler"><code class="name flex">
|
|
<span>def <span class="ident">interrupt_handler</span></span>(<span>self, signum, frame)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
<dt id="arlo.Arlo.to_timestamp"><code class="name flex">
|
|
<span>def <span class="ident">to_timestamp</span></span>(<span>self, dt)</span>
|
|
</code></dt>
|
|
<dd>
|
|
<section class="desc"></section>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
</dl>
|
|
</section>
|
|
</article>
|
|
<nav id="sidebar">
|
|
<h1>Index</h1>
|
|
<div class="toc">
|
|
<ul></ul>
|
|
</div>
|
|
<ul id="index">
|
|
<li><h3><a href="#header-classes">Classes</a></h3>
|
|
<ul>
|
|
<li>
|
|
<h4><code><a title="arlo.Arlo" href="#arlo.Arlo">Arlo</a></code></h4>
|
|
<ul class="two-column">
|
|
<li><code><a title="arlo.Arlo.AddFriend" href="#arlo.Arlo.AddFriend">AddFriend</a></code></li>
|
|
<li><code><a title="arlo.Arlo.AdjustBrightness" href="#arlo.Arlo.AdjustBrightness">AdjustBrightness</a></code></li>
|
|
<li><code><a title="arlo.Arlo.AlertNotificationMethods" href="#arlo.Arlo.AlertNotificationMethods">AlertNotificationMethods</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Arm" href="#arlo.Arlo.Arm">Arm</a></code></li>
|
|
<li><code><a title="arlo.Arlo.BatchDeleteRecordings" href="#arlo.Arlo.BatchDeleteRecordings">BatchDeleteRecordings</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Calendar" href="#arlo.Arlo.Calendar">Calendar</a></code></li>
|
|
<li><code><a title="arlo.Arlo.CustomMode" href="#arlo.Arlo.CustomMode">CustomMode</a></code></li>
|
|
<li><code><a title="arlo.Arlo.DeleteMode" href="#arlo.Arlo.DeleteMode">DeleteMode</a></code></li>
|
|
<li><code><a title="arlo.Arlo.DeleteRecording" href="#arlo.Arlo.DeleteRecording">DeleteRecording</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Disarm" href="#arlo.Arlo.Disarm">Disarm</a></code></li>
|
|
<li><code><a title="arlo.Arlo.DownloadRecording" href="#arlo.Arlo.DownloadRecording">DownloadRecording</a></code></li>
|
|
<li><code><a title="arlo.Arlo.DownloadSnapshot" href="#arlo.Arlo.DownloadSnapshot">DownloadSnapshot</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Geofencing" href="#arlo.Arlo.Geofencing">Geofencing</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetAudioPlayback" href="#arlo.Arlo.GetAudioPlayback">GetAudioPlayback</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetAutomationActivityZones" href="#arlo.Arlo.GetAutomationActivityZones">GetAutomationActivityZones</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetAutomationDefinitions" href="#arlo.Arlo.GetAutomationDefinitions">GetAutomationDefinitions</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetBaseStationState" href="#arlo.Arlo.GetBaseStationState">GetBaseStationState</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetCalendar" href="#arlo.Arlo.GetCalendar">GetCalendar</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetCameraState" href="#arlo.Arlo.GetCameraState">GetCameraState</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetCameraTempReading" href="#arlo.Arlo.GetCameraTempReading">GetCameraTempReading</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetCvrPlaylist" href="#arlo.Arlo.GetCvrPlaylist">GetCvrPlaylist</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetDeviceCapabilities" href="#arlo.Arlo.GetDeviceCapabilities">GetDeviceCapabilities</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetDeviceSupport" href="#arlo.Arlo.GetDeviceSupport">GetDeviceSupport</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetDeviceSupportV3" href="#arlo.Arlo.GetDeviceSupportV3">GetDeviceSupportV3</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetDeviceSupportv2" href="#arlo.Arlo.GetDeviceSupportv2">GetDeviceSupportv2</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetDevices" href="#arlo.Arlo.GetDevices">GetDevices</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetEmergencyLocations" href="#arlo.Arlo.GetEmergencyLocations">GetEmergencyLocations</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetFriends" href="#arlo.Arlo.GetFriends">GetFriends</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetLibrary" href="#arlo.Arlo.GetLibrary">GetLibrary</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetLibraryMetaData" href="#arlo.Arlo.GetLibraryMetaData">GetLibraryMetaData</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetLocations" href="#arlo.Arlo.GetLocations">GetLocations</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetModes" href="#arlo.Arlo.GetModes">GetModes</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetModesV2" href="#arlo.Arlo.GetModesV2">GetModesV2</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetOCProfile" href="#arlo.Arlo.GetOCProfile">GetOCProfile</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetPaymentBilling" href="#arlo.Arlo.GetPaymentBilling">GetPaymentBilling</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetPaymentOffers" href="#arlo.Arlo.GetPaymentOffers">GetPaymentOffers</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetPaymentOffersV2" href="#arlo.Arlo.GetPaymentOffersV2">GetPaymentOffersV2</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetPaymentOffersV3" href="#arlo.Arlo.GetPaymentOffersV3">GetPaymentOffersV3</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetPaymentOffersV4" href="#arlo.Arlo.GetPaymentOffersV4">GetPaymentOffersV4</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetProfile" href="#arlo.Arlo.GetProfile">GetProfile</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetRecording" href="#arlo.Arlo.GetRecording">GetRecording</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetRules" href="#arlo.Arlo.GetRules">GetRules</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetSensorConfig" href="#arlo.Arlo.GetSensorConfig">GetSensorConfig</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetServiceLevel" href="#arlo.Arlo.GetServiceLevel">GetServiceLevel</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetServiceLevelSettings" href="#arlo.Arlo.GetServiceLevelSettings">GetServiceLevelSettings</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetServiceLevelV2" href="#arlo.Arlo.GetServiceLevelV2">GetServiceLevelV2</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetServiceLevelV3" href="#arlo.Arlo.GetServiceLevelV3">GetServiceLevelV3</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetServiceLevelV4" href="#arlo.Arlo.GetServiceLevelV4">GetServiceLevelV4</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetSession" href="#arlo.Arlo.GetSession">GetSession</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetSmartAlerts" href="#arlo.Arlo.GetSmartAlerts">GetSmartAlerts</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetSmartFeatures" href="#arlo.Arlo.GetSmartFeatures">GetSmartFeatures</a></code></li>
|
|
<li><code><a title="arlo.Arlo.GetUpdateFeatures" href="#arlo.Arlo.GetUpdateFeatures">GetUpdateFeatures</a></code></li>
|
|
<li><code><a title="arlo.Arlo.HandleEvents" href="#arlo.Arlo.HandleEvents">HandleEvents</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Login" href="#arlo.Arlo.Login">Login</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Logout" href="#arlo.Arlo.Logout">Logout</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Notify" href="#arlo.Arlo.Notify">Notify</a></code></li>
|
|
<li><code><a title="arlo.Arlo.NotifyAndGetResponse" href="#arlo.Arlo.NotifyAndGetResponse">NotifyAndGetResponse</a></code></li>
|
|
<li><code><a title="arlo.Arlo.PauseTrack" href="#arlo.Arlo.PauseTrack">PauseTrack</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Ping" href="#arlo.Arlo.Ping">Ping</a></code></li>
|
|
<li><code><a title="arlo.Arlo.PlayTrack" href="#arlo.Arlo.PlayTrack">PlayTrack</a></code></li>
|
|
<li><code><a title="arlo.Arlo.PushToTalk" href="#arlo.Arlo.PushToTalk">PushToTalk</a></code></li>
|
|
<li><code><a title="arlo.Arlo.RemoveFriend" href="#arlo.Arlo.RemoveFriend">RemoveFriend</a></code></li>
|
|
<li><code><a title="arlo.Arlo.ResendFriendInvite" href="#arlo.Arlo.ResendFriendInvite">ResendFriendInvite</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Reset" href="#arlo.Arlo.Reset">Reset</a></code></li>
|
|
<li><code><a title="arlo.Arlo.RestartBasestation" href="#arlo.Arlo.RestartBasestation">RestartBasestation</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAirQualityAlertOff" href="#arlo.Arlo.SetAirQualityAlertOff">SetAirQualityAlertOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAirQualityAlertOn" href="#arlo.Arlo.SetAirQualityAlertOn">SetAirQualityAlertOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAirQualityAlertThresholdMax" href="#arlo.Arlo.SetAirQualityAlertThresholdMax">SetAirQualityAlertThresholdMax</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAirQualityAlertThresholdMin" href="#arlo.Arlo.SetAirQualityAlertThresholdMin">SetAirQualityAlertThresholdMin</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAirQualityRecordingOff" href="#arlo.Arlo.SetAirQualityRecordingOff">SetAirQualityRecordingOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAirQualityRecordingOn" href="#arlo.Arlo.SetAirQualityRecordingOn">SetAirQualityRecordingOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAudioAlertsOff" href="#arlo.Arlo.SetAudioAlertsOff">SetAudioAlertsOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAudioAlertsOn" href="#arlo.Arlo.SetAudioAlertsOn">SetAudioAlertsOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetAutomationActivityZones" href="#arlo.Arlo.SetAutomationActivityZones">SetAutomationActivityZones</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetHumidityAlertOff" href="#arlo.Arlo.SetHumidityAlertOff">SetHumidityAlertOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetHumidityAlertOn" href="#arlo.Arlo.SetHumidityAlertOn">SetHumidityAlertOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetHumidityAlertThresholdMax" href="#arlo.Arlo.SetHumidityAlertThresholdMax">SetHumidityAlertThresholdMax</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetHumidityAlertThresholdMin" href="#arlo.Arlo.SetHumidityAlertThresholdMin">SetHumidityAlertThresholdMin</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetHumidityRecordingOff" href="#arlo.Arlo.SetHumidityRecordingOff">SetHumidityRecordingOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetHumidityRecordingOn" href="#arlo.Arlo.SetHumidityRecordingOn">SetHumidityRecordingOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetLoopBackModeContinuous" href="#arlo.Arlo.SetLoopBackModeContinuous">SetLoopBackModeContinuous</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetLoopBackModeSingleTrack" href="#arlo.Arlo.SetLoopBackModeSingleTrack">SetLoopBackModeSingleTrack</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetMotionAlertsOff" href="#arlo.Arlo.SetMotionAlertsOff">SetMotionAlertsOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetMotionAlertsOn" href="#arlo.Arlo.SetMotionAlertsOn">SetMotionAlertsOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightBrightness" href="#arlo.Arlo.SetNightLightBrightness">SetNightLightBrightness</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightColor" href="#arlo.Arlo.SetNightLightColor">SetNightLightColor</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightMode" href="#arlo.Arlo.SetNightLightMode">SetNightLightMode</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightOff" href="#arlo.Arlo.SetNightLightOff">SetNightLightOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightOn" href="#arlo.Arlo.SetNightLightOn">SetNightLightOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightTimerOff" href="#arlo.Arlo.SetNightLightTimerOff">SetNightLightTimerOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetNightLightTimerOn" href="#arlo.Arlo.SetNightLightTimerOn">SetNightLightTimerOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetOCProfile" href="#arlo.Arlo.SetOCProfile">SetOCProfile</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetSchedule" href="#arlo.Arlo.SetSchedule">SetSchedule</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetShuffleOff" href="#arlo.Arlo.SetShuffleOff">SetShuffleOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetShuffleOn" href="#arlo.Arlo.SetShuffleOn">SetShuffleOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetSleepTimerOff" href="#arlo.Arlo.SetSleepTimerOff">SetSleepTimerOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetSleepTimerOn" href="#arlo.Arlo.SetSleepTimerOn">SetSleepTimerOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempAlertOff" href="#arlo.Arlo.SetTempAlertOff">SetTempAlertOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempAlertOn" href="#arlo.Arlo.SetTempAlertOn">SetTempAlertOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempAlertThresholdMax" href="#arlo.Arlo.SetTempAlertThresholdMax">SetTempAlertThresholdMax</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempAlertThresholdMin" href="#arlo.Arlo.SetTempAlertThresholdMin">SetTempAlertThresholdMin</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempRecordingOff" href="#arlo.Arlo.SetTempRecordingOff">SetTempRecordingOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempRecordingOn" href="#arlo.Arlo.SetTempRecordingOn">SetTempRecordingOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetTempUnit" href="#arlo.Arlo.SetTempUnit">SetTempUnit</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SetVolume" href="#arlo.Arlo.SetVolume">SetVolume</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SirenOff" href="#arlo.Arlo.SirenOff">SirenOff</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SirenOn" href="#arlo.Arlo.SirenOn">SirenOn</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SkipTrack" href="#arlo.Arlo.SkipTrack">SkipTrack</a></code></li>
|
|
<li><code><a title="arlo.Arlo.StartRecording" href="#arlo.Arlo.StartRecording">StartRecording</a></code></li>
|
|
<li><code><a title="arlo.Arlo.StartStream" href="#arlo.Arlo.StartStream">StartStream</a></code></li>
|
|
<li><code><a title="arlo.Arlo.StopRecording" href="#arlo.Arlo.StopRecording">StopRecording</a></code></li>
|
|
<li><code><a title="arlo.Arlo.StopStream" href="#arlo.Arlo.StopStream">StopStream</a></code></li>
|
|
<li><code><a title="arlo.Arlo.StreamRecording" href="#arlo.Arlo.StreamRecording">StreamRecording</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Subscribe" href="#arlo.Arlo.Subscribe">Subscribe</a></code></li>
|
|
<li><code><a title="arlo.Arlo.SubscribeToMotionEvents" href="#arlo.Arlo.SubscribeToMotionEvents">SubscribeToMotionEvents</a></code></li>
|
|
<li><code><a title="arlo.Arlo.TRANSID_PREFIX" href="#arlo.Arlo.TRANSID_PREFIX">TRANSID_PREFIX</a></code></li>
|
|
<li><code><a title="arlo.Arlo.ToggleCamera" href="#arlo.Arlo.ToggleCamera">ToggleCamera</a></code></li>
|
|
<li><code><a title="arlo.Arlo.TriggerAndHandleEvent" href="#arlo.Arlo.TriggerAndHandleEvent">TriggerAndHandleEvent</a></code></li>
|
|
<li><code><a title="arlo.Arlo.TriggerFullFrameSnapshot" href="#arlo.Arlo.TriggerFullFrameSnapshot">TriggerFullFrameSnapshot</a></code></li>
|
|
<li><code><a title="arlo.Arlo.TriggerStreamSnapshot" href="#arlo.Arlo.TriggerStreamSnapshot">TriggerStreamSnapshot</a></code></li>
|
|
<li><code><a title="arlo.Arlo.UnPauseTrack" href="#arlo.Arlo.UnPauseTrack">UnPauseTrack</a></code></li>
|
|
<li><code><a title="arlo.Arlo.Unsubscribe" href="#arlo.Arlo.Unsubscribe">Unsubscribe</a></code></li>
|
|
<li><code><a title="arlo.Arlo.UpdateDeviceName" href="#arlo.Arlo.UpdateDeviceName">UpdateDeviceName</a></code></li>
|
|
<li><code><a title="arlo.Arlo.UpdateDisplayOrder" href="#arlo.Arlo.UpdateDisplayOrder">UpdateDisplayOrder</a></code></li>
|
|
<li><code><a title="arlo.Arlo.UpdateFriend" href="#arlo.Arlo.UpdateFriend">UpdateFriend</a></code></li>
|
|
<li><code><a title="arlo.Arlo.UpdatePassword" href="#arlo.Arlo.UpdatePassword">UpdatePassword</a></code></li>
|
|
<li><code><a title="arlo.Arlo.UpdateProfile" href="#arlo.Arlo.UpdateProfile">UpdateProfile</a></code></li>
|
|
<li><code><a title="arlo.Arlo.__init__" href="#arlo.Arlo.__init__">__init__</a></code></li>
|
|
<li><code><a title="arlo.Arlo.genTransId" href="#arlo.Arlo.genTransId">genTransId</a></code></li>
|
|
<li><code><a title="arlo.Arlo.interrupt_handler" href="#arlo.Arlo.interrupt_handler">interrupt_handler</a></code></li>
|
|
<li><code><a title="arlo.Arlo.to_timestamp" href="#arlo.Arlo.to_timestamp">to_timestamp</a></code></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</main>
|
|
<footer id="footer">
|
|
<p>Generated by <a href="https://pdoc3.github.io/pdoc"><cite>pdoc</cite> 0.5.1</a>.</p>
|
|
</footer>
|
|
</body>
|
|
</html>
|