Skip to main content

Python library for controlling Link2Home devices

Project description

Link2Home Protocoll implementation

This projects implements (part of) the propretiary Link2Home communication protocol for monitoring and controlling devices from third party projects.

:warning: This is under development and in very early stage! :warning: This project is based on reverse engineering and is neither associated nor supported by the offical product. This is mere a workaround to the missing of an official open API or third party integrations

Basics

The Link2Home protocol is relying on two major parts:

  1. Authenticated HTTP Calls to a backend hosted by the vendor. This is mainly for user profile portability, storing device metadata and discovery
  2. Unauthenticated UDP Broad- and Unicasts for changing device state and announcing changes

This project currently relies solely on 2. and is operating solely within the local network.

Usage

With importing the UDPServer class, you've are able to access the data stream of device change updates, the current directory of known devices and sending command messages

from l2h import UDPServer

server = UDPServer()

def deviceCallback(deviceStatus):
    print("New Device Update: {}".format(deviceStatus))

devices = server.getDevices()
server.setStatus("192.168.1.3", 1, True)

server.listen(deviceCallback)

Devices will be auto-discovered with their first state switch (i.e. when they are sending their first status update after the program has started), only after that, the library will be able to successfully communicate with the device. It is recommended that you trigger the devices manually (either by their physical buttons or via the official app) after having the server up to make autodiscovery work faster. Please Note: Apps currently also show up as devices.

main.py is also offering a CLI mode that will log status updates of devices and allow to alternate states of a device by it's IP supplied as an argument:

python main.py --ip 192.168.1.3

Development

As of now, this library has been developed and tested solely with a EMQ303WF-1 smart socket

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

pyl2h-0.2.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

pyl2h-0.2.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file pyl2h-0.2.1.tar.gz.

File metadata

  • Download URL: pyl2h-0.2.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pyl2h-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0e3ebb0e3db98f2135d541ceb310ba6c6ebd13f72348c23ed4b1fd6be8cb4baf
MD5 3e95be6b2109600a705fde60d68eceab
BLAKE2b-256 360407065958205b8e69d5698f65e0efaf2ab87a40f7190a6e8dc4da70c8c0a6

See more details on using hashes here.

File details

Details for the file pyl2h-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pyl2h-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pyl2h-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ac89f8c63ad5f39677204a475f9f1d0329070aac0ab1d3ac38f007d2e9982892
MD5 3efed50e60f85d306b2dfa510dedd4e8
BLAKE2b-256 0651ab49b9f769476b0c5f06de56d1447b5ee76a27fb428e40184ebe530436b1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page