Move the bridge demo into its own document - #88
Merged
Merged
Conversation
The README was 1188 lines serving a library consumer, an appliance owner, a bridge deployer and a contributor at once, and it is also the PyPI description, so a `pip install` reader got Unraid deployment steps. docs/bridge-demo.md takes the bridge material: what it exposes, how it is configured and deployed, per-appliance coverage, config keys, MQTT topics and entity counts. 245 lines moved, README down to 944. Two sections moved that were parented wrong rather than merely low. "What the demo bridge gives you" and "Under the hood" were h3 children of "BLE OCF framing", so a codec section owned the bridge's architecture. Per-appliance notes went with it because the tables are written around the bridge's poll tiers and entity behaviour. Repo layout stayed and became an h2, since it orients anyone in the repo and its parent heading left with the bridge reference. Traps to avoid stayed: those lessons are about the protocol, not the demo. Parts 1 to 4 stopped being a sequence once 3 and 4 moved, so the numbering is gone from all four and the three prose references to "Part 2" and "Part 1" now name their sections. The four library sections that were also h3 children of "BLE OCF framing" are reparented under a new "Library reference" h2. A test walks the links between README and docs/ and fails when a cross-file anchor points at a heading that no longer exists, which is the dependency this extraction created. GitHub serves the page without scrolling in that case, so nothing else would have caught it.
This was referenced Sep 13, 2026
mbillow
pushed a commit
to mbillow/SmartThings-Local
that referenced
this pull request
Sep 17, 2026
Third and last step of the README split, leaving it a library document. docs/appliance-compatibility.md takes "Is your appliance compatible?", the tested combinations and the firmware-family caveat. docs/certificates.md takes how the AC14K_M credential is obtained, why it works and how durable it is. The certificate keeps an entry point in the README, as "Getting a certificate" under Authentication. A client certificate is a prerequisite for opening any session, and the README is also the PyPI description, so a pip install reader needs the one command rather than a link alone. The reasoning left; the command stayed. "How the app keeps in sync with the appliance" went to docs/bridge-demo.md, which is where it should have gone in QuiteYellow#88. It describes the bridge's push versus poll behaviour and the diagnostic entities it publishes, so it sits with the architecture rather than between two appliance sections. The link test from QuiteYellow#88 earned itself here: bridge-demo.md pointed at README.md#firmware-families-a-limitation, and that heading had just moved into the compatibility doc. GitHub serves a page with a stale fragment without complaint, so nothing else would have caught it. Both new files had their subsections promoted from h3 to h2, since with the h1 title above them they skipped a level. README 1188 lines at the start of the split, 804 now.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First of the README split. The file was 1188 lines serving a library consumer, an appliance owner, a bridge deployer and a contributor at once, and
pyprojectsetsreadme = "README.md", so apip install smartthings-localreader also got Unraid deployment steps.docs/bridge-demo.mdtakes the bridge material: what it exposes, how it is configured and deployed, per-appliance coverage, config keys, MQTT topics, entity counts. 245 lines moved, README down to 944.Two of those sections were in the wrong parent
"What the demo bridge gives you" and "Under the hood" were
h3children of "BLE OCF framing", so a codec section owned the bridge's architecture. That was the real reason the material was hard to find.The judgement calls
h2. It orients anyone in the repo, including the library tree, and its## Referenceparent left with the bridge config./oic/sec/*alone, one session per peer: those are protocol lessons that outlive the demo.h3children of "BLE OCF framing" are reparented under a new Library referenceh2.A guard for the dependency this created
docs/bridge-demo.mdnow links back into the README, and the README links out to the docs. A cross-file anchor breaks silently: GitHub serves the page and does not scroll, so a renamed heading leaves no trace. A test walks the links between the README and every file indocs/, checks the target file exists, and checks the anchor matches a heading there. Confirmed by renaming a target heading and watching it fail.What this did not fix
"BLE OCF framing" still owns 234 lines covering three library topics under one heading: the codec, the authentication providers (
CertificateAuth,PskAuth,validate_identity) and OwnerPSK derivation. Authentication is the one thing every consumer needs, and it has only prose to find it by, which leaves it unlinkable and absent from the sidebar. Sorting that out is the library-reference pass, and its own change.Validation
798 tests pass on Python 3.11, 3.12, 3.13 and 3.14, and on the dependency floor.
check_share_safety.pyis clean. Line accounting checks out: 245 lines left the README, and the new file is 258 including its own 13-line header.