Skip to content

Fix RRD4j config naming for Felix ConfigAdmin#63

Open
amalbet wants to merge 2 commits intofeature/setup-scriptfrom
feature/rrd4j-fix
Open

Fix RRD4j config naming for Felix ConfigAdmin#63
amalbet wants to merge 2 commits intofeature/setup-scriptfrom
feature/rrd4j-fix

Conversation

@amalbet
Copy link

@amalbet amalbet commented Mar 10, 2026

Summary

  • Fixes Felix ConfigAdmin not loading the RRD4j Timedata config by renaming from flat file (Timedata/Rrd4j.config) to factory pattern (Timedata/Rrd4j/<uuid>.config)
  • Adds Edge config volume mount (./openems-edge/config.d:/etc/openems.d) to docker-compose.yml
  • Adds RRD4j config validation and log checks to setup.sh

Supersedes the config from PR #62 which used the wrong naming convention.

Context

Testing revealed that Felix ConfigAdmin requires factory configs to use the FactoryPID/<uuid>.config directory structure. The flat file pattern was being ignored — Felix console showed the Timedata.Rrd4j component in "no config" state despite the file being present in the container.

Test plan

  • Run fresh ./setup.sh — should pass new Step 5 (RRD4j config validation)
  • After stack is up, check Felix console: Timedata.Rrd4j component should be active (not "no config")
  • Wait 2-3 min, verify meter0/ActiveConsumptionEnergy returns non-null via getEdgesChannelsValues
  • Verify billing generation succeeds in MBE for a period with RRD4j-enabled Edge data

Closes #61

🤖 Generated with Claude Code

amalbet and others added 2 commits March 10, 2026 10:04
The previous config file (Timedata/Rrd4j.config) was not being picked up by
Felix ConfigAdmin because factory configs require the FactoryPID/<uuid>.config
directory pattern. Rename to Timedata/Rrd4j/<uuid>.config to match other
factory configs (Controller/Api/Backend/<uuid>.config, etc.).

Also adds Edge config volume mount and setup.sh validation.

Closes #61

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Felix ConfigAdmin's FilePersistenceManager derives the PID from the file
path (dots → directory separators). The file Timedata/Rrd4j/<name>.config
maps to PID Timedata.Rrd4j.<name>, so the filename must be rrd4j0.config
to match service.pid=Timedata.Rrd4j.rrd4j0.

Verified locally: component state changes from "no config" to "active".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant