The last two forms: a change record, and a card for the day it goes wrong
An operations chapter usually opens with a maintenance window and a list of commands. This one opens with a blank form and a rule that every field on it starts marked stopped. Part 9 closes the series with the two documents that decide who is allowed to act and who has to be told: a six-field offline change record that gives maintenance a rhythm which can be halted and handed over, and a five-field offline incident runbook that gets a bad morning to the right people without anyone poking the live system to see what happens. Neither one probes, restarts, reconfigures, repairs or reads anything that is running.
Documenting a cadence is not a license to operate
You have spent eight parts on the same side of a boundary. Part 9 does not cross it either, and it is worth saying why an operations chapter of all things still contains no commands.
The whole series is bounded by pinned sources: the KNXD Add-on 0.6.1 managed INI template and its init and service scripts, and the KNXD 0.14.72 upstream documentation. Those sources support statements about what a file is responsible for. They support nothing about what is running, what is reachable, or what happened on a bus. A chapter that told you to restart a service would be making a claim its sources cannot carry — and this is equipment that moves lights, blinds and HVAC in an occupied building, so a claim that cannot be carried is not a small thing.
So the two chapters behind this part produce documents instead. Chapter 21 states its own bottom line without hedging: you create only an offline change record that lists source review, approval, observation boundary, stop, restoration decision and evidence notes in sequence. That log does not provide commands, does not bypass approvals, and does not allow you to operate a running system. Chapter 22 is blunter still: when an incident occurs, first stop unauthorized activity and contact the responsible person.
It is the signing-in book at a site gate. Writing your name in it is genuinely useful — the site manager can tell who is in the building and who to look for if something happens. It also opens exactly zero doors. Nobody has ever got into a plant room by filling the book in more neatly, and nobody gets to touch a bus by having a tidier change record.
Both chapters carry the same four-way classification of work, and it decides what you may do before it decides how. Work through it for any task somebody brings you during this part.
flowchart TD
A["A task somebody wants done"] --> N{"A group read or write, a telegram,
ETS programming or download, connecting
an interface or bus, or moving equipment?"}
N -->|"yes"| NA["Never automate.
The test bus is no exception"]
N -->|"no"| L{"Does it touch a live or running
environment at all, viewing included?"}
L -->|"yes"| AP["Approval required. Read-only approval
does not include change, privilege
or a wider data scope"]
L -->|"no"| O{"An alternative project on a
non-production test environment?"}
O -->|"yes"| IT["Isolated test. Written approval, admin present,
limited network exposure, proven stop and recovery.
Not covered by these two chapters"]
O -->|"no"| SF["Safe. Offline pinned sources,
blank fields, abstract categories"]
The Approval required class deserves its own sentence, because it is the one people argue about. Viewing or changing a live or running environment falls into it. Read-only viewing is not a safe activity that slipped into the wrong column; it is approval-required, and read-only approval does not include modification, elevation of privileges, or expansion of data scope. Chapter 22 adds the version of that rule you will actually be tested on: the urgency of an event does not automatically cancel approval.
Six fields, and every one of them starts stopped
The purpose of Chapter 21 is a maintenance rhythm that can be stopped, can be handed over, and cannot bypass approval. What you prepare is small: a six-field blank change record and the pinned source. What you must not bring in is execution environment data. Budget about 20 minutes.
The rule that makes the form work sits above all six fields. Complete each field before considering the next one, and a blank field does not imply consent. All six are marked stopped by default. A field that has no qualifying content may not be filled in by a maintenance window, by convention, by verbal consent, or by administrative authority.
The source guide describes it as a corridor of six doors, and it is worth keeping. A document has to pass the data room, the approval desk, the observation window, the stop line, the restoration decision desk and the filing cabinet. Each door deals only with its own question. If the previous door has not signed for it, the next one cannot pretend it was passed — which is exactly what happens when somebody fills in field four because field two “is obviously fine”.
Those six doors have formal names, and this is what goes behind each one.
| Field | What is recorded in it | What it does not do |
|---|---|---|
| Source review | Pinned sources, version boundaries, and the strongest conclusion each source supports | Source content is not a live-environment setting, and a source review supports no inference about deployment results |
| Approval | Approved roles, purpose, data categories, expiration policies and controlled record references | Carries no names and no environmental identifiers. There are no verbal shortcuts |
| Observation boundary | Only the allowed and disallowed data categories | Live read-only still requires additional explicit approval, and this chapter provides no method for reading anything live |
| Stop | The stop conditions: unclear scope, a need to change something, identifying data, or invalid approval | Not a list of things you may do once they are cleared. It is the list that halts the record where it stands |
| Restoration decision | The deciding role, the independent approval requirement, stop-and-restore conditions, and controlled plan references | Lists no candidate actions and authorizes no execution of a restore |
| Evidence notes | Each entry marked as source fact, approved observation, inference, or unknown, with the evidence limit and masking status | Original content is not posted |
valid, pending review, expired. This is the same discipline the earlier parts applied to worksheets, and it is what lets the finished record be read by somebody who is not cleared for the site.Filled in that order, with a stop available at every door, the record looks like this.
flowchart TD S["A blank record.
All six fields start marked stopped"] --> F1["1 Source review"] F1 --> F2["2 Approval"] F2 --> F3["3 Observation boundary"] F3 --> F4["4 Stop rules"] F4 --> F5["5 Restoration decision"] F5 --> F6["6 Evidence notes"] F6 --> R{"Second person: sequence kept,
approval not bypassed,
no identifying data?"} R -->|"yes"| C["Marked complete"] R -->|"no"| H["Stopped because evidence is missing,
or referred for a separate decision"] F1 -.-> X["Field incomplete: stop there and
hand it back to the responsible role.
A blank field is not consent"] F2 -.-> X F3 -.-> X F4 -.-> X F5 -.-> X F6 -.-> X
Seven passes over one sheet of paper
The six fields are filled in sequentially, offline. If any field is incomplete, you stop at that field and return it to the responsible role — you do not skip ahead and come back.
-
Step 1
Complete the source review
Document the managed templates, the initialization responsibilities and the daemon calling responsibilities separately. Three distinct responsibilities, three separate notes. Do not treat source content as live-environment settings, and cite the pinned version with a plain statement that no inference about deployment results follows from it.
-
Step 2
Check the approval status
Confirm only whether there is a controlled record, a responsible role, a purpose, a data category and a validity status. If any one of those is missing, mark the record unapproved and do not create an alternative path. Not a narrower path, not a temporary one — none.
-
Step 3
Draw the observation boundaries
Describe the allowable scope and the explicit exclusions using abstract data categories. If the proposal involves live read-only, it is still marked approval-required at this step, and this chapter does not give you a read method to use once it is approved.
-
Step 4
Apply the stop rules
Stop if the proposal requires writing or applying settings, starting or stopping services, elevating privileges, connecting systems, contacting hardware, or using ETS. Telegrams, group operations and physical control are prohibited outright. Record the responsible handoff roles as you stop, so the record names who it went back to.
-
Step 5
Document responsibility for the restoration decision
Specify which role determines whether to restore, inside the independent approval process, and what evidence has to be available before that decision is made. Do not list candidate actions. The field answers who decides and on what, never what to run.
-
Step 6
Add the evidence notes
Mark every column as source fact, approved observation, inference, or unknown, and write the evidence limit and the masking status alongside. An unknown that is honestly labeled is worth more here than a confident sentence with nothing behind it.
-
Step 7
Second-person review, then close the record
A second person confirms the six-field sequence, verifies that approval was not bypassed, and checks for identifying data or operational content. The reviewer then marks the record
complete,stopped because evidence is missing, orreferred for a separate decision. Those are the three outcomes. There is no fourth.
Because a record can move backwards as easily as forwards, it helps to hold the states in your head rather than the steps.
stateDiagram-v2 state "Every field stopped" as Stopped state "Fields being filled" as Filling state "Second person review" as Review state "Complete" as Complete state "Referred" as Referred [*] --> Stopped Stopped --> Filling: a field qualifies Filling --> Stopped: a field is incomplete Filling --> Review: all fields filled Review --> Complete: checks pass Review --> Stopped: evidence missing Review --> Referred: separate decision Complete --> [*] Referred --> [*]
What counts as finished
A qualifying result is traceable to a six-field offline record. It proves that the document fields and the manual gates have been reviewed. It proves nothing about maintenance, changes, or restores having been completed in any environment. Read down this list before anybody signs it off.
- The source review cites only the pinned version, and states that no inference about deployment results can be drawn from it.
- The approval field contains purpose, data category, role, valid status and controlled references — with no verbal shortcuts.
- The observation boundary states clearly that live read-only is still approval-required.
- The stop field covers change, privilege, connection, hardware, ETS, telegram, group and physical control requirements as things that may not be carried out.
- The restoration field records independent decision-making responsibility and prerequisites only, with no execution instructions.
- The evidence notes separate source facts, approved observations, inferences and unknowns.
- The record contains no commands, no identifying information, no environment times, and no description of a field success.
The form you reach for on the bad morning
Chapter 22 is the incident version of the same idea, and it exists because urgency is where documentation discipline dies. Its purpose is to get incidents to the right people without triggering a live-environment investigation or remediation. You prepare a five-box event table with no environmental values in it, and a list of the responsible roles that already exist in your organization. Budget about 15 minutes.
Before the fields, the order of operations. It has one branch, and that branch comes before everything else. Chapter 22 states its stop conditions above the form, not at the end of it, and they are the first thing to read on the morning you need the form at all.
flowchart TD
A["An incident is reported"] --> B{"Unexpected physical movement, a safety risk,
or any concern for people, the building, door locks,
lighting, HVAC or actuators?"}
B -->|"yes"| B1["Leave this form. The person responsible for the site
takes over immediately. Contact the live-environment
person in charge and safety professionals
under the existing emergency procedure"]
B -->|"no"| C["Stop your own unapproved trial and error.
Stop public posting"]
C --> D["1 Symptom classification"]
D --> E["2 Containment decision"]
E --> F["3 Privacy-safe evidence"]
F --> G["4 Escalation ownership"]
G --> H["5 Restoration ownership"]
H --> I["Second reviewer checks the five fields,
then hands the form to incident command"]
The source guide calls it the emergency registration desk, and the comparison holds up. The clerk writes down what the symptoms look like, keeps more people from wandering into the danger area, protects the medical record from being passed around, and then hands the baton to the person qualified to examine and treat. The registration card does not examine anybody. Nobody thinks less of the clerk for that — it is the job.
Five fields, and they establish a decision and responsibility chain, nothing else.
| Field | What goes in it | The line it must not cross |
|---|---|---|
| Symptom classification | Only the function categories, source categories and unknown items a user can describe | No equipment, address or site name. No root cause claim |
| Containment decision | Decisions about people: stop unapproved trial and error, restrict public sharing, wait for the responsible role | No system actions. No service start or stop, configuration change, connection step or hardware measure |
| Privacy-safe evidence | Evidence category, controlled storage reference, masking status, and the evidence limit | Original material stays in a controlled location, handled by authorized actors |
| Escalation ownership | Roles: incident command, live-environment security, privacy review, product responsibility, external expertise | Names and contact details are left blank |
| Restoration ownership | Who has authority to decide outside this chapter's independent approval process, and which restrictive statements must accompany the result | No candidate remediation, no verification actions |
earliest known symptom, follow-up notification, post-handover status. Two reasons, and the second is the one people miss — over-collecting exposes private data, and recording adjacent events encourages an unsupported causal inference.Seven moves, and none of them touch the system
The runbook instructs people to stop, report and hand over. It does not direct the live system at any point.
-
Step 1
Stop, and find someone
Stop all unapproved trials and all public posts. If there are physical safety concerns, contact the live-environment person in charge and safety professionals immediately, following the established emergency procedure. This step is first because everything after it assumes nobody is still experimenting.
-
Step 2
Fill in the symptom classification
Select only from the available categories:
User Visible Function Category,Initialization Responsibility Thread,Daemon Call Responsibility Thread,Driver File Type, orInsufficient Information. Do not specify a root cause. If the honest answer is the last of those five, that is a complete answer. -
Step 3
Complete the containment decision
The incident command role decides which personnel activities must stop, which public information must be restricted, and who takes over. Do not enter service start or stop actions, configuration changes, connection steps, or hardware measures. The field constrains people, not machines.
-
Step 4
Fill out the privacy-safe evidence form
Record the controlled evidence reference, the evidence category, the masking status, and the boundary between fact and inference. Original material remains in a controlled location, handled by authorized actors — it does not get pasted into the form to save a trip.
-
Step 5
Fill out the escalation ownership form
Assign the roles that should take over, by category: security, privacy, source version, or unknown responsibility. If a role is missing, stop and notify incident command. A gap in the chain is a reason to halt, not a reason to improvise a substitute.
-
Step 6
Fill out the restoration ownership form
Name the role with authority to initiate the independent approval decision, and the role responsible for reporting the assessment results back. Do not propose candidate remediation or verification actions, however obvious one of them looks from where you are sitting.
-
Step 7
Review and hand over
A second reviewer confirms that all five fields are complete, with no identifying values and no live procedures, then hands the form to incident command. The status is one of three words:
handover,stopped because evidence is incomplete, orwaiting for responsible role.
“Stop” in this runbook does not mean shutting the building's services down. It means stopping yourself — your unapproved trial and error, your widening scope, your posting in the group chat. Think of a driver who has just clipped a bollard: stopping means taking your hands off the wheel and calling it in, not switching the engine off in the middle of a junction. Deciding what happens to the actual service is somebody else's call, on a different form.
What counts as finished
The completion standard for this chapter is a clear chain of responsibility, not a recovered system. Even when an independent process returns a status, this form accepts only a handover summary that has been reviewed, de-identified, and accompanied by an evidence limit.
- Symptom classifications describe functional or documented responsibility categories, with no root cause claims.
- The containment decision limits unauthorized personnel activity and information spread only, and includes no live-system action.
- Public evidence carries only controlled references, categories, masking status, unknowns and evidence limits.
- Escalation responsibility names incident command, site security, privacy review, or another responsible role explicitly.
- Restoration responsibility sits with an independent approval process outside this chapter, which contains no remediation or verification step here.
- There are no commands, probes, restarts, configuration changes, telegram, ETS, group, physical or bus actions anywhere in the form.
- KNX bus, ETS, integration, group operation and physical control results remain unconfirmed.
Fourteen sentences you will hear, and what each one is worth
Both chapters end with the same kind of table, and both are worth reading before you need them. These are not hypothetical objections. They are the things said out loud in a corridor while somebody waits for you to agree.
During routine operations
| What you are told | What it actually is | What you do |
|---|---|---|
| The approval just says “routine maintenance” | Purpose and data scope are incomplete | The record stays suspended. Incompleteness is the finding, not an obstacle to route around |
| “Read-only does not need approval” | A category error, repeated often enough to sound like policy | Refuse. Read-only viewing of a live or running environment is approval-required |
| The source disagrees with what the live environment is said to do | A version or evidence gap | Record the gap. Do not modify the system to make the two agree |
| “The maintenance window has started” | A time slot, which authorizes nothing by itself | Work stays stopped while any field is incomplete. A window is not an approval |
| The restore decision-maker and the executor are the same person | A collapsed separation of duties | Independent approval, stopping conditions and responsibility boundaries still go in separate columns. They cannot be omitted |
| “Just give me a quick command” | A request for something the chapter does not contain | Refuse. There are no operational commands and no authorized detours here |
| Somebody wants the raw material in the evidence summary | An unsafe evidence summary | Original content is not published. Record “subject to controlled review” and the responsible role |
During an incident
| What you are told | What it actually is | What you do |
|---|---|---|
| “The system is broken” | A notification with no usable content | Rewrite it as the narrowest user-visible symptom category. Root cause stays unknown |
| Somebody has already started trying things | Unapproved trial and error, in progress | Stop further unapproved actions and record the handoff of responsibility. Do not attempt another action as a remedy |
| A full log has been pasted into a public channel | A privacy incident inside the incident | Stop the reposting, limit distribution per your organization's privacy procedure, and handle it in a controlled location with authorized roles |
| “Can you just probe the endpoint?” | A live-environment action wearing a small word | Refuse. There are no commands and no probes in this chapter |
| “Try restarting it, or change the setting back” | Remediation, proposed before anyone owns the decision | Refuse. There are no restart, configuration or remediation procedures here |
| “Verify it with ETS, a group read, or one telegram” | Prohibited activity offered as a diagnostic | Refuse. These actions are not in the incident form and must not be automated |
| Nobody knows who incident command is | A missing link in the chain | Stay stopped and find the responsible person through your organization's existing reporting chain. Do not take over the live system yourself |
The objections worth answering properly
I am the administrator. Can I skip the approval field?
Can a read-only observation go in the safe class?
Should the restoration field list the procedure?
The record is complete. Can the change begin?
complete, and it describes the state of the paperwork, not a permission that has been granted to anybody.Can live screenshots be used as evidence notes?
Does the incident runbook tell me to stop the official service?
It is urgent. Can we detect first and get approval afterwards?
The error text stopped appearing. Is the incident over?
When can the incident form be closed?
Do the pinned service scripts prove anything about a running daemon?
Which files are these two chapters actually built on?
knxd/rootfs/etc/knxd.ini, knxd/rootfs/etc/s6-overlay/s6-rc.d/init-knxd-config/run and knxd/rootfs/etc/s6-overlay/s6-rc.d/svc-knxd/run, all at KNXD Add-on 0.6.1. Chapter 22 uses the second and third of those, plus doc/inifile.rst from KNXD 0.14.72 upstream. Both chapters are marked evidence class source-bounded.Where to go from here
Nine parts, and the bus has still not been touched.
That was deliberate from Part 1. What you have now is a set of documents — role cards, preflight rows, offline worksheets, a change record and an incident runbook — that say who may act, on what evidence, and who has to be told. The work that follows is somebody's to authorize, in writing, with the isolation gates and the artifact digest in place. Take the forms to that conversation.
Open the full guidePart 9 of the WoowTech KNXD Complete Tutorial series on the Apporo blog.
Adapted from the WoowTech KNXD complete tutorial, produced by WoowTech and republished by Apporo.
Versions and claims are bounded by the pinned sources. Publication does not represent validation of any live site, hardware, network or KNX bus, and is not an authorization to operate KNX, ETS, Home Assistant, group objects or physical control.
Light · Air · Water · Control · apporo