Version History#

v0.22.1 (2026-01-16)#

Bug Fixes#

  • Made all DataClients disconnect when going to FAULT. (OSW-1598)

Other Changes and Additions#

  • Fixed the documentation build. (OSW-1598)

v0.22.0 (2026-01-08)#

Performance Enhancement#

  • Added a unit test for the particle sensor data client. (OSW-934)

Other Changes and Additions#

  • Formatted imports with ruff. (OSW-934)

v0.21.2 (2025-11-27)#

Bug Fixes#

  • Fixed the TcpipDataClient unit test case. (OSW-1427)

Performance Enhancement#

  • Asserted going to FAULT when reading telemetry leads to an exception. (OSW-1500)

v0.21.1 (2025-11-11)#

Bug Fixes#

  • Fixed the TcpipDataClient unit test. (OSW-1346)

Performance Enhancement#

  • Set conda build string. (OSW-982)

  • Updated ts_conda_build dependency version. (OSW-982)

Other Changes and Additions#

v0.21.0 (2025-06-12)#

New Features#

  • Added descriptive CSC name to configuration schema. (DM-50895)

Bug Fixes#

  • Fixed importing of the version module. (DM-50895)

  • Started using rewritten DataClient lifecycle. (DM-50895)

v0.20.0 (2025-05-15)#

API Removal or Deprecation#

  • Removed all SNMP-related code. (DM-50822)

  • Moved all DataClients to ts_ess_common. (DM-50822)

v0.19.4 (2025-05-07)#

Performance Enhancement#

  • Set a low rate limit for the Weather Station. (DM-50598)

Other Changes and Additions#

  • Improved logger configuration for run script. (DM-50598)

v0.19.3 (2025-04-24)#

Bug Fixes#

  • Fixed version module import. (DM-50480)

v0.19.2 (2025-04-22)#

New Features#

  • Switched to towncrier. (DM-50329)

  • Avoided asyncio_default_fixture_loop_scope pytest warning. (DM-50329)

Bug Fixes#

  • Fixed failing unit test. (DM-50329)

  • Fixed package version file generation. (DM-50329)

v0.19.1#

  • Remove ts_idl dependency from conda recipe and add ts_xml.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 22.2

  • ts_ess_common 0.20

  • ts_tcpip 2

  • ts_utils 1

v0.19.0#

  • Incorporate code for electrical power management and other SNMP operations.

  • Cleanup and fix conda recipe.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 22.2

  • ts_ess_common 0.20

  • ts_tcpip 2

  • ts_utils 1

v0.18.10#

  • Update SiglentSSA3000xSpectrumAnalyzerDataClient to allow configuring the start and end scan frequency.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.9#

  • Update CSC bin script for running the CSC locally.

  • Improve Young weather station code readability.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.8#

  • Remove WeatherStation rain rate jump check.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.7#

  • Make sure that the TcpipDataClient test runs in simulation mode.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.6#

  • Revert renaming of ESS Common SocketServer class.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.5#

  • Allow subclassing of the ESS CSC class.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.4#

  • Add a unit test for the TcpipDataClient.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.3#

  • Fix the conda recipe.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.2#

  • Update the version of ts-conda-build to 0.4 in the conda recipe.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.1#

  • Increase config version.

  • Consolidate Lightning and RPi data clients into one class.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.18.0#

  • Import enums from ts_xml instead of ts_idl.

  • Separate connection code from sensor reading code.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.17

  • ts_tcpip 2

  • ts_utils 1.0

v0.17.1#

  • Convert HX85BA barometric pressure to Pa using astropy units.

  • Convert weather station barometric pressure to Pa using the correct scale factor.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.17.0#

  • Rename telemetry items for which the topic has the same name.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 20

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.10#

  • Fix reconnection issue in Young weather station DataClient.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.9#

  • Prepare unit tests for Kafka.

  • Make the Young weather station DataClient automatically reconnect when a timeout happens.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.8#

  • Make sure that MockSiglentSSA3000xDataServer reads a command before sending data to avoid filling up of the write buffer.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.7#

  • Correct some log messages that contained the wrong host and port.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.6#

  • Move some documentation to ts_ess_common.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.5#

  • Use ts_tcpip OneClientReadLoopServer. This requires ts_tcpip 1.1.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.16

  • ts_tcpip 1.1

  • ts_utils 1.0

v0.16.4#

  • Remove XML 15 compatibility:

    • For the lightningStrikeStatus telemetry topic, initialize closeStrikeRate and totalStrikeRate to NaN instead of -1.

    • For the lightningStrike event, report “no lightning strikes nearby” by setting correctedDistance and uncorrectedDistance to infinity, instead of -1.

    • Stop rounding these fields and other lightning-related numbers to integer; all are now float.

  • Remove scons support.

  • Git hide egg info and simplify .gitignore.

  • Further refinements for ts_pre_commit_config:

    • Remove unused bits from conda/meta.yaml.

    • Remove setup.cfg.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.14

  • ts_tcpip

  • ts_utils 1.0

v0.16.3#

  • get_circular_mean_and_std_dev: fix a possible exception in computing direction statistics.

  • Young32400WeatherStationDataClient: improve error handling in the handle_data method.

  • AirFlowAccumulator: add missing documentation for the log constructor argument.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 15

  • ts_ess_common 0.14

  • ts_tcpip

  • ts_utils 1.0

v0.16.2#

  • Remove backward compatibility with XML 15.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.14

  • ts_tcpip

  • ts_utils 1.0

v0.16.1#

  • Make the unit tests compatible with XML 15.0.

  • Make handling of lightning strike telemetry compatible with XML 15.0.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 15

  • ts_ess_common 0.14

  • ts_tcpip

  • ts_utils 1.0

v0.16.0#

  • Remove unused options for pytest.

  • Switch Young32400WeatherStationDataClient to BaseReadLoopDataClient.

  • Switch SiglentSSA3000xSpectrumAnalyzerDataClient to BaseReadLoopDataClient.

  • Switch ControllerDataClient to BaseReadLoopDataClient.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.14

  • ts_tcpip

  • ts_utils 1.0

v0.15.1#

  • CONFIG_SCHEMA: update to version v5, for changes to lsst.ts.ess.labjack.LabJackAccelerometerDataClient. Note: that data client requires ts_xml 16.

  • Use ts_pre_commit_conf.

  • Jenkinsfile: use the shared library.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16

  • ts_ess_common 0.11

  • ts_tcpip

  • ts_utils 1.0

v0.15.0#

  • Bug fix: reported airFlow direction and directionStdDev did not handle wraparound correctly. Use circular statistics instead of standard statistics.

  • AirFlowAccumulator: add a log attribute, making it more like AirTurbulenceAccumulator.

  • Add get_circular_mean_and_std_dev function.

  • Add Young32400WeatherStationDataClient.

  • Add SiglentSSA3000xSpectrumAnalyzerDataClient. This requires ts_xml 16.

  • Add location to lightning sensors telemetry.

  • Improve type annotation of get_median_and_std_dev.

  • Add command_ess_csc entry point.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 16 (14 is OK if not using SiglentSSA3000xSpectrumAnalyzerDataClient)

  • ts_ess_common 0.11

  • ts_tcpip

  • ts_utils 1.0

v0.14.2#

  • Remove cast to int for lightning strike bearing and wind direction standard deviation.

  • Add a unit test function to check Windsonic telemetry because the one in ts_ess_common is invalid for the telemetry.

  • Clean up pyproject.toml dependencies.

  • Remove pip install step since the dependencies were added to ts-develop.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 14

  • ts_ess_common 0.11

  • ts_tcpip

  • ts_utils 1.0

v0.14.1#

  • Fix NaN to int conversion in Windsonic anemometer telemetry handling.

  • Fix invalid config schema for lightning sensors.

  • Decrease safe_interval default value because it clashed with communication timeout value.

  • Add check for number of elements in timestamp list in ElectricFieldStrengthAccumulator class.

  • Improve logging of lightning sensors telemetry handling.

  • Temporarily cast lightning strike bearing to int until ts_xml has been updated.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 14

  • ts_ess_common 0.11

  • ts_tcpip

  • ts_utils 1.0

v0.14.0#

  • Fix the unit of wind speed in the doc strings of AirTurbulenceAccumulator.

  • Add support for the Gill Windsonic 2-d anemometer.

  • Move all accumulators to a sub-module.

  • Move all data clients to a sub-module.

  • Refactor the run_ess_csc entry point.

  • Use quartiles to compute estimated standard deviation.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 14

  • ts_ess_common 0.11

  • ts_tcpip

  • ts_utils 1.0

v0.13.2#

  • Update type annotations for newer MyPy.

  • Add debug statements.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 14

  • ts_ess_common 0.10

  • ts_tcpip

  • ts_utils 1.0

v0.13.1#

  • pre-commit: update mypy version.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 14

  • ts_ess_common 0.10

  • ts_tcpip

  • ts_utils 1.0

v0.13.0#

  • Update for ts_xml 14, which is required.

  • Switch from py.test to pytest.

  • Improve the way medians are computed.

  • Extract base class for data clients connecting to an ESS Controller.

  • Add a data client (and support classes) for processing electric field and lightning telemetry.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 14

  • ts_ess_common 0.10

  • ts_tcpip

  • ts_utils 1.0

v0.12.0#

  • Update for ts_xml 13, which is required.

  • Modernize type annotations.

  • Add class AirTurbulenceAccumulator.

  • Fix reconnection issue.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 13

  • ts_ess_common 0.9.3

  • ts_tcpip

  • ts_utils 1.0

v0.11.2#

  • Modernize airTurbulence telemetry. This was potentially compatible with ts_xml 12.1 but there will be no such release. This version is not compatible with ts_xml 13.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 12.

  • ts_ess_common 0.9.3

  • ts_tcpip

  • ts_utils 1.0

v0.11.1#

  • Restore pytest config.

  • Fix CSAT3B baud rate.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 11

  • ts_ess_common 0.8

  • ts_tcpip

  • ts_utils 1.0

v0.11.0#

  • Add support for multiple Python versions for conda.

  • Sort imports with isort.

  • Install new pre-commit hooks.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 11

  • ts_ess_common 0.8

  • ts_tcpip

  • ts_utils 1.0

v0.10.0#

  • Add baud_rate configuration key.

  • Add support for the Campbell Scientific CSAT3B 3D anemometer.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 11

  • ts_ess_common 0.8

  • ts_tcpip

  • ts_utils 1.0

v0.9.1#

  • Modernize pre-commit config versions.

  • Introduce a mechanism to recover from communication failures instead of going to FAULT immediately.

  • Switch to pyproject.toml.

  • Use entry_points instead of bin scripts.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 11

  • ts_ess_common 0.7

  • ts_tcpip

  • ts_utils 1.0

v0.9.0#

  • Use ErrorCode enum from ts_idl, which requires ts_idl 3.7.

  • setup.cfg: set asyncio_mode = auto.

  • git ignore .hypothesis.

Requires:

  • ts_salobj 7

  • ts_idl 3.7

  • IDL file for ESS from ts_xml 11

  • ts_ess_common 0.7

  • ts_tcpip

  • ts_utils 1.0

v0.8.0#

  • Update for ts_salobj 7 and ts_xml 11, both of which are required.

Requires:

  • ts_salobj 7

  • ts_idl 3.7 strongly recommended, but 3.5 or 3.6 will do

  • IDL file for ESS from ts_xml 11

  • ts_ess_common 0.7

  • ts_tcpip

  • ts_utils 1.0

v0.7.0#

  • Update unit tests for ts_salobj 6.8. This change requires ts_salobj 6.8.

  • Modify to use data clients (subclasses of lsst.ts.ess.common.BaseDataClient) to communicate with data servers. This requires ts_ess_common 0.7.

  • Use new error codes from ts_idl 3.7, which is recommended but not required, due to a temporary local version of the ErrorCode enum class. All clients of this CSC should use ts_idl v3.7.0 in order to get correct ErrorCode values.

  • Rename the conda package from ts-ess to ts-ess-csc.

  • Fix API docs.

  • Enable mypy type checking.

  • Change master to main in CONFIG_SCHEMA’s id, in preparation for renaming the branch.

  • Remove START and STOP commands from RPi Data Client.

  • The sensor name, timestamp, response code and data are encoded as separate named entities.

Requires:

  • ts_salobj 6.8

  • ts_idl 3.7 strongly recommended, but 3.5 or 3.6 will do

  • IDL file for ESS from ts_xml 10.1

  • ts_ess_common 0.7

  • ts_tcpip

  • ts_utils 1.0

v0.6.1#

  • Fixed import for ESS Common MockTestTools.

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 10.1

  • ts_ess_common

  • ts_tcpip

  • ts_utils 1.0

v0.6.0#

  • Consolidated all multi-channel temperature topics into one.

  • Replaced the use of ts_salobj functions with ts_utils functions.

  • Added tests for all supported devices in the test class for the CSC.

  • Removed logging configuration from CSC run script.

  • Added telemetry for the computed dew point in all humidity sensors that don’t provide it themselves.

  • Made sure that the CSC goes into FAULT state in case of an error.

  • Added location to the configuration of the devices.

  • Made sure that the CSC reports the sensor location in the telemetry.

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 10.1

  • ts_ess_common

  • ts_tcpip

  • ts_utils 1.0

v0.5.1#

  • Fixed launch script to get index argument.

  • Added auto-enable capability.

Requires:

  • ts_salobj 6.6

  • ts_idl 3.3

  • IDL file for ESS from ts_xml 10.0

  • ts_ess_controller

  • ts_ess_common

  • ts_tcpip

v0.5.0#

  • Removed all sensor code.

  • Added a description of the communication protocol.

  • Added support for the Omega HX85A and HX85BA humidity sensors.

  • Added rudimentary exception handling in case a sensor encounters an error.

  • Renamed the project to ts_ess_csc.

  • Made sure to refer to the ts_ess_common and ts_ess_controller Python packages.

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 9.1

  • ts_ess_controller

  • ts_ess_common

  • ts_tcpip

v0.4.1#

  • Fixed code errors to make the CSC work on the summit.

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 9.1

  • ts_envsensors

  • ts_tcpip

v0.4.0#

  • Code reworked to be able to work locally and remotely. When working remotely, a running socket server from ts_envsensors is required.

  • Removed pytest-runner and tests_require.

  • Added support for multiple sensors.

  • Added handling of configuration errors.

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 9.1

  • ts_envsensors

  • ts_tcpip

v0.3.0#

Code reworked to use asyncio properly.

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 8.0

v0.2.0#

The sensors code, and with that the CSC, was completely rewitten. Black version upgraded to 20.8b1 ts-conda-build version upgraded to 0.3

Requires:

  • ts_salobj 6.3

  • ts_idl 3.1

  • IDL file for ESS from ts_xml 8.0

v0.1.0#

First release of the Environmental Sensors Suite CSC.

This version already includes many useful things:

  • A functioning ESS CSC which can connect to a multi-channel temperature sensor.

  • Support for USB and FTDI sensors.

Requires:

  • ts_salobj 6.3

  • ts_idl

  • IDL file for ESS from ts_xml 7.0