This adapter saves state history in a two-staged process.
This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. For more details and for information how to disable the error reporting see Sentry-Plugin Documentation! Sentry reporting is used starting with js-controller 3.0.
- (tuxyme) activated the round option when averaging
- (foxriver76) fix history2db.js with controller v5
- (bluefox) Minimal node.sj version is 16
- (bluefox) Added support for
count
aggregate type on getHistory
- (Apollon77) Fix getHistory when aggregations were used in some cases
- (Apollon77) Update for future js-controller versions
- (Apollon77) Fix error in history2db converter script
- (Apollon77) Fix crash cases reported by Sentry
- (kleinOr) Updated converter scripts to work with influxdb 2.x
- (Apollon77) make sure getHistory works for all cases
- (Bluefox/Apollon77) Added an option to add comment and user info to results
- (Apollon77) Allowed removing a configuration value for "round" in config again
- (Apollon77) When not count is provided for aggregate "none" or "onchange" then the limit (default 2000) is used as count to define the number of data to return.
- (Apollon77) Ignore errors from a forked process after response was sent for GetHistory
- (Apollon77) Make sure the debug log is active, according to the settings
- (Apollon77) Huge performance optimizations for GetHistory calls
- (Apollon77) Fixed crash case reported by Sentry
- (Apollon77) Fix crash case reported by Sentry
- (Apollon77) Fix several crash cases reported by Sentry
- (Apollon77) Make sure disabling "Log changes only" also really do not log the changes anymore
- (Apollon77) Allow storeState and GetHistory also to be called for "unknown ids"
- (Apollon77) BREAKING: Configuration is only working in the new Admin 5 UI!
- (Apollon77) Did bigger adjustments to the recording logic and added a lot of new Features. Please refer to Changelog and Forum post for details.
- (Apollon77) Make sure disabling "Log changes only" also really do not log the changes anymore
- (Apollon77) BREAKING: Configuration is only working in the new Admin 5 UI!
- (Apollon77) BREAKING! Did bigger adjustments to the recording logic. Debounce is refined and blockTime is added to differentiate between the two checks
- (Apollon77) BREAKING! GetHistory requests now need to deliver the ts in milliseconds! Make sure to use up to date scripts and Charting UIs
- (Apollon77) New setting added to disable the "logging of additional values for charting optimization" - then only the expected data are logged
- (Apollon77) Add flag returnNewestEntries for GetHistory to determine which records to return when more entries as "count" are existing for aggregate "none"
- (Apollon77) Make sure id is always returned on GetHistory when addId is set
- (Apollon77) Add new Debug flag to enable/disable debug logging on datapoint level (default is false) to optimize performance
- (Apollon77) Add support to specify how to round numbers on query per datapoint
- (Apollon77) Add aggregate method "percentile" to calculate the percentile (0..100) of the values (requires options.percentile with the percentile level, defaults to 50 if not provided). Basically same as Quantile just different levels are used
- (Apollon77) Add aggregate method "quantile" to calculate the quantile (0..1) of the values (requires options.quantile with the quantile level, defaults to 0.5 if not provided). Basically same as Percentile just different levels are used
- (Apollon77) Add (experimental) method "integral" to calculate the integral of the values. Requires options.integralUnit with the time duration of the integral in seconds, defaults to 60s if not provided. Optionally a linear interpolation can be done by setting options.integralInterpolation to "linear"
- (Apollon77) When request contains flag removeBorderValues: true, the result then cut the additional pre and post border values out of the results
- (Apollon77) If storeState Message calls include a rules property then the new value is added with respecting all rules (incl. debounce, so be careful!)
- (Apollon77) Enhance the former "Ignore below 0" feature and now allow specifying to ignore below or above specified values. The old setting is converted to the new one
- (Apollon77) Allow to specify custom retention duration in days
- (Apollon77) Adjust handing for data files prior 1.1.2010 and automatically convert older ts formats to the new one
- (Apollon77) Adjust handling of data prior 1.1.2000 in the importer scripts
- (Apollon77) Make sure that min change delta allows numbers entered with comma (german notation) in all cases
- (Apollon77) Fix the js-controller and admin minimum version
- (bluefox) Added support deletion and changing of stored values.
- (Apollon77) Prevent some crash cases reported by Sentry
- (Excodibur) Hide settings not relevant when "log changes only" is not used
- (Apollon77) Allow all number values for debounce again
- (bluefox) Support only
js.controller
>= 3.3.x - (bluefox) Used system/custom view for collecting the objects
- (bluefox) Implemented option to ignore zero- or/and below zero- values
- (Apollon77) Prevent crash cases reported by Sentry
- (bluefox) Added the support of Admin5
- (Apollon77) Optimize stop handling
- (bluefox) Code formatting done
- (bluefox) Filtered out the acknowledgment and the quality from the getHistory call if not requested
- (Apollon77) prevent crashes (Sentry IOBROKER-HISTORY-K, IOBROKER-HISTORY-J, IOBROKER-HISTORY-C, IOBROKER-HISTORY-G)
- (bluefox) added command to read supported features
- (bluefox) set default history if not yet set
- (Apollon77) optimize retention directory logic again (Sentry IOBROKER-HISTORY-A)
- (Apollon77) optimize retention directory logic again (Sentry IOBROKER-HISTORY-7)
- (Apollon77) Catch error when Storage directory can not be created (Sentry IOBROKER-HISTORY-1)
- (Apollon77) make sure internal structures are initialized correctly (Sentry IOBROKER-HISTORY-2)
- (Apollon77) make sure to handle cases where retention directory is not existing (Sentry IOBROKER-HISTORY-3)
- Requires js-controller >= 2.0.0
- (foxriver76) removed usage of adapter.objects
- (Apollon77) check if objects have changed and ignore unchanged
- (Apollon77) adjust allowed file system names
- (Apollon77) Add Sentry for Error Reporting with js-controller 3.0
- (Apollon77) Make sure value undefined is ignored
- (paul53) old files should be deleted automatically
- Fix several smaller issues and optimized some texts
- (Apollon77) Error fixed in storeState
- (Apollon77) Fixing/allow to disable writing of start and end values
- (Apollon77) Add option to write data to a different ID to make device changes easier. Retrieving data works for both IDs
- (AlCalzone) Fix filename handling for states with special characters
- (Apollon77) Respect 'keep forever' setting for retention from datapoint configuration
- (bondrogeen) Admin3 Fixes
- (Bluefox) Admin3 Fixes
- (bluefox) Ready for Admin3
- (bluefox) translations
- (Apollon77) fix relog value feature
- (bluefox) add "save last value" option
- (Apollon77) fix behaviour of log interval to always log the current value
- fix in datatype conversions
- (Apollon77) Replace some characters in history filenames
- (Apollon77) Small fix for older configurations
- (Apollon77) Enhance Min-Delta logic for datapoints from type mixed
- (bluefox) Fix handling of float values in Adapter config and Datapoint config.
- (Apollon77) Add messages enableHistory/disableHistory
- (Apollon77) add support to log changes only if value differs a minimum value for numbers
- (Apollon77) Fixing aggregate calculation
- (Apollon77) add option to re-log unchanged values to make it easier for visualization
- (Apollon77) added converter scripts to move history data to db
- (Apollon77) Fixed: ts is assigned as val
- (bluefox) Fix selector for history objects
- (bluefox) сompatible only with new admin
- (bluefox) change name of object from history to custom
- (bluefox) fix aggregation of last point
- (bluefox) aggregation none just deliver the raw data without any aggregation
- (bluefox) fix aggregation on large intervals
- (bluefox) fix aggregation on seconds
- (bluefox) draw line to the end if ignore null
- (bluefox) switch max and min with each other
- (bluefox) calculate end/start values for "on change" too
- (bluefox) change default aggregation name
- (bluefox) support sessionId
- (bluefox) use aggregation file from sql adapter
- (bluefox) fix the values storage on exit
- (bluefox) store all cached data every 5 minutes
- (bluefox) support of ms
- (bluefox) add description of settings
- (bluefox) place aggregate function into separate file to enable sharing with other adapters
- (smiling-Jack) Add generate Demo data
- (smiling-Jack) get history in own fork
- (bluefox) add storeAck flag
- (bluefox) mockup for onchange
- (Smiling_Jack) save and load in adapter and not in js-controller
- (Smiling_Jack) aggregation of data points
- (Smiling_Jack) support of storage path
- (bluefox) fix small error in history (Thanks on Dschaedl)
- (bluefox) update admin page
- (bluefox) enable save&close button by config
- (bluefox) check if state was not deleted
- (bluefox) enable npm install
- (bluefox) support of de-bounce interval
- (bluefox) store every change and not only lc != ts
- (bluefox) add configuration page
The MIT License (MIT)
Copyright (c) 2014-2023 Bluefox [email protected], Apollon77
Copyright (c) 2016 Smiling_Jack
Copyright (c) 2014 hobbyquaker
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.