nwp500-python 9.12.2__tar.gz → 9.13.0__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-9.12.2 → nwp500_python-9.13.0}/.github/copilot-instructions.md +3 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/CHANGELOG.rst +1254 -0
- {nwp500_python-9.12.2/src/nwp500_python.egg-info → nwp500_python-9.13.0}/PKG-INFO +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/draws.rst +82 -124
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/heating-elements.rst +6 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/index.rst +1 -0
- nwp500_python-9.13.0/docs/explanation/recovery-speed.rst +534 -0
- nwp500_python-9.13.0/docs/explanation/simulator-methodology.rst +955 -0
- nwp500_python-9.13.0/docs/explanation/simulator-tried.rst +1600 -0
- nwp500_python-9.13.0/docs/explanation/simulator.rst +1472 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/standby-loss.rst +112 -78
- nwp500_python-9.13.0/docs/how-to/calibrate-simulator.rst +687 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/simulate-heater.rst +514 -316
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/sim.rst +88 -79
- nwp500_python-9.13.0/docs/reference/simulator-inputs.rst +1344 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/pyproject.toml +5 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/setup.cfg +2 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/__main__.py +59 -14
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/calibration.py +147 -18
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/simulate.py +48 -45
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/__init__.py +18 -8
- nwp500_python-9.13.0/src/nwp500/sim/api.py +2484 -0
- nwp500_python-9.13.0/src/nwp500/sim/calibration.py +1682 -0
- nwp500_python-9.13.0/src/nwp500/sim/carry.py +492 -0
- nwp500_python-9.13.0/src/nwp500/sim/circulation.py +116 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/codec.py +15 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/cold_supply.py +61 -17
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/controller.py +516 -89
- nwp500_python-9.13.0/src/nwp500/sim/decay.py +335 -0
- nwp500_python-9.13.0/src/nwp500/sim/defaults.py +417 -0
- nwp500_python-9.13.0/src/nwp500/sim/delivery.py +394 -0
- nwp500_python-9.13.0/src/nwp500/sim/draw_ensemble.py +406 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/draw_forecast.py +15 -10
- nwp500_python-9.13.0/src/nwp500/sim/engine.py +1965 -0
- nwp500_python-9.13.0/src/nwp500/sim/extensions.py +25 -0
- nwp500_python-9.13.0/src/nwp500/sim/heat_pump_fit.py +1016 -0
- nwp500_python-9.13.0/src/nwp500/sim/heat_pump_recovery.py +120 -0
- nwp500_python-9.13.0/src/nwp500/sim/heating_trajectory.py +97 -0
- nwp500_python-9.13.0/src/nwp500/sim/history.py +249 -0
- nwp500_python-9.13.0/src/nwp500/sim/history_frame.py +97 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/inputs.py +67 -9
- nwp500_python-9.13.0/src/nwp500/sim/margins.py +272 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/params.py +601 -545
- nwp500_python-9.13.0/src/nwp500/sim/physics/__init__.py +3 -0
- nwp500_python-9.13.0/src/nwp500/sim/physics/draw.py +135 -0
- nwp500_python-9.13.0/src/nwp500/sim/physics/element.py +159 -0
- nwp500_python-9.13.0/src/nwp500/sim/physics/heat_pump.py +182 -0
- nwp500_python-9.13.0/src/nwp500/sim/physics/stratified.py +1440 -0
- nwp500_python-9.13.0/src/nwp500/sim/physics/water.py +86 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/profile.py +2 -3
- nwp500_python-9.13.0/src/nwp500/sim/ready.py +387 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/record.py +22 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/result.py +74 -21
- nwp500_python-9.13.0/src/nwp500/sim/tank_fit.py +898 -0
- nwp500_python-9.13.0/src/nwp500/sim/tank_physics.py +891 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/units.py +3 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim_adapters.py +219 -273
- nwp500_python-9.13.0/src/nwp500/sim_calibrate.py +1579 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim_home_assistant.py +155 -141
- nwp500_python-9.13.0/src/nwp500/sim_score.py +2017 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0/src/nwp500_python.egg-info}/PKG-INFO +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/SOURCES.txt +37 -13
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/scm_file_list.json +36 -12
- nwp500_python-9.13.0/src/nwp500_python.egg-info/scm_version.json +8 -0
- nwp500_python-9.13.0/tests/fixtures/sim/circulation_run_2026-10-29.json +3484 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/fixtures/sim/engine_golden.json +65 -65
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/fixtures/sim/heater_params.json +43 -34
- nwp500_python-9.13.0/tests/fixtures/sim/heater_params_fitted.json +118 -0
- nwp500_python-9.13.0/tests/fixtures/sim/heater_params_two_zone.json +264 -0
- nwp500_python-9.13.0/tests/sim_cases.py +186 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_api_endpoints_201.py +1 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_app_queries.py +24 -14
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_auth.py +2 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_ble_mqtt_adapter.py +5 -5
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_ble_protocol.py +4 -7
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_cli_calibrate.py +167 -3
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_cli_commands.py +9 -6
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_cli_simulate.py +107 -55
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_cli_tristate_presentation.py +1 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_command_decorators.py +3 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_device_capabilities.py +4 -1
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_models.py +16 -16
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_control_fail.py +9 -8
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_last_will.py +14 -15
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_navilink_201_enums.py +18 -10
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_protocol_correctness.py +19 -6
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_api.py +444 -122
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_calibrate.py +588 -645
- nwp500_python-9.13.0/tests/test_sim_calibration.py +487 -0
- nwp500_python-9.13.0/tests/test_sim_carry.py +978 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_change_history.py +263 -284
- nwp500_python-9.13.0/tests/test_sim_circulation.py +715 -0
- nwp500_python-9.13.0/tests/test_sim_cold_supply.py +384 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_controller.py +129 -13
- nwp500_python-9.13.0/tests/test_sim_correction_top.py +83 -0
- nwp500_python-9.13.0/tests/test_sim_defaults.py +313 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_documents.py +2 -8
- nwp500_python-9.13.0/tests/test_sim_draw.py +72 -0
- nwp500_python-9.13.0/tests/test_sim_draw_duration.py +199 -0
- nwp500_python-9.13.0/tests/test_sim_draw_ensemble.py +404 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_draw_forecast.py +4 -2
- nwp500_python-9.13.0/tests/test_sim_electric.py +505 -0
- nwp500_python-9.13.0/tests/test_sim_element.py +774 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_element_fit.py +10 -14
- nwp500_python-9.13.0/tests/test_sim_envelope.py +938 -0
- nwp500_python-9.13.0/tests/test_sim_fast_draws.py +112 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_forecast.py +68 -24
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_golden.py +93 -15
- nwp500_python-9.13.0/tests/test_sim_heat_pump.py +355 -0
- nwp500_python-9.13.0/tests/test_sim_heat_pump_fit.py +680 -0
- nwp500_python-9.13.0/tests/test_sim_history.py +237 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_home_assistant.py +5 -1
- nwp500_python-9.13.0/tests/test_sim_hot_water.py +583 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_import_contract.py +7 -12
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_live.py +2 -2
- nwp500_python-9.13.0/tests/test_sim_margins.py +396 -0
- nwp500_python-9.13.0/tests/test_sim_meter_reads.py +386 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_overlay.py +2 -2
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_profile.py +6 -5
- nwp500_python-9.13.0/tests/test_sim_readiness.py +278 -0
- nwp500_python-9.13.0/tests/test_sim_ready.py +231 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_ready_api.py +244 -196
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_replay.py +2 -15
- nwp500_python-9.13.0/tests/test_sim_resume.py +815 -0
- nwp500_python-9.13.0/tests/test_sim_score.py +716 -0
- nwp500_python-9.13.0/tests/test_sim_score_days.py +568 -0
- nwp500_python-9.13.0/tests/test_sim_stratified.py +1135 -0
- nwp500_python-9.13.0/tests/test_sim_tank_fit.py +715 -0
- nwp500_python-9.13.0/tests/test_sim_tank_physics.py +510 -0
- nwp500_python-9.13.0/tests/test_sim_undiluted_share.py +202 -0
- nwp500_python-9.13.0/tests/test_sim_walk_cost.py +174 -0
- nwp500_python-9.13.0/tests/test_sim_water.py +54 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tox.ini +2 -1
- nwp500_python-9.12.2/docs/explanation/recovery-speed.rst +0 -339
- nwp500_python-9.12.2/docs/explanation/simulator-methodology.rst +0 -726
- nwp500_python-9.12.2/docs/explanation/simulator.rst +0 -422
- nwp500_python-9.12.2/docs/how-to/calibrate-simulator.rst +0 -515
- nwp500_python-9.12.2/docs/reference/simulator-inputs.rst +0 -1263
- nwp500_python-9.12.2/src/nwp500/sim/api.py +0 -1948
- nwp500_python-9.12.2/src/nwp500/sim/book.py +0 -1262
- nwp500_python-9.12.2/src/nwp500/sim/calibration.py +0 -4002
- nwp500_python-9.12.2/src/nwp500/sim/circulation.py +0 -315
- nwp500_python-9.12.2/src/nwp500/sim/decay.py +0 -1122
- nwp500_python-9.12.2/src/nwp500/sim/defaults.py +0 -228
- nwp500_python-9.12.2/src/nwp500/sim/delivery.py +0 -639
- nwp500_python-9.12.2/src/nwp500/sim/engine.py +0 -1954
- nwp500_python-9.12.2/src/nwp500/sim/extensions.py +0 -187
- nwp500_python-9.12.2/src/nwp500/sim/heat_pump_recovery.py +0 -270
- nwp500_python-9.12.2/src/nwp500/sim/heating_trajectory.py +0 -344
- nwp500_python-9.12.2/src/nwp500/sim/physics/__init__.py +0 -2
- nwp500_python-9.12.2/src/nwp500/sim/physics/compressor.py +0 -485
- nwp500_python-9.12.2/src/nwp500/sim/physics/draw.py +0 -506
- nwp500_python-9.12.2/src/nwp500/sim/physics/element.py +0 -623
- nwp500_python-9.12.2/src/nwp500/sim/physics/refrigerant.py +0 -177
- nwp500_python-9.12.2/src/nwp500/sim/physics/tank.py +0 -140
- nwp500_python-9.12.2/src/nwp500/sim/ready.py +0 -685
- nwp500_python-9.12.2/src/nwp500/sim/tank_physics.py +0 -503
- nwp500_python-9.12.2/src/nwp500/sim_calibrate.py +0 -1823
- nwp500_python-9.12.2/src/nwp500_python.egg-info/scm_version.json +0 -8
- nwp500_python-9.12.2/tests/_sim_site.py +0 -124
- nwp500_python-9.12.2/tests/fixtures/sim/heater_params_fitted.json +0 -71
- nwp500_python-9.12.2/tests/test_sim_book.py +0 -598
- nwp500_python-9.12.2/tests/test_sim_book_history.py +0 -1289
- nwp500_python-9.12.2/tests/test_sim_bottom_loss.py +0 -678
- nwp500_python-9.12.2/tests/test_sim_calibration.py +0 -888
- nwp500_python-9.12.2/tests/test_sim_circulation.py +0 -550
- nwp500_python-9.12.2/tests/test_sim_cold_supply.py +0 -122
- nwp500_python-9.12.2/tests/test_sim_defaults.py +0 -206
- nwp500_python-9.12.2/tests/test_sim_draw_loss.py +0 -337
- nwp500_python-9.12.2/tests/test_sim_element.py +0 -869
- nwp500_python-9.12.2/tests/test_sim_evaporator.py +0 -59
- nwp500_python-9.12.2/tests/test_sim_fit_book.py +0 -757
- nwp500_python-9.12.2/tests/test_sim_hot_water.py +0 -706
- nwp500_python-9.12.2/tests/test_sim_readiness.py +0 -692
- nwp500_python-9.12.2/tests/test_sim_readiness_fit.py +0 -334
- nwp500_python-9.12.2/tests/test_sim_ready.py +0 -424
- nwp500_python-9.12.2/tests/test_sim_tank_physics.py +0 -184
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.coveragerc +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.github/RESOLVING_PR_COMMENTS.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.github/workflows/ci.yml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.github/workflows/release.yml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.gitignore +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.pre-commit-config.yaml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/.readthedocs.yml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/AUTHORS.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/CONTRIBUTING.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/LICENSE.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/Makefile +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/README.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/RELEASE.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/Makefile +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/_static/.gitignore +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/_static/light-page.js +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/conf.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/architecture.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/tank-energy.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/tou-recovery-cap.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/unknown-values.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/explanation/what-starts-a-recovery.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/authenticate.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/auto-recovery.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/bluetooth.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/diagnose-mqtt.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/home-assistant.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/index.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/maintenance.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/manage-units.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/monitor-status.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/optimize-tou.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/queue-commands.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/schedule-operation.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/how-to/track-energy.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/index.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/openapi.yaml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/project/authors.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/project/changelog.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/project/contributing.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/project/history.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/project/license.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/configuration.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/enumerations.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/index.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/installation.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/data_conversions.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/device_features.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/device_status.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/error_codes.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/mqtt_protocol.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/quick_reference.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/protocol/rest_api.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/api_client.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/auth_client.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/cli.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/events.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/exceptions.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/models.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/reference/python_api/mqtt_client.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/requirements.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/docs/tutorials/getting-started.rst +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/.ruff.toml +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/README.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/air_filter_reset.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/anti_legionella.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/auto_recovery.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/combined_callbacks.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/demand_response.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/device_capabilities.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/device_status_debug.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/energy_analytics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/error_code_demo.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/firmware_payload_capture.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/mqtt_diagnostics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/power_control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/recirculation_control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/reconnection_demo.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/reservation_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/simple_auto_recovery.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/token_restoration.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/tou_openei.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/tou_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/advanced/water_reservation.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/beginner/01_authentication.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/beginner/02_list_devices.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/beginner/03_get_status.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/beginner/04_set_temperature.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/advanced_auth_patterns.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/command_queue.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/device_status_callback.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/error_handling.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/event_driven_control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/improved_auth.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/legacy_auth_constructor.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/mqtt_realtime_monitoring.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/periodic_requests.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/set_mode.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/intermediate/vacation_mode.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/mask.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/simulator/lower-setpoint.json +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/simulator/plan.json +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/simulator/scenario.json +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/testing/periodic_device_info.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/testing/simple_periodic_info.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/testing/test_api_client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/testing/test_mqtt_connection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/testing/test_mqtt_messaging.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/examples/testing/test_periodic_minimal.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/README.md +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/bump_version.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/diagnose_mqtt_connection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/extract_changelog.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/format.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/lint.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/setup-dev.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/scripts/validate_version.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/_base.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/api_client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/auth.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/ble/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/ble/__main__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/ble/client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/ble/mqtt_adapter.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/ble/protocol.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/ble_backend.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/handlers.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/monitoring.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/output_formatters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/presentation.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/recording.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/rich_output.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/cli/token_storage.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/command_decorators.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/config.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/converters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/device_capabilities.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/device_info_cache.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/encoding.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/enums.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/exceptions.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/factory.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/field_factory.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/_converters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/account.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/device.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/diagnostics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/energy.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/feature.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/firmware.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/maintenance.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/mqtt_models.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/status.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/models/tou.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/__init__.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/_control_commands.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/_device_subscriptions.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/client.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/command_queue.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/connection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/control.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/diagnostics.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/periodic.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/reconnection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/state_tracker.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/subscriptions.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/types.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt/utils.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/mqtt_events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/openei.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/py.typed +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/reservations.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/attribution.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/location_air.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/observed.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/schedules.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim/tou_triggers.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/sim_live.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/status_history.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/temperature.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/topic_builder.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/tou_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/unit_system.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500/utils.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/dependency_links.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/entry_points.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/not-zip-safe +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/requires.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/src/nwp500_python.egg-info/top_level.txt +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/conftest.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_api_helpers.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_auth_session_lifecycle.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_auth_session_refresh.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_bug_fixes.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_canonical_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_cli_basic.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_command_queue.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_device_info_cache.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_device_rest_models.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_exceptions.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_model_converters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_clean_session_resume.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_client_init.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_events.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_hypothesis.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_reconnection.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_reconnection_storm.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_mqtt_reliability.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_multi_device.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_openei.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_public_api.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_reservation_validation.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_reservations.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_adapters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_codec.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_location_air.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_no_clock_no_state.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_observed.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_sim_schedules.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_status_history.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_temperature_converters.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_threading_model.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_token_storage.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_tou_api.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_tou_schedule.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_unit_switching.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_unit_system_process_wide.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_utility_modules.py +0 -0
- {nwp500_python-9.12.2 → nwp500_python-9.13.0}/tests/test_utils.py +0 -0
|
@@ -221,6 +221,9 @@ Removed
|
|
|
221
221
|
- **aiohttp**: Used for async HTTP requests to the Navien API
|
|
222
222
|
- **pydantic**: Used for data validation and models
|
|
223
223
|
|
|
224
|
+
## Simulator Changes Tried and Dropped
|
|
225
|
+
Before changing the simulator's physics or its fitted defaults (`src/nwp500/sim/`), read `docs/explanation/simulator-tried.rst`: the changes already built or measured against the record and not kept (24 layers, a winter heat-map refit, a frost derate, a room node, a running-probe offset, an imposed start hold), what the record said, and where each is written up. When a change you try is not kept, add it there.
|
|
226
|
+
|
|
224
227
|
## Key Files & Directories
|
|
225
228
|
- `src/nwp500/` - Main library code
|
|
226
229
|
- `examples/` - Example scripts for API and MQTT usage
|