sdk for duwi third platform
Project description
Duwi Device Management SDK
A Python SDK for Duwi Open API, which provides basic IoT capabilities like device management capabilities, helping you create IoT solutions. The Duwi IoT Development Platform opens basic IoT capabilities such as device management and data analytics services, helping you build robust IoT applications.
Features
APIs
- Manager.customerClient
login(phone: str, password: str) -> dict[str, Any] | Nonecontrol(is_group: bool, body: Optional[ControlDevice]) -> dict[str, Any] | Nonediscover() -> dict[str, Any]fetch_floor_info() -> dict[str, Any] | Nonefetch_house_info() -> dict[str, Any] | Nonediscover_groups() -> dict[str, Any]refresh() -> dict[str, Any] | Nonefetch_room_info() -> dict[str, Any] | Nonecontrol_scene(sceneNo: str) -> dict[str, Any] | Nonefetch_terminal_info() -> dict[str, Any] | Nonefetch_scene_info() -> dict[str, Any] | None
Device Listeners
SharingDeviceListener: Interface for listening to device state changes.SharingTokenListener: Interface for handling authentication token updates.
Possible Scenarios
- Smart Home Integration
- Automated Device Control
- Real-time Device Monitoring
Usage
Installation
pip3 install duwi-open-sdk
Example
Initialize the Manager
To initialize the manager, use the following code:
from duwi_open_sdk.device_scene_models import CustomerDevice
from duwi_open_sdk import Manager
manager = Manager(
_id="example_entry_id",
customer_api=CustomerApi(
address="http://example.com",
ws_address="ws://example.com/ws",
app_key="your_app_key",
app_secret="your_app_secret",
house_no="your_house_no",
house_name="Your House Name",
access_token="your_access_token",
refresh_token="your_refresh_token",
client_version="1.0",
client_model="Model XYZ",
app_version="0.1.0",
),
house_key="your_house_key",
)
# Execute login
login_status = await manager.login("your_phone_number", "your_password")
Implementing Listeners
To listen to device status updates and handle token authentication, implement the listeners as follows:
class DeviceListener(SharingDeviceListener):
async def on_device_update(self, device_id: str, data: dict):
# Handle device update logic
pass
class TokenListener(SharingTokenListener):
async def on_token_refresh(self, new_token: str):
# Handle token refresh logic
pass
# Add the listeners to the manager
device_listener = DeviceListener()
token_listener = TokenListener()
manager.add_device_listener(device_listener)
Accessing Device Information
You can access any device information through the manager:
device_info = manager.device_map.get("your_device_id")
Release Note
| version | Description |
|---|---|
| 0.2.4 | Initial release |
Issue Feedback
You can provide feedback on your issue via Github Issue.
License
duwi-device-management-sdk is available under the MIT license. Please see the LICENSE file for more info.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file duwi_open_sdk-0.2.5.tar.gz.
File metadata
- Download URL: duwi_open_sdk-0.2.5.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d20ca8ce00a067a38520a6348e6e39cb4a945c6de3dcb41675012a82d98a0fb6
|
|
| MD5 |
ffdbd99038782f509c5e2ce989567da6
|
|
| BLAKE2b-256 |
f4e8b05163fe0a47698e8c2c3450b4137039589fcdead60055e6374b5fb577a9
|