python-mobius 0.6.0__tar.gz → 0.7.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.
- {python_mobius-0.6.0 → python_mobius-0.7.0}/CHANGELOG.md +16 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/PKG-INFO +1 -1
- {python_mobius-0.6.0 → python_mobius-0.7.0}/pyproject.toml +1 -1
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/__init__.py +3 -3
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/device.py +883 -217
- python_mobius-0.7.0/tests/test_full_poll_batch.py +229 -0
- python_mobius-0.7.0/tests/test_light_poll_batch.py +203 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_pump_schedule.py +40 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/.forgejo/scripts/extract_changelog_section.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/.forgejo/workflows/release.yml +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/.gitignore +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/LICENSE +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/README.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/00-overview.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/01-ble-transport.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/02-framing-and-crc.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/03-attributes-and-opcodes.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/04-device-identity.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/05-scenes.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/06-light-schedule.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/07-pump-schedule.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/08-manufacturer-data.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/09-thread-coap-relay.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/10-known-gaps-and-open-questions.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/11-device-status-attributes.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/12-device-identity-and-address-stability.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/13-attribute-dump.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/documentation/14-batched-attribute-reads.md +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/cli.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/coap.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/constants.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/crc.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/device_status.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/discovery.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/dump.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/frame.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/manufacturer.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/mesh_address.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/modifiers.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/power.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/pump_status.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/relay.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/src/mobius/schedule.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_attributes_batch.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_coap.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_coap_indication_handling.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_connection_cleanup.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_device_control.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_device_status.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_device_summary.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_device_time.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_discovery_company_ids.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_dump.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_firmware_versions.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_frame.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_frame_sniffer.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_hyperdrive_device.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_insolation_detection.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_light_intensity_branching.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_light_schedule.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_manufacturer.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_manufacturer_lookup.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_mesh_address.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_mesh_discovery.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_mesh_discovery_direct_connect.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_metadata_batch.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_modifiers.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_networked_thread_devices.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_new_diagnostic_attributes.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_power.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_pump_status.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_pump_telemetry.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_relay.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_schedule_intensity_scalar.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_serial_decoding.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_serial_identity.py +0 -0
- {python_mobius-0.6.0 → python_mobius-0.7.0}/tests/test_supported_attributes.py +0 -0
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
- Added get_full_poll_batch() -- one round-trip for device identity +
|
|
6
|
+
metadata + light/pump state, confirmed 2-2.6x faster on real
|
|
7
|
+
hardware. Requires the caller to already know the device's own
|
|
8
|
+
PrimitiveType (permanent for its lifetime, so never re-fetched).
|
|
9
|
+
- get_current_pump_block() now accepts an optional pre-fetched
|
|
10
|
+
`points` param, skipping its own redundant re-fetch of the same
|
|
11
|
+
schedule attribute.
|
|
12
|
+
- Added get_light_poll_batch() -- one round-trip for a light's own
|
|
13
|
+
schedule, lunar/acclimation/insolation state, and Epoch/LocalTime,
|
|
14
|
+
falling back to the original individual reads if the batch fails.
|
|
15
|
+
- Extracted every light-schedule-related method's own decode/compute
|
|
16
|
+
logic into pure, standalone functions, laying the groundwork for
|
|
17
|
+
get_light_poll_batch() above. No behavior change.
|
|
18
|
+
|
|
3
19
|
## 0.6.0
|
|
4
20
|
|
|
5
21
|
- get_metadata_batch() now falls back to individual reads if the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: python-mobius
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Reverse-engineered Python client for the Mobius BLE protocol (EcoTech Marine VorTech/Radion, AquaIllumination, Neptune Systems, NYOS)
|
|
5
5
|
Project-URL: Homepage, https://code.r3pek.org/r3pek/python-mobius
|
|
6
6
|
Project-URL: Documentation, https://code.r3pek.org/r3pek/python-mobius/src/branch/main/documentation
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-mobius"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.7.0"
|
|
8
8
|
description = "Reverse-engineered Python client for the Mobius BLE protocol (EcoTech Marine VorTech/Radion, AquaIllumination, Neptune Systems, NYOS)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "GPL-2.0-only" }
|
|
@@ -56,7 +56,7 @@ from .mesh_address import (
|
|
|
56
56
|
)
|
|
57
57
|
from .relay import RelayedMobiusDevice
|
|
58
58
|
from .device import (
|
|
59
|
-
MobiusDevice, MobiusPump, LightIntensityResult,
|
|
59
|
+
MobiusDevice, MobiusPump, LightIntensityResult, LightPollResult, FullPollResult,
|
|
60
60
|
SERVICE_GENERAL, CHAR_RX_DATA, CHAR_RX_FINAL, CHAR_TX_DATA, CHAR_TX_FINAL,
|
|
61
61
|
)
|
|
62
62
|
from .discovery import (
|
|
@@ -71,7 +71,7 @@ from .dump import (
|
|
|
71
71
|
enrich_attribute_dump,
|
|
72
72
|
)
|
|
73
73
|
|
|
74
|
-
__version__ = "0.
|
|
74
|
+
__version__ = "0.7.0"
|
|
75
75
|
|
|
76
76
|
__all__ = [
|
|
77
77
|
"__version__",
|
|
@@ -117,7 +117,7 @@ __all__ = [
|
|
|
117
117
|
"build_rloc_address", "extract_short_address", "is_short_address_derived",
|
|
118
118
|
"RelayedMobiusDevice",
|
|
119
119
|
# device
|
|
120
|
-
"MobiusDevice", "MobiusPump", "LightIntensityResult",
|
|
120
|
+
"MobiusDevice", "MobiusPump", "LightIntensityResult", "LightPollResult", "FullPollResult",
|
|
121
121
|
"SERVICE_GENERAL", "CHAR_RX_DATA", "CHAR_RX_FINAL", "CHAR_TX_DATA", "CHAR_TX_FINAL",
|
|
122
122
|
# discovery
|
|
123
123
|
"scan_for_mobius_devices", "scan_for_mobius_devices_with_info", "group_by_pan_id",
|