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.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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hhc_n818op_plugins-0.2.2.tar.gz.
File metadata
- Download URL: hhc_n818op_plugins-0.2.2.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c092763e7da053c5452dcf5d7fa9150970552551016001193f864fe23bb5a4b
|
|
| MD5 |
5b0beffbc500c760683c5324a838437f
|
|
| BLAKE2b-256 |
2a5addd14416243a2a6ecfb2e6e69fb007753fe52623428d5d9801e1af61d5e6
|
Provenance
The following attestation bundles were made for hhc_n818op_plugins-0.2.2.tar.gz:
Publisher:
package-release.yml on lachapette/hhc-n818op-plugins
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hhc_n818op_plugins-0.2.2.tar.gz -
Subject digest:
2c092763e7da053c5452dcf5d7fa9150970552551016001193f864fe23bb5a4b - Sigstore transparency entry: 1375287784
- Sigstore integration time:
-
Permalink:
lachapette/hhc-n818op-plugins@937d346a38689b26cedb17e6032649f60ee2d0c1 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/lachapette
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package-release.yml@937d346a38689b26cedb17e6032649f60ee2d0c1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hhc_n818op_plugins-0.2.2-py3-none-any.whl.
File metadata
- Download URL: hhc_n818op_plugins-0.2.2-py3-none-any.whl
- Upload date:
- Size: 22.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1490512f9bae4dfdaced3114e52db3cfc304ed4ba85aded9c53cc33e17a67d7e
|
|
| MD5 |
6dc42eb441985539cfe8f43c5ec791db
|
|
| BLAKE2b-256 |
733cb5e0d7f6ba1f3f7821ee9271edfd5d6f93d9d283d810204a802e6016115b
|
Provenance
The following attestation bundles were made for hhc_n818op_plugins-0.2.2-py3-none-any.whl:
Publisher:
package-release.yml on lachapette/hhc-n818op-plugins
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hhc_n818op_plugins-0.2.2-py3-none-any.whl -
Subject digest:
1490512f9bae4dfdaced3114e52db3cfc304ed4ba85aded9c53cc33e17a67d7e - Sigstore transparency entry: 1375287919
- Sigstore integration time:
-
Permalink:
lachapette/hhc-n818op-plugins@937d346a38689b26cedb17e6032649f60ee2d0c1 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/lachapette
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package-release.yml@937d346a38689b26cedb17e6032649f60ee2d0c1 -
Trigger Event:
push
-
Statement type: