EE-status-v3/Playground.ipynb

416 lines
10 KiB
Plaintext
Raw Normal View History

2023-05-30 03:31:56 +00:00
{
"cells": [
{
"cell_type": "markdown",
"id": "d4582341",
"metadata": {},
"source": [
"# EagleEyev3 Playground #\n",
"\n",
2023-05-30 04:05:38 +00:00
"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"
2023-05-30 03:31:56 +00:00
]
},
{
"cell_type": "markdown",
"id": "51b8b66e",
2023-05-31 03:30:22 +00:00
"metadata": {},
2023-05-30 03:31:56 +00:00
"source": [
"## Adjust Log Level"
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 6,
2023-05-30 03:31:56 +00:00
"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",
2023-05-31 03:30:22 +00:00
"execution_count": 7,
2023-05-30 03:31:56 +00:00
"id": "1394471a",
"metadata": {},
"outputs": [],
"source": [
"from EagleEyev3 import EagleEyev3"
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 8,
2023-05-30 03:31:56 +00:00
"id": "486a2537",
"metadata": {},
"outputs": [],
"source": [
"een = EagleEyev3()"
]
},
2023-05-30 04:05:38 +00:00
{
"cell_type": "markdown",
"id": "0311109c-869c-4190-97c1-a6e717a8eeba",
2023-05-31 03:30:22 +00:00
"metadata": {},
2023-05-30 04:05:38 +00:00
"source": [
"## Who am I and what is my access_token"
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 9,
2023-05-30 04:05:38 +00:00
"id": "e14e2be5-a5f9-4b8c-ae60-76c61cb61b8b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Mark Cotton - mcotton@mcottondesign.com'"
]
},
2023-05-31 03:30:22 +00:00
"execution_count": 9,
2023-05-30 04:05:38 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f\"{een.current_user['firstName']} {een.current_user['lastName']} - {een.current_user['email']}\""
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 10,
2023-05-30 04:05:38 +00:00
"id": "4ef47ae2-a010-4b7e-87f6-3dbf0a047e16",
2023-05-31 03:30:22 +00:00
"metadata": {},
2023-05-30 04:05:38 +00:00
"outputs": [
{
"data": {
"text/plain": [
"'eyJraWQiOiI2ODYxYjBjYS0wZjI2LTExZWQtODYxZC0wMjQyYWMxMjAwMDIiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjYWZlZGVmMiIsImF1ZCI6InZtcy5hcGkiLCJpc3MiOiJ2bXMuYXV0aC52MSIsInZtc19hY2NvdW50IjoiMDAwMjgyMDEiLCJleHAiOjE2ODYwMTQ0NjUsImlhdCI6MTY4NTQwOTY2NiwianRpIjoiNDBkMThmZTA0YTZlNWE5NDI0OWE4NmVjNmE5NDA0YzYiLCJjbGllbnRfaWQiOiJQUkVWSUVXLU1BUkstV0VCIiwidm1zX2NsdXN0ZXIiOiJjMDEyIn0.RAVxuQtnb9WSv4jp4hNqEyPaVzlpK6GqodFAUybzrnGiPR9tHE5OIanCZf2aX5IGAyOk9Kn5UYD4h96iIt8cpCXIyrFPKGE3WtspAxYNBwczjAWTuZQ6lOxH2eIeo3QjoTeOZaL8JEfCmc5-NyK4xaTrnb0nuhUnWzB4Vo9xtqzn2mupYUEyOvkgM0nOaTxPlrJLRNjNKDWKwMtuE2wo94HbjeOi8lSvQcMPvm07qvS1nFEaTjzpHCdwENcK6ghEUv5wzbUsDm5FYZFi29MyGLLiwv6csGD8lY0C3FFsG5EbMFzNAqS-v-CriPgA-3X9rpgLiWNIjSFG8vj7ZzCtsg'"
]
},
2023-05-31 03:30:22 +00:00
"execution_count": 10,
2023-05-30 04:05:38 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"een.access_token"
]
},
2023-05-30 03:31:56 +00:00
{
"cell_type": "markdown",
"id": "a22ff6c2",
"metadata": {},
"source": [
"## Get Cameras"
]
},
{
"cell_type": "code",
2023-05-30 04:05:38 +00:00
"execution_count": 11,
2023-05-30 03:31:56 +00:00
"id": "bb457850",
"metadata": {},
"outputs": [],
"source": [
"ret = een.get_list_of_cameras()"
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 12,
2023-05-30 03:31:56 +00:00
"id": "c43f1db1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[✅ [1001423e] - ATM & Wine,\n",
" ✅ [100d8666] - Cash Register,\n",
" ✅ [10012735] - Fuel Dock,\n",
" ✅ [1002584c] - Safe]"
]
},
2023-05-31 03:30:22 +00:00
"execution_count": 12,
2023-05-30 03:31:56 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i for i in een.cameras if i.is_online()]"
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 13,
2023-05-30 04:05:38 +00:00
"id": "ad33bf2a-ea36-4ec1-8335-8a44089f5f7e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[ [10090759] - Benny Camera,\n",
2023-05-31 03:30:22 +00:00
" ❌ [1003e10b] - Driveway,\n",
" ❌ [100ba388] - Front Door,\n",
2023-05-30 04:05:38 +00:00
" [100b7b3b] - Max Camera,\n",
2023-05-31 03:30:22 +00:00
" ❌ [1009ae55] - Office]"
2023-05-30 04:05:38 +00:00
]
},
2023-05-31 03:30:22 +00:00
"execution_count": 13,
2023-05-30 04:05:38 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i for i in een.cameras if not i.is_online()]"
]
},
{
"cell_type": "code",
2023-05-31 03:30:22 +00:00
"execution_count": 14,
2023-05-30 03:31:56 +00:00
"id": "f4c6fe67",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[ [10090759] - Benny Camera,\n",
2023-05-31 03:30:22 +00:00
" ❌ [1003e10b] - Driveway,\n",
" ❌ [100ba388] - Front Door,\n",
2023-05-30 03:31:56 +00:00
" [100b7b3b] - Max Camera,\n",
2023-05-31 03:30:22 +00:00
" ❌ [1009ae55] - Office]"
2023-05-30 03:31:56 +00:00
]
},
2023-05-31 03:30:22 +00:00
"execution_count": 14,
2023-05-30 03:31:56 +00:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[i for i in een.cameras if not i.is_online()]"
]
2023-05-30 04:05:38 +00:00
},
{
"cell_type": "code",
"execution_count": null,
"id": "b0ec786b-ed07-4486-a4d7-a7483e5a02ce",
"metadata": {},
"outputs": [],
"source": []
2023-05-31 03:30:22 +00:00
},
{
"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": []
2023-05-30 03:31:56 +00:00
}
],
"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",
2023-05-30 04:05:38 +00:00
"version": "3.8.10"
2023-05-30 03:31:56 +00:00
}
},
"nbformat": 4,
"nbformat_minor": 5
}