A complete Python library for monitoring and controlling the Navien NWP500 Heat Pump Water Heater through the Navilink cloud service.
- Documentation: https://nwp500-python.readthedocs.io/
- Source: https://github.com/eman/nwp500-python
- Complete Interface: Full support for both REST API and real-time MQTT (AWS IoT).
- Monitoring: Real-time tracking of temperature, power usage, tank charge, and component status.
- Control: Remote control of target temperatures, operation modes, and vacation settings.
- Advanced Features: Native support for reservations, time-of-use (TOU) optimization, and anti-legionella cycles.
- Type-Safe: Built with Pydantic for robust data validation and unit handling.
- Async/Await: Modern asyncio-based implementation for high-performance integration.
pip install nwp500-pythonfrom nwp500 import NavienAuthClient, NavienAPIClient
async with NavienAuthClient("email@example.com", "password") as auth:
api = NavienAPIClient(auth)
devices = await api.list_devices()
if devices:
device = devices[0]
print(f"Temperature: {device.status.dhw_temperature}°F")
await api.set_device_temperature(device, 130)The documentation follows the Diátaxis framework:
- Tutorials: Start here if you're new to the library.
- How-to Guides: Practical step-by-step recipes for specific tasks.
- Reference: Technical descriptions of the API, models, and protocol.
- Explanation: Understanding-oriented deep dives into the library's design and advanced features.
We welcome contributions! Please see our Contributing Guide for more details.
This project is licensed under the MIT License. See the LICENSE.txt file for details.