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.3.tar.gz (37.6 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.3-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: hhc_n818op_plugins-0.2.3.tar.gz
  • Upload date:
  • Size: 37.6 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.3.tar.gz
Algorithm Hash digest
SHA256 3dde4c782a74f0906da19116e9d0647d19a7c65658aac80762d10e440fc7aba0
MD5 92561560dae815f44ae16e139c92ca6c
BLAKE2b-256 ed2c191ee011f66d8a5aedad424d8725a8ceead66fc406d91170e9308d926fc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for hhc_n818op_plugins-0.2.3.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.3-py3-none-any.whl.

File metadata

File hashes

Hashes for hhc_n818op_plugins-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0c85e1da5d99fee0255275fcd45bc6c336f84f3cf206ac02bf3f661be9cc30a3
MD5 5aefe4568b6928f782159c154a841de0
BLAKE2b-256 d7965a681dac07e6371eeb5adfca8e87c07208601836d90b8e085f7969a00783

See more details on using hashes here.

Provenance

The following attestation bundles were made for hhc_n818op_plugins-0.2.3-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