Skip to content

feat(driver): add NIBE S-series local REST API driver (nibe-local)#7

Draft
HuggeK wants to merge 2 commits into
srcfl:mainfrom
HuggeK:feat/nibe-local-driver
Draft

feat(driver): add NIBE S-series local REST API driver (nibe-local)#7
HuggeK wants to merge 2 commits into
srcfl:mainfrom
HuggeK:feat/nibe-local-driver

Conversation

@HuggeK

@HuggeK HuggeK commented Jun 25, 2026

Copy link
Copy Markdown

Summary

Adds drivers/nibe_local.lua — a read-only NIBE S-series heat-pump driver that reads the pump's on-prem Local REST API directly over the LAN (HTTPS + Basic auth; the pump's self-signed cert is pinned host-side).

  • Auto-detects the device serial, pulls the full ~980-point register map in one request, and emits every point with exact per-point divisor scaling (the local API ships each point's unit + divisor).
  • myUplink-compatible hp_* headline metrics (hp_power_w, hp_hw_top_temp_c, hp_outdoor_temp_c, …); headline ids default to the S735 and are config-overridable per model. All other points flow under auto-generated hp_<name> names.
  • Read-only (observe-only, no actuation); self-heals device detection; per-size "not connected" sentinel filtering.

Tested live against a NIBE S735 (verification_status = "beta"). manifest.json regenerated — go run ./cmd/driverrepo -verify passes.

Note: the self-signed local API needs an EMS host that supports cert pinning. Companion PR adding capabilities.http.tls_pin_sha256 to forty-two-watts: frahlg/forty-two-watts#530.

Draft for review.

🤖 Generated with Claude Code

claude and others added 2 commits June 25, 2026 22:23
Read-only NIBE S-series heat-pump telemetry over the on-prem Local REST
API (HTTPS + Basic auth, self-signed cert pinned host-side). Auto-detects
the serial, pulls the full ~980-point register map in one request, and
emits every point with exact per-point divisor scaling plus
myUplink-compatible hp_* headline metrics. Read-only; self-heals device
detection. Verified live against a NIBE S735. Regenerates manifest.json.

Co-Authored-By: HuggeK <48095810+HuggeK@users.noreply.github.com>
Resolve the hp_* headline variable-ids per pump from a built-in PROFILES
map keyed by product.name/firmwareId (generic S-series default), refined
after device detection; config overrides still win. One driver covers the
whole S-series. Regenerate manifest.json.

Co-Authored-By: HuggeK <48095810+HuggeK@users.noreply.github.com>
@HuggeK HuggeK force-pushed the feat/nibe-local-driver branch from 8776841 to 74600d1 Compare June 26, 2026 13:21
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