This release is a pre-release and may not be stable for production use.
OM2M Python Client Documentation
This README provides a step-by-step guide to using the OM2M Python client to interact with an OM2M MN-CSE (Middle Node Common Services Entity). The code demonstrates creating and managing resources such as Application Entities (AE), Containers, ContentInstances, and Subscriptions.
Prerequisites
- Ensure you have an OM2M MN-CSE server running and accessible.
- Install the
om2m-clientlibrary:pip install micropython-om2m-client
- Adjust the
base_urland credentials to match your MN-CSE setup.
Example Steps
Step 1: Initialize the OM2M Client
Initialize the client with the base URL, CSE ID, CSE name, and authentication credentials.
from om2m_client.client import OM2MClient
client_mn = OM2MClient(
base_url="http://127.0.0.1:8282", # Adjust to your MN-CSE base URL
cse_id="mn-cse", # MN-CSE identifier
cse_name="mn-name", # MN-CSE resource name
username="admin", # Authentication username
password="admin", # Authentication password
use_json=True # Use JSON for data exchange
)
Step 2: Create an Application Entity (AE)
Create an AE under the MN-CSE with specific properties.
from om2m_client.models import AE
mn_ae = AE(
rn="MY_GATEWAY_SENSOR5", # Resource Name
api="mn-sensor-app5", # Application Identifier
rr=False, # Request Reachability
lbl=["Type/gatewaySensor", "Location/factory"]
)
ae_resource_id = client_mn.create_ae(mn_ae)
print("AE Resource ID (MN-CSE):", ae_resource_id)
Step 3: Create a Container
Create a Container under the previously created AE.
from om2m_client.models import Container
container_path = f"/{client_mn.cse_id}/{client_mn.cse_name}/{mn_ae.rn}"
mn_container = Container(
rn="DATA", # Container Name
lbl=["Category/temperature", "Unit/celsius"]
)
container_resource_id = client_mn.create_container(container_path, mn_container)
print("Container Resource ID (MN-CSE):", container_resource_id)
Step 4: Add a ContentInstance
Add a ContentInstance under the Container to store sensor data.
from om2m_client.models import ContentInstance
cin_path = f"{container_path}/DATA"
mn_cin = ContentInstance(
cnf="application/json", # Content Format
con="{\"temperature\": 27}" # Content (JSON string)
)
cin_resource_id = client_mn.create_content_instance(cin_path, mn_cin)
print("ContentInstance Resource ID (MN-CSE):", cin_resource_id)
Step 5: Discover Resources by Label
Retrieve resources matching a specific label, such as "Type/gatewaySensor".
discovery_response = client_mn.discover_resources_by_label("Type/gatewaySensor")
print("Discovery Response (MN-CSE):")
print(discovery_response)
Step 6: Create a Subscription
Create a Subscription to receive notifications on changes to the DATA container.
from om2m_client.models import Subscription
subscription_path = f"{container_path}/DATA"
mn_subscription = Subscription(
rn="MY_DATA_SUB", # Subscription Name
nu="http://localhost:1400/monitor", # Notification URI (local listener required)
nct=2 # Notification Content Type
)
subscription_resource_id = client_mn.create_subscription(subscription_path, mn_subscription)
print("Subscription Resource ID (MN-CSE):", subscription_resource_id)
Step 7: Retrieve and Print Resources
Retrieve and print the AE and Container content.
Retrieve AE Resource
retrieved_ae = client_mn.retrieve_resource(f"/{client_mn.cse_id}/{client_mn.cse_name}/MY_GATEWAY_SENSOR")
print("Retrieved AE Content (MN-CSE):")
print(retrieved_ae)
Retrieve Container Content
retrieved_data = client_mn.retrieve_resource(cin_path)
print("Retrieved DATA Container Content (MN-CSE):")
print(retrieved_data)
Notes
- Replace placeholders such as
base_url,cse_id,cse_name,username, andpasswordwith your actual OM2M server details. - Ensure your OM2M server is correctly configured to allow the operations in this example.
- The example assumes the MN-CSE uses JSON for communication.
This example serves as a template for integrating and managing resources using OM2M and Python. Customize it as needed for your specific use case.
Release files for micropython-om2m-client 0.1.0b4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| micropython_om2m_client-0.1.0b4.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| micropython_om2m_client-0.1.0b4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.7 kB
Release files / micropython_om2m_client-0.1.0b4.tar.gz
| Download URL | micropython_om2m_client-0.1.0b4.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91a23da77bc3c861dd80736a8639495f856dd409f57a333b8d322cb1d4e35586
|
|
BLAKE2b-256 checksum How to use checksums |
d69c868efb94a2f20eafd8ba3d24d61f05e505dbefbb71f7d171306a422f51fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.14
|
Release files / micropython_om2m_client-0.1.0b4-py3-none-any.whl
| Download URL | micropython_om2m_client-0.1.0b4-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be5df6305db0415277fe57a1508f8d60029a6478bf6ab2f94fcbef7ebf9595c1
|
|
BLAKE2b-256 checksum How to use checksums |
d9cd8cbc42cc3bdcb136c508a81e3a846ac0ff7bec58c453d92f83f3120194f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.10.14
|