Skip to content

Feature: Adds TibberPulse SML data source support and integrates it end-to-end - #108

Merged
TheRealMoeder merged 10 commits into
TheRealMoeder:mainfrom
oldboys92:feature_tibber-pulse
Apr 11, 2026
Merged

Feature: Adds TibberPulse SML data source support and integrates it end-to-end#108
TheRealMoeder merged 10 commits into
TheRealMoeder:mainfrom
oldboys92:feature_tibber-pulse

Conversation

@oldboys92

@oldboys92 oldboys92 commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

This PR adds TibberPulse as a new input data source for Energy2Shelly_ESP and solves #52.

It introduces a dedicated TibberPulse parser, wires it into the main polling loop, extends configuration and persistence with Tibber-specific settings, adds the required SML parser dependency, and updates documentation with setup details and supported meters.

What Changed

  • Added TibberPulse parser implementation in TibberPulseParser.cpp.
  • Added TibberPulse parser declaration in Parsers.h.
  • Integrated TibberPulse polling into runtime loop in main.cpp.
  • Added Tibber configuration fields and datasource flag in Configuration.h.
  • Extended WiFiManager setup and preferences storage/loading for Tibber settings in Configuration.cpp.
  • Added SML Parser library dependency in platformio.ini.
  • Updated user documentation with TibberPulse configuration and parser support details in README.md.

Implementation Notes

  • TibberPulse mode performs authenticated HTTP requests to fetch raw SML payload data.
    Parsing currently targets OBIS values for total import energy, total export energy, and active power.
  • Current validation supports known SML message lengths for:
    • EMH EHZB (248)
    • eBZ DD3 (396)
  • Configuration now includes Tibber host/IP:port, username, and password fields in captive portal.
    Tibber Pulse device password is masked in debug output logs.

Testing

  • Build verification completed successfully:
    • platformio run (exit code 0)

Compatibility / Risk

  • No breaking API changes expected for existing MQTT/SMA/SHRDZM/HTTP/SUNSPEC flows.
  • Tibber parsing is currently constrained to supported message-length profiles; unsupported meters are expected to fail validation until extended.

Checklist

  • Added feature implementation
  • Wired feature into runtime flow
  • Added dependency
  • Updated configuration and persistence
  • Updated documentation
  • Verified successful build

@oldboys92 oldboys92 changed the title Add TibberPulse SML data source support and integrate it end-to-end Feature: Adds TibberPulse SML data source support and integrates it end-to-end Apr 10, 2026
@TheRealMoeder TheRealMoeder added the enhancement New feature or request label Apr 10, 2026
@TheRealMoeder

Copy link
Copy Markdown
Owner

The code looks fine to me but I have no means of testing this. But since it seems non-breaking for all other cases I'd give a green light for merging once conflicts are resolved

@oldboys92

Copy link
Copy Markdown
Contributor Author

merged and tested with latest changes from main branch.

@TheRealMoeder
TheRealMoeder merged commit 80a73c7 into TheRealMoeder:main Apr 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants