{"id":28510668,"url":"https://github.com/iobroker/iobroker.consumption","last_synced_at":"2026-02-19T15:01:17.037Z","repository":{"id":57275664,"uuid":"262394110","full_name":"ioBroker/ioBroker.consumption","owner":"ioBroker","description":"Calculates consumption for defined sensors and resources over year","archived":false,"fork":false,"pushed_at":"2023-09-13T20:23:32.000Z","size":646,"stargazers_count":1,"open_issues_count":10,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-22T21:53:59.943Z","etag":null,"topics":["consumption","consumption-adapter","heat-map","iobroker"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ioBroker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-08T18:06:02.000Z","updated_at":"2022-11-15T14:43:23.000Z","dependencies_parsed_at":"2023-02-16T08:01:52.352Z","dependency_job_id":null,"html_url":"https://github.com/ioBroker/ioBroker.consumption","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ioBroker/ioBroker.consumption","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioBroker%2FioBroker.consumption","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioBroker%2FioBroker.consumption/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioBroker%2FioBroker.consumption/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioBroker%2FioBroker.consumption/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ioBroker","download_url":"https://codeload.github.com/ioBroker/ioBroker.consumption/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioBroker%2FioBroker.consumption/sbom","scorecard":{"id":492516,"data":{"date":"2025-08-11","repo":{"name":"github.com/ioBroker/ioBroker.consumption","commit":"0ccfbb56d853575276843fa824072036ddffad8b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/27 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}}]},"last_synced_at":"2025-08-19T19:34:14.356Z","repository_id":57275664,"created_at":"2025-08-19T19:34:14.357Z","updated_at":"2025-08-19T19:34:14.357Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29619094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T13:04:20.082Z","status":"ssl_error","status_checked_at":"2026-02-19T13:03:33.775Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["consumption","consumption-adapter","heat-map","iobroker"],"created_at":"2025-06-08T23:05:50.354Z","updated_at":"2026-02-19T15:01:16.995Z","avatar_url":"https://github.com/ioBroker.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](admin/consumption.png)\n# ioBroker.consumption\n\n[![NPM version](http://img.shields.io/npm/v/iobroker.consumption.svg)](https://www.npmjs.com/package/iobroker.consumption)\n[![Downloads](https://img.shields.io/npm/dm/iobroker.consumption.svg)](https://www.npmjs.com/package/iobroker.consumption)\n[![Dependency Status](https://img.shields.io/david/bluefox/iobroker.consumption.svg)](https://david-dm.org/bluefox/iobroker.consumption)\n[![Known Vulnerabilities](https://snyk.io/test/github/bluefox/ioBroker.consumption/badge.svg)](https://snyk.io/test/github/bluefox/ioBroker.consumption)\n\n[![NPM](https://nodei.co/npm/iobroker.consumption.png?downloads=true)](https://nodei.co/npm/iobroker.consumption/)\n\n## Consumption adapter for ioBroker\nCalculates consumption for defined sensors and resources.\n\nYou can define different resources, like water, heating, electricity and make an analysis in vis with it.\n\n4 different analysis types are implemented:\n- Plan - Actual consumption in €/$ in this year compared with planned values and compared with the previous year.\n- Donut - Comparison between sensors or resources in the form of pie/donut diagram\n- Stack - Monthly consumption of every sensor and resource compared with data from the previous year in the form of stack bar diagram.\n- Heat map - Hourly consumption in this year for resources \n- Table - Monthly consumption of every sensor and resource compared with the previous year in the form of table  \n\n## Requirements\nAdapter requires the my-SQL or postgres SQL DB and ioBroker.sql adapter to be installed (It will be automatically installed)\nIt should work with SQLite too, but it is not recommended because of performance.\n \nMS-SQL is not yet supported, but could be easily implemented if required. \n\n**Adapter is still beta.**\n    \n**Free edition supports only four sensors and only one station.** \nTo support more sensors or stations, you need a valid license. Request it under info@iobroker.com.   \n\n## Usage\nYou have resources (like water, energy, heating, gas, etc), stations (like house, dacha, village villa, etc) and sensors.\n\nSensor is a counter, that always increases its value like an electricity meter that is always growing.\n\nYou must spread all these sensors first into defined resources and then into stations.\n\n**Actually is only one station being supported!**\n\nAfter that, you can analyze your consumption in time and resources over years.\n\nYou can compare the actual year with the previous one and build some prognose about consumption.\n\nPlan over all costs for the current year.\n![Prognose](img/planAll.png)\n\nDistribution of costs by resources.\n![Prognose](img/pieAll.png)\n\nDistribution of consumption by sensors of one resource.\n![Prognose](img/pieHeating.png)\n\nDistribution of consumption by sensors and months of one resource.\n![Prognose](img/stackBarWater.png)\n\nHeatmap of consumption of one resource for the current year.\n![Prognose](img/heatmap.png)\n\nTable of consumption of one resource for the current year for every month.\n![Prognose](img/tableHeating.png)\n\n### Covert function\nThe sensor data can be converted, but the formula must be linear.\nYou can write the formula in javascript, but take care that the result must be a number(float).\nExamples:\n- Wh =\u003e kWh: `val / 1000`\n- kWh =\u003e Wh: `val * 1000`\n- °F =\u003e °C: `(val - 32) / 1.8`\n- °C =\u003e °F: `val * 1.8 + 32`\n\n## Update echarts (only for the developers)\nGo to https://echarts.apache.org/en/builder.html\nSelect:\n- Chart: bar, line, pie, heat-map, \n- Coordinate Systems: grid\n- Component: title, legend, tooltip, MarkPoint, MarkArea, VisualMap, Toolbox\n- Others: SVG Renderer, Utilities, Code Compression\n\n## ToDo\n- Price for every sensor possible\n- Change prices: \n  - remove all prices by resources, \n  - add check box by every sensor: own price\n  - hide station=\u003eresource price if every sensor has own price\n  - write directly into states and do not save the price in the object  \n  \n- Heatmap\n  - Show by year   \n- Charts\n\n- Export data as PDF\n- More than one station.\n- Style selects according to theme (unit, start, end)\n\n\u003c!--\n\tPlaceholder for the next version (at the beginning of the line):\n\t### **WORK IN PROGRESS**\n--\u003e\n\n## Changelog\n### 1.0.0 (2023-09-13)\n* (bluefox) Fixed pie chart\n\n### 0.8.0 (2023-05-12)\n* (bluefox) Do not take the price of sensor if it is empty or 0\n* (bluefox) Refactoring (async/await)\n\n### 0.7.0 (2023-02-08)\n* (bluefox) Added offset and factor to sensors\n\n### 0.6.7 (2023-02-06)\n* (bluefox) Added new features to table\n\n### 0.6.0 (2023-01-30)\n* (bluefox) Activated ignoring of null values by SQL\n\n### 0.5.0 (2022-11-15)\n* (bluefox) Charts were corrected\n\n### 0.4.20 (2022-09-30)\n* (bluefox) GUI was improved\n\n### 0.4.18 (2021-07-09)\n* (bluefox) The warnings were corrected\n\n### 0.4.17 (2021-01-16)\n* (bluefox) Corrected the conversion of values\n\n### 0.4.15 (2021-01-06)\n* (bluefox) Corrected forecast calculation based on current second of the month\n* (bluefox) Added convert function\n\n### 0.4.14 (2021-01-05)\n* (bluefox) Corrected price calculation\n\n### 0.4.13 (2020-12-13)\n* (bluefox) Updated the select ID dialog\n\n### 0.4.12 (2020-12-12)\n* (bluefox) Added stations editor\n\n### 0.4.11 (2020-12-10)\n* (bluefox) Corrected the widget errors\n\n### 0.4.9 (2020-12-06)\n* (bluefox) Corrected error with the pie chart\n\n### 0.4.7 (2020-11-16)\n* (bluefox) Implemented the combine by unit\n\n### 0.4.3 (2020-09-11)\n* (bluefox) Fixed the layout in firefox\n\n### 0.4.1 (2020-06-13)\n* (bluefox) Ignore nulls and zeros\n\n### 0.3.4 (2020-06-05)\n* (bluefox) Added possibility to define the station\n\n### 0.3.2 (2020-05-29)\n* (bluefox) Fixed the units for heat-map\n\n### 0.3.0 (2020-05-18)\n* (bluefox) Calculate plan only in euro\n\n### 0.2.7 (2020-05-16)\n* (bluefox) Set index for every sensor\n\n### 0.1.6 (2020-05-03)\n* (bluefox) Implement planning start from\n\n### 0.1.4 (2020-05-03)\n* (bluefox) Make widget compatible with older devices\n* (bluefox) Added price for every sensor\n\n### 0.1.2\n* (bluefox) finished\n\n### 0.0.2\n* (bluefox) initial release\n\n## License\n\nCommercial license.\n\n(c) Copyright 2020-2023 Bluefox \u003cdogafox@gmail.com\u003e, all rights reserved.\n\nThis license is a legal agreement between you and ioBroker GmbH (“ioBroker”) for the use of `ioBroker.consumption` adapter (the “Software”).\nBy downloading of `ioBroker.consumption` adapter you agree to be bound by the terms and conditions of this license.\nioBroker GmbH reserves the right to alter this agreement at any time, for any reason, without notice.\n\n## Permitted Use\nOne license grants the right to perform one installation of the Software.\nEach additional installation of the Software requires an additional purchased license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiobroker%2Fiobroker.consumption","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiobroker%2Fiobroker.consumption","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiobroker%2Fiobroker.consumption/lists"}