From 78b0a7c2bf58a88e3d51f74a24709ac57815e5d5 Mon Sep 17 00:00:00 2001 From: Nico Melone Date: Thu, 16 Oct 2025 17:01:21 -0500 Subject: [PATCH] new code snippets --- Code Snippets/addNewUsers.ipynb | 334 ++++++++++++++++++++++++++++---- Code Snippets/at_midnight.json | 29 +++ 2 files changed, 323 insertions(+), 40 deletions(-) create mode 100644 Code Snippets/at_midnight.json diff --git a/Code Snippets/addNewUsers.ipynb b/Code Snippets/addNewUsers.ipynb index 899d66b..64c6df3 100644 --- a/Code Snippets/addNewUsers.ipynb +++ b/Code Snippets/addNewUsers.ipynb @@ -22,9 +22,9 @@ "url = \"https://hp.henrypump.cloud\"\n", "username = \"nmelone@henry-pump.com\"\n", "password = \"gzU6$26v42mU%3jDzTJf\"\n", - "userIdToCopy = \"e23d1840-7e8c-11ee-b973-b3cdc1f2a19a\"\n", - "entity_group_id=\"4d43b400-b25d-11ef-861c-8dbe77c636e1\"\n", - "default_dashboard = \"b10eeab0-b274-11ef-861c-8dbe77c636e1\"" + "userIdToCopy = \"7c07cf20-f33b-11ed-97ca-e57c88951dd5\"\n", + "entity_group_id=\"f7c13900-03b6-11ed-9235-5943addfc91e\"\n", + "default_dashboard = \"0f836040-03b7-11ed-b891-29857b87a6b2\"" ] }, { @@ -34,12 +34,20 @@ "outputs": [], "source": [ "data = [\n", - " \"Ben Brewster - ben@rrigwater.com - 325-260-3330\",\n", - " \"Mark Vandresar - mark@rrigenergy.com - 814-462-8899\",\n", - " \"Zack Roybal - zack@rrigenergy.com - 432-813-5307\",\n", - " \"Corey Leedy - corey@rrigenergy.com - 325-864-3272\",\n", - " \"Parker Handlin - parker@rrigenergy.com - 817-201-1558\",\n", - " \"Chris Johnson - chris@rrigenergy.com - 601-831-0401\",\n", + " \"Manuel Benavides - Manuel.Benavides@conocophillips.com\",\n", + " \"Bradley Armstrong - Bradley.R.Armstrong@conocophillips.com\",\n", + " \"Wesley Kennedy - Wesley.Kennedy@conocophillips.com\",\n", + " \"William Tarin - William.Tarin@conocophillips.com\",\n", + " \"Kevin Hinshaw - Kevin.C.Hinshaw@conocophillips.com\",\n", + " \"Sarah Pace - Sarah.Pace@conocophillips.com\",\n", + " \"Megan Dixon - Megan.Dixon@conocophillips.com\",\n", + " \"Billy Vaughn - Billy.M.Vaughn@conocophillips.com\",\n", + " \"Daniel Sanchez - Daniel.I.Sanchez@conocophillips.com\",\n", + " \"Conrado Vasquez - Conrado.Vasquez@conocophillips.com\",\n", + " \"Martin Hernandez - Martin.Hernandez@conocophillips.com\",\n", + " \"Jose Dominguez - Jose.Dominguez@conocophillips.com\",\n", + " \"Ector Castillo - Ector.Castillo@conocophillips.com\",\n", + " \"Miguel DeHoyos - Miguel.DeHoyos@conocophillips.com\"\n", " ]" ] }, @@ -130,18 +138,279 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "'dict' object has no attribute 'replace'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Input \u001b[0;32mIn [8]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m userIdToCopy:\n\u001b[1;32m 5\u001b[0m templateUser \u001b[38;5;241m=\u001b[39m copyUser(userIdToCopy\u001b[38;5;241m=\u001b[39muserIdToCopy, rest_client\u001b[38;5;241m=\u001b[39mrest_client)\n\u001b[0;32m----> 6\u001b[0m templateUser[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124madditionalInfo\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m ast\u001b[38;5;241m.\u001b[39mliteral_eval(\u001b[43mtemplateUser\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43madditional_info\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreplace\u001b[49m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m))\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m templateUser[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124madditional_info\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[0;31mAttributeError\u001b[0m: 'dict' object has no attribute 'replace'" + "name": "stdout", + "output_type": "stream", + "text": [ + "{\n", + " \"email\": \"Manuel.Benavides@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Manuel\",\n", + " \"lastName\": \"Benavides\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Bradley.R.Armstrong@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Bradley\",\n", + " \"lastName\": \"Armstrong\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Wesley.Kennedy@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Wesley\",\n", + " \"lastName\": \"Kennedy\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"William.Tarin@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"William\",\n", + " \"lastName\": \"Tarin\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Kevin.C.Hinshaw@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Kevin\",\n", + " \"lastName\": \"Hinshaw\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Sarah.Pace@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Sarah\",\n", + " \"lastName\": \"Pace\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Megan.Dixon@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Megan\",\n", + " \"lastName\": \"Dixon\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Billy.M.Vaughn@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Billy\",\n", + " \"lastName\": \"Vaughn\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Daniel.I.Sanchez@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Daniel\",\n", + " \"lastName\": \"Sanchez\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Conrado.Vasquez@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Conrado\",\n", + " \"lastName\": \"Vasquez\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Martin.Hernandez@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Martin\",\n", + " \"lastName\": \"Hernandez\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Jose.Dominguez@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Jose\",\n", + " \"lastName\": \"Dominguez\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Ector.Castillo@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Ector\",\n", + " \"lastName\": \"Castillo\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n", + "{\n", + " \"email\": \"Miguel.DeHoyos@conocophillips.com\",\n", + " \"authority\": \"CUSTOMER_USER\",\n", + " \"firstName\": \"Miguel\",\n", + " \"lastName\": \"DeHoyos\",\n", + " \"phone\": \"\",\n", + " \"additionalInfo\": {\n", + " \"description\": \"\",\n", + " \"defaultDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"defaultDashboardFullscreen\": false,\n", + " \"homeDashboardId\": \"0f836040-03b7-11ed-b891-29857b87a6b2\",\n", + " \"homeDashboardHideToolbar\": false,\n", + " \"userCredentialsEnabled\": true\n", + " },\n", + " \"ownerId\": {\n", + " \"id\": \"f7c13900-03b6-11ed-9235-5943addfc91e\",\n", + " \"entity_type\": \"CUSTOMER\"\n", + " }\n", + "}\n" ] } ], @@ -151,7 +420,7 @@ " rest_client.login(username=username, password=password)\n", " if userIdToCopy:\n", " templateUser = copyUser(userIdToCopy=userIdToCopy, rest_client=rest_client)\n", - " templateUser[\"additionalInfo\"] = ast.literal_eval(templateUser['additional_info'].replace(\"'\", '\"'))\n", + " #templateUser[\"additionalInfo\"] = ast.literal_eval(templateUser['additional_info'].replace(\"'\", '\"'))\n", " del templateUser[\"additional_info\"]\n", " else:\n", " templateUser = {\n", @@ -179,8 +448,8 @@ " else:\n", " templateUser[\"phone\"] = \"\"\n", " \"\"\"\n", - " #print(json.dumps(user, indent=4))\n", - " rest_client.save_user(send_activation_mail=True, body=user, entity_group_id=entity_group_id)\n", + " print(json.dumps(user, indent=4))\n", + " rest_client.save_user(send_activation_mail=False, body=user, entity_group_id=entity_group_id)\n", " except ApiException as e:\n", " print(e)" ] @@ -193,22 +462,7 @@ { "data": { "text/plain": [ - "{'customer_id': {'id': '4d4058a0-b25d-11ef-861c-8dbe77c636e1',\n", - " 'entity_type': 'CUSTOMER'},\n", - " 'email': 'n_melone@hotmail.com',\n", - " 'authority': 'CUSTOMER_USER',\n", - " 'first_name': 'N',\n", - " 'last_name': 'Melone',\n", - " 'phone': '+15732019537',\n", - " 'name': 'n_melone@hotmail.com',\n", - " 'additional_info': {'description': '',\n", - " 'defaultDashboardId': 'b10eeab0-b274-11ef-861c-8dbe77c636e1',\n", - " 'defaultDashboardFullscreen': False,\n", - " 'homeDashboardId': 'b10eeab0-b274-11ef-861c-8dbe77c636e1',\n", - " 'homeDashboardHideToolbar': False,\n", - " 'userCredentialsEnabled': True,\n", - " 'failedLoginAttempts': 2,\n", - " 'lastLoginTs': 1706115931097}}" + "False" ] }, "execution_count": 11, @@ -217,13 +471,13 @@ } ], "source": [ - "templateUser" + "templateUser[\"additional_info\"][\"userActivated\"]" ] } ], "metadata": { "kernelspec": { - "display_name": "thingsboard", + "display_name": "tbreport", "language": "python", "name": "python3" }, @@ -237,7 +491,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.5" + "version": "3.13.1" } }, "nbformat": 4, diff --git a/Code Snippets/at_midnight.json b/Code Snippets/at_midnight.json new file mode 100644 index 0000000..3c61fc5 --- /dev/null +++ b/Code Snippets/at_midnight.json @@ -0,0 +1,29 @@ +{ + "type": "SCRIPT", + "name": "At Midnight", + "debugSettings": { + "failuresEnabled": true, + "allEnabled": false, + "allEnabledUntil": 1759268749155 + }, + "configurationVersion": 0, + "configuration": { + "type": "SCRIPT", + "arguments": { + "week_volume": { + "refEntityKey": { + "key": "week_volume", + "type": "TS_ROLLING" + }, + "limit": 202, + "timeWindow": 86400000 + } + }, + "expression": "var MS_IN_DAY = 24 * 60 * 60 * 1000;\n\nfunction mostRecentMidnight(referenceTs, offsetMinutes) {\n // “Floor” to midnight:\n var offsetMs = offsetMinutes * 60 * 1000;\n var localTs = referenceTs + offsetMs;\n var localMidnight = Math.floor(localTs / MS_IN_DAY) * MS_IN_DAY;\n return localMidnight - offsetMs;\n}\nfunction findValueAtMidnight(midnightTs){\n foreach (v : week_volume) { \n if (v.ts === midnightTs){\n return v.value;\n }\n }\n}\nvar tzOffset = -5 * 60;\nvar midnightTs = mostRecentMidnight(week_volume.timeWindow.endTs, tzOffset); // or timeWindow.endTs\nvar valueAtMidnight = findValueAtMidnight(midnightTs);\n\nreturn {\n \"week_volume_at_midnight\": valueAtMidnight\n};", + "output": { + "name": "", + "type": "TIME_SERIES", + "decimalsByDefault": 2 + } + } +} \ No newline at end of file