nwp500-python 1.1.0__tar.gz → 1.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nwp500_python-1.1.0/src/nwp500_python.egg-info → nwp500_python-1.1.1}/PKG-INFO +1 -1
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/DEVICE_STATUS_FIELDS.rst +25 -22
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/openapi.yaml +2 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1/src/nwp500_python.egg-info}/PKG-INFO +1 -1
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.coveragerc +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.github/copilot-instructions.md +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.github/workflows/ci.yml +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.github/workflows/release.yml +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.gitignore +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.pre-commit-config.yaml +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/.readthedocs.yml +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/AUTHORS.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/CHANGELOG.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/CONTRIBUTING.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/LICENSE.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/Makefile +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/README.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/RELEASE.md +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/API_CLIENT.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/API_REFERENCE.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/AUTHENTICATION.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/COMMAND_QUEUE.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/DEVELOPMENT.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/DEVICE_FEATURE_FIELDS.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/ENERGY_MONITORING.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/ERROR_CODES.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/EVENT_EMITTER.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/MQTT_CLIENT.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/MQTT_MESSAGES.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/Makefile +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/_static/.gitignore +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/authors.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/changelog.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/conf.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/contributing.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/index.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/license.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/readme.rst +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/docs/requirements.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/.ruff.toml +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/README.md +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/api_client_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/auth_constructor_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/authenticate.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/combined_callbacks.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/command_queue_demo.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/device_feature_callback.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/device_status_callback.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/device_status_callback_debug.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/energy_usage_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/event_emitter_demo.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/improved_auth_pattern.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/mask.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/mqtt_client_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/periodic_device_info.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/periodic_requests.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/power_control_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/reconnection_demo.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/set_dhw_temperature_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/set_mode_example.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/simple_periodic_info.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/simple_periodic_status.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/test_api_client.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/test_mqtt_connection.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/test_mqtt_messaging.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/examples/test_periodic_minimal.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/pyproject.toml +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/scripts/format.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/scripts/lint.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/scripts/setup-dev.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/setup.cfg +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/setup.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/__init__.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/api_client.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/auth.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/cli.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/config.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/constants.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/events.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/models.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500/mqtt_client.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500_python.egg-info/SOURCES.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500_python.egg-info/dependency_links.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500_python.egg-info/entry_points.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500_python.egg-info/not-zip-safe +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500_python.egg-info/requires.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/src/nwp500_python.egg-info/top_level.txt +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/tests/conftest.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/tests/test_command_queue.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/tests/test_events.py +0 -0
- {nwp500_python-1.1.0 → nwp500_python-1.1.1}/tox.ini +0 -0
|
@@ -449,10 +449,10 @@ This document lists the fields found in the ``status`` object of device status m
|
|
|
449
449
|
- Available energy capacity - remaining hot water energy available in Watt-hours.
|
|
450
450
|
- None
|
|
451
451
|
|
|
452
|
-
Operation Modes
|
|
453
|
-
|
|
452
|
+
DHW Operation Setting Modes
|
|
453
|
+
----------------------------
|
|
454
454
|
|
|
455
|
-
The ``
|
|
455
|
+
The ``dhwOperationSetting`` field is an integer that maps to the following modes. These modes balance energy efficiency and recovery time based on user needs.
|
|
456
456
|
|
|
457
457
|
.. list-table::
|
|
458
458
|
:header-rows: 1
|
|
@@ -464,36 +464,41 @@ The ``operationMode`` field is an integer that maps to the following modes. Thes
|
|
|
464
464
|
- Energy Efficiency
|
|
465
465
|
- Description
|
|
466
466
|
* - 1
|
|
467
|
-
-
|
|
467
|
+
- HEAT_PUMP
|
|
468
468
|
- Very Slow
|
|
469
469
|
- High
|
|
470
470
|
- Most energy-efficient mode, using only the heat pump. Recovery time varies with ambient temperature and humidity. Higher ambient temperature and humidity improve efficiency and reduce recovery time.
|
|
471
471
|
* - 2
|
|
472
|
-
-
|
|
472
|
+
- ELECTRIC
|
|
473
473
|
- Fast
|
|
474
474
|
- Very Low
|
|
475
475
|
- Uses only upper and lower electric heaters (not simultaneously). Least energy-efficient with shortest recovery time. Can operate continuously for up to 72 hours before automatically reverting to previous mode.
|
|
476
476
|
* - 3
|
|
477
|
-
-
|
|
477
|
+
- ENERGY_SAVER
|
|
478
478
|
- Fast
|
|
479
479
|
- Very High
|
|
480
480
|
- Default mode. Combines the heat pump and electric heater for balanced efficiency and recovery time. Heat pump is primarily used with electric heater for backup. Applied during initial shipment and factory reset.
|
|
481
481
|
* - 4
|
|
482
|
-
-
|
|
482
|
+
- HIGH_DEMAND
|
|
483
483
|
- Very Fast
|
|
484
484
|
- Low
|
|
485
485
|
- Combines heat pump and electric heater with more frequent use of electric heater for faster recovery. Suitable when higher hot water supply is needed.
|
|
486
486
|
* - 5
|
|
487
|
-
-
|
|
487
|
+
- VACATION
|
|
488
488
|
- None
|
|
489
489
|
- Very High
|
|
490
490
|
- Suspends heating to save energy during absences (0-99 days). Only minimal operations like freeze protection and anti-seize are performed. Heating resumes 9 hours before the vacation period ends.
|
|
491
|
+
* - 6
|
|
492
|
+
- POWER_OFF
|
|
493
|
+
- None
|
|
494
|
+
- None
|
|
495
|
+
- Device is powered off. This value appears in ``dhwOperationSetting`` when the device has been powered off via the power-off command.
|
|
491
496
|
|
|
492
497
|
|
|
493
|
-
Operation
|
|
494
|
-
|
|
498
|
+
Operation Mode Status Values
|
|
499
|
+
-----------------------------
|
|
495
500
|
|
|
496
|
-
The following ``operationMode`` values in status messages from the device. These values
|
|
501
|
+
The following ``operationMode`` values appear in status messages from the device. These values reflect the device's actual operational state (what it's doing right now):
|
|
497
502
|
|
|
498
503
|
.. list-table::
|
|
499
504
|
:header-rows: 1
|
|
@@ -503,19 +508,17 @@ The following ``operationMode`` values in status messages from the device. These
|
|
|
503
508
|
- Mode
|
|
504
509
|
- Notes
|
|
505
510
|
* - 0
|
|
506
|
-
-
|
|
507
|
-
-
|
|
511
|
+
- STANDBY
|
|
512
|
+
- Device is idle, not actively heating. Can occur when device is powered off OR when it's on but not heating. Check ``dhwOperationSetting`` for value 6 (``POWER_OFF``) to distinguish between these states.
|
|
508
513
|
* - 32
|
|
509
|
-
-
|
|
510
|
-
-
|
|
514
|
+
- HEAT_PUMP_MODE
|
|
515
|
+
- Heat pump is actively running to heat water.
|
|
511
516
|
* - 64
|
|
512
|
-
-
|
|
513
|
-
-
|
|
517
|
+
- HYBRID_EFFICIENCY_MODE
|
|
518
|
+
- Device is actively heating in Energy Saver mode (hybrid efficiency).
|
|
514
519
|
* - 96
|
|
515
|
-
-
|
|
516
|
-
-
|
|
517
|
-
|
|
518
|
-
The commanded mode ``ELECTRIC`` (2) has been observed to result in ``operationMode`` values of both 64 and 96 at different times.
|
|
520
|
+
- HYBRID_BOOST_MODE
|
|
521
|
+
- Device is actively heating in High Demand mode (hybrid boost).
|
|
519
522
|
|
|
520
523
|
Understanding operationMode vs dhwOperationSetting
|
|
521
524
|
---------------------------------------------------
|
|
@@ -541,7 +544,7 @@ Field Definitions
|
|
|
541
544
|
* Set by: User via app, CLI, or MQTT command
|
|
542
545
|
* Changes: Only when user explicitly changes the mode or powers device off/on
|
|
543
546
|
* Meaning: "When heating is needed, use this mode" OR "I'm powered off" (if value is 6)
|
|
544
|
-
*
|
|
547
|
+
* Value 6 (``POWER_OFF``) indicates the device was powered off via the power-off command. This is how to distinguish between "powered off" and "on but idle".
|
|
545
548
|
|
|
546
549
|
**operationMode** (OperationMode enum with status values 0, 32, 64, 96)
|
|
547
550
|
The device's **current actual operational state** - what the device is doing RIGHT NOW. This reflects real-time operation and changes automatically based on whether the device is idle or actively heating.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|