Skip to content

feat(myuplink): improve NIBE F750 telemetry - #160

Open
segran2 wants to merge 1 commit into
srcfl:mainfrom
segran2:fix/myuplink-f750-profile
Open

segran2 wants to merge 1 commit into
srcfl:mainfrom
segran2:fix/myuplink-f750-profile

Conversation

@segran2

@segran2 segran2 commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Improve NIBE F750 telemetry using parameter data observed on real F750 hardware through MyUplink Cloud API v2.

The change:

  • corrects parameter 40013 documentation to BT7 hot-water top temperature
  • exposes parameter 40940 as canonical hp_degree_minutes
  • ignores NIBE's -32768 unavailable-value sentinel instead of emitting bogus telemetry
  • removes embedded U+00AD soft hyphens from generated metric names
  • adds an F750 regression test based on hardware-observed parameter data

No F750 electrical compressor-power mapping is added. Parameter 10012 was not present in the hardware capture, so the driver does not infer electrical power from unrelated parameters.

Driver evidence

  • Driver id: myuplink
  • Device make/model: NIBE F750
  • Firmware tested: hardware-tested F750 via MyUplink Cloud API v2
  • Protocol/register source: MyUplink Cloud API v2 /v2/devices/{deviceId}/points
  • Hardware test performed: Yes — live F750 telemetry captured and used to build the regression fixture
  • Known limits: No verified F750 electrical compressor-power parameter was observed; no hp_power_w mapping is claimed for F750

Observed parameters include:

  • 40004 — BT1 outdoor temperature
  • 40013 — BT7 hot-water top temperature
  • 40033 — BT50 room temperature
  • 40940 — current degree-minute value (DM)
  • 41778 — current compressor frequency
  • 43084 — internal additional-heat power
  • -32768 — unavailable-value sentinel observed on multiple points

Safety

  • The driver starts read-only, or this is a separately reviewed control change.
  • Vendor signs are converted at the driver boundary.
  • Cached telemetry becomes stale instead of being re-emitted as fresh.
  • No credentials, serial numbers, private addresses or site data are included.

The driver remains read-only. This PR adds no control/write path.

Control evidence

Not applicable — read-only telemetry change.

  • HIL evidence or required: not applicable
  • Control changes: not applicable; no control path changes.

Checks

  • Commits include Signed-off-by.
  • make test-driver ID=myuplink
  • make check

Full make check: 4810 passed, 923 skipped.

All 91 drivers passed the sandbox safety check. Manifest, index, devices and support-status generation are clean. FTW baseline and host API checks also passed.

Signed-off-by: Segran <goran@andersson-stehag.se>

@miravoss26 miravoss26 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mira's read (pr-steward sweep). 2-line summary: MyUplink F750 telemetry. BT7 relabel, degree-minutes as a canonical metric, the -32768 sentinel is ignored, and soft hyphens are stripped from metric names. The driver stays read-only (control: false unchanged).

Checks: the size (18431) and sha256 pinned in index.yaml and manifests/myuplink.yaml match the driver file at this head. The new harness test covers the F750 payload, including the sentinel and soft-hyphen cases.

Findings:

  • [low] decode_temp used to emit 0 for a missing value and now emits nothing. That's the intent, but it changes what dashboards see for an absent point. Worth one changelog line.

Security screen: no secrets, no new hosts or endpoints.

Safe to merge from my read. Not auto-merge eligible (repo not on the POLICY allowlist), so a human merges.

This branch has not been deployed

No deployments
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.

2 participants