Skip to main content

Plugins devices IOT for Server HHC-N818OP Standalone with Python

Project description

hhc-n818op-plugins

Python plugin package for IoT devices used by HHC-N818OP Standalone.

This repository contains device adapters that extend the standalone daemon through Python entry points. At the moment, the project provides plugins for:

  • Athom Smart Home devices over HTTP
  • Meross devices over MQTT (via meross-iot)

Project Status

  • Python package metadata is defined in pyproject.toml.
  • Plugin discovery is configured through the daemon_hhc_n818op.plugins entry-point group.
  • The tests/ folder currently contains only package scaffolding.

Requirements

  • Python >=3.10,<3.14
  • uv (recommended for dependency and virtualenv management)
  • Access to the companion project hhc-n818op-standalone (declared as a direct dependency)

Installation

1) Clone the repository

git clone <your-fork-or-origin-url>
cd hhc-n818op-plugins

2) Install dependencies

uv sync

If you prefer editable installation with pip:

python -m pip install -e .

Quick Start

Install from PyPI (when available)

pip install hhc-n818op-plugins

Install from source (development mode)

git clone <your-fork-or-origin-url>
cd hhc-n818op-plugins
pip install -e .

Verify installation

python -c "from daemon_hhc_n818op.plugins.athom import PluginAthomSmartHome; print('✓ Athom plugin loaded')"
python -c "from daemon_hhc_n818op.plugins.meross import PluginMeross; print('✓ Meross plugin loaded')"

Development Workflow

Common targets are available in Makefile:

  • make dev - install and validate toolchain versions
  • make style - run formatting (isort, black)
  • make checks - run static analysis (ruff, flake8, pylint, mypy, bandit)
  • make tests - run unit-test selection (not integration_tests)

You can also run commands directly with uv:

uv run pytest -v
uv run ruff check daemon_hhc_n818op tests
uv run black --check daemon_hhc_n818op tests

Plugin Layout

daemon_hhc_n818op/
  plugins/
    athom/
      athom_smart_client_home_http.py
    meross/
      meross_client_cloud_mqtt.py

Athom plugin

  • Main implementation: daemon_hhc_n818op/plugins/athom/athom_smart_client_home_http.py
  • Class: PluginAthomSmartHome
  • Behavior:
    • Checks relay status over HTTP
    • Toggles relay state
    • Disables itself when host/network or payload errors are detected

Meross plugin

  • Main implementation: daemon_hhc_n818op/plugins/meross/meross_client_cloud_mqtt.py
  • Class: PluginMeross
  • Behavior:
    • Authenticates through Meross cloud credentials/profile
    • Initializes MerossManager
    • Discovers devices and controls switch state
    • Persists profile/registry credential artifacts in the plugin folder

Configuration Notes

Meross plugin uses JSON files located under daemon_hhc_n818op/plugins/meross/, including:

  • meross_profile.json
  • meross_registry.json
  • meross_cloud_credentials.json

Keep these files sanitized and avoid committing real secrets.

Packaging

  • Build backend: setuptools.build_meta
  • License: GPL-3.0-only
  • Source package target includes daemon_hhc_n818op and excludes test files

Contributing

  1. Create a feature branch.
  2. Run formatting and checks.
  3. Run tests.
  4. Open a pull request with a clear change description.

License

This project is distributed under the terms of the GPL-3.0-only license. See LICENSE.

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

hhc_n818op_plugins-0.2.0.tar.gz (37.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hhc_n818op_plugins-0.2.0-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file hhc_n818op_plugins-0.2.0.tar.gz.

File metadata

  • Download URL: hhc_n818op_plugins-0.2.0.tar.gz
  • Upload date:
  • Size: 37.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hhc_n818op_plugins-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3bc09d6be5c394655600f6d170b08503795b1e95ab32d569569a70397d715366
MD5 e3e6edac4013375ad528448b9b337014
BLAKE2b-256 fa850691b2bc26f0e89c74a10157a0e706586a962ffd6488f53b3f6f7b8cd67b

See more details on using hashes here.

Provenance

The following attestation bundles were made for hhc_n818op_plugins-0.2.0.tar.gz:

Publisher: package-release.yml on lachapette/hhc-n818op-plugins

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hhc_n818op_plugins-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hhc_n818op_plugins-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c69e7e0458bb9ce648aa5013b7bc191ccb79fc93a500ab48572035a51ef1fb51
MD5 d82cb78c5475c0fc5608c0c8baa216ed
BLAKE2b-256 3a04cb7c0aa35f9c02378a0af3dac410255ad7208dffd3340c64968055441133

See more details on using hashes here.

Provenance

The following attestation bundles were made for hhc_n818op_plugins-0.2.0-py3-none-any.whl:

Publisher: package-release.yml on lachapette/hhc-n818op-plugins

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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