jeffreydwalter / arlo

Python module for interacting with Netgear's Arlo camera system.
Apache License 2.0
517 stars 124 forks source link

[Arlo Pro 4] is basestation required for python interaction #200

Open Fat-Knees opened 1 year ago

Fat-Knees commented 1 year ago

You MUST answer these questions before submitting your issue. Failure to do so will result in a closed issue. Thanks!

What version of Python are you using (python -V)?

Python 3.11.1

What operating system and processor architecture are you using (python -c 'import platform; print(platform.uname());')?

uname_result(system='Windows', node='LAPTOP-MOOSE', release='10', version='10.0.22621', machine='AMD64')

Which Python packages do you have installed (run the pip freeze or pip3 freeze command and paste output)?

arlo==1.2.62
async-generator==1.10
attrs==22.1.0
autopep8==2.0.0
BeautifulHue==0.1.2
beautifulsoup4==4.11.1
branca==0.6.0
cachetools==5.2.0
certifi==2022.9.24
cffi==1.15.1
charset-normalizer==2.1.1
click==8.1.3
colorama==0.4.6
commonmark==0.9.1
contourpy==1.0.6
cycler==0.11.0
et-xmlfile==1.1.0
folium==0.14.0
fonttools==4.38.0
google-api-core==2.11.0
google-api-python-client==2.71.0
google-auth==2.15.0
google-auth-httplib2==0.1.0
google-auth-oauthlib==0.8.0
googleapis-common-protos==1.57.1
h11==0.14.0
httplib2==0.21.0
idna==3.4
indeed==0.0.4
Jinja2==3.1.2
kiwisolver==1.4.4
lxml==4.9.2
MarkupSafe==2.1.1
matplotlib==3.6.2
matrix-rain==1.0.2
monotonic==1.6
numpy==1.24.0
oauthlib==3.2.2
openpyxl==3.0.10
outcome==1.2.0
packaging==22.0
pandas==1.5.2
phue==1.1
pickle-mixin==1.0.2
Pillow==9.4.0
protobuf==4.21.12
psutil==5.9.4
py3nvml==0.2.7
pyasn1==0.4.8
pyasn1-modules==0.2.8
pybind11==2.10.3
pycodestyle==2.10.0
pycparser==2.21
Pygments==2.13.0
pyparsing==3.0.9
PyQt5==5.15.7
PyQt5-Qt5==5.15.2
PyQt5-sip==12.11.0
PySocks==1.7.1
python-dateutil==2.8.2
pytz==2022.7
pywin32==305
requests==2.28.1
requests-oauthlib==1.3.1
responses==0.10.15
rich==12.6.0
rsa==4.9
scipy==1.10.0
scs==3.2.2
selenium==4.7.2
six==1.16.0
sniffio==1.3.0
sortedcontainers==2.4.0
soupsieve==2.3.2.post1
sseclient==0.0.22
termcolor==2.1.1
tomli==2.0.1
trio==0.22.0
trio-websocket==0.9.2
typer==0.6.1
uritemplate==4.1.1
urllib3==1.24
vcgencmd==0.1.1
windows-curses==2.3.1
WMI==1.5.1
wsproto==1.2.0
xlrd==2.0.1
XlsxWriter==3.0.3
xlwt==1.3.0
xmltodict==0.13.0

Which version of ffmpeg are you using (ffmpeg -version)?

ffmpeg-1.4

Which Arlo hardware are you having the issue with (camera types - [Arlo, Pro, Q, etc.], basestation model, etc.)?

Run this script:

from arlo import Arlo

import json
import re

USERNAME = 'user@example.com'
PASSWORD = 'supersecretpassword'

def pp(data):
    print(json.dumps(data, indent=4, sort_keys=True))

try:
    arlo = Arlo(USERNAME, PASSWORD)

    devices = arlo.GetDevices()
    for i, device in enumerate(devices):
        for key in ['deviceId', 'parentId', 'uniqueId', 'userId', 'xCloudId']:
            if key in device:
                device[key] = re.sub(r'[0-9A-Za-z]', r'X', device.get(key))

        for key in ['deviceName', 'presignedFullFrameSnapshotUrl', 'presignedLastImageUrl', 'presignedSnapshotUrl']:
            device[key] = ""

        device['owner']['ownerId'] = re.sub(r'[0-9A-Za-z]', r'X', device['owner']['ownerId'])
        device['owner']['firstName'] = ""
        device['owner']['lastName'] = ""

        devices[i] = device

    pp(devices)
except Exception as e:
    print(e)
[
    {
        "automationRevision": 6,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "signalStrength": "3",
            "type": "wifi"
        },
        "dateCreated": 1654651946772,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "camera",
        "displayOrder": 1,
        "interfaceSchemaVer": "4",
        "interfaceVersion": "i004",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 0,
        "modelId": "VMC2040A",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "VMC2040Ar1.3",
            "modelId": "VMC2040A",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXXXXX-XXXX-XXX-XXXXXXXXX"
    },
    {
        "automationRevision": 7,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "signalStrength": "3",
            "type": "wifi"
        },
        "dateCreated": 1647488082763,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "doorbell",
        "displayOrder": 2,
        "interfaceSchemaVer": "4",
        "interfaceVersion": "i004",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 0,
        "modelId": "AVD1001A",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "1.2",
            "modelId": "AVD1001A",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXXX-XXXX-XXX-XXXXXXXXX"
    },
    {
        "automationRevision": 1,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "type": "wifi"
        },
        "dateCreated": 1647488534633,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "doorbell",
        "displayOrder": 3,
        "interfaceSchemaVer": "4",
        "interfaceVersion": "i004",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 0,
        "modelId": "AVD1001A",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "1.2",
            "modelId": "AVD1001A",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXXXX-XXXX-XXX-XXXXXXXXX"
    },
    {
        "automationRevision": 1,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "signalStrength": "3",
            "type": "wifi"
        },
        "dateCreated": 1647369431809,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "camera",
        "displayOrder": 4,
        "firmwareVersion": "1.080.18.4_52_ec35062",
        "interfaceSchemaVer": "6",
        "interfaceVersion": "i003",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 1,
        "modelId": "VMC4041PA",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "VMC4041PAerH4",
            "modelId": "VMC4041PA",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXXX-XXXX-XXX-XXXXXXXXX"
    },
    {
        "automationRevision": 1,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "signalStrength": "3",
            "type": "wifi"
        },
        "dateCreated": 1647310931518,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "camera",
        "displayOrder": 5,
        "firmwareVersion": "1.080.18.4_52_ec35062",
        "interfaceSchemaVer": "6",
        "interfaceVersion": "i003",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 0,
        "modelId": "VMC4041PA",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "VMC4041PAerH4",
            "modelId": "VMC4041PA",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXXXXX-XXXX-XXX-XXXXXXXXX"
    },
    {
        "automationRevision": 1,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "signalStrength": "3",
            "type": "wifi"
        },
        "dateCreated": 1647318047103,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "camera",
        "displayOrder": 6,
        "firmwareVersion": "1.080.18.4_52_ec35062",
        "interfaceSchemaVer": "6",
        "interfaceVersion": "i003",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 0,
        "modelId": "VMC4041PA",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "VMC4041PAerH4",
            "modelId": "VMC4041PA",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXXXXXX-XXXX-XXX-XXXXXXXXX"
    },
    {
        "automationRevision": 3,
        "connectivity": {
            "connected": true,
            "mepStatus": "unknown",
            "signalStrength": "3",
            "type": "wifi"
        },
        "dateCreated": 1664305652471,
        "deviceId": "XXXXXXXXXXXXX",
        "deviceName": "",
        "deviceType": "camera",
        "displayOrder": 7,
        "firmwareVersion": "1.080.18.4_52_ec35062",
        "interfaceSchemaVer": "6",
        "interfaceVersion": "i003",
        "lastImageUploaded": "true",
        "lastModified": 1673348519224,
        "mediaObjectCount": 0,
        "modelId": "VMC4041PA",
        "owner": {
            "firstName": "",
            "lastName": "",
            "ownerId": "XXXXXXX-XXX-XXXXXXXX"
        },
        "parentId": "XXXXXXXXXXXXX",
        "presignedFullFrameSnapshotUrl": "",
        "presignedLastImageUrl": "",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "VMC4041PAerH4",
            "modelId": "VMC4041PA",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "presignedSnapshotUrl": "",
        "properties": {
            "hwVersion": "VMC4041PAerH4",
            "modelId": "VMC4041PA",
            "olsonTimeZone": "America/Los_Angeles"
        },
        "state": "provisioned",
        "uniqueId": "XXXXXXX-XXX-XXXXXXXX_XXXXXXXXXXXXX",
        "userId": "XXXX-XXX-XXXXXXXX",
        "userRole": "ADMIN",
        "xCloudId": "XXXX-XXXX-XXX-XXXXXXXXX"
    }
]

What did you do?

If possible, provide the steps you took to reproduce the issue. A complete runnable program is good. (don't include your user/password or any sensitive info)

Is a base station required to interact with the Arlo Pro 4 Cameras? (get screenshots and whatnot) If not could you point me in the right direction. I am relatively new so I apologize if this is a stupid question. Thank you for your time.