Skip to content

docs(guides): add Enrolling devices how-to (lifts canonical pin #2324)#321

Merged
DTTerastar merged 1 commit into
ESPresense:mainfrom
Terastar-Paperclip:docs/lift-enrollment-friction-canonical
May 11, 2026
Merged

docs(guides): add Enrolling devices how-to (lifts canonical pin #2324)#321
DTTerastar merged 1 commit into
ESPresense:mainfrom
Terastar-Paperclip:docs/lift-enrollment-friction-canonical

Conversation

@Terastar-Paperclip

Copy link
Copy Markdown
Contributor

Summary

  • Lifts the canonical enrollment-friction pin (ESPresense#2324) into a permanent how-to at /guides/enrolling-devices so the answers don't disappear into Discussions search.
  • Per-device recipes for: iPhone (IRK + iOS 17+ Mac fallback), Apple Watch, AirPods, Withings ScanWatch, Polar HR straps + Polar Loop 2025, Moto/Galaxy SmartTag/Find-My, Android phones (HA Companion BLE Transmitter), Amazfit/Mi Band.
  • Honest-limited callouts where the community has not settled a path — Apple Watch, AirPods, 2025 Polar Loop, and the entire Find-My / SmartTag family (flagged limited; identifier rotates) explicitly do not get invented recipes.

What this PR is

Diataxis how-to, F-pattern headings (device name left-justified — ## iPhone, not "How to enroll an iPhone"), scannable triage table at the top, source threads + GitHub-handle credits in every section.

Verification

  • Last verified against firmware v4.0.6 (2026-05-11) — pinned in the page header.
  • MQTT topic + payload schema for every irk: / mifit: / name: example checked against firmware main: src/mqtt.cpp sendConfig() (topic CHANNEL/settings/<id>/config, retained; payload {"id", "name", "rssi@1m"?}).
  • Fingerprint prefixes (irk:, apple:findmy, mifit:, name:, smarttag:, iTrack:, tile:, garmin:) checked against src/BleFingerprint.cpp.
  • npm run build (under node 22) passes; new page generates at dist/guides/enrolling-devices/index.html; sidebar entry rendered; all in-page anchors to /apple/#apple-watch-using-bluetooth-terminal-app and /apple/#lookup-method-requires-a-mac resolve.

Source threads (with credits)

Section Source Credited
iPhone IRK #1348 @DTTerastar
iPhone screen-off #492 @DTTerastar, @harphere, @51av0sh, @huytd2k
Apple Watch #2099 @prankhd
AirPods #1531 @DrSpaldo, @dxmnkd316, @nonanonymousanon
Withings ScanWatch #1247 @ginkel, @max00346, @rkrkrk0987, @wanghuangjie, @vincenttor
Polar #2054 @jacksaturn
Moto/Find-My #2324 @Terastar-Paperclip (canonical pin)
Android #880 + /android @moblsu
Amazfit / Mi Band #1202 @SteveDockar

Out of scope

  • No edits to pinned discussions.
  • No invented recipes for the four ⚠️/❌ devices.

Acceptance check

  • PR open against ESPresense/ESPresense.com.
  • Renders correctly desktop + mobile (Starlight default theme, no custom layout).
  • Every config/MQTT example verified against firmware main.
  • Apple Watch + AirPods explicitly marked as no-settled-solution.
  • Moto/Find-My family marked limited; identifier rotates.
  • Each per-device section quotes the source thread + credits the user.
  • Last verified against firmware v4.0.6 + date in header.
  • After merge: ping Community Manager on ESPA-40 for the #2324 canonical-pin pointer (Paperclip-side follow-up).

Test plan

  • npm run build and click through /guides/enrolling-devices on the preview deploy
  • Confirm sidebar entry appears under Guides between Calibration and Technical
  • Spot-check anchor links to /apple resolve on the deploy URL
  • Confirm in-page contents (triage table, callouts) render on mobile viewport

🤖 Generated with Claude Code

Converts the enrollment-friction discussion canonical pin into a
permanent how-to under Guides. Diataxis "how-to" mode with F-pattern
device-name headings, a 30-second triage table, and honest-limited
callouts for paths the community has not settled (Apple Watch, AirPods,
2025 Polar Loop, Find-My / SmartTag family).

Each per-device section cites its source thread (#1348, #2099, #492,
#1531, #2054, #1247, #880, #1202) and credits contributors by GitHub
handle. MQTT topic schema (espresense/settings/<id>/config retained)
and payload shape ({"id", "name", "rssi@1m"?}) verified against
firmware main (src/Enrollment.cpp sendConfig, src/mqtt.cpp:239-254).
Fingerprint prefixes (irk:, apple:findmy, mifit:, name:, smarttag:)
verified against src/BleFingerprint.cpp.

Wires the page into the Guides sidebar, cross-links from /apple
(directs non-Apple readers to the new how-to) and /android (BLE
Transmitter setup).

Last-verified header pinned to firmware v4.0.6 (2026-05-11).
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@Terastar-Paperclip has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 28 minutes and 23 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5f8f7e1e-a127-4f41-9a68-4661cf4d3b03

📥 Commits

Reviewing files that changed from the base of the PR and between 8774f39 and cdfa1b1.

📒 Files selected for processing (4)
  • astro.config.mjs
  • src/content/docs/android.md
  • src/content/docs/apple.mdx
  • src/content/docs/guides/enrolling-devices.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@DTTerastar DTTerastar merged commit e86f6ed into ESPresense:main May 11, 2026
1 check passed
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.

3 participants