huum-cli


Namehuum-cli JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryCLI for managing Huum sauna devices
upload_time2025-10-09 13:52:19
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords cli huum iot sauna smart-home
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Huum Sauna CLI

A command-line interface for managing Huum sauna devices remotely.

## Features

- 🔐 **Secure Authentication** - Store credentials safely in OS keyring
- đŸ”Ĩ **Start Sessions** - Remotely start your sauna heating
- âšī¸  **Stop Sessions** - Turn off your sauna from the command line
- 📊 **Status Display** - View current and target temperatures with Rich formatting
- 📈 **Statistics & Graphs** - View historical temperature data as a table or graph
- đŸŒĄī¸  **Custom Temperatures** - Set target temperature (40-110°C)
- đŸŽ¯ **Auto-device Selection** - Automatically selects device if you have only one
- ⚡ **Fast & Reliable** - Automatic retries with exponential backoff

## Installation

Requires Python 3.11 or higher.

```bash
pip install huum-cli
```

Or with `uv`:

```bash
uv tool install huum-cli
```

### Development Installation

```bash
# Clone the repository
git clone https://github.com/tomdyson/huum-cli
cd huum-cli

# Install dependencies
uv sync

# Install the CLI in editable mode
uv pip install -e .
```

## Quick Start

### 1. Authenticate

```bash
huum auth login
```

You'll be prompted for your Huum account credentials. Your session will be stored securely in your system keyring.

### 2. Start Your Sauna

```bash
# Start with default temperature (85°C)
huum start

# Start with custom temperature
huum start --temperature 75
```

### 3. Stop Your Sauna

```bash
huum stop
```

## Commands

### Authentication

```bash
# Log in
huum auth login

# Log in with credentials
huum auth login --username user@example.com --password mypass

# Log out
huum auth logout
```

### Sauna Control

```bash
# Check status
huum status

# Start sauna
huum start [DEVICE_ID] [--temperature 85]

# Stop sauna
huum stop [DEVICE_ID]
```

### Statistics

View historical temperature data. By default, it shows data for the last 24 hours.

```bash
# Show statistics for the last 24 hours
huum statistics

# Show all available data for the current month
huum statistics --all

# Display the data as a graph
huum statistics --graph

# Combine flags
huum statistics --all --graph
```

### Device Management

If you have multiple devices, specify the device ID:

```bash
huum start my-sauna-id --temperature 80
huum stop my-sauna-id
```

## Configuration

Credentials are stored securely using your operating system's keyring:
- **macOS**: Keychain
- **Windows**: Windows Credential Manager
- **Linux**: GNOME Keyring/KWallet

## API

This CLI uses the Huum API (v1.2) at `https://sauna.huum.eu`.

See the [API documentation](https://app.swaggerhub.com/apis-docs/info716/HUUM/1.2) for more details.

## Development

Built with:
- **Typer** - CLI framework
- **httpx** - HTTP client
- **Pydantic** - Data validation
- **Rich** - Terminal formatting
- **keyring** - Secure credential storage

## Publishing a New Version

The project uses GitHub Actions to automatically publish to PyPI when you push a version tag.

### Prerequisites

1. Add your PyPI API token to GitHub repository secrets:
   - Go to https://github.com/tomdyson/huum-cli/settings/secrets/actions
   - Add a new secret named `PYPI_API_TOKEN`
   - Value: Your PyPI API token (starts with `pypi-`)

### Release Process

1. **Update version in `pyproject.toml`**:
   ```bash
   # Edit pyproject.toml and change version = "0.1.0" to new version
   ```

2. **Commit the version change**:
   ```bash
   git add pyproject.toml
   git commit -m "Bump version to 0.2.0"
   git push
   ```

3. **Create and push a git tag**:
   ```bash
   git tag v0.2.0
   git push origin v0.2.0
   ```

4. **GitHub Action runs automatically**:
   - Builds the package with `uv build`
   - Publishes to PyPI
   - Check progress at https://github.com/tomdyson/huum-cli/actions

### Version Numbering

Follow semantic versioning (MAJOR.MINOR.PATCH):
- **MAJOR**: Breaking changes (e.g., 1.0.0 → 2.0.0)
- **MINOR**: New features, backwards compatible (e.g., 0.1.0 → 0.2.0)
- **PATCH**: Bug fixes, backwards compatible (e.g., 0.1.0 → 0.1.1)

## License

MIT

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "huum-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "cli, huum, iot, sauna, smart-home",
    "author": null,
    "author_email": "Tom Dyson <tom@torchbox.com>",
    "download_url": "https://files.pythonhosted.org/packages/f7/99/e8099110aa7c1620dc4faf03fa3861d206ba420d2bf1097f4151da56992a/huum_cli-0.2.1.tar.gz",
    "platform": null,
    "description": "# Huum Sauna CLI\n\nA command-line interface for managing Huum sauna devices remotely.\n\n## Features\n\n- \ud83d\udd10 **Secure Authentication** - Store credentials safely in OS keyring\n- \ud83d\udd25 **Start Sessions** - Remotely start your sauna heating\n- \u23f9\ufe0f  **Stop Sessions** - Turn off your sauna from the command line\n- \ud83d\udcca **Status Display** - View current and target temperatures with Rich formatting\n- \ud83d\udcc8 **Statistics & Graphs** - View historical temperature data as a table or graph\n- \ud83c\udf21\ufe0f  **Custom Temperatures** - Set target temperature (40-110\u00b0C)\n- \ud83c\udfaf **Auto-device Selection** - Automatically selects device if you have only one\n- \u26a1 **Fast & Reliable** - Automatic retries with exponential backoff\n\n## Installation\n\nRequires Python 3.11 or higher.\n\n```bash\npip install huum-cli\n```\n\nOr with `uv`:\n\n```bash\nuv tool install huum-cli\n```\n\n### Development Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/tomdyson/huum-cli\ncd huum-cli\n\n# Install dependencies\nuv sync\n\n# Install the CLI in editable mode\nuv pip install -e .\n```\n\n## Quick Start\n\n### 1. Authenticate\n\n```bash\nhuum auth login\n```\n\nYou'll be prompted for your Huum account credentials. Your session will be stored securely in your system keyring.\n\n### 2. Start Your Sauna\n\n```bash\n# Start with default temperature (85\u00b0C)\nhuum start\n\n# Start with custom temperature\nhuum start --temperature 75\n```\n\n### 3. Stop Your Sauna\n\n```bash\nhuum stop\n```\n\n## Commands\n\n### Authentication\n\n```bash\n# Log in\nhuum auth login\n\n# Log in with credentials\nhuum auth login --username user@example.com --password mypass\n\n# Log out\nhuum auth logout\n```\n\n### Sauna Control\n\n```bash\n# Check status\nhuum status\n\n# Start sauna\nhuum start [DEVICE_ID] [--temperature 85]\n\n# Stop sauna\nhuum stop [DEVICE_ID]\n```\n\n### Statistics\n\nView historical temperature data. By default, it shows data for the last 24 hours.\n\n```bash\n# Show statistics for the last 24 hours\nhuum statistics\n\n# Show all available data for the current month\nhuum statistics --all\n\n# Display the data as a graph\nhuum statistics --graph\n\n# Combine flags\nhuum statistics --all --graph\n```\n\n### Device Management\n\nIf you have multiple devices, specify the device ID:\n\n```bash\nhuum start my-sauna-id --temperature 80\nhuum stop my-sauna-id\n```\n\n## Configuration\n\nCredentials are stored securely using your operating system's keyring:\n- **macOS**: Keychain\n- **Windows**: Windows Credential Manager\n- **Linux**: GNOME Keyring/KWallet\n\n## API\n\nThis CLI uses the Huum API (v1.2) at `https://sauna.huum.eu`.\n\nSee the [API documentation](https://app.swaggerhub.com/apis-docs/info716/HUUM/1.2) for more details.\n\n## Development\n\nBuilt with:\n- **Typer** - CLI framework\n- **httpx** - HTTP client\n- **Pydantic** - Data validation\n- **Rich** - Terminal formatting\n- **keyring** - Secure credential storage\n\n## Publishing a New Version\n\nThe project uses GitHub Actions to automatically publish to PyPI when you push a version tag.\n\n### Prerequisites\n\n1. Add your PyPI API token to GitHub repository secrets:\n   - Go to https://github.com/tomdyson/huum-cli/settings/secrets/actions\n   - Add a new secret named `PYPI_API_TOKEN`\n   - Value: Your PyPI API token (starts with `pypi-`)\n\n### Release Process\n\n1. **Update version in `pyproject.toml`**:\n   ```bash\n   # Edit pyproject.toml and change version = \"0.1.0\" to new version\n   ```\n\n2. **Commit the version change**:\n   ```bash\n   git add pyproject.toml\n   git commit -m \"Bump version to 0.2.0\"\n   git push\n   ```\n\n3. **Create and push a git tag**:\n   ```bash\n   git tag v0.2.0\n   git push origin v0.2.0\n   ```\n\n4. **GitHub Action runs automatically**:\n   - Builds the package with `uv build`\n   - Publishes to PyPI\n   - Check progress at https://github.com/tomdyson/huum-cli/actions\n\n### Version Numbering\n\nFollow semantic versioning (MAJOR.MINOR.PATCH):\n- **MAJOR**: Breaking changes (e.g., 1.0.0 \u2192 2.0.0)\n- **MINOR**: New features, backwards compatible (e.g., 0.1.0 \u2192 0.2.0)\n- **PATCH**: Bug fixes, backwards compatible (e.g., 0.1.0 \u2192 0.1.1)\n\n## License\n\nMIT\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "CLI for managing Huum sauna devices",
    "version": "0.2.1",
    "project_urls": {
        "Homepage": "https://github.com/tomdyson/huum-cli",
        "Issues": "https://github.com/tomdyson/huum-cli/issues",
        "Repository": "https://github.com/tomdyson/huum-cli"
    },
    "split_keywords": [
        "cli",
        " huum",
        " iot",
        " sauna",
        " smart-home"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "15b477bcfef8df661bd50e57e6f1e2467e9ac54e13919dd51ed537565a0c51a7",
                "md5": "787606c274768b10657491563e48b7d5",
                "sha256": "f3dfe3362d80cf98405b9b96938ce22ac4d11d9806a94bbb15d0fa179db17e70"
            },
            "downloads": -1,
            "filename": "huum_cli-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "787606c274768b10657491563e48b7d5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 17133,
            "upload_time": "2025-10-09T13:52:19",
            "upload_time_iso_8601": "2025-10-09T13:52:19.022506Z",
            "url": "https://files.pythonhosted.org/packages/15/b4/77bcfef8df661bd50e57e6f1e2467e9ac54e13919dd51ed537565a0c51a7/huum_cli-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f799e8099110aa7c1620dc4faf03fa3861d206ba420d2bf1097f4151da56992a",
                "md5": "e40e8b1d99efc5bd39b722e0a01607ea",
                "sha256": "3e7611981740ef3d3efdb580cb47109049f36fb5149b1c9ce4cc7c396b44933d"
            },
            "downloads": -1,
            "filename": "huum_cli-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e40e8b1d99efc5bd39b722e0a01607ea",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 111624,
            "upload_time": "2025-10-09T13:52:19",
            "upload_time_iso_8601": "2025-10-09T13:52:19.859109Z",
            "url": "https://files.pythonhosted.org/packages/f7/99/e8099110aa7c1620dc4faf03fa3861d206ba420d2bf1097f4151da56992a/huum_cli-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-09 13:52:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tomdyson",
    "github_project": "huum-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "huum-cli"
}
        
Elapsed time: 1.29590s