Skip to content

commitsun/roomdoo-smartlocks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

roomdoo-smartlocks

Monorepo for Roomdoo smart lock integration libraries. Each subdirectory contains an independent Python package that can be installed and versioned separately.

Packages

Package Description
roomdoo-locks-base Abstract contract (interface, exceptions, return types) that all vendor libraries must implement

Vendor-specific implementations (e.g. Tuya, Salto) will live as sibling directories following the same convention.

Architecture

roomdoo-smartlocks/
├── roomdoo-locks-base/      # Abstract interface — no vendor dependencies
├── roomdoo-locks-tuya/      # (future) Tuya implementation
├── roomdoo-locks-salto/     # (future) Salto implementation
└── ...

The PMS (Roomdoo) depends only on roomdoo-locks-base at the interface level. Vendor packages are injected at runtime, keeping the PMS decoupled from any specific lock vendor.

Development

Prerequisites

Setup

# Install a package in editable mode with dev dependencies
pip install -e "roomdoo-locks-base[dev]"

# Install pre-commit hooks
pre-commit install

Pre-commit hooks

This repo uses pre-commit with the following hooks:

  • ruff — linting and formatting (replaces flake8, isort, black)
  • mypy — static type checking
  • General checks — trailing whitespace, EOF fixer, YAML/TOML validation, merge conflict detection, large file guard

Run all hooks manually against all files:

pre-commit run --all-files

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

About

Smartlocks libraries to connect Roomdoo with providers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages