Skip to main content

Tools to create a Domoticz plugin for local-tuya devices.

Project description

local-tuya-domoticz-tools

tests version python

Tools to create a Domoticz plugin for local-tuya devices.

💡 The Domoticz version should be 2022.1 or higher.

Creating the plugin

To create a plugin, you will need to create 2 things.

Plugin metadata

This is the XML header that is used to populate the plugin creation page in Domoticz. You can create it using local_tuya_domoticz_tools.PluginMetadata.

Starting the device.

To start the plugin, you need to create the device and register the units.

Check local_tuya_domoticz_tools.plugin.plugin.OnStart for the function signature.

Units should be created using manager.register(...).

For a switch unit, it would look like:

from typing import Dict

from local_tuya import DeviceConfig, ProtocolConfig
from local_tuya_domoticz_tools import UnitManager, switch_unit

from my_device import SwitchState, SwitchDevice


def on_start(
    protocol_config: ProtocolConfig,
    _: Dict[str, str],
    manager: UnitManager[SwitchState],
) -> SwitchDevice:
    device = SwitchDevice(config=DeviceConfig(protocol=protocol_config))
    manager.register(
        switch_unit(
            id_=1,
            name="power",
            image=9,
            command_func=device.switch,
        ),
        lambda s: s.power,
    )
    return device

Units

Units represent a Domoticz device and is associated to a Domoticz hardware.

Manager

The role of the manager is to

  • create/remove units: register method
  • dispatch the commands from units: on_command method
  • update units state: update method

Unit types

For common units parameters, see the base.

Installing the plugin

You should provide a script that will be used to install the plugin. It would look like:

from local_tuya_domoticz_tools import install_plugin, PluginMetadata

def on_start(...):
    ...


if __name__ == "__main__":
    install_plugin(
        metadata=PluginMetadata(...),
        on_start=on_start,
        import_path="my_device.domoticz",
    )

💡 Domoticz path defaults to ~/domoticz a -p option can be passed to change that.

Filtering units

You can automatically add an option to the plugin to filter created units.

To enable it, you need to implement local_tuya_domoticz_tools.UnitId and add all unit IDs, then simply pass it to the install function. UnitManager.register will handle device deletion.

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

local_tuya_domoticz_tools-1.2.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

local_tuya_domoticz_tools-1.2.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file local_tuya_domoticz_tools-1.2.0.tar.gz.

File metadata

  • Download URL: local_tuya_domoticz_tools-1.2.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.3 Linux/6.5.0-1018-azure

File hashes

Hashes for local_tuya_domoticz_tools-1.2.0.tar.gz
Algorithm Hash digest
SHA256 519f0dc53ec436ecde9edfb43760ffd3f29f996655b45bff074ef10696e37682
MD5 227722cc563956d0d502384526bf56ba
BLAKE2b-256 a5c6c1294a3ef2ee1c33a244144a63dc77257c996e0686a45d0ba72aa24aa2c7

See more details on using hashes here.

File details

Details for the file local_tuya_domoticz_tools-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for local_tuya_domoticz_tools-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 428c5fd899636db1fd5fa00a9e4d5d98f123f3f25cb09dc1da35b986e1297f1a
MD5 4f5adca2ef8d145c3a1c7014ce3d7f75
BLAKE2b-256 4f0c3ec0c8971e924d7c5e43f2a1ba8c2715eb120f8b0b770aa33a37b4cc2886

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