Versions
Sentry
This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. For more details and for information on how to disable error reporting, see Sentry-Plugin Documentation!
Adapter for Utilizing Tibber Energy Data in ioBroker
This adapter connects your Tibber account's API data to ioBroker, whether for a single home or multiple residences. It also supports direct local reading of the Tibber Pulse sensor via your home network, enabling real-time monitoring and data collection without relying solely on the cloud API.
If you're not currently a Tibber user, I would greatly appreciate it if you could use my referral link: Tibber Referral Link.
Documentation
- Standard Configuration — first setup, API token, homes, historical data
- Calculator Configuration — price-based automation channels & Smart Battery Buffer
- Graph Output Configuration — visualizing prices with E-Charts / FlexCharts
- Vehicles & Chargers Configuration — Tibber Data API setup for cars & wallboxes
- Direct local poll of Pulse data — reading the Pulse locally, supported meter modes
Standard Configuration
- Begin by creating a new instance of the adapter.
- You'll also require an API token from Tibber, which you can obtain here: Tibber Developer API.
- Enter your Tibber API token in the standard settings and configure at least one line for live feed settings (select "None available").
- Save the settings and exit the configuration to restart the adapter; this step allows your home(s) to be queried for the first time from the Tibber server.
- Return to the configuration screen and select the homes from which you wish to fetch real-time data using your Tibber Pulse. You can also select homes and disable the feed (Note: This works only if the hardware is installed and the Tibber server has verified the connection to Pulse).
- Note: If you have more than one home in your Tibber account, you must add all of them to avoid error messages caused by homes that may not be needed. Add them all and disable the unwanted ones.
- You have the option to deactivate the retrieval of price data for today and tomorrow, for instance, if you only intend to use the Pulse live feed.
- Optionally, you can enable the retrieval of historical consumption data. Please specify the number of datasets for hours, days, weeks, months, and years. You can use "0" to disable one or more of these intervals based on your preferences.
- Note: It's essential to be mindful of the dataset size, as excessively large requests may result in no response from the Tibber Server. We recommend experimenting with the dataset size to ensure optimal functionality. Adjusting the intervals and dataset numbers can help strike the right balance between obtaining insightful data and maintaining server responsiveness. For example, 48 is a recommended value for hours.
- Save the settings.
Consumption Data Documentation
When daily historical consumption is enabled, the adapter provides an aggregated state for the current month:
Homes.<HOME-ID>.Consumption.currentMonthConsumption
This state is the total consumption for the current calendar month in kWh, calculated from the daily consumption data returned by Tibber. If too few days are configured, the value will only reflect that number of days — not a complete month.
Calculator Configuration
The Calculator adds price-based automation on top of the Tibber connection: per-home channels that switch external states based on the cheapest/most expensive hours, price thresholds, best-hour blocks, percentage ranges, Limited Time Frames (LTF), and a Smart Battery Buffer mode.
📖 Full guide: docu/CalculatorConfiguration.md
Graph Output Configuration
The adapter helps visualize price trends and calculator results — from a simple JSON-based approach via the "E-Charts" / "FlexCharts" adapters to a fully customized JavaScript solution.
📖 Full guide: docu/GraphOutput.md
Direct local poll of Pulse data
The adapter can read the Tibber Pulse locally over your home network (via the Tibber Bridge) instead of relying solely on the cloud feed, writing meter data to ioBroker states every 2 seconds. Both binary SML and plain OBIS text meters are supported.
📖 Full guide (bridge setup, supported meter modes): docu/LocalPulse.md
Vehicles & Chargers Configuration
In addition to the main API token, the adapter can read IoT device data (vehicles, chargers) from the separate Tibber Data API (data-api.tibber.com), which needs its own OAuth2 client registration and one-time authorization. Vehicle data is written to Vehicles.<VIN>.*, charger data to Chargers.<id>.*.
📖 Full setup guide (client registration, authorization, available states): docu/VehiclesAndChargers.md
Donate
If you enjoyed this project — or just feeling generous, consider buying me a beer. Cheers! :beers:
Changelog
7.2.4 (2026-09-12)
- (HombachC) Tibber Data API: the actual OAuth error response (HTTP status + body, e.g. invalid_grant) is now logged instead of only "Request failed with status code 400", and a failed auth-code exchange re-logs the authorization URL with a hint that codes are single-use and short-lived (#940)
- (HombachC) switch to iobroker testing 6.x
- (HombachC) added node 26 tests
- (HombachC) updated dependencies, axios
- (HombachC) relicensing
7.2.3 (2026-08-29)
- (HombachC) fixed local Pulse boolean states (e.g. usb_power, autolevel_enable) being created as type number, causing recurring log errors (#935)
- (HombachC) SmartBatteryBuffer: EfficiencyLoss is now validated to the range 0…1; out-of-range values (e.g. 25 instead of 0.25) are clamped with a warning instead of corrupting the calculation, and the state now carries min/max/step (#934)
- (HombachC) updated dependencies
7.2.2 (2026-08-22)
- (HombachC) fixed local Pulse meter mode 5 (plain OBIS text, e.g. eBZ meters) not being parsed, leaving states frozen (#931)
- (HombachC) documented the supported Pulse meter modes (README + Info/PulseMeterModes.md)
- (HombachC) restructured the README: moved the Calculator, Graph Output, Local Pulse and Vehicles & Chargers guides into separate files under docu/
- (HombachC) updated dependencies
7.2.1 (2026-08-10)
- (HombachC) fixed charger devices with an empty externalId (e.g. Wallbox Pulsar Plus) producing an invalid state id; a single bad device no longer aborts the whole Data API poll (#925)
- (HombachC) projectUtils: use extendObject instead of setObject in forceMode so user customizations survive restarts (#927)
- (HombachC) projectUtils: fixed min/max/step value of 0 being dropped from number state definitions
- (HombachC) updated tibber-api to 5.6.0
- (HombachC) updated dependencies
7.2.0 (2026-07-30)
- (HombachC) added polling of charger/wallbox devices from the Tibber Data API, written to
Chargers.<id>.*(#925) - (HombachC) added a
LastSeenstate (device-reported last-seen timestamp) for vehicles and chargers
Old Changes see CHANGELOG OLD
License
MIT License
Copyright (c) 2023-2026 C.Hombach tibberLink@homba.ch
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.