Installation

Requirements

  • Python 3.14 or higher

  • pip (Python package installer)

  • Navien Smart Control account

Installing from PyPI

The easiest way to install nwp500-python:

pip install nwp500-python

For rich formatting and colors when using the CLI:

pip install nwp500-python[cli]

Installing from Source

For development or to get the latest features:

git clone https://github.com/eman/nwp500-python.git
cd nwp500-python
pip install -e .

Development Installation

To install with development dependencies (testing, linting, docs):

git clone https://github.com/eman/nwp500-python.git
cd nwp500-python
pip install -e ".[dev]"

Dependencies

Core Dependencies

The library requires:

  • aiohttp>=3.13.5 - Async HTTP client for REST API

  • awsiotsdk>=1.29.0 - AWS IoT SDK for MQTT

  • pydantic>=2.0.0 - Data validation and models

Optional Dependencies

For development:

  • pytest>=7.0.0 - Testing framework

  • pytest-asyncio>=0.21.0 - Async test support

  • pytest-cov>=4.0.0 - Coverage reporting

  • ruff>=0.1.0 - Fast Python linter

  • mypy>=1.0.0 - Static type checking

  • sphinx>=5.0.0 - Documentation generation

Verification

Verify the installation:

import nwp500
print(nwp500.__version__)

Or test with a simple script:

from nwp500 import NavienAuthClient, NavienAPIClient
import asyncio

async def test():
    async with NavienAuthClient("email@test.com", "pass") as auth:
        api = NavienAPIClient(auth)
        # This will fail with bad credentials, but proves import works
        try:
            await api.list_devices()
        except Exception as e:
            print(f"Library loaded successfully: {type(e).__name__}")

asyncio.run(test())

Troubleshooting

ImportError: No module named ‘nwp500’

Check that you installed the package:

pip install nwp500-python

If using a virtual environment, activate it first.

SSL/TLS Errors

If you get SSL certificate errors:

# macOS
/Applications/Python\ 3.x/Install\ Certificates.command

# Linux (update certificates)
sudo apt-get update && sudo apt-get install ca-certificates

AWS IoT Connection Issues

The MQTT client requires the AWS IoT SDK:

pip install awsiotsdk>=1.29.0

Upgrading

To upgrade to the latest version:

pip install --upgrade nwp500-python

To upgrade to a specific version:

pip install nwp500-python==X.Y.Z

Next Steps