tplink-deco-api 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. tplink_deco_api-0.1.0/.claude/settings.local.json +23 -0
  2. tplink_deco_api-0.1.0/.gitignore +8 -0
  3. tplink_deco_api-0.1.0/.idea/.gitignore +3 -0
  4. tplink_deco_api-0.1.0/.idea/inspectionProfiles/profiles_settings.xml +6 -0
  5. tplink_deco_api-0.1.0/.idea/misc.xml +7 -0
  6. tplink_deco_api-0.1.0/.idea/modules.xml +8 -0
  7. tplink_deco_api-0.1.0/.idea/shelf/Uncommitted_changes_before_Interactive_in-memory_rebase_at_02_05_26,_00_00_[Changes]/shelved.patch +331 -0
  8. tplink_deco_api-0.1.0/.idea/shelf/Uncommitted_changes_before_Interactive_in-memory_rebase_at_02_05_26__00_00__Changes_.xml +4 -0
  9. tplink_deco_api-0.1.0/.idea/shelf/Uncommitted_changes_before_rebase_[Changes]/shelved.patch +323 -0
  10. tplink_deco_api-0.1.0/.idea/shelf/Uncommitted_changes_before_rebase_[Changes]1/shelved.patch +0 -0
  11. tplink_deco_api-0.1.0/.idea/shelf/Uncommitted_changes_before_rebase__Changes_.xml +4 -0
  12. tplink_deco_api-0.1.0/.idea/tplink-deco-api.iml +11 -0
  13. tplink_deco_api-0.1.0/.idea/vcs.xml +6 -0
  14. tplink_deco_api-0.1.0/.idea/workspace.xml +150 -0
  15. tplink_deco_api-0.1.0/CLAUDE.md +60 -0
  16. tplink_deco_api-0.1.0/PKG-INFO +79 -0
  17. tplink_deco_api-0.1.0/README.md +56 -0
  18. tplink_deco_api-0.1.0/docs/auth-protocol.md +239 -0
  19. tplink_deco_api-0.1.0/examples/clients.py +78 -0
  20. tplink_deco_api-0.1.0/examples/dump_responses.py +72 -0
  21. tplink_deco_api-0.1.0/pyproject.toml +43 -0
  22. tplink_deco_api-0.1.0/src/tplink_deco/__init__.py +39 -0
  23. tplink_deco_api-0.1.0/src/tplink_deco/auth/__init__.py +5 -0
  24. tplink_deco_api-0.1.0/src/tplink_deco/auth/protocol.py +45 -0
  25. tplink_deco_api-0.1.0/src/tplink_deco/auth/session.py +26 -0
  26. tplink_deco_api-0.1.0/src/tplink_deco/auth/transport.py +43 -0
  27. tplink_deco_api-0.1.0/src/tplink_deco/client.py +120 -0
  28. tplink_deco_api-0.1.0/src/tplink_deco/crypto/__init__.py +5 -0
  29. tplink_deco_api-0.1.0/src/tplink_deco/crypto/aes.py +37 -0
  30. tplink_deco_api-0.1.0/src/tplink_deco/crypto/hash.py +5 -0
  31. tplink_deco_api-0.1.0/src/tplink_deco/crypto/rsa.py +27 -0
  32. tplink_deco_api-0.1.0/src/tplink_deco/endpoints.py +24 -0
  33. tplink_deco_api-0.1.0/src/tplink_deco/exceptions/__init__.py +7 -0
  34. tplink_deco_api-0.1.0/src/tplink_deco/exceptions/api.py +7 -0
  35. tplink_deco_api-0.1.0/src/tplink_deco/exceptions/auth.py +5 -0
  36. tplink_deco_api-0.1.0/src/tplink_deco/exceptions/base.py +2 -0
  37. tplink_deco_api-0.1.0/src/tplink_deco/exceptions/crypto.py +5 -0
  38. tplink_deco_api-0.1.0/src/tplink_deco/exceptions/transport.py +7 -0
  39. tplink_deco_api-0.1.0/src/tplink_deco/models/__init__.py +35 -0
  40. tplink_deco_api-0.1.0/src/tplink_deco/models/_utils.py +11 -0
  41. tplink_deco_api-0.1.0/src/tplink_deco/models/client_device.py +45 -0
  42. tplink_deco_api-0.1.0/src/tplink_deco/models/device.py +62 -0
  43. tplink_deco_api-0.1.0/src/tplink_deco/models/device_mode.py +17 -0
  44. tplink_deco_api-0.1.0/src/tplink_deco/models/login_result.py +7 -0
  45. tplink_deco_api-0.1.0/src/tplink_deco/models/performance.py +15 -0
  46. tplink_deco_api-0.1.0/src/tplink_deco/models/rsa_key.py +11 -0
  47. tplink_deco_api-0.1.0/src/tplink_deco/models/session_keys.py +9 -0
  48. tplink_deco_api-0.1.0/src/tplink_deco/models/signal_level.py +16 -0
  49. tplink_deco_api-0.1.0/src/tplink_deco/models/wlan_config.py +131 -0
  50. tplink_deco_api-0.1.0/tests/__init__.py +0 -0
  51. tplink_deco_api-0.1.0/tests/test_crypto.py +96 -0
  52. tplink_deco_api-0.1.0/tests/test_login.py +110 -0
  53. tplink_deco_api-0.1.0/tests/test_protocol.py +92 -0
  54. tplink_deco_api-0.1.0/uv.lock +178 -0
@@ -0,0 +1,23 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(curl -sk --max-time 5 -o /dev/null -w \"%{http_code}\" http://192.168.5.5/)",
5
+ "Bash(curl -sk --max-time 5 -o /dev/null -w \"%{http_code}\" http://102.168.5.5/)",
6
+ "Bash(curl -sk --max-time 5 http://192.168.5.1/)",
7
+ "Bash(curl -sk --max-time 5 http://192.168.5.1/webpages/index.html)",
8
+ "Bash(curl *)",
9
+ "Bash(python3)",
10
+ "Bash(curl -sk --max-time 5 http://192.168.5.1/webpages/js/su/frame.js)",
11
+ "Read(//tmp/**)",
12
+ "Bash(python3 *)",
13
+ "Bash(uv add *)",
14
+ "Bash(mkdir -p /Users/rodrigo/Documents/GitHub/tplink-deco-api/src/tplink_deco)",
15
+ "Bash(mkdir -p /Users/rodrigo/Documents/GitHub/tplink-deco-api/tests)",
16
+ "Bash(uv pip *)",
17
+ "Bash(uv run *)",
18
+ "Bash(git -C /Users/rodrigo/Documents/GitHub/tplink-deco-api status)",
19
+ "Bash(git -C /Users/rodrigo/Documents/GitHub/tplink-deco-api log --oneline -5)",
20
+ "Bash(git *)"
21
+ ]
22
+ }
23
+ }
@@ -0,0 +1,8 @@
1
+ .env
2
+ .venv/
3
+ __pycache__/
4
+ *.pyc
5
+ .pytest_cache/
6
+ dist/
7
+ *.egg-info/
8
+ /docs/api-responses/
@@ -0,0 +1,3 @@
1
+ # Default ignored files
2
+ /shelf/
3
+ /workspace.xml
@@ -0,0 +1,6 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <settings>
3
+ <option name="USE_PROJECT_PROFILE" value="false" />
4
+ <version value="1.0" />
5
+ </settings>
6
+ </component>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Black">
4
+ <option name="sdkName" value="uv (tplink-deco-api)" />
5
+ </component>
6
+ <component name="ProjectRootManager" version="2" project-jdk-name="uv (tplink-deco-api)" project-jdk-type="Python SDK" />
7
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/tplink-deco-api.iml" filepath="$PROJECT_DIR$/.idea/tplink-deco-api.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,331 @@
1
+ Index: docs/api-responses/login.json
2
+ IDEA additional info:
3
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
4
+ <+>{\n \"stok\": \"613f470e7d0a1b80bdd892ce3afee660\",\n \"usr_lvl\": 1\n}
5
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
6
+ <+>UTF-8
7
+ ===================================================================
8
+ diff --git a/docs/api-responses/login.json b/docs/api-responses/login.json
9
+ --- a/docs/api-responses/login.json (revision 46a07672302de38ab6ee80851e300faafa9015f4)
10
+ +++ b/docs/api-responses/login.json (date 1777690004315)
11
+ @@ -1,4 +1,4 @@
12
+ {
13
+ - "stok": "613f470e7d0a1b80bdd892ce3afee660",
14
+ + "stok": "f367a5a3c0024531d99f4b158df153a0",
15
+ "usr_lvl": 1
16
+ }
17
+
18
+ Index: docs/api-responses/device_list.json
19
+ IDEA additional info:
20
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
21
+ <+>[\n {\n \"mac\": \"0C-EF-15-E1-B2-16\",\n \"device_ip\": \"192.168.5.1\",\n \"device_model\": \"BE65\",\n \"device_type\": \"HOMEWIFISYSTEM\",\n \"role\": \"master\",\n \"nickname\": \"Sala\",\n \"custom_nickname\": \"Sala\",\n \"hardware_ver\": \"2.0\",\n \"software_ver\": \"1.2.10 Build 20251229 Rel. 42008\",\n \"oem_id\": \"72b19417103daaf0ab48e4393b54dc29\",\n \"hw_id\": \"76b4c145961a6ef1e5f027c516ea5caf\",\n \"bssid_2g\": \"12:EF:15:E1:B2:18\",\n \"bssid_5g\": \"12:EF:15:E1:B2:19\",\n \"bssid_sta_2g\": \"\",\n \"bssid_sta_5g\": \"\",\n \"inet_status\": \"online\",\n \"inet_error_msg\": \"well\",\n \"group_status\": \"connected\",\n \"signal_level\": {\n \"band2_4\": \"0\",\n \"band5\": \"0\",\n \"band6\": \"0\"\n },\n \"product_level\": 200,\n \"set_gateway_support\": true,\n \"support_plc\": false,\n \"oversized_firmware\": true,\n \"nand_flash\": true\n }\n]
22
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
23
+ <+>UTF-8
24
+ ===================================================================
25
+ diff --git a/docs/api-responses/device_list.json b/docs/api-responses/device_list.json
26
+ --- a/docs/api-responses/device_list.json (revision 46a07672302de38ab6ee80851e300faafa9015f4)
27
+ +++ b/docs/api-responses/device_list.json (date 1777690004649)
28
+ @@ -1,6 +1,6 @@
29
+ [
30
+ {
31
+ - "mac": "0C-EF-15-E1-B2-16",
32
+ + "mac": "0C:EF:15:E1:B2:16",
33
+ "device_ip": "192.168.5.1",
34
+ "device_model": "BE65",
35
+ "device_type": "HOMEWIFISYSTEM",
36
+ Index: docs/api-responses/client_list.json
37
+ IDEA additional info:
38
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
39
+ <+>[\n {\n \"mac\": \"4C-A9-19-BB-7B-07\",\n \"ip\": \"192.168.5.120\",\n \"name\": \"Luz do Banheiro\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"B4-ED-D5-19-52-F3\",\n \"ip\": \"192.168.5.118\",\n \"name\": \"Luz da Cama\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"EC-8A-C4-AB-08-35\",\n \"ip\": \"192.168.5.104\",\n \"name\": \"Alexa da Sala\",\n \"up_speed\": 1,\n \"down_speed\": 1,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band5\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"mlo\",\n \"client_type\": \"other\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"4C-A9-19-C0-AF-72\",\n \"ip\": \"192.168.5.116\",\n \"name\": \"Luz da Sala\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"F4-65-0B-07-93-F0\",\n \"ip\": \"192.168.5.107\",\n \"name\": \"Ar-condicionado\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"C4-F7-C1-0A-99-DE\",\n \"ip\": \"192.168.5.122\",\n \"name\": \"Apple TV\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wired\",\n \"connection_type\": \"wired\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"main\",\n \"client_type\": \"entertainment\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": false,\n \"enable_priority\": false\n },\n {\n \"mac\": \"F8-17-2D-42-25-3B\",\n \"ip\": \"192.168.5.106\",\n \"name\": \"Alimentador Automático\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"E0-BB-9E-16-5E-5D\",\n \"ip\": \"192.168.5.124\",\n \"name\": \"Impressora\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"other\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"B4-ED-D5-19-59-5C\",\n \"ip\": \"192.168.5.113\",\n \"name\": \"Luz do Espelho\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"74-6D-FA-63-59-4D\",\n \"ip\": \"192.168.5.121\",\n \"name\": \"TV da Sala\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wired\",\n \"connection_type\": \"wired\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"main\",\n \"client_type\": \"entertainment\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": false,\n \"enable_priority\": false\n },\n {\n \"mac\": \"C0-5D-89-A9-A1-64\",\n \"ip\": \"192.168.5.105\",\n \"name\": \"Neakasa M1\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"14-35-B7-74-06-5C\",\n \"ip\": \"192.168.5.114\",\n \"name\": \"iPhone 16\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band6\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"mlo\",\n \"client_type\": \"phone\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"38-A5-C9-D2-CC-F3\",\n \"ip\": \"192.168.5.115\",\n \"name\": \"Umidificador\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"4C-A9-19-C0-AF-64\",\n \"ip\": \"192.168.5.117\",\n \"name\": \"Luz do Quarto\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"B4-ED-D5-19-60-37\",\n \"ip\": \"192.168.5.108\",\n \"name\": \"Luz da Pia\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"78-93-C3-EE-82-34\",\n \"ip\": \"192.168.5.123\",\n \"name\": \"TV do Quarto\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band5\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"main\",\n \"client_type\": \"entertainment\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"28-6B-B4-A5-70-42\",\n \"ip\": \"192.168.5.110\",\n \"name\": \"Geladeira\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"50-F2-65-E9-7D-62\",\n \"ip\": \"192.168.5.125\",\n \"name\": \"MacBook Pro\",\n \"up_speed\": 1,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band6\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"main\",\n \"client_type\": \"pc\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"D8-3A-DD-BB-D5-25\",\n \"ip\": \"192.168.5.5\",\n \"name\": \"Raspberry Pi\",\n \"up_speed\": 23,\n \"down_speed\": 3,\n \"wire_type\": \"wired\",\n \"connection_type\": \"wired\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"main\",\n \"client_type\": \"pc\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": false,\n \"enable_priority\": false\n },\n {\n \"mac\": \"80-64-7C-98-D3-D7\",\n \"ip\": \"192.168.5.109\",\n \"name\": \"Janela do Quarto\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"80-85-44-60-35-BD\",\n \"ip\": \"192.168.5.101\",\n \"name\": \"Câmera da Sala\",\n \"up_speed\": 90,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"C0-84-FF-A8-05-DA\",\n \"ip\": \"192.168.5.100\",\n \"name\": \"Lava-louças\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"A4-57-A0-46-8E-24\",\n \"ip\": \"192.168.5.103\",\n \"name\": \"Lava e Seca\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"44-6D-7F-A9-63-E2\",\n \"ip\": \"192.168.5.111\",\n \"name\": \"Alexa do Quarto\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band5\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"mlo\",\n \"client_type\": \"other\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n },\n {\n \"mac\": \"AC-8C-46-C4-CE-3F\",\n \"ip\": \"192.168.5.112\",\n \"name\": \"Aspirador\",\n \"up_speed\": 0,\n \"down_speed\": 0,\n \"wire_type\": \"wireless\",\n \"connection_type\": \"band2_4\",\n \"space_id\": \"1\",\n \"access_host\": \"1\",\n \"interface\": \"iot\",\n \"client_type\": \"iot_device\",\n \"owner_id\": \"\",\n \"remain_time\": 0,\n \"online\": true,\n \"client_mesh\": true,\n \"enable_priority\": false\n }\n]
40
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
41
+ <+>UTF-8
42
+ ===================================================================
43
+ diff --git a/docs/api-responses/client_list.json b/docs/api-responses/client_list.json
44
+ --- a/docs/api-responses/client_list.json (revision 46a07672302de38ab6ee80851e300faafa9015f4)
45
+ +++ b/docs/api-responses/client_list.json (date 1777690008748)
46
+ @@ -1,27 +1,9 @@
47
+ [
48
+ {
49
+ - "mac": "4C-A9-19-BB-7B-07",
50
+ + "mac": "4C:A9:19:BB:7B:07",
51
+ "ip": "192.168.5.120",
52
+ "name": "Luz do Banheiro",
53
+ - "up_speed": 0,
54
+ - "down_speed": 0,
55
+ - "wire_type": "wireless",
56
+ - "connection_type": "band2_4",
57
+ - "space_id": "1",
58
+ - "access_host": "1",
59
+ - "interface": "iot",
60
+ - "client_type": "iot_device",
61
+ - "owner_id": "",
62
+ - "remain_time": 0,
63
+ - "online": true,
64
+ - "client_mesh": true,
65
+ - "enable_priority": false
66
+ - },
67
+ - {
68
+ - "mac": "B4-ED-D5-19-52-F3",
69
+ - "ip": "192.168.5.118",
70
+ - "name": "Luz da Cama",
71
+ - "up_speed": 0,
72
+ + "up_speed": 2,
73
+ "down_speed": 0,
74
+ "wire_type": "wireless",
75
+ "connection_type": "band2_4",
76
+ @@ -36,11 +18,11 @@
77
+ "enable_priority": false
78
+ },
79
+ {
80
+ - "mac": "EC-8A-C4-AB-08-35",
81
+ + "mac": "EC:8A:C4:AB:08:35",
82
+ "ip": "192.168.5.104",
83
+ "name": "Alexa da Sala",
84
+ - "up_speed": 1,
85
+ - "down_speed": 1,
86
+ + "up_speed": 10,
87
+ + "down_speed": 5,
88
+ "wire_type": "wireless",
89
+ "connection_type": "band5",
90
+ "space_id": "1",
91
+ @@ -54,7 +36,7 @@
92
+ "enable_priority": false
93
+ },
94
+ {
95
+ - "mac": "4C-A9-19-C0-AF-72",
96
+ + "mac": "4C:A9:19:C0:AF:72",
97
+ "ip": "192.168.5.116",
98
+ "name": "Luz da Sala",
99
+ "up_speed": 0,
100
+ @@ -72,7 +54,7 @@
101
+ "enable_priority": false
102
+ },
103
+ {
104
+ - "mac": "F4-65-0B-07-93-F0",
105
+ + "mac": "F4:65:0B:07:93:F0",
106
+ "ip": "192.168.5.107",
107
+ "name": "Ar-condicionado",
108
+ "up_speed": 0,
109
+ @@ -90,7 +72,7 @@
110
+ "enable_priority": false
111
+ },
112
+ {
113
+ - "mac": "C4-F7-C1-0A-99-DE",
114
+ + "mac": "C4:F7:C1:0A:99:DE",
115
+ "ip": "192.168.5.122",
116
+ "name": "Apple TV",
117
+ "up_speed": 0,
118
+ @@ -108,7 +90,7 @@
119
+ "enable_priority": false
120
+ },
121
+ {
122
+ - "mac": "F8-17-2D-42-25-3B",
123
+ + "mac": "F8:17:2D:42:25:3B",
124
+ "ip": "192.168.5.106",
125
+ "name": "Alimentador Automático",
126
+ "up_speed": 0,
127
+ @@ -126,7 +108,7 @@
128
+ "enable_priority": false
129
+ },
130
+ {
131
+ - "mac": "E0-BB-9E-16-5E-5D",
132
+ + "mac": "E0:BB:9E:16:5E:5D",
133
+ "ip": "192.168.5.124",
134
+ "name": "Impressora",
135
+ "up_speed": 0,
136
+ @@ -144,7 +126,7 @@
137
+ "enable_priority": false
138
+ },
139
+ {
140
+ - "mac": "B4-ED-D5-19-59-5C",
141
+ + "mac": "B4:ED:D5:19:59:5C",
142
+ "ip": "192.168.5.113",
143
+ "name": "Luz do Espelho",
144
+ "up_speed": 0,
145
+ @@ -162,11 +144,11 @@
146
+ "enable_priority": false
147
+ },
148
+ {
149
+ - "mac": "74-6D-FA-63-59-4D",
150
+ + "mac": "74:6D:FA:63:59:4D",
151
+ "ip": "192.168.5.121",
152
+ "name": "TV da Sala",
153
+ - "up_speed": 0,
154
+ - "down_speed": 0,
155
+ + "up_speed": 29,
156
+ + "down_speed": 42,
157
+ "wire_type": "wired",
158
+ "connection_type": "wired",
159
+ "space_id": "1",
160
+ @@ -180,7 +162,7 @@
161
+ "enable_priority": false
162
+ },
163
+ {
164
+ - "mac": "C0-5D-89-A9-A1-64",
165
+ + "mac": "C0:5D:89:A9:A1:64",
166
+ "ip": "192.168.5.105",
167
+ "name": "Neakasa M1",
168
+ "up_speed": 0,
169
+ @@ -198,7 +180,7 @@
170
+ "enable_priority": false
171
+ },
172
+ {
173
+ - "mac": "14-35-B7-74-06-5C",
174
+ + "mac": "14:35:B7:74:06:5C",
175
+ "ip": "192.168.5.114",
176
+ "name": "iPhone 16",
177
+ "up_speed": 0,
178
+ @@ -216,7 +198,7 @@
179
+ "enable_priority": false
180
+ },
181
+ {
182
+ - "mac": "38-A5-C9-D2-CC-F3",
183
+ + "mac": "38:A5:C9:D2:CC:F3",
184
+ "ip": "192.168.5.115",
185
+ "name": "Umidificador",
186
+ "up_speed": 0,
187
+ @@ -234,7 +216,7 @@
188
+ "enable_priority": false
189
+ },
190
+ {
191
+ - "mac": "4C-A9-19-C0-AF-64",
192
+ + "mac": "4C:A9:19:C0:AF:64",
193
+ "ip": "192.168.5.117",
194
+ "name": "Luz do Quarto",
195
+ "up_speed": 0,
196
+ @@ -252,7 +234,7 @@
197
+ "enable_priority": false
198
+ },
199
+ {
200
+ - "mac": "B4-ED-D5-19-60-37",
201
+ + "mac": "B4:ED:D5:19:60:37",
202
+ "ip": "192.168.5.108",
203
+ "name": "Luz da Pia",
204
+ "up_speed": 0,
205
+ @@ -270,7 +252,7 @@
206
+ "enable_priority": false
207
+ },
208
+ {
209
+ - "mac": "78-93-C3-EE-82-34",
210
+ + "mac": "78:93:C3:EE:82:34",
211
+ "ip": "192.168.5.123",
212
+ "name": "TV do Quarto",
213
+ "up_speed": 0,
214
+ @@ -288,7 +270,7 @@
215
+ "enable_priority": false
216
+ },
217
+ {
218
+ - "mac": "28-6B-B4-A5-70-42",
219
+ + "mac": "28:6B:B4:A5:70:42",
220
+ "ip": "192.168.5.110",
221
+ "name": "Geladeira",
222
+ "up_speed": 0,
223
+ @@ -306,11 +288,11 @@
224
+ "enable_priority": false
225
+ },
226
+ {
227
+ - "mac": "50-F2-65-E9-7D-62",
228
+ + "mac": "50:F2:65:E9:7D:62",
229
+ "ip": "192.168.5.125",
230
+ "name": "MacBook Pro",
231
+ - "up_speed": 1,
232
+ - "down_speed": 0,
233
+ + "up_speed": 325,
234
+ + "down_speed": 182,
235
+ "wire_type": "wireless",
236
+ "connection_type": "band6",
237
+ "space_id": "1",
238
+ @@ -324,11 +306,11 @@
239
+ "enable_priority": false
240
+ },
241
+ {
242
+ - "mac": "D8-3A-DD-BB-D5-25",
243
+ + "mac": "D8:3A:DD:BB:D5:25",
244
+ "ip": "192.168.5.5",
245
+ "name": "Raspberry Pi",
246
+ - "up_speed": 23,
247
+ - "down_speed": 3,
248
+ + "up_speed": 65,
249
+ + "down_speed": 35,
250
+ "wire_type": "wired",
251
+ "connection_type": "wired",
252
+ "space_id": "1",
253
+ @@ -342,7 +324,7 @@
254
+ "enable_priority": false
255
+ },
256
+ {
257
+ - "mac": "80-64-7C-98-D3-D7",
258
+ + "mac": "80:64:7C:98:D3:D7",
259
+ "ip": "192.168.5.109",
260
+ "name": "Janela do Quarto",
261
+ "up_speed": 0,
262
+ @@ -360,10 +342,10 @@
263
+ "enable_priority": false
264
+ },
265
+ {
266
+ - "mac": "80-85-44-60-35-BD",
267
+ + "mac": "80:85:44:60:35:BD",
268
+ "ip": "192.168.5.101",
269
+ "name": "Câmera da Sala",
270
+ - "up_speed": 90,
271
+ + "up_speed": 84,
272
+ "down_speed": 0,
273
+ "wire_type": "wireless",
274
+ "connection_type": "band2_4",
275
+ @@ -378,7 +360,7 @@
276
+ "enable_priority": false
277
+ },
278
+ {
279
+ - "mac": "C0-84-FF-A8-05-DA",
280
+ + "mac": "C0:84:FF:A8:05:DA",
281
+ "ip": "192.168.5.100",
282
+ "name": "Lava-louças",
283
+ "up_speed": 0,
284
+ @@ -396,7 +378,7 @@
285
+ "enable_priority": false
286
+ },
287
+ {
288
+ - "mac": "A4-57-A0-46-8E-24",
289
+ + "mac": "A4:57:A0:46:8E:24",
290
+ "ip": "192.168.5.103",
291
+ "name": "Lava e Seca",
292
+ "up_speed": 0,
293
+ @@ -414,7 +396,7 @@
294
+ "enable_priority": false
295
+ },
296
+ {
297
+ - "mac": "44-6D-7F-A9-63-E2",
298
+ + "mac": "44:6D:7F:A9:63:E2",
299
+ "ip": "192.168.5.111",
300
+ "name": "Alexa do Quarto",
301
+ "up_speed": 0,
302
+ @@ -432,10 +414,10 @@
303
+ "enable_priority": false
304
+ },
305
+ {
306
+ - "mac": "AC-8C-46-C4-CE-3F",
307
+ + "mac": "AC:8C:46:C4:CE:3F",
308
+ "ip": "192.168.5.112",
309
+ "name": "Aspirador",
310
+ - "up_speed": 0,
311
+ + "up_speed": 31,
312
+ "down_speed": 0,
313
+ "wire_type": "wireless",
314
+ "connection_type": "band2_4",
315
+ Index: docs/api-responses/performance.json
316
+ IDEA additional info:
317
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
318
+ <+>{\n \"cpu_usage\": 0.09,\n \"mem_usage\": 0.42\n}
319
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
320
+ <+>UTF-8
321
+ ===================================================================
322
+ diff --git a/docs/api-responses/performance.json b/docs/api-responses/performance.json
323
+ --- a/docs/api-responses/performance.json (revision 46a07672302de38ab6ee80851e300faafa9015f4)
324
+ +++ b/docs/api-responses/performance.json (date 1777690008301)
325
+ @@ -1,4 +1,4 @@
326
+ {
327
+ - "cpu_usage": 0.09,
328
+ + "cpu_usage": 0.08,
329
+ "mem_usage": 0.42
330
+ }
331
+
@@ -0,0 +1,4 @@
1
+ <changelist name="Uncommitted_changes_before_Interactive_in-memory_rebase_at_02_05_26,_00_00_[Changes]" date="1777690850080" recycled="true" deleted="true">
2
+ <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Interactive_in-memory_rebase_at_02_05_26,_00_00_[Changes]/shelved.patch" />
3
+ <option name="DESCRIPTION" value="Uncommitted changes before Interactive in-memory rebase at 02/05/26, 00:00 [Changes]" />
4
+ </changelist>