Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions _data/paas-eu/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ toc:
new: true
section:
- title: Python Client SDK
path: /docs/reference/python-client-sdk
path: /docs/paas/eu/reference/python-client-sdk/
- title: MicroPython Client SDK
path: /docs/reference/micropython-client-sdk/
path: /docs/paas/eu/reference/micropython-client-sdk/
- title: CircuitPython Client SDK
path: /docs/reference/circuitpython-client-sdk/
path: /docs/paas/eu/reference/circuitpython-client-sdk/
6 changes: 3 additions & 3 deletions _data/paas/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ toc:
new: true
section:
- title: Python Client SDK
path: /docs/reference/python-client-sdk
path: /docs/paas/reference/python-client-sdk/
- title: MicroPython Client SDK
path: /docs/reference/micropython-client-sdk/
path: /docs/paas/reference/micropython-client-sdk/
- title: CircuitPython Client SDK
path: /docs/reference/circuitpython-client-sdk/
path: /docs/paas/reference/circuitpython-client-sdk/
30 changes: 30 additions & 0 deletions _data/pages_info.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1852,6 +1852,9 @@
"/docs/paas/eu/mobile-center/mobile-center/":
url: "/docs/paas/eu/mobile-center/mobile-center/"
redirect_from: []
"/docs/paas/eu/reference/circuitpython-client-sdk/":
url: "/docs/paas/eu/reference/circuitpython-client-sdk/"
redirect_from: []
"/docs/paas/eu/reference/coap-api/":
url: "/docs/paas/eu/reference/coap-api/"
redirect_from:
Expand All @@ -1872,6 +1875,9 @@
"/docs/paas/eu/reference/mcp-server/":
url: "/docs/paas/eu/reference/mcp-server/"
redirect_from: []
"/docs/paas/eu/reference/micropython-client-sdk/":
url: "/docs/paas/eu/reference/micropython-client-sdk/"
redirect_from: []
"/docs/paas/eu/reference/mqtt-api/":
url: "/docs/paas/eu/reference/mqtt-api/"
redirect_from:
Expand All @@ -1898,6 +1904,9 @@
url: "/docs/paas/eu/reference/snmp-api/"
redirect_from:
- "/docs/paas/eu/reference/snmp-api"
"/docs/paas/eu/samples/abeeway/tracker/":
url: "/docs/paas/eu/samples/abeeway/tracker/"
redirect_from: []
"/docs/paas/eu/samples/analytics/ai-models/":
url: "/docs/paas/eu/samples/analytics/ai-models/"
redirect_from: []
Expand Down Expand Up @@ -2417,6 +2426,9 @@
"/docs/paas/mobile-center/mobile-center/":
url: "/docs/paas/mobile-center/mobile-center/"
redirect_from: []
"/docs/paas/reference/circuitpython-client-sdk/":
url: "/docs/paas/reference/circuitpython-client-sdk/"
redirect_from: []
"/docs/paas/reference/coap-api/":
url: "/docs/paas/reference/coap-api/"
redirect_from:
Expand All @@ -2437,6 +2449,9 @@
"/docs/paas/reference/mcp-server/":
url: "/docs/paas/reference/mcp-server/"
redirect_from: []
"/docs/paas/reference/micropython-client-sdk/":
url: "/docs/paas/reference/micropython-client-sdk/"
redirect_from: []
"/docs/paas/reference/mqtt-api/":
url: "/docs/paas/reference/mqtt-api/"
redirect_from:
Expand All @@ -2463,6 +2478,9 @@
url: "/docs/paas/reference/snmp-api/"
redirect_from:
- "/docs/paas/reference/snmp-api"
"/docs/paas/samples/abeeway/tracker/":
url: "/docs/paas/samples/abeeway/tracker/"
redirect_from: []
"/docs/paas/samples/analytics/ai-models/":
url: "/docs/paas/samples/analytics/ai-models/"
redirect_from: []
Expand Down Expand Up @@ -3883,6 +3901,9 @@
url: "/docs/pe/mqtt-broker/white-labeling/"
redirect_from:
- "/docs/mqtt-broker/white-labeling/"
"/docs/pe/reference/circuitpython-client-sdk/":
url: "/docs/pe/reference/circuitpython-client-sdk/"
redirect_from: []
"/docs/pe/reference/coap-api/":
url: "/docs/pe/reference/coap-api/"
redirect_from:
Expand All @@ -3906,6 +3927,9 @@
"/docs/pe/reference/mcp-server/":
url: "/docs/pe/reference/mcp-server/"
redirect_from: []
"/docs/pe/reference/micropython-client-sdk/":
url: "/docs/pe/reference/micropython-client-sdk/"
redirect_from: []
"/docs/pe/reference/monolithic/":
url: "/docs/pe/reference/monolithic/"
redirect_from: []
Expand Down Expand Up @@ -4002,6 +4026,9 @@
"/docs/pe/releases/roadmap/":
url: "/docs/pe/releases/roadmap/"
redirect_from: []
"/docs/pe/samples/abeeway/tracker/":
url: "/docs/pe/samples/abeeway/tracker/"
redirect_from: []
"/docs/pe/samples/analytics/ai-models/":
url: "/docs/pe/samples/analytics/ai-models/"
redirect_from: []
Expand Down Expand Up @@ -4674,6 +4701,9 @@
url: "/docs/reference/architecture/"
redirect_from:
- "/docs/user-guide/rule-engine-2-0/architecture/"
"/docs/reference/circuitpython-client-sdk/":
url: "/docs/reference/circuitpython-client-sdk/"
redirect_from: []
"/docs/reference/coap-api/":
url: "/docs/reference/coap-api/"
redirect_from:
Expand Down
4 changes: 2 additions & 2 deletions _data/pe/api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ toc:
- title: Python Client SDK
path: /docs/pe/reference/python-client-sdk/
- title: MicroPython Client SDK
path: /docs/reference/micropython-client-sdk/
path: /docs/pe/reference/micropython-client-sdk/
- title: CircuitPython Client SDK
path: /docs/reference/circuitpython-client-sdk/
path: /docs/pe/reference/circuitpython-client-sdk/

4 changes: 2 additions & 2 deletions _includes/docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Server-side API is available as REST API:
Software development kits:

* [**Python Client SDK**](/docs/{{docsPrefix}}reference/python-client-sdk) - Software development kit for client-side integration of your Python projects.
* [**MicroPython Client SDK**](/docs/reference/micropython-client-sdk) - Software development kit for client-side integration of your MicroPython projects.
* [**CircuitPython Client SDK**](/docs/reference/circuitpython-client-sdk) - Software development kit for client-side integration of your CircuitPython projects.
* [**MicroPython Client SDK**](/docs/{{docsPrefix}}reference/micropython-client-sdk) - Software development kit for client-side integration of your MicroPython projects.
* [**CircuitPython Client SDK**](/docs/{{docsPrefix}}reference/circuitpython-client-sdk) - Software development kit for client-side integration of your CircuitPython projects.

{% endif %}
55 changes: 32 additions & 23 deletions _includes/docs/reference/python-client-sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,25 +68,26 @@ client.disconnect()
**TBDeviceMqttClient** provides access to Device MQTT APIs of ThingsBoard platform.
It allows publishing telemetry and attributes updates, subscribing to attribute changes, sending and receiving RPC commands, etc.

### Subscribtion to attributes
### Subscription to attributes

If you need to receive shared attributes updates, you can use the code like the following:

```python
from time import sleep
import time
from tb_device_mqtt import TBDeviceMqttClient


def callback(result):
def on_attributes_change(result, *args):
print(result)


client = TBDeviceMqttClient("127.0.0.1", username="A1_TEST_TOKEN")
client.connect()
client.subscribe_to_attribute("uploadFrequency", callback)
client.subscribe_to_all_attributes(callback)
while True:
sleep(1)
client.subscribe_to_attribute("uploadFrequency", on_attributes_change)
client.subscribe_to_all_attributes(on_attributes_change)

while True:
time.sleep(1)
```
{:.copy-code}

Expand Down Expand Up @@ -149,27 +150,30 @@ The following example connects to the ThingsBoard local instance and waits for R
When RPC request is received, the client will send the response to ThingsBoard with data from machine with client for device with the name **Test Device A1**.

```python
from psutil import cpu_percent, virtual_memory
from time import sleep
import time

from tb_device_mqtt import TBDeviceMqttClient

try:
import psutil
except ImportError:
print("Please install psutil using 'pip install psutil' command")
exit(1)

# dependently of request method we send different data back
def on_server_side_rpc_request(client, request_id, request_body):
def on_server_side_rpc_request(request_id, request_body):
print(request_id, request_body)
if request_body["method"] == "getCPULoad":
client.send_rpc_reply(request_id, {"CPU percent": cpu_percent()})
client.send_rpc_reply(request_id, {"CPU percent": psutil.cpu_percent()})
elif request_body["method"] == "getMemoryUsage":
client.send_rpc_reply(request_id, {"Memory": virtual_memory().percent})
client.send_rpc_reply(request_id, {"Memory": psutil.virtual_memory().percent})

client = TBDeviceMqttClient("127.0.0.1", username="A1_TEST_TOKEN")
client.set_server_side_rpc_request_handler(on_server_side_rpc_request)
client.connect()


while True:
sleep(1)

time.sleep(1)
```
{:.copy-code}

Expand Down Expand Up @@ -232,35 +236,40 @@ The following example will connect to the ThingsBoard local instance and wait fo
When RPC request will be received, client will send response to ThingsBoard with data for device with name **Test Device A1**.

```python
from time import sleep
from psutil import cpu_percent, virtual_memory
import time

from tb_gateway_mqtt import TBGatewayMqttClient

try:
import psutil
except ImportError:
print("Please install psutil using 'pip install psutil' command")
exit(1)


def rpc_request_response(client, request_id, request_body):
def rpc_request_response(request_id, request_body):
# request body contains id, method and other parameters
print(request_body)
method = request_body["data"]["method"]
device = request_body["device"]
req_id = request_body["data"]["id"]
# dependently of request method we send different data back
if method == 'getCPULoad':
gateway.gw_send_rpc_reply(device, req_id, {"CPU load": cpu_percent()})
gateway.gw_send_rpc_reply(device, req_id, {"CPU load": psutil.cpu_percent()})
elif method == 'getMemoryLoad':
gateway.gw_send_rpc_reply(device, req_id, {"Memory": virtual_memory().percent})
gateway.gw_send_rpc_reply(device, req_id, {"Memory": psutil.virtual_memory().percent})
else:
print('Unknown method: ' + method)


gateway = TBGatewayMqttClient("127.0.0.1", username="TEST_GATEWAY_TOKEN")
gateway.connect()
# now rpc_request_response will process rpc requests from servers
gateway.gw_set_server_side_rpc_request_handler(rpc_request_response)
# without device connection it is impossible to get any messages
gateway.gw_connect_device("Test Device A1")

while True:
sleep(1)

time.sleep(1)
```
{:.copy-code}

Expand Down
12 changes: 12 additions & 0 deletions docs/paas/eu/reference/circuitpython-client-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: docwithnav-paas-eu
assignees:
- samson0v
title: MicroPython Client SDK
description: Software development kit for client-side integration of your MicroPython projects

---

{% assign docsPrefix = "paas/eu/" %}
{% include get-hosts-name.html docsTag="paas-eu" %}
{% include docs/reference/micropython-client-sdk.md %}
12 changes: 12 additions & 0 deletions docs/paas/eu/reference/micropython-client-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: docwithnav-paas-eu
assignees:
- samson0v
title: CircuitPython Client SDK
description: Software development kit for client-side integration of your CircuitPython projects

---

{% assign docsPrefix = "paas/eu/" %}
{% include get-hosts-name.html docsTag="paas-eu" %}
{% include docs/reference/circuitpython-client-sdk.md %}
12 changes: 12 additions & 0 deletions docs/paas/reference/circuitpython-client-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: docwithnav-paas
assignees:
- samson0v
title: CircuitPython Client SDK
description: Software development kit for client-side integration of your CircuitPython projects

---

{% assign docsPrefix = "paas/" %}
{% include get-hosts-name.html docsPrefix=docsPrefix %}
{% include docs/reference/circuitpython-client-sdk.md %}
12 changes: 12 additions & 0 deletions docs/paas/reference/micropython-client-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: docwithnav-paas
assignees:
- samson0v
title: MicroPython Client SDK
description: Software development kit for client-side integration of your MicroPython projects

---

{% assign docsPrefix = "paas/" %}
{% include get-hosts-name.html docsPrefix=docsPrefix %}
{% include docs/reference/micropython-client-sdk.md %}
12 changes: 12 additions & 0 deletions docs/pe/reference/circuitpython-client-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: docwithnav-pe
assignees:
- samson0v
title: CircuitPython Client SDK
description: Software development kit for client-side integration of your CircuitPython projects

---

{% assign docsPrefix = "pe/" %}
{% include get-hosts-name.html docsPrefix=docsPrefix %}
{% include docs/reference/circuitpython-client-sdk.md %}
12 changes: 12 additions & 0 deletions docs/pe/reference/micropython-client-sdk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: docwithnav-pe
assignees:
- samson0v
title: MicroPython Client SDK
description: Software development kit for client-side integration of your MicroPython projects

---

{% assign docsPrefix = "pe/" %}
{% include get-hosts-name.html docsPrefix=docsPrefix %}
{% include docs/reference/micropython-client-sdk.md %}