Python package to control Sengled Wifi Devices Programmatically.
Project description
SengledWifiPy
Python package for controlling Sengled Wifi devices.
NOTE
: This has no relation with Sengled. There's no official API.
Features:
- Simulates the behavior of the Android App.
- Create a websocket connection to the MQTT broker to receive updates (Cloud Push).
- Alternative method to publish an update without creating a websocket connection.
Documentation
TL;DR The package is based on 3 classes:
SengledWifiLogin
- Takes care of the login (requires credentials), reduces the API calls to a minimum by saving a session cookie locally.SengledWifiMqtt
- Requires a login (SengledWifiLogin), creates the connection to the MQTT server, subscribe to topics and publish updates. Is a wrapper for paho-mqtt.SengledWifiApi
- Uses the other two classes to get/set devices state
Usage example
Simple example that will subscribe to all the topics related to the devices in the Sengled account. SengledWifiMqtt can also receive callbacks for new messages (will be executed when an update is received).
import logging
import asyncio
from sengledwifipy import SengledLogin, SengledWifiAPI, SengledWifiMQTT
#set this for testing only
logging.basicConfig(level=logging.DEBUG)
def testing():
async def testmqtt():
login = SengledLogin(email = "email@domain.com",password = "verysecure")
await login.login()
devices = await SengledWifiAPI.get_devices(login)
MqttClient = SengledWifiMQTT(login)
await MqttClient.async_connect(devices)
while True:
await asyncio.sleep(60)
return asyncio.run(testmqtt())
testing()
This is a way to update the device state:
SengledWifiAPI.set_device_state(MqttClient,"deviceId",power_on=True, brightness=100)
Contributing
- Check for open features/bugs.
- Fork the repository.
- (Recommended) Use the latest version of Python supported >= 3.12.
- (Recommended) Install poetry (recommended installation method: pipx):
pipx install poetry
- Install the development environment:
poetry install --with dev
pre-commit install
- Code your new feature or bug fix on a new branch.
- Make sure to update the docstring as required.
- Submit a pull request!
Credits
Inspired by:
- alexapy (design ideas)
- ha-sengledapi
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sengledwifipy-0.0.9.tar.gz
(17.2 kB
view details)
Built Distribution
File details
Details for the file sengledwifipy-0.0.9.tar.gz
.
File metadata
- Download URL: sengledwifipy-0.0.9.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0487815e002887c8f55f10e9ced1b363e8b7094e9a5cf3f800ff33ce062fb9e4 |
|
MD5 | a414c58d44fcefa79f12f7a363cba299 |
|
BLAKE2b-256 | cf8714ccf3e3035447fad3a29f841cbe765c02b2a3d223f834596ad08b7ad5f6 |
File details
Details for the file sengledwifipy-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: sengledwifipy-0.0.9-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.5.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0158bfd7cabdcd4903aee6a34eeb41bf1921cfe009d7f0405735bebe854fef4 |
|
MD5 | f311b8bb1df6eb016a329420976a8dc2 |
|
BLAKE2b-256 | 1c94b6b6f36653d26250840c9359bee2ec977a5f5ef19d768216981ef12c2053 |