v0.17.0
Broken version
This version has a major bug in the power distributor, and it is recommended not to be used. Please upgrade to v0.18.0, there are no breaking changes so updating should be trivial.
Release Notes
Summary
Upgrading
-
The resampler now takes a
name
argument foradd_timeseries()
. This is only used for logging purposes. -
The resampler and resampling actor now takes a
ResamplerConfig
object in the constructor instead of the individual values. -
The resampler and resampling actor can emit errors or warnings if the buffer needed to resample is too big. If it is bigger than
ResamplingConfig.max_buffer_len
, the buffer will be truncated to that length, so the resampling can lose accuracy. -
The
ResamplingFunction
now takes different arguments:resampling_period_s
was removed.resampler_config
is the configuration of the resampler calling the resampling function.source_properties
is the properties of the source being resampled.
-
Update frequenz-channel-python dependency to the latest release v0.12.0
-
The
MetricFetcher
now propagates NaN to handle None values whenNone
are not treated from the stream as0
s. Then anyFormulaStep
can compute the results without checking for None on each value involved. However the final result is written asNone
rather than NaN/INF in theFormulaEngine
.
New Features
-
The resampler and resampling actor can now take a few new options via the new
ResamplerConfig
object:warn_buffer_len
: The minimum length of the resampling buffer that will emit a warning.max_buffer_len
: The maximum length of the resampling buffer.
-
The resampler now infers the input sampling rate of sources and use a buffer size according to it.
This information can be consulted via
resampler.get_source_properties(source)
. The buffer size is now calculated so it can store all the needed samples requested via the combination ofresampling_period_s
,max_data_age_in_periods
and the calculatedinput_sampling_period_s
.If we are upsampling, one sample could be enough for back-filling, but we store
max_data_age_in_periods
usinginput_sampling_period_s
as period, so the resampling functions can do more complex inter/extrapolation if they need to.If we are downsampling, we want a buffer that can hold
max_data_age_in_periods * resampling_period_s
seconds of data, and we have one sample everyinput_sampling_period_s
, so we use a buffer length of:max_data_age_in_periods * resampling_period_s / input_sampling_period_s
Bug Fixes
-
Fixed logger creationg for some modules.
Some modules didn't create the logger properly so there was no way to configure them using the standard logger configuration system. Because of this, it might have happened that some log messages were never showed, or some message that the user didn't want to get were emitted anyway.
-
When automatically generating formulas for calculating grid power, include measurements from EV chargers if any are directly connected to the grid.
What's Changed
- Clear release notes by @ela-kotulska-frequenz in #158
- Make resampler infer the input sampling period and buffer length by @leandro-lucarella-frequenz in #136
- Handle
NaN
values in FormulaEngine by @daniel-zullo-frequenz in #99 - Use stricter typing for
eval_stack
used by the FormulaEngine by @shsms in #162 - Fix minimum requirements test by @daniel-zullo-frequenz in #163
- Add documentation and usage instructions for noxfile by @shsms in #166
- Move code in
util
package to_internal
by @shsms in #168 - Add mock microgrid implementation by @ela-kotulska-frequenz in #169
- Define way to create object with async constructor by @ela-kotulska-frequenz in #145
- Use measurements from EV chargers when calculating grid power by @shsms in #172
- Update frequenz-channel-python to the latest release v0.12.0 by @ela-kotulska-frequenz in #173
- Add missing entry to the current release notes by @daniel-zullo-frequenz in #174
- Update RELEASE NOTES about logical meter bugfix by @shsms in #176
- Update release notes before release by @ela-kotulska-frequenz in #178
New Contributors
- @daniel-zullo-frequenz made their first contribution in #99
Full Changelog: v0.16.0...v0.17.0