This adapter uses the service Sentry.io to automatically report exceptions and code errors and new device schemas to me as the developer. More details see below!
Detailed analysis of your Energy, gas and liquid consumptions Any source (kWh, Wh, Watt, l/h or m3 )can be used for data analyses :
- Trace consumption daily, weekly, monthly, quarterly, yearly
- calculate costs (current price is configurable)
- Can be used for Power Consumption, liquids, and GAS
- Input values can be wh/kWh/Watt/m3/l
Please provide your feedback here https://forum.iobroker.net/topic/31932/major-update-sourceanalytix-0-4-0-complete-code-rebuild
This adapter has is roots with thanks to pix back in 2016 https://forum.iobroker.net/viewtopic.php?f=21&t=2262
Which has been improved by @hadering and published on github https://github.com/hdering/homematic_verbrauchszaehler
- Source Values reset to default value at night if default value is defined in an object (bug in JS-Controller, fix needed in 2.3) Workaround : Ensure no default value is set for self-created states
- Documentation
- Period calculation selectable but not yet implemented
- monthly cost price not yet implemented in calculation
- recalculation based on meter values (configurable by date)
- add object states for previous [x]day, [x]week, [x]month, [x]quarter, [x]year configurable in adapter settings
If you like my work, please consider a personal donation
(this is an personal Donate link for DutchmanNL, no relation to the ioBroker Project !)
Sentry.io is a service for developers to get an overview about errors from their applications. And exactly this is implemented in this adapter.
When the adapter crashes or an other Code error happens, this error message that also appears in the ioBroker log is submitted to Sentry. When you allowed iobroker GmbH to collect diagnostic data then also your installation ID (this is just a unique ID without any additional infos about you, email, name or such) is included. This allows Sentry to group errors and show how many unique users are affected by such an error. All of this helps me to provide error free adapters that basically never crashs.
- (Dutchman) Bugfix : Cannot read property 'stateDetails' of null
- (Dutchman) Fix calculations for "previous" values
- (Dutchman) Breaking!!! Move current values to currentYear
- (Dutchman) Add back "currentYear"
- (Dutchman) Code cleanup
- (Dutchman) Optimized error reporting (Sentry)
- (Dutchman) implemented weekly reset of weekdays
- (Dutchman) implemented calculation for all states
- (Dutchman) Removed unneeded settings in configuration
- (Dutchman) Implemented new configuration for "currentYear"
- (Dutchman) Implement Sentry
- (Dutchman) Implement configuration for Price definitions
- (Dutchman) Bugfix: NULL value issue at daily reset
- (Dutchman) Bugfix: Issue found in selection of category
- (Dutchman) Bugfix: Category issue (read value of undefined)
- (Dutchman) Bugfix: Issue in storing meter values by month
- (Dutchman) Bugfix: Wrong reading value for Watt initialisation
- (Dutchman) Bugfix: Warnings at object creations (js-controller 3.x)
- (Dutchman) Bugfix: wrong interpretation of start values at value resets
- (Dutchman) Bugfix: Proper error message instead of code crash if no cost type defined
- (Dutchman) Add device name for log messages if device value < than currently known value
- (Dutchman) Bugfix : Crash at adapter start if chosen Type is not present in instance configuration
- (Dutchman) Translations updated
- (Dutchman) Bugfix : Values do not reset at new day start
- (Dutchman) Bugfix : Handle calculations when reading = 0
- (Dutchman) Bugfix : Handle calculations at initialisation
- (Dutchman) Bugfix : Pause all calculation during day-reset
- (Dutchman) Do not calculate values is state is update with same value as previous
- (Dutchman) Complete code rebuild
- (Dutchman) Change data points to root by year
- (Dutchman) Delete unneeded states automatically
- (Dutchman) Calculation by quarter implemented
- (Dutchman) Storage of meter values implemented
- (Dutchman) Rebuild calculation logic to handle in memory instead of object DB (performance)
- (Dutchman) m³ Implemented
- (xXBJXx) Fix wrong storage of start meter values
- (Dutchman) Fix wrong storage of daily reset of meter values
- (Xoroles & Dutchman) fix watt calculation, thank you @Xoroles !
- (Dutchman) implemented w to kWh calculations :) with thanks to @AlCalzone and @andiling !
- (Dutchman) implemented meter readings
- (Dutchman & @AlCalzone) code improvements & stability
- (Dutchman) fix issue with liquid unit reading (m3)
- (Dutchman) fix issue in daily reset of start values
- (Dutchman) Fix badges in readme
- (Dutchman) exclude calculations of w from current routines (will be implemented in next version(s)
- (Dutchman) change logic of initialisation
- (Dutchman) fix issue in calculation handling
- (Dutchman) extract unit definition to central function
- (Dutchman) removed "logging to troubleshoot", use "debug" in adapter setting
- (Dutchman) implement compact mode
- (Dutchman) fix testing issues
- (Dutchman) fix error "unit" or "tolowercase" is undefind
- (Dutchman) fixed installation issues
- (Dutchman) fixed issue related to multihost installations with slave as target
- (Dutchman) fixed issue in calculations for gas environments and liquids
- (Dutchman) improve logging related to issue analytics
- (Dutchman) add option in state setting to automatically OR manually choose the meassurement unit (for cases device state does not have correct value)
- (Dutchman) add support for heating pumps
- (Dutchman) improvements in adapter configuration screen
- (Dutchman) fixed reset of start values
- (Dutchman) removed uneeded logging "Write calculations for : "
- (Dutchman) generic improvement of logging, to see status messages activate it in adapter settings ! Otherwise onlyu erros will be shown and add/del devices
- (Dutchman) improved complete logic of state add/delete/update config in backend which will result in better performance/error handling
- (Dutchman) small fixed in configuration screen to show logging options
- (Dutchman) fixed "current_day" missing in object tree
- (Dutchman) fixed log messages "removed from SourceAnalytix"
- (Dutchman) fixed unit issue to support upper and lower case in values
- (Dutchman) fixed unit issue replace strange characters
- (Dutchman) remove intervall setting from configuraiton screen (handle by state subscribtion now!)
- (Dutchman) remove start meassurement from state configuraiton screen (not need, please use day start, week start etc !)
- (Dutchman) rebuild logic to calculate values (beta testing)
- (Dutchman) implement logic to automatically reset values by start of new day, week, month, year etc (beta testing)
- (Dutchman) changed logic from intervall polling to handle calculations based on state updates (beta testing, not if suitable for all situations)
- (Dutchman) fixed issue incorrect states are added to monitoring
- (Dutchman) fixed issue calculation not stopped when state removed from monitoring
- (Dutchman) always store all current meassurements to values of cathegorie regardless setting year etc
- (Dutchman) code cleanup and optiomalisation
- (Dutchman) added logging option "satus notification"
- (Dutchman) implement new translation mechanisme
- (Dutchman) Adapter moved to community development tree
- (Dutchman) added npm version and test-status to readme
- (Dutchman) finalized new konfiguration screen & translations
- (Dutchman) adding/removing objects from analytix does not need adapter reboot anymore ! :-)
- (Dutchman) rebuild logic how data is handled as basic for new calculation logic (Experimental)
- (Dutchman) added options to year analytics to choose values (days,weeks,years etc)
- (Dutchman) option added for Developer logging
- (Dutchman) Basic price is currently not considered in cost calculations !
- (Dutchman) Values day start, week start etc are currenlty not automatically set (will be in 0.2.0)
- (Dutchman) konfiguration pages completly redesigned : Please do not enter values yet !
- (Dutchman) master konfiguration added to globally define costs
- (Dutchman) intervall settings moved to global setting instead of each state seperated
- (Dutchman) instead of cost-price in each state use drop down menu to choose values from global settings
- (Dutchman) fixed naming and translations
- (Dutchman) fixed data reset for quarter values (thank you Jens !)
- (Dutchman) fixed usage of alias
- (Dutchman) fixeded issue in calculation of earnings and delivery
- (Dutchman) logging improvement
- (Dutchman) fixed log messages
- (Dutchman) calculation for m3 values
- (Dutchman) calculation for l values
- (Dutchman) improved state write logic, only sent write commando when needed
- (Dutchman) add support for calculation of Wh values
- (Dutchman) first public beta release
- (Dutchman) fixed translations
- (Dutchman) rebuild calculation logic
- (Dutchman) fixed calculation of start offset
- (Dutchman) adjustable if state is used for cosumption or delivery
- (Dutchman) limited possible logging to kWh only for this moment
- (Dutchman) only create states and channels for logging types selected
- (Dutchman) fixed wrong calculation of start values
- (Dutchman) fixed wrong calculation of quarter values
- (Dutchman) prepare public beta and travis testing
- (Dutchman) change name to SourceAnalytix
- (Dutchman) implemented SourceAnalytix settings at states (equal to data logging adapters)
- (Dutchman) configurable unit for every state, automatically from object state. currently only kWh supported !
- (Dutchman) configurable intervall for every state
- (Dutchman) automated reset of start values
- (Dutchman) fixed issue with travis build
- (Dutchman) fixed wrong information in package-json
- (Dutchman) cost calculation
- (Dutchman) adjustable starting point of meassurement
- (Dutchman) support of multiple device states instead of 1
- (Dutchman) fixed calculation of current consumptions
- (Dutchman) code optimalisation
- (Dutchman) creation of object structure
- (Dutchman) first values read based on test_object.js input file to read values adn write data of current period.s
- (Dutchman) initial release
MIT License
Copyright (c) 2020 Dutchman
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.