EagleEyev3/Playground.ipynb

416 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "markdown",
"id": "d4582341",
"metadata": {},
"source": [
"# EagleEyev3 Playground #\n",
"\n",
"To make this playground work, it is easier to read the `access_token` off the filesystem but you can always run the example server `python server.py` to go thorugh the Oauth2 flow. By default it will save the `access_token` into a file named `.lazy_login`. The module looks for that file and tries reading t"
]
},
{
"cell_type": "markdown",
"id": "51b8b66e",
"metadata": {},
"source": [
"## Adjust Log Level"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "06d91db2",
"metadata": {},
"outputs": [],
"source": [
"import logging\n",
"logger = logging.getLogger()\n",
"logger.setLevel('WARN')"
]
},
{
"cell_type": "markdown",
"id": "8355d241",
"metadata": {},
"source": [
"## Import Module"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1394471a",
"metadata": {},
"outputs": [],
"source": [
"from EagleEyev3 import EagleEyev3"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "486a2537",
"metadata": {},
"outputs": [],
"source": [
"een = EagleEyev3()"
]
},
{
"cell_type": "markdown",
"id": "0311109c-869c-4190-97c1-a6e717a8eeba",
"metadata": {},
"source": [
"## Who am I and what is my access_token"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e14e2be5-a5f9-4b8c-ae60-76c61cb61b8b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Mark Cotton - mcotton@mcottondesign.com'"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f\"{een.current_user['firstName']} {een.current_user['lastName']} - {een.current_user['email']}\""
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "4ef47ae2-a010-4b7e-87f6-3dbf0a047e16",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'eyJraWQiOiI2ODYxYjBjYS0wZjI2LTExZWQtODYxZC0wMjQyYWMxMjAwMDIiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjYWZlZGVmMiIsImF1ZCI6InZtcy5hcGkiLCJpc3MiOiJ2bXMuYXV0aC52MSIsInZtc19hY2NvdW50IjoiMDAwMjgyMDEiLCJleHAiOjE2ODYwMTQ0NjUsImlhdCI6MTY4NTQwOTY2NiwianRpIjoiNDBkMThmZTA0YTZlNWE5NDI0OWE4NmVjNmE5NDA0YzYiLCJjbGllbnRfaWQiOiJQUkVWSUVXLU1BUkstV0VCIiwidm1zX2NsdXN0ZXIiOiJjMDEyIn0.RAVxuQtnb9WSv4jp4hNqEyPaVzlpK6GqodFAUybzrnGiPR9tHE5OIanCZf2aX5IGAyOk9Kn5UYD4h96iIt8cpCXIyrFPKGE3WtspAxYNBwczjAWTuZQ6lOxH2eIeo3QjoTeOZaL8JEfCmc5-NyK4xaTrnb0nuhUnWzB4Vo9xtqzn2mupYUEyOvkgM0nOaTxPlrJLRNjNKDWKwMtuE2wo94HbjeOi8lSvQcMPvm07qvS1nFEaTjzpHCdwENcK6ghEUv5wzbUsDm5FYZFi29MyGLLiwv6csGD8lY0C3FFsG5EbMFzNAqS-v-CriPgA-3X9rpgLiWNIjSFG8vj7ZzCtsg'"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"een.access_token"
]
},
{
"cell_type": "markdown",
"id": "a22ff6c2",
"metadata": {},
"source": [
"## Get Cameras"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "bb457850",
"metadata": {},
"outputs": [],
"source": [
"ret = een.get_list_of_cameras()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c43f1db1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[✅ [1001423e] - ATM & Wine,\n",
" ✅ [100d8666] - Cash Register,\n",
" ✅ [10012735] - Fuel Dock,\n",
" ✅ [1002584c] - Safe]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i for i in een.cameras if i.is_online()]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "ad33bf2a-ea36-4ec1-8335-8a44089f5f7e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[ [10090759] - Benny Camera,\n",
" ❌ [1003e10b] - Driveway,\n",
" ❌ [100ba388] - Front Door,\n",
" [100b7b3b] - Max Camera,\n",
" ❌ [1009ae55] - Office]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i for i in een.cameras if not i.is_online()]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "f4c6fe67",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[ [10090759] - Benny Camera,\n",
" ❌ [1003e10b] - Driveway,\n",
" ❌ [100ba388] - Front Door,\n",
" [100b7b3b] - Max Camera,\n",
" ❌ [1009ae55] - Office]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i for i in een.cameras if not i.is_online()]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b0ec786b-ed07-4486-a4d7-a7483e5a02ce",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "295b9ef8-df88-447e-b787-0098b4778f6a",
"metadata": {},
"source": [
"## User timezone fun"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "ef1ea137-d9fb-4f6f-b241-fb019c8e3230",
"metadata": {},
"outputs": [],
"source": [
"from datetime import datetime, timedelta\n",
"from pytz import timezone"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "0841aef0-89c1-45ac-b501-a9196f481d49",
"metadata": {},
"outputs": [],
"source": [
"tz = timezone(een.current_user['timeZone']['timeZone'])\n",
"now = datetime.now(tz=tz)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "ae53f810-cb77-48e3-b148-72ef7038bb89",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'2023-05-30T21:39:54.210-05:00'"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"now.isoformat(timespec='milliseconds')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "4d708ccb-80b1-4d88-aa2e-d93a71cbdc04",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'2023-05-30T15:39:55.646-05:00'"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(datetime.now(tz=tz) - timedelta(hours=6)).isoformat(timespec='milliseconds')"
]
},
{
"cell_type": "markdown",
"id": "f4d8c154-400a-4af9-b677-29190b588408",
"metadata": {},
"source": [
"## Event Subscription"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "a9d81b0d-72e6-4404-b30e-3a341a9e6639",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"id\":\"e572b7c7-f5de-4994-b4e5-f301af23213c\",\"subscriptionConfig\":{\"lifeCycle\":\"temporary\",\"timeToLiveSeconds\":900},\"deliveryConfig\":{\"type\":\"serverSentEvents.v1\",\"sseUrl\":\"https://api.c012.eagleeyenetworks.com/api/v3.0/sse/eventSubscriptions/e572b7c7-f5de-4994-b4e5-f301af23213c\"}}\n"
]
}
],
"source": [
"import requests\n",
"\n",
"url = \"https://api.c012.eagleeyenetworks.com/api/v3.0/eventSubscriptions\"\n",
"\n",
"payload = {\n",
" \"deliveryConfig\": {\"type\": \"serverSentEvents.v1\"},\n",
" \"filters\": [\n",
" {\n",
" \"actors\": [\"camera:1001423e\", \"camera:100d8666\"],\n",
" \"types\": [{\"id\": \"een.motionDetectionEvent.v1\"}]\n",
" }\n",
" ]\n",
"}\n",
"headers = {\n",
" \"accept\": \"application/json\",\n",
" \"content-type\": \"application/json\",\n",
" \"authorization\": \"Bearer eyJraWQiOiI2ODYxYjBjYS0wZjI2LTExZWQtODYxZC0wMjQyYWMxMjAwMDIiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjYWZlZGVmMiIsImF1ZCI6InZtcy5hcGkiLCJpc3MiOiJ2bXMuYXV0aC52MSIsInZtc19hY2NvdW50IjoiMDAwMjgyMDEiLCJleHAiOjE2ODU5OTY0NTksImlhdCI6MTY4NTM5MTY1OSwianRpIjoiM2NjZjcyNDEwMjNjYWVlNjZkMjFlODRlODE2MTU4MDciLCJjbGllbnRfaWQiOiJQUkVWSUVXLU1BUkstV0VCIiwidm1zX2NsdXN0ZXIiOiJjMDEyIn0.hgNkbGkzG0C-CG9lxgpOX_c__uI9s4BextwKIWgCwHyFhin7jftW7gVvb_xyisjD7YxxZyvBRRJ8cQ6enH37RaS5orLjKUj81qUi7RrlhApHLOSV_lyFSSkyXd-QzV9iDI2_0DRN1VviIZrC0t783Cdyz1deKG3kvDhWIUGLUvmJNLmpgIkYmmQkGgWvo80Snqm11TKMORNG779pDvA7C5l__fZDEbCjYh5yhkEmOcQAekYCBichO70w4frNiYP_hOLuBGUs3yvtglNo5QAp5fdhYfgjv-zmzyE1fjZcLo22rNPb3_I8SGpEJWEe0JLtxCrEf-YaCQccD4YBh_RE9Q\"\n",
"}\n",
"\n",
"response = requests.post(url, json=payload, headers=headers)\n",
"\n",
"print(response.text)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "53d3bff7-848f-4669-ab66-57597313fa0d",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"#pip install sseclient\n",
"from sseclient import SSEClient\n",
"\n",
"messages = SSEClient(response.json()['deliveryConfig']['sseUrl'], headers=headers)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "91cfe32d-db80-40fb-8ea9-d60f8a647b0d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Response [200]>"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"messages.resp"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2016a9cf-9ce8-48af-8e3f-c058024c544e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"for msg in messages:\n",
" print(msg)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bf23672e-f808-442f-8393-3c0e1f84c984",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}