Releases: daq-tools/kotori
Releases · daq-tools/kotori
0.28.1
0.28.0
What's Changed
DAQ
- MQTT: Fixed error when connecting to MQTT broker without authentication credentials.
- HTTP: Improved export capabilities by adding parameters sort, direction, limit, and scalar. Thanks, @ClemensGruber.
- Grafana/InfluxDB: Started permitting only numeric fields to be established on graph panels. Other types would make the panel raise errors like InfluxDB Error: unsupported mean iterator type: *query.stringInterruptIterator or InfluxDB Error: not executed.
Integrations
- SensorWAN: Added per-device addressing and topic decoding strategies. Thanks, @thiasB and @ClemensGruber. Examples:
mqttkit-1/device/123e4567-e89b-12d3-a456-426614174000
mqttkit-1/channel/network-gateway-node - SensorWAN: Added the SensorWAN 3.0 specification page to the documentation.
- TTN: Added decoder for TTS/TTN (The Things Stack, The Things Network). Thanks, @thiasB and @u-l-m-i.
- TTN: Started decoding metadata from full TTN payload. Thanks, @thiasB.
- TTN: Added documentation about multi-tenant connectivity using only a single TTN Application. Thanks, @thiasB, @einsiedlerkrebs, and @ClemensGruber.
Documentation
- Migrated to Read the Docs, see https://kotori.readthedocs.io/.
- Updated to Sphinx 9. Switched to Furo theme. Copy editing.
- Established new sections “Databases” and “Integrations”.
Maintenance
- CI: Validated support on Python 3.12, 3.13, 3.14.
- CI: Validated support for Grafana 9.5.21, 10.4.19, 11.6.9, 12.3.2.
- Python: Downgraded to setuptools v80 to bring back pkg_resources.
- Python: Relaxed dependency specifications.
Details
- CI: Update to Grafana 9.3.0 by @amotl in #103
- Add Dependabot configuration for package updates by @amotl in #111
- Bump pyclibrary from 0.1.3 to 0.2.1 by @dependabot[bot] in #112
- Bump pycparser from 2.17 to 2.21 by @dependabot[bot] in #113
- Update cornice requirement from <6,>=5.0.3 to >=5.0.3,<7 by @dependabot[bot] in #115
- Update bokeh requirement from <2.3,>=1.4.0 to >=1.4.0,<3.1 by @dependabot[bot] in #114
- Update numpy requirement from <1.24 to <1.25 by @dependabot[bot] in #116
- Grafana: Only permit numeric fields to be established on Graph panels by @amotl in #126
- Update pytest requirement from <7 to <8 by @dependabot[bot] in #119
- [TTN] Add TTS (The Things Stack) / TTN (The Things Network) decoder by @amotl in #81
- Documentation: Host documentation site on Read the Docs / Migrate to "Furo" theme by @amotl in #135
- [TTN] extract metadata from full TTN payload by @thiasB in #134
- [DA] Add per-device addressing (DA) to WAN topic/channel decoding strategy by @amotl in #136
- [DA] Add protection for SensorWAN "direct" addressing scheme (fixup) by @amotl in #140
- [TTN] Add documentation about multi-tenant data acquisition by @amotl in #141
- [core] Fix connecting to MQTT broker without authentication credentials by @amotl in #144
- [docs] Refactor "decoders" section to "integrations" by @amotl in #145
- [InfluxDB] Improve database subsystem, and testing by @amotl in #149
- [InfluxDB] Improve export adapter interfaces, and naming things by @amotl in #151
- Documentation: Add descriptions about databases InfluxDB and MongoDB by @amotl in #152
- Documentation: This and that by @amotl in #153
- CI: Update to Grafana 9.5.7 and 10.0.3 by @amotl in #154
- Bump sympy from 0.7.6.1 to 1.12 by @dependabot[bot] in #138
- Update funcy requirement from <2,>=1.15 to >=1.15,<3 by @dependabot[bot] in #131
- [export] Improve export transformation capabilities by @amotl in #146
- Update twisted[tls] requirement from <23 to <24 by @dependabot[bot] in #157
- Update xarray requirement from <2023 to <2024 by @dependabot[bot] in #156
- Update pyasn1-modules requirement from <0.3,>=0.2.8 to >=0.2.8,<0.4 by @dependabot[bot] in #158
- Update munch requirement from <3,>=2.5.0 to >=2.5.0,<5 by @dependabot[bot] in #159
- Update autobahn[twisted] requirement from <21,>=20.7.1 to >=20.7.1,<24 by @dependabot[bot] in #160
- Update plumbum requirement from <1.7,>=1.6.1 to >=1.6.1,<1.9 by @dependabot[bot] in #161
- Update bokeh requirement from <3.1,>=1.4.0 to >=1.4.0,<3.4 by @dependabot[bot] in #162
- Update attrs requirement from <22,>=20.2.0 to >=20.2.0,<24 by @dependabot[bot] in #165
- Update keyring requirement from <24 to <25 by @dependabot[bot] in #167
- Maintenance 202602a by @amotl in #183
- Bump actions/setup-python from 4 to 6 by @dependabot[bot] in #184
- Runtime: Validate support on Python 3.12, 3.13, 3.14 by @amotl in #188
- Bump actions/checkout from 3 to 6 by @dependabot[bot] in #186
- CI: Don't expand test matrix along the Grafana axis by @amotl in #189
- Bump codecov/codecov-action from 3 to 5 by @dependabot[bot] in #185
- Update invoke requirement from <2 to <3 by @dependabot[bot] in #166
- Bump pyparsing from 2.2.0 to 3.3.2 by @dependabot[bot] in #187
- CI: Validate on MongoDB 6, 7, 8 by @amotl in #190
- RTD: Use Python 3.14 and Ubuntu 24.04 by @amotl in #191
- Update gitpython requirement from <3,>=2.0.5 to >=2.0.5,<4 by @dependabot[bot] in #121
- CI: Only use newest Grafana version to save resources by @amotl in #193
- Relax dependencies by @amotl in #192
- Package: Add
versioningitby @amotl in #202 - Chore: Reformat
setup.pyby @amotl in #204 - CI: Migrate from Dependabot to Renovate by @amotl in #205
- Update twine requirement from <5 to <7 by @dependabot[bot] in #208
- Update sh requirement from <2 to <3 by @dependabot[bot] in #209
- Update pytest-cov requirement from <5 to <8 by @dependabot[bot] in #206
- Packaging: Fix sdist and wheel contents by @amotl in #203
- Update dependency keyring to v25 by @renovate[bot] in #238
- Update dependency sphinxcontrib-mermaid to v2 by @renovate[bot] in #235
- Update dependency myst-parser to v5 by @renovate[bot] in #239
- Update dependency matplotlib to >=3,<3.11 by @renovate[bot] in #213
- Update dependency pyclibrary to <0.4 by @renovate[bot] in #219
- Update dependency pycparser to v3 by @renovate[bot] in #229
- Update dependency sympy to <1.15 by @renovate[bot] in #221
- Update dependency Twisted to v24 [SECURITY] by @renovate[bot] in #210
- Update dependency Twisted to v25 by @renovate[bot] in #242
- Dependencies: Relax more package requirements by @amotl in #241
- Dependencies: Relax
autobahnandpaho-mqttby @amotl in #243 - Documentation: Minor copy-editing by @amotl in #244
- Documentation: Maintenance and copy editing. Add SensorWAN 3.0 specification page. by @amotl in #245
New Contributors
- @dependabot[bot] made their first contribution in #112
- @thiasB made their first contribution in #134
- @renovate[bot] made their first contribution in #238
Full Changelog: 0.27.0...0.28.0
0.27.0
What's Changed
- Add documentation about running Kotori with RabbitMQ as MQTT broker, see Running Kotori with RabbitMQ
- Allow connecting to individual MQTT broker per application
- Improve MQTT logging when connection to broker fails
- Make MQTT broker credential settings
usernameandpasswordoptional - Add software tests for simulating all advanced actions against Grafana
- Publish single reading in JSON format to MQTT broker and proof that a
corresponding datasource and a dashboard was created in Grafana. - Publish two subsequent readings in JSON format to MQTT broker and
proof that a corresponding datasource and a dashboard was first
created and then updated in Grafana. - Publish two subsequent readings to two different topics and proof that
a corresponding datasource and a dashboard with two panels has been
created in Grafana. - Publish two subsequent readings to two different topics and proof that
a corresponding datasource and two dashboards have been created in
Grafana.
- Publish single reading in JSON format to MQTT broker and proof that a
- Adjust logging format re. milli/microseconds
- Because accessing dashboards by slug has been removed with Grafana 8, Kotori
will now use the slug-name of the data channel for all of Grafana'suid,
nameandtitlefields. - Improve decoding fractional epoch timestamps
- Update to
numpy<1.24on Python >3.10 - Replace
BunchwithMunch
Breaking changes
- Stop converging
latitudeandlongitudeingress fields to tags.
It has been implemented as a convenience case when processing LDI data,
but it is not applicable in standard data acquisition scenarios, specifically
when recording positions of moving objects. Thanks, @Tonkenfo.
Infrastructure
- Improve sandbox and CI setup, software tests and documentation
- Update to Twisted <23
- CI: Update to Grafana 7.5.17, 8.5.15, and 9.2.6
- CI: Update to MongoDB 5.0
- Tests: Remove
noseteststest runner, replace withpytest - Build: Use
python -m buildfor building sdist and wheel packages - Add support for Python 3.10 and 3.11
- Drop support for Python 3.5 and 3.6
- CI: Modernize GHA workflow recipe
- Documentation: Add link checker and fix a few broken links
- Documentation: Update to Sphinx 5
Full Changelog: 0.26.12...0.27.0