| { |
| "cells": [ |
| { |
| "cell_type": "markdown", |
| "id": "9cd8236c-1a11-4d08-aad3-d1744d1b26e3", |
| "metadata": {}, |
| "source": [ |
| "# REPL Basics\n", |
| "\n", |
| "<a href=\"http://35.236.121.59/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fproject-chip%2Fconnectedhomeip&urlpath=lab%2Ftree%2Fconnectedhomeip%2Fdocs%2Fguides%2Frepl%2FMatter%2520-%2520REPL%2520Intro.ipynb&branch=master\">\n", |
| "<img src=\"https://i.ibb.co/hR3yWsC/launch-playground.png\" alt=\"drawing\" width=\"130\"/>\n", |
| "</a>\n", |
| "<br></br>\n", |
| "\n", |
| "This goes over the basics of interacting with the REPL." |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "7b7f651c-2e64-4d0e-aa93-1a01d093c946", |
| "metadata": { |
| "tags": [] |
| }, |
| "source": [ |
| "## Initialization\n", |
| "\n", |
| "Let's first begin by setting up by importing some key modules that are needed to make it easier for us to interact with the Matter stack.\n", |
| "\n", |
| "`ChipReplStartup.py` is run within the global namespace. This results in all of its imports being made available here.\n", |
| "\n", |
| "> **NOTE**: _This is not needed if you launch the REPL from the command-line._" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 1, |
| "id": "cdffbe57-bd09-41db-a624-cbfcd65c6eae", |
| "metadata": { |
| "tags": [] |
| }, |
| "outputs": [ |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">──────────────────────────────────────── </span>Matter REPL<span style=\"color: #00ff00; text-decoration-color: #00ff00\"> ────────────────────────────────────────</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[92m──────────────────────────────────────── \u001b[0mMatter REPL\u001b[92m ────────────────────────────────────────\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| " \n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> Welcome to the Matter Python REPL!</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> For help, please type </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> To get more information on a particular object/class, you can pass</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> that into </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> as well.</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| " \n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m Welcome to the Matter Python REPL!\u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m For help, please type \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m To get more information on a particular object/class, you can pass\u001b[0m\n", |
| "\u001b[1;34m that into \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\u001b[1;34m as well.\u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">─────────────────────────────────────────────────────────────────────────────────────────────</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[92m─────────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stderr", |
| "output_type": "stream", |
| "text": [ |
| "2022-01-25 16:57:54 johnsj-macbookpro1.roam.corp.google.com root[27642] CRITICAL Loading configuration from /tmp/repl-storage.json...\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #af00ff; text-decoration-color: #af00ff\">Restoring FabricAdmin from storage to manage FabricId </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">1</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">, FabricIndex </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">1</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">...</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[38;5;129mRestoring FabricAdmin from storage to manage FabricId \u001b[0m\u001b[1;38;5;129m1\u001b[0m\u001b[38;5;129m, FabricIndex \u001b[0m\u001b[1;38;5;129m1\u001b[0m\u001b[38;5;129m...\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stdout", |
| "output_type": "stream", |
| "text": [ |
| "New FabricAdmin: FabricId: 1(1)\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #af00ff; text-decoration-color: #af00ff\">Restoring FabricAdmin from storage to manage FabricId </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">2</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">, FabricIndex </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">2</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">...</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[38;5;129mRestoring FabricAdmin from storage to manage FabricId \u001b[0m\u001b[1;38;5;129m2\u001b[0m\u001b[38;5;129m, FabricIndex \u001b[0m\u001b[1;38;5;129m2\u001b[0m\u001b[38;5;129m...\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stdout", |
| "output_type": "stream", |
| "text": [ |
| "New FabricAdmin: FabricId: 2(2)\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">Fabric Admins have been loaded and are available at </span><span style=\"color: #800000; text-decoration-color: #800000\">fabricAdmins</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\u001b[34mFabric Admins have been loaded and are available at \u001b[0m\u001b[31mfabricAdmins\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #af00ff; text-decoration-color: #af00ff\">Creating default device controller on fabric </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">1</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">...</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[38;5;129mCreating default device controller on fabric \u001b[0m\u001b[1;38;5;129m1\u001b[0m\u001b[38;5;129m...\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stdout", |
| "output_type": "stream", |
| "text": [ |
| "Allocating new controller with FabricId: 1(1), NodeId: 1\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">Default CHIP Device Controller has been initialized to manage </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">fabricAdmins[</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">0</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">, and is </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">available as </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">devCtrl</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\n", |
| "\u001b[34mDefault CHIP Device Controller has been initialized to manage \u001b[0m\u001b[1;31mfabricAdmins\u001b[0m\u001b[1;31m[\u001b[0m\u001b[1;31m0\u001b[0m\u001b[1;31m]\u001b[0m\u001b[1;34m, and is \u001b[0m\n", |
| "\u001b[1;34mavailable as \u001b[0m\u001b[1;31mdevCtrl\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| } |
| ], |
| "source": [ |
| "import chip.native\n", |
| "import pkgutil\n", |
| "module = pkgutil.get_loader('chip.ChipReplStartup')\n", |
| "%run {module.path}" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "49a01315-6cac-4f8a-830d-adb5b7b9fc27", |
| "metadata": {}, |
| "source": [ |
| "## Persistent Storage\n", |
| "\n", |
| "> NOTE: By default, the REPL points to `/tmp/repl-storage.json` for its persistent storage. To change that location, you can pass that in directly as follows:" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 2, |
| "id": "c05b4b22-f6b1-4669-9358-98b0fe9a9136", |
| "metadata": {}, |
| "outputs": [ |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">──────────────────────────────────────── </span>Matter REPL<span style=\"color: #00ff00; text-decoration-color: #00ff00\"> ────────────────────────────────────────</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[92m──────────────────────────────────────── \u001b[0mMatter REPL\u001b[92m ────────────────────────────────────────\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| " \n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> Welcome to the Matter Python REPL!</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> For help, please type </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> To get more information on a particular object/class, you can pass</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> that into </span><span style=\"color: #008000; text-decoration-color: #008000; font-weight: bold\">matterhelp()</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> as well.</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"> </span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| " \n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m Welcome to the Matter Python REPL!\u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m For help, please type \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m To get more information on a particular object/class, you can pass\u001b[0m\n", |
| "\u001b[1;34m that into \u001b[0m\u001b[1;32mmatterhelp\u001b[0m\u001b[1;32m(\u001b[0m\u001b[1;32m)\u001b[0m\u001b[1;34m as well.\u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n", |
| "\u001b[1;34m \u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #00ff00; text-decoration-color: #00ff00\">─────────────────────────────────────────────────────────────────────────────────────────────</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[92m─────────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #af00ff; text-decoration-color: #af00ff\">Restoring FabricAdmin from storage to manage FabricId </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">1</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">, FabricIndex </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">1</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">...</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[38;5;129mRestoring FabricAdmin from storage to manage FabricId \u001b[0m\u001b[1;38;5;129m1\u001b[0m\u001b[38;5;129m, FabricIndex \u001b[0m\u001b[1;38;5;129m1\u001b[0m\u001b[38;5;129m...\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stdout", |
| "output_type": "stream", |
| "text": [ |
| "New FabricAdmin: FabricId: 1(1)\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #af00ff; text-decoration-color: #af00ff\">Restoring FabricAdmin from storage to manage FabricId </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">2</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">, FabricIndex </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">2</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">...</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[38;5;129mRestoring FabricAdmin from storage to manage FabricId \u001b[0m\u001b[1;38;5;129m2\u001b[0m\u001b[38;5;129m, FabricIndex \u001b[0m\u001b[1;38;5;129m2\u001b[0m\u001b[38;5;129m...\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stdout", |
| "output_type": "stream", |
| "text": [ |
| "New FabricAdmin: FabricId: 2(2)\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">Fabric Admins have been loaded and are available at </span><span style=\"color: #800000; text-decoration-color: #800000\">fabricAdmins</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\u001b[34mFabric Admins have been loaded and are available at \u001b[0m\u001b[31mfabricAdmins\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #af00ff; text-decoration-color: #af00ff\">Creating default device controller on fabric </span><span style=\"color: #af00ff; text-decoration-color: #af00ff; font-weight: bold\">1</span><span style=\"color: #af00ff; text-decoration-color: #af00ff\">...</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[38;5;129mCreating default device controller on fabric \u001b[0m\u001b[1;38;5;129m1\u001b[0m\u001b[38;5;129m...\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "name": "stdout", |
| "output_type": "stream", |
| "text": [ |
| "Allocating new controller with FabricId: 1(1), NodeId: 1\n" |
| ] |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">Default CHIP Device Controller has been initialized to manage </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">fabricAdmins[</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">0</span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">]</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">, and is </span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">available as </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">devCtrl</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\n", |
| "\u001b[34mDefault CHIP Device Controller has been initialized to manage \u001b[0m\u001b[1;31mfabricAdmins\u001b[0m\u001b[1;31m[\u001b[0m\u001b[1;31m0\u001b[0m\u001b[1;31m]\u001b[0m\u001b[1;34m, and is \u001b[0m\n", |
| "\u001b[1;34mavailable as \u001b[0m\u001b[1;31mdevCtrl\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| } |
| ], |
| "source": [ |
| "import chip.native\n", |
| "import pkgutil\n", |
| "module = pkgutil.get_loader('chip.ChipReplStartup')\n", |
| "%run {module.path} --storagepath /tmp/repl.json" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "04152051-9b58-4a12-a92c-a01db33e38ad", |
| "metadata": {}, |
| "source": [ |
| "## Help\n", |
| "\n", |
| "To get help for the various classes and their respective methods, run:" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 3, |
| "id": "b36f41dd-d5e2-447e-a9a4-f1eab7d92bec", |
| "metadata": { |
| "scrolled": true, |
| "tags": [] |
| }, |
| "outputs": [ |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭─────────────────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">class</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008000; text-decoration-color: #008000\">'chip.ChipDeviceCtrl.ChipDeviceController'</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">></span><span style=\"color: #000080; text-decoration-color: #000080\"> ────────────────────╮</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">╭───────────────────────────────────────────────────────────────────────────────────────╮</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">chip.ChipDeviceCtrl.ChipDeviceController</span><span style=\"color: #000000; text-decoration-color: #000000\"> object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x1143b3910</span><span style=\"font-weight: bold\">></span> <span style=\"color: #008000; text-decoration-color: #008000\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008000; text-decoration-color: #008000\">╰───────────────────────────────────────────────────────────────────────────────────────╯</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">activeList</span> = <span style=\"font-weight: bold\">{</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">chip.ChipDeviceCtrl.ChipDeviceController</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000000; text-decoration-color: #000000\">object at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x1143b3910</span><span style=\"font-weight: bold\">></span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"font-weight: bold\">}</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">devCtrl</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">c_void_p</span><span style=\"font-weight: bold\">(</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">140320379576320</span><span style=\"font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">isActive</span> = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">state</span> = <span style=\"font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">DCState.IDLE:</span><span style=\"color: #000000; text-decoration-color: #000000\"> </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span><span style=\"font-weight: bold\">></span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandleCommissioningCompleteFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandleCommissioningCompleteFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbHandleKeyExchangeCompleteFunct</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbHandleKeyExchangeCompleteFunct</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">cbOnAddressUpdateComplete</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">cbOnAddressUpdateComplete</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CheckIsActive</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CheckIsActive</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CloseBLEConnection</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CloseBLEConnection</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CloseSession</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CloseSession</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">Commission</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">Commission</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">CommissionIP</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">CommissionIP</span><span style=\"font-weight: bold\">(</span>ipaddr, setupPinCode, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ConnectBLE</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ConnectBLE</span><span style=\"font-weight: bold\">(</span>discriminator, setupPinCode, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ConnectBle</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ConnectBle</span><span style=\"font-weight: bold\">(</span>bleConnection<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverAllCommissioning</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverAllCommissioning</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverCommissionableNodesCommissioningEn…</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> = <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverCommissionableNodesCommissioningEnab…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverCommissionableNodesDeviceType</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverCommissionableNodesDeviceType</span><span style=\"font-weight: bold\">(</span>device… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverCommissionableNodesLongDiscriminat…</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> = <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverCommissionableNodesLongDiscriminator</span><span style=\"font-weight: bold\">…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverCommissionableNodesShortDiscrimina…</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> = <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverCommissionableNodesShortDiscriminato…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">DiscoverCommissionableNodesVendor</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">DiscoverCommissionableNodesVendor</span><span style=\"font-weight: bold\">(</span>vendor<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">EstablishPASESessionIP</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">EstablishPASESessionIP</span><span style=\"font-weight: bold\">(</span>ipaddr, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> setupPinCode, nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetAddressAndPort</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetAddressAndPort</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetClusterHandler</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetClusterHandler</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetCompressedFabricId</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetCompressedFabricId</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetConnectedDeviceSync</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetConnectedDeviceSync</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetFabricId</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetFabricId</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetIPForDiscoveredDevice</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetIPForDiscoveredDevice</span><span style=\"font-weight: bold\">(</span>idx, addrStr, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> length<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">GetLogFilter</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">GetLogFilter</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">IsConnected</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">IsConnected</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">OpenCommissioningWindow</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">OpenCommissioningWindow</span><span style=\"font-weight: bold\">(</span>nodeid, timeout, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> iteration, discriminator, option<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ParseQRCode</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ParseQRCode</span><span style=\"font-weight: bold\">(</span>qrCode, output<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">PrintDiscoveredDevices</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">PrintDiscoveredDevices</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ReadAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ReadAttribute</span><span style=\"font-weight: bold\">(</span>nodeid: int, attributes: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> List<span style=\"font-weight: bold\">[</span>Union<span style=\"font-weight: bold\">[</span>NoneType, Tuple<span style=\"font-weight: bold\">[</span>int<span style=\"font-weight: bold\">]</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.Clus… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.Clus… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>int, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.Cluster<span style=\"font-weight: bold\">]]</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>int, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.ClusterAtt… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> returnClusterObject: bool = <span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> reportInterval: Tuple<span style=\"font-weight: bold\">[</span>int, int<span style=\"font-weight: bold\">]</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> fabricFiltered: bool = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Read a list of attributes from a target node</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes: A list of tuples of varying types</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">depending on the type of read being </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">requested:</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA.AttributeA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute = specific</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.ClusterA.AttributeA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute = specific</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> endpoint: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific, Cluster = *, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.ClusterA: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'*'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> or </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *, Cluster = *, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Attribute = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> The cluster and attributes specified </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">above are to be selected from the generated </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster objects.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> e.g.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">4</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">above.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.Basic </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">-- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">5</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.Basic.Attributes.Location </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">returnClusterObject: This returns the data as</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">consolidated cluster objects, with all </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes for a cluster inside</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> a single cluster-wide </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">cluster object.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">reportInterval: A tuple of two int-s for </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">MinIntervalFloor, MaxIntervalCeiling</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">. Used </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">by establishing subscriptions.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> When not provided, a read request will be</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">sent.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ReadEvent</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ReadEvent</span><span style=\"font-weight: bold\">(</span>nodeid: int, events: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> List<span style=\"font-weight: bold\">[</span>Union<span style=\"font-weight: bold\">[</span>NoneType, Tuple<span style=\"font-weight: bold\">[</span>int<span style=\"font-weight: bold\">]</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.Clus… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.Clus… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>int, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.Cluster<span style=\"font-weight: bold\">]]</span>, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Tuple<span style=\"font-weight: bold\">[</span>int, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> Type<span style=\"font-weight: bold\">[</span>chip.clusters.ClusterObjects.ClusterEve… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> reportInterval: Tuple<span style=\"font-weight: bold\">[</span>int, int<span style=\"font-weight: bold\">]</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Read a list of events from a target node</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">events: A list of tuples of varying types </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">depending on the type of read being </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">requested:</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA.EventA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Event = specific</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, Clusters.ClusterA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Event = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.ClusterA.EventA</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Event = specific</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> endpoint: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = specific, Cluster = *, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Event = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.ClusterA: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *, Cluster = specific, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Event = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'*'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> or </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">()</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">: </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Endpoint = *, Cluster = *, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Event = *</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">The cluster and events specified above are to</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">be selected from the generated cluster </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">objects.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">e.g.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">4</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> Clusters.Basic </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">5</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> above.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">ReadEvent</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">[</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Clusters.Basic.Events.Location </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">]</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> -- case </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">above.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">reportInterval: A tuple of two int-s for </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">MinIntervalFloor, MaxIntervalCeiling</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">. Used </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">by establishing subscriptions.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> When not provided, a read request will be</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">sent.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ResolveNode</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ResolveNode</span><span style=\"font-weight: bold\">(</span>nodeid<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SendCommand</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SendCommand</span><span style=\"font-weight: bold\">(</span>nodeid: int, endpoint: int, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> payload: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> chip.clusters.ClusterObjects.ClusterCommand, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000\">responseType</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, timedRequestTimeoutMs: int <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Send a cluster-object encapsulated command to</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">a node and get returned a future that can be </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">awaited upon to receive the response.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">If a valid responseType is passed in, that </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">will be used to deserialize the object. If </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">not, the type will be automatically deduced</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">from the metadata received over the wire.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timedWriteTimeoutMs: Timeout for a timed </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">invoke request. Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">indicate a non-timed request.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetBlockingCB</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetBlockingCB</span><span style=\"font-weight: bold\">(</span>blockingCB<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetLogFilter</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetLogFilter</span><span style=\"font-weight: bold\">(</span>category<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetThreadOperationalDataset</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetThreadOperationalDataset</span><span style=\"font-weight: bold\">(</span>threadOperationa… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">SetWiFiCredentials</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">SetWiFiCredentials</span><span style=\"font-weight: bold\">(</span>ssid, credentials<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">Shutdown</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">Shutdown</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Shuts down this controller and reclaims any </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">used resources, including the bound</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">C++ constructor instance in the SDK.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ShutdownAll</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ShutdownAll</span><span style=\"font-weight: bold\">(</span><span style=\"color: #808000; text-decoration-color: #808000\">...</span><span style=\"font-weight: bold\">)</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Shut down all active </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">controllers and reclaim any used resources.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">WriteAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">WriteAttribute</span><span style=\"font-weight: bold\">(</span>nodeid: int, attributes: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> List<span style=\"font-weight: bold\">[</span>Tuple<span style=\"font-weight: bold\">[</span>int, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> chip.clusters.ClusterObjects.ClusterAttribut… <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> timedRequestTimeoutMs: int = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">Write a list of attributes on a target node.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">nodeId: Target's Node ID</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">timedWriteTimeoutMs: Timeout for a timed </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">write request. Omit or set to </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'None'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">indicate a non-timed request.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">attributes: A list of tuples of type </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">endpoint, cluster-object</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">)</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">:</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">E.g</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> </span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">(</span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">, </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #bf7fbf; text-decoration-color: #bf7fbf; font-weight: bold\">Clusters.TestCluster.Attributes.XYZAttribute</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f; font-weight: bold\">…</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">-- Write </span><span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">'hello'</span><span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\"> to the XYZ attribute on the </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #7f7f7f; text-decoration-color: #7f7f7f\">test cluster to endpoint </span><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf; font-weight: bold\">1</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ZCLAttributeList</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ZCLAttributeList</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ZCLCommandList</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ZCLCommandList</span><span style=\"font-weight: bold\">()</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ZCLReadAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ZCLReadAttribute</span><span style=\"font-weight: bold\">(</span>cluster, attribute, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> nodeid, endpoint, groupid, <span style=\"color: #808000; text-decoration-color: #808000\">blocking</span>=<span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ZCLSend</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ZCLSend</span><span style=\"font-weight: bold\">(</span>cluster, command, nodeid, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> endpoint, groupid, args, <span style=\"color: #808000; text-decoration-color: #808000\">blocking</span>=<span style=\"color: #ff0000; text-decoration-color: #ff0000; font-style: italic\">False</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ZCLSubscribeAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ZCLSubscribeAttribute</span><span style=\"font-weight: bold\">(</span>cluster, attribute, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> nodeid, endpoint, minInterval, maxInterval, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000\">blocking</span>=<span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #808000; text-decoration-color: #808000; font-style: italic\">ZCLWriteAttribute</span> = <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ZCLWriteAttribute</span><span style=\"font-weight: bold\">(</span>cluster: str, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> attribute: str, nodeid, endpoint, groupid, <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> value, <span style=\"color: #808000; text-decoration-color: #808000\">blocking</span>=<span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">╰───────────────────────────────────────────────────────────────────────────────────────────╯</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[34m╭─\u001b[0m\u001b[34m────────────────── \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'chip.ChipDeviceCtrl.ChipDeviceController'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m ───────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[32m╭───────────────────────────────────────────────────────────────────────────────────────╮\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1m<\u001b[0m\u001b[1;95mchip.ChipDeviceCtrl.ChipDeviceController\u001b[0m\u001b[39m object at \u001b[0m\u001b[1;36m0x1143b3910\u001b[0m\u001b[1m>\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[32m╰───────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mactiveList\u001b[0m = \u001b[1m{\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1m<\u001b[0m\u001b[1;95mchip.ChipDeviceCtrl.ChipDeviceController\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[39mobject at \u001b[0m\u001b[1;36m0x1143b3910\u001b[0m\u001b[1m>\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1m}\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mdevCtrl\u001b[0m = \u001b[1;35mc_void_p\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m140320379576320\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33misActive\u001b[0m = \u001b[3;92mTrue\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mstate\u001b[0m = \u001b[1m<\u001b[0m\u001b[1;95mDCState.IDLE:\u001b[0m\u001b[39m \u001b[0m\u001b[1;36m1\u001b[0m\u001b[1m>\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mcbHandleCommissioningCompleteFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandleCommissioningCompleteFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mcbHandleKeyExchangeCompleteFunct\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbHandleKeyExchangeCompleteFunct\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mcbOnAddressUpdateComplete\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mcbOnAddressUpdateComplete\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mCheckIsActive\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCheckIsActive\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mCloseBLEConnection\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCloseBLEConnection\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mCloseSession\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCloseSession\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mCommission\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCommission\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mCommissionIP\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mCommissionIP\u001b[0m\u001b[1m(\u001b[0mipaddr, setupPinCode, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m nodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mConnectBLE\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mConnectBLE\u001b[0m\u001b[1m(\u001b[0mdiscriminator, setupPinCode, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m nodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mConnectBle\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mConnectBle\u001b[0m\u001b[1m(\u001b[0mbleConnection\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mDiscoverAllCommissioning\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mDiscoverAllCommissioning\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mDiscoverCommissionableNodesCommissioningEn…\u001b[0m \u001b[3;96mdef \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m = \u001b[1;31mDiscoverCommissionableNodesCommissioningEnab…\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mDiscoverCommissionableNodesDeviceType\u001b[0m = \u001b[3;96mdef \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;31mDiscoverCommissionableNodesDeviceType\u001b[0m\u001b[1m(\u001b[0mdevice… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mDiscoverCommissionableNodesLongDiscriminat…\u001b[0m \u001b[3;96mdef \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m = \u001b[1;31mDiscoverCommissionableNodesLongDiscriminator\u001b[0m\u001b[1m…\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mDiscoverCommissionableNodesShortDiscrimina…\u001b[0m \u001b[3;96mdef \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m = \u001b[1;31mDiscoverCommissionableNodesShortDiscriminato…\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mDiscoverCommissionableNodesVendor\u001b[0m = \u001b[3;96mdef \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;31mDiscoverCommissionableNodesVendor\u001b[0m\u001b[1m(\u001b[0mvendor\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mEstablishPASESessionIP\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mEstablishPASESessionIP\u001b[0m\u001b[1m(\u001b[0mipaddr, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m setupPinCode, nodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetAddressAndPort\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetAddressAndPort\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetClusterHandler\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetClusterHandler\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetCompressedFabricId\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetCompressedFabricId\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetConnectedDeviceSync\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetConnectedDeviceSync\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetFabricId\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetFabricId\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetIPForDiscoveredDevice\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetIPForDiscoveredDevice\u001b[0m\u001b[1m(\u001b[0midx, addrStr, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m length\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mGetLogFilter\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mGetLogFilter\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mIsConnected\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mIsConnected\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mOpenCommissioningWindow\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mOpenCommissioningWindow\u001b[0m\u001b[1m(\u001b[0mnodeid, timeout, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m iteration, discriminator, option\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mParseQRCode\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mParseQRCode\u001b[0m\u001b[1m(\u001b[0mqrCode, output\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mPrintDiscoveredDevices\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mPrintDiscoveredDevices\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mReadAttribute\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mReadAttribute\u001b[0m\u001b[1m(\u001b[0mnodeid: int, attributes: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m List\u001b[1m[\u001b[0mUnion\u001b[1m[\u001b[0mNoneType, Tuple\u001b[1m[\u001b[0mint\u001b[1m]\u001b[0m, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mType\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.Clus… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mType\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.Clus… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mint, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Type\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.Cluster\u001b[1m]\u001b[0m\u001b[1m]\u001b[0m, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mint, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Type\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.ClusterAtt… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m returnClusterObject: bool = \u001b[3;91mFalse\u001b[0m, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m reportInterval: Tuple\u001b[1m[\u001b[0mint, int\u001b[1m]\u001b[0m = \u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m fabricFiltered: bool = \u001b[3;92mTrue\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mRead a list of attributes from a target node\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mnodeId: Target's Node ID\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mattributes: A list of tuples of varying types\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mdepending on the type of read being \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mrequested:\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA.AttributeA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = specific, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mAttribute = specific\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = specific, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mAttribute = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusters.ClusterA.AttributeA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = *, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mAttribute = specific\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m endpoint: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = specific, Cluster = *, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mAttribute = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m Clusters.ClusterA: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = *, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mAttribute = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[2;32m'*'\u001b[0m\u001b[2m or \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = *, Cluster = *, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mAttribute = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m The cluster and attributes specified \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mabove are to be selected from the generated \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mcluster objects.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m e.g.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m4\u001b[0m\u001b[2m \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mabove.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m Clusters.Basic \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m-- case \u001b[0m\u001b[1;2;36m5\u001b[0m\u001b[2m above.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2;35mReadAttribute\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mClusters.Basic.Attributes.Location \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mcase \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m above.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mreturnClusterObject: This returns the data as\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mconsolidated cluster objects, with all \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mattributes for a cluster inside\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m a single cluster-wide \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mcluster object.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mreportInterval: A tuple of two int-s for \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;2m(\u001b[0m\u001b[2mMinIntervalFloor, MaxIntervalCeiling\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m. Used \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mby establishing subscriptions.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m When not provided, a read request will be\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2msent.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mReadEvent\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mReadEvent\u001b[0m\u001b[1m(\u001b[0mnodeid: int, events: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m List\u001b[1m[\u001b[0mUnion\u001b[1m[\u001b[0mNoneType, Tuple\u001b[1m[\u001b[0mint\u001b[1m]\u001b[0m, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mType\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.Clus… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mType\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.Clus… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mint, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Type\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.Cluster\u001b[1m]\u001b[0m\u001b[1m]\u001b[0m, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Tuple\u001b[1m[\u001b[0mint, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m Type\u001b[1m[\u001b[0mchip.clusters.ClusterObjects.ClusterEve… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m reportInterval: Tuple\u001b[1m[\u001b[0mint, int\u001b[1m]\u001b[0m = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mRead a list of events from a target node\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mnodeId: Target's Node ID\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mevents: A list of tuples of varying types \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mdepending on the type of read being \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mrequested:\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA.EventA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = specific, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEvent = specific\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mendpoint, Clusters.ClusterA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = specific, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEvent = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[2mClusters.ClusterA.EventA\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = *, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEvent = specific\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m endpoint: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = specific, Cluster = *, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEvent = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m Clusters.ClusterA: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = *, Cluster = specific, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEvent = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[2;32m'*'\u001b[0m\u001b[2m or \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m: \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEndpoint = *, Cluster = *, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mEvent = *\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mThe cluster and events specified above are to\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mbe selected from the generated cluster \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mobjects.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2me.g.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2;35mReadEvent\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m4\u001b[0m\u001b[2m above.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2;35mReadEvent\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m Clusters.Basic \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;2;36m5\u001b[0m\u001b[2m above.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2;35mReadEvent\u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m\u001b[1;2m[\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mClusters.Basic.Events.Location \u001b[0m\u001b[1;2m]\u001b[0m\u001b[2m \u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m -- case \u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mabove.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mreportInterval: A tuple of two int-s for \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;2m(\u001b[0m\u001b[2mMinIntervalFloor, MaxIntervalCeiling\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m. Used \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mby establishing subscriptions.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m When not provided, a read request will be\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2msent.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mResolveNode\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mResolveNode\u001b[0m\u001b[1m(\u001b[0mnodeid\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mSendCommand\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSendCommand\u001b[0m\u001b[1m(\u001b[0mnodeid: int, endpoint: int, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m payload: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m chip.clusters.ClusterObjects.ClusterCommand, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[33mresponseType\u001b[0m=\u001b[3;35mNone\u001b[0m, timedRequestTimeoutMs: int \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mSend a cluster-object encapsulated command to\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2ma node and get returned a future that can be \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mawaited upon to receive the response.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mIf a valid responseType is passed in, that \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mwill be used to deserialize the object. If \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mnot, the type will be automatically deduced\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mfrom the metadata received over the wire.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mtimedWriteTimeoutMs: Timeout for a timed \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2minvoke request. Omit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mindicate a non-timed request.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mSetBlockingCB\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetBlockingCB\u001b[0m\u001b[1m(\u001b[0mblockingCB\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mSetLogFilter\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetLogFilter\u001b[0m\u001b[1m(\u001b[0mcategory\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mSetThreadOperationalDataset\u001b[0m = \u001b[3;96mdef \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;31mSetThreadOperationalDataset\u001b[0m\u001b[1m(\u001b[0mthreadOperationa… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mSetWiFiCredentials\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mSetWiFiCredentials\u001b[0m\u001b[1m(\u001b[0mssid, credentials\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mShutdown\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mShutdown\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mShuts down this controller and reclaims any \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mused resources, including the bound\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mC++ constructor instance in the SDK.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mShutdownAll\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mShutdownAll\u001b[0m\u001b[1m(\u001b[0m\u001b[33m...\u001b[0m\u001b[1m)\u001b[0m \u001b[2mShut down all active \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mcontrollers and reclaim any used resources.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mWriteAttribute\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mWriteAttribute\u001b[0m\u001b[1m(\u001b[0mnodeid: int, attributes: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m List\u001b[1m[\u001b[0mTuple\u001b[1m[\u001b[0mint, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m chip.clusters.ClusterObjects.ClusterAttribut… \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m timedRequestTimeoutMs: int = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mWrite a list of attributes on a target node.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mnodeId: Target's Node ID\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mtimedWriteTimeoutMs: Timeout for a timed \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mwrite request. Omit or set to \u001b[0m\u001b[2;32m'None'\u001b[0m\u001b[2m to \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mindicate a non-timed request.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mattributes: A list of tuples of type \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;2m(\u001b[0m\u001b[2mendpoint, cluster-object\u001b[0m\u001b[1;2m)\u001b[0m\u001b[2m:\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mE.g\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m \u001b[0m\u001b[1;2m(\u001b[0m\u001b[1;2;36m1\u001b[0m\u001b[2m, \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;2;35mClusters.TestCluster.Attributes.XYZAttribute\u001b[0m\u001b[1;2m…\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2m-- Write \u001b[0m\u001b[2;32m'hello'\u001b[0m\u001b[2m to the XYZ attribute on the \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[2mtest cluster to endpoint \u001b[0m\u001b[1;2;36m1\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mZCLAttributeList\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mZCLAttributeList\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mZCLCommandList\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mZCLCommandList\u001b[0m\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mZCLReadAttribute\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mZCLReadAttribute\u001b[0m\u001b[1m(\u001b[0mcluster, attribute, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m nodeid, endpoint, groupid, \u001b[33mblocking\u001b[0m=\u001b[3;92mTrue\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mZCLSend\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mZCLSend\u001b[0m\u001b[1m(\u001b[0mcluster, command, nodeid, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m endpoint, groupid, args, \u001b[33mblocking\u001b[0m=\u001b[3;91mFalse\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mZCLSubscribeAttribute\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mZCLSubscribeAttribute\u001b[0m\u001b[1m(\u001b[0mcluster, attribute, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m nodeid, endpoint, minInterval, maxInterval, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[33mblocking\u001b[0m=\u001b[3;92mTrue\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;33mZCLWriteAttribute\u001b[0m = \u001b[3;96mdef \u001b[0m\u001b[1;31mZCLWriteAttribute\u001b[0m\u001b[1m(\u001b[0mcluster: str, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m attribute: str, nodeid, endpoint, groupid, \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m value, \u001b[33mblocking\u001b[0m=\u001b[3;92mTrue\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m╰───────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭─────────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> mattersetlog at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x115ea1670</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">></span><span style=\"color: #000080; text-decoration-color: #000080\"> ───────────╮</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">mattersetlog</span><span style=\"font-weight: bold\">(</span>level<span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">35</span><span style=\"font-style: italic\"> attribute(s) not shown.</span> Run <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">inspect</span><span style=\"font-weight: bold\">(</span>inspect<span style=\"font-weight: bold\">)</span> for options. <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">╰──────────────────────────────────────────────────────────────╯</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[34m╭─\u001b[0m\u001b[34m────────── \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m mattersetlog at \u001b[0m\u001b[1;36m0x115ea1670\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m ──────────\u001b[0m\u001b[34m─╮\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;96mdef \u001b[0m\u001b[1;31mmattersetlog\u001b[0m\u001b[1m(\u001b[0mlevel\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;36m35\u001b[0m\u001b[3m attribute(s) not shown.\u001b[0m Run \u001b[1;35minspect\u001b[0m\u001b[1m(\u001b[0minspect\u001b[1m)\u001b[0m for options. \u001b[34m│\u001b[0m\n", |
| "\u001b[34m╰──────────────────────────────────────────────────────────────╯\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| }, |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭───────────────── </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">function</span><span style=\"color: #000000; text-decoration-color: #000000\"> mattersetdebug at </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">0x115ea1700</span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\">></span><span style=\"color: #000080; text-decoration-color: #000080\"> ──────────────────╮</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">mattersetdebug</span><span style=\"font-weight: bold\">(</span>enableDebugMode: bool = <span style=\"color: #00ff00; text-decoration-color: #00ff00; font-style: italic\">True</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Enables debug mode that is utilized by some Matter modules</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">to better facilitate debugging of failures </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">(</span><span style=\"color: #008080; text-decoration-color: #008080\">e.g throwing exceptions instead</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">of returning well-formatted results</span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">)</span><span style=\"color: #008080; text-decoration-color: #008080\">.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">35</span><span style=\"font-style: italic\"> attribute(s) not shown.</span> Run <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">inspect</span><span style=\"font-weight: bold\">(</span>inspect<span style=\"font-weight: bold\">)</span> for options. <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">╰─────────────────────────────────────────────────────────────────────────────╯</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[34m╭─\u001b[0m\u001b[34m──────────────── \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mfunction\u001b[0m\u001b[39m mattersetdebug at \u001b[0m\u001b[1;36m0x115ea1700\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m ─────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;96mdef \u001b[0m\u001b[1;31mmattersetdebug\u001b[0m\u001b[1m(\u001b[0menableDebugMode: bool = \u001b[3;92mTrue\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mEnables debug mode that is utilized by some Matter modules\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mto better facilitate debugging of failures \u001b[0m\u001b[1;36m(\u001b[0m\u001b[36me.g throwing exceptions instead\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mof returning well-formatted results\u001b[0m\u001b[1;36m)\u001b[0m\u001b[36m.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;36m35\u001b[0m\u001b[3m attribute(s) not shown.\u001b[0m Run \u001b[1;35minspect\u001b[0m\u001b[1m(\u001b[0minspect\u001b[1m)\u001b[0m for options. \u001b[34m│\u001b[0m\n", |
| "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| } |
| ], |
| "source": [ |
| "matterhelp()" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "17536445-9ca7-4bcb-9a1b-752d08858442", |
| "metadata": {}, |
| "source": [ |
| "To get help on a specific method in that class, you can pass that in as an argument:" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 4, |
| "id": "537404ad-cf20-4ce8-9cd6-037c397339ee", |
| "metadata": {}, |
| "outputs": [ |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #000080; text-decoration-color: #000080\">╭─ </span><span style=\"color: #000080; text-decoration-color: #000080; font-weight: bold\"><</span><span style=\"color: #ff00ff; text-decoration-color: #ff00ff; font-weight: bold\">bound</span><span style=\"color: #000000; text-decoration-color: #000000\"> method ChipDeviceController.SendCommand of <chip.ChipDeviceCtrl.ChipDeviceControl</span><span style=\"color: #000080; text-decoration-color: #000080\">─╮</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #00ffff; text-decoration-color: #00ffff; font-style: italic\">def </span><span style=\"color: #800000; text-decoration-color: #800000; font-weight: bold\">ChipDeviceController.SendCommand</span><span style=\"font-weight: bold\">(</span>nodeid: int, endpoint: int, payload: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> chip.clusters.ClusterObjects.ClusterCommand, <span style=\"color: #808000; text-decoration-color: #808000\">responseType</span>=<span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span>, timedRequestTimeoutMs: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> int = <span style=\"color: #800080; text-decoration-color: #800080; font-style: italic\">None</span><span style=\"font-weight: bold\">)</span>: <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">Send a cluster-object encapsulated command to a node and get returned a future that can </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">be awaited upon to receive the response.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">If a valid responseType is passed in, that will be used to deserialize the object. If </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">not, the type will be automatically deduced</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">from the metadata received over the wire.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">timedWriteTimeoutMs: Timeout for a timed invoke request. Omit or set to </span><span style=\"color: #008000; text-decoration-color: #008000\">'None'</span><span style=\"color: #008080; text-decoration-color: #008080\"> to </span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080\">indicate a non-timed request.</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">│</span> <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">27</span><span style=\"font-style: italic\"> attribute(s) not shown.</span> Run <span style=\"color: #800080; text-decoration-color: #800080; font-weight: bold\">inspect</span><span style=\"font-weight: bold\">(</span>inspect<span style=\"font-weight: bold\">)</span> for options. <span style=\"color: #000080; text-decoration-color: #000080\">│</span>\n", |
| "<span style=\"color: #000080; text-decoration-color: #000080\">╰───────────────────────────────────────────────────────────────────────────────────────────╯</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\u001b[34m╭─\u001b[0m\u001b[34m \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mbound\u001b[0m\u001b[39m method ChipDeviceController.SendCommand of <chip.ChipDeviceCtrl.ChipDeviceControl\u001b[0m\u001b[34m─╮\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[3;96mdef \u001b[0m\u001b[1;31mChipDeviceController.SendCommand\u001b[0m\u001b[1m(\u001b[0mnodeid: int, endpoint: int, payload: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m chip.clusters.ClusterObjects.ClusterCommand, \u001b[33mresponseType\u001b[0m=\u001b[3;35mNone\u001b[0m, timedRequestTimeoutMs: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m int = \u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m: \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mSend a cluster-object encapsulated command to a node and get returned a future that can \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mbe awaited upon to receive the response.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mIf a valid responseType is passed in, that will be used to deserialize the object. If \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mnot, the type will be automatically deduced\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mfrom the metadata received over the wire.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mtimedWriteTimeoutMs: Timeout for a timed invoke request. Omit or set to \u001b[0m\u001b[32m'None'\u001b[0m\u001b[36m to \u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[36mindicate a non-timed request.\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", |
| "\u001b[34m│\u001b[0m \u001b[1;36m27\u001b[0m\u001b[3m attribute(s) not shown.\u001b[0m Run \u001b[1;35minspect\u001b[0m\u001b[1m(\u001b[0minspect\u001b[1m)\u001b[0m for options. \u001b[34m│\u001b[0m\n", |
| "\u001b[34m╰───────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| } |
| ], |
| "source": [ |
| "matterhelp(devCtrl.SendCommand)" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "85a5e222-3efc-499a-b41b-a76ec75e17ea", |
| "metadata": {}, |
| "source": [ |
| "## Log Levels\n", |
| "\n", |
| "By default on boot, the log level is set to `logging.ERROR`. If you would like to see more debug messages, you can set the logging level by doing so:" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 5, |
| "id": "331b1d7b-02c7-4415-9583-630973024de7", |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "mattersetlog(logging.DEBUG)" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "f27e75e7-71fe-44fa-b070-f804a6afd1ce", |
| "metadata": {}, |
| "source": [ |
| "To set it back:" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 6, |
| "id": "f0e3428d-2316-4f45-9746-f637191634c7", |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "mattersetlog(logging.WARNING)" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "id": "d8bb4bc6-336e-4747-8a8b-dc8369f92246", |
| "metadata": {}, |
| "source": [ |
| "## Pretty Printing\n", |
| "The Matter REPL leverages the rich Python package heavily to do pretty printing of various data structures with appropriate colored formatting.\n", |
| "\n", |
| "This pretty printer is installed by default into the REPL environment:" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 7, |
| "id": "8282f584-bd20-4b2b-b8f9-ea72cf6c4820", |
| "metadata": {}, |
| "outputs": [ |
| { |
| "data": { |
| "text/html": [ |
| "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n", |
| "<span style=\"font-weight: bold\">{</span>\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ </span><span style=\"color: #008000; text-decoration-color: #008000\">'value'</span>: <span style=\"font-weight: bold\">[</span>\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>,\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">3</span>,\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>,\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ </span><span style=\"font-weight: bold\">[</span>\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ │ </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span>,\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ │ </span><span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">2</span>\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ │ </span><span style=\"font-weight: bold\">]</span>\n", |
| "<span style=\"color: #7fbf7f; text-decoration-color: #7fbf7f\">│ </span><span style=\"font-weight: bold\">]</span>\n", |
| "<span style=\"font-weight: bold\">}</span>\n", |
| "</pre>\n" |
| ], |
| "text/plain": [ |
| "\n", |
| "\u001b[1m{\u001b[0m\n", |
| "\u001b[2;32m│ \u001b[0m\u001b[32m'value'\u001b[0m: \u001b[1m[\u001b[0m\n", |
| "\u001b[2;32m│ │ \u001b[0m\u001b[1;36m1\u001b[0m,\n", |
| "\u001b[2;32m│ │ \u001b[0m\u001b[1;36m2\u001b[0m,\n", |
| "\u001b[2;32m│ │ \u001b[0m\u001b[1;36m3\u001b[0m,\n", |
| "\u001b[2;32m│ │ \u001b[0m\u001b[1;36m4\u001b[0m,\n", |
| "\u001b[2;32m│ │ \u001b[0m\u001b[1m[\u001b[0m\n", |
| "\u001b[2;32m│ │ │ \u001b[0m\u001b[1;36m1\u001b[0m,\n", |
| "\u001b[2;32m│ │ │ \u001b[0m\u001b[1;36m2\u001b[0m\n", |
| "\u001b[2;32m│ │ \u001b[0m\u001b[1m]\u001b[0m\n", |
| "\u001b[2;32m│ \u001b[0m\u001b[1m]\u001b[0m\n", |
| "\u001b[1m}\u001b[0m\n" |
| ] |
| }, |
| "metadata": {}, |
| "output_type": "display_data" |
| } |
| ], |
| "source": [ |
| "a = {'value': [1, 2, 3, 4, [1, 2]]}\n", |
| "a" |
| ] |
| } |
| ], |
| "metadata": { |
| "kernelspec": { |
| "display_name": "matter-env", |
| "language": "python", |
| "name": "matter-env" |
| }, |
| "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.2+chromium.10" |
| } |
| }, |
| "nbformat": 4, |
| "nbformat_minor": 5 |
| } |