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.pluginsentry-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 versionsmake 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.jsonmeross_registry.jsonmeross_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_n818opand excludes test files
Contributing
- Create a feature branch.
- Run formatting and checks.
- Run tests.
- 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.
Metadata
Release files for hhc-n818op-plugins 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hhc_n818op_plugins-0.3.1.tar.gz | 37.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hhc_n818op_plugins-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.2 kB
Release files / hhc_n818op_plugins-0.3.1.tar.gz
| Download URL | hhc_n818op_plugins-0.3.1.tar.gz |
|---|---|
| Size | 37.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
482f344d00fd34e9b8124852686d35a867ce8a694c12366f9814cbb180e424e7
|
|
BLAKE2b-256 checksum How to use checksums |
dd9a3c159522386c181ac4e2f85fc2b0982dd7433ff3d42a948b3bf72a4ff7da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency logRelease files / hhc_n818op_plugins-0.3.1-py3-none-any.whl
| Download URL | hhc_n818op_plugins-0.3.1-py3-none-any.whl |
|---|---|
| Size | 21.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e3b6ce29779fbc827dc77c0b5f68f5857ecd1f7521d4cc09f0407e1d61d0d86
|
|
BLAKE2b-256 checksum How to use checksums |
771273ca2c0c66a1a85884ce0491efdfe9a18feeed41c76409b48b42431026c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency log