feat: initial scaffold and profiles for Schneider iEM2135, LUG heat meter v4
Auto Tag / tag (push) Failing after 2s
Auto Tag / release (push) Has been skipped
CI / validate (push) Failing after 3s

Seed the repo described in pda-fieldbus ADR-0009: a sibling repo that
ships device profiles independently of the fieldbus binary.

Layout:
- profiles/schneider-iem2135.json    — distilled from the inline extract
                                       rules in examples/poll-d27-g110.yaml
- profiles/lug-heat-meter-v4.json    — heat-meter profile with derived
                                       delta_temperature

Both validate against pda-fieldbus's profile.LoadDirs.

Packaging:
- nfpm.yaml builds pda-fieldbus-profiles.deb installing profiles/ to
  /usr/share/pda-fieldbus/profiles/, where the loader's DirPackaged dir
  picks them up. Recommends pda-fieldbus.
- .gitea/workflows/auto-tag.yml: same conventional-commit auto-tagging
  as pda-fieldbus, on tag push installs nfpm, builds .deb, uploads to
  repo.pda.cz/PDAT/main using the existing PDA_REPO_TOKEN secret.
- .gitea/workflows/ci.yml: JSON syntax check + schema validation by
  importing pda-fieldbus's loader and calling LoadDirs against profiles/.
This commit is contained in:
2026-05-01 13:30:35 +02:00
commit 924b7b5b34
9 changed files with 371 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
# pda-fieldbus-profiles
Reusable device profiles for [pda-fieldbus](https://git.pda.cz/PDAT/pda-fieldbus).
A device profile is a JSON description of one device model: which
DIF/VIF records to read on M-Bus (or which registers on Modbus), what
units they have, how to scale them, and any derived values to compute
from them. Profiles let `pda-fieldbus poll` configurations stay short
(`profile: schneider-iem2135`) instead of repeating extract rules per
deployment.
See `pda-fieldbus` ADR-0009 and spec PDA-0010 for the full schema and
loader semantics.
## Layout
```
profiles/
schneider-iem2135.json
lug-heat-meter-v4.json
...
```
Each file is one profile. The filename stem is the profile name
referenced from a poll config (`profile: schneider-iem2135`).
## Installation
The `pda-fieldbus-profiles` `.deb` installs files to:
```
/usr/share/pda-fieldbus/profiles/
```
The `pda-fieldbus` loader scans that directory plus
`/etc/pda-fieldbus/profiles.d/` (operator overrides — wins on filename
collision). To override a packaged profile on one box, copy it to the
operator dir and edit there; the package will not overwrite it.
## Adding a profile
1. Create `profiles/<name>.json` following an existing profile.
2. Validate it loads against the current `pda-fieldbus` loader:
```
pda-fieldbus poll --config <some.yaml> --profile-dir ./profiles --dry-run
```
3. Open a PR. Use a `feat:` commit (`feat: add <vendor>-<model> profile`).
The `feat:` prefix triggers a minor version bump and a release of the
`.deb` to repo.pda.cz.
## Conventional commits
Same convention as `pda-fieldbus`:
- `feat:` — new profile (minor bump)
- `fix:` — correction to an existing profile (patch bump)
- `docs:`, `chore:`, `ci:` — no version bump
## License
MIT. See `LICENSE`.