Skip to Content

The last two forms: a change record, and a card for the day it goes wrong

two forms, no commands
KNXD Guide · Part 9

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.

6 fields
The change record: source review, approval, observation boundary, stop, restoration decision, evidence notes
5 fields
The incident runbook: symptom classification, containment, privacy-safe evidence, escalation, restoration
about 35 min
Roughly 20 minutes for the change record and 15 for the runbook, both entirely offline
Why operations is paper

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.

In plain terms

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"]
Four classes, three questionsFour end boxes, and only one of them — Safe, at the bottom right — is reached by answering no to all three questions. The other three each peel off to the left on a yes, which is the point: almost everything anyone asks for in an operations conversation lands outside safe work.
What Never automate covers, in full. Do not read or write groups. Do not send a KNX telegram. Do not perform ETS programming or downloads. Do not connect a KNX interface or bus. Do not control physical equipment. The test bus is no exception. Both chapters repeat this list word for word, and neither offers a route around it.

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.

Where the isolated-test gates come from. Joining the repository, installing, or starting anything also requires full isolation gates, written approval, an approved immutable artifact or image digest, and source-to-build attestation. If any one of those is missing, stop. That is the same gate Part 1 opened the series with, unchanged nine parts later.
The six-field change record

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.

In plain terms

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.

FieldWhat is recorded in itWhat 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
What may never appear in any of the six fields. Environment or event time, log time, device path, host, endpoint, address, serial number, account number, secret, or site name. If governance requires a deadline, use a reviewed abstract state instead — 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
Six doors and one way out of eachThe six numbered fields step down the page in order. Six dotted lines, one from each of them, all arrive at the same box on the right: whichever door you are standing at, an incomplete field goes back to the responsible role rather than forward. At the bottom, the review's yes leads left to Marked complete and its no leads right.
What the pinned Add-on files can and cannot support. The managed INI templates, initialization scripts and service scripts of KNXD Add-on 0.6.1 describe the source structure, the configuration preparation, and the responsibility for calling the daemon. They are not a deployment record. They do not prove the status of the listener, the KNX bus, ETS, Home Assistant, or any hardware. Put them in the source review field with that boundary written next to them.
Filling it in, in order

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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, or referred 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 --> [*]
Where a record can goStopped is entered twice — once from filling, once back from review — so it is the state the record spends most of its life in, not an error condition. Complete on the left and Referred on the right are the only two that reach the end marker.

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.
Seven checks, and the seventh is the one that gets skipped. “No description of a field success” means the record must not say the daemon came up, the listener answered, or the lights responded — even if somebody watched it happen. Those claims are outside what a source-bounded document can hold, and once one of them is in the file, the file starts being quoted as evidence.
The five-field runbook

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.

Stop conditions, in the order the chapter gives them. Stop when the incident involves unexpected physical movement or a safety risk, or requires the person responsible for the site to take over immediately. And throughout: unapproved service actions, telegram transmission, group operations, and physical control are prohibited. The first of those is the one you meet in the field before any of the others — a blind that runs, an actuator that throws, a light that changes with nobody asking it to. That is a stop, not a symptom to be classified into box one.
Physical safety leaves this form immediately. If there are concerns about the safety of people, buildings, door locks, lighting, air conditioners, actuators or other entities, stop using this technical form and contact the live-environment person in charge and safety professionals in accordance with your organization's existing emergency procedures. That is not a step inside the runbook. It is the exit from it.
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 safety question comes firstThe decision box names unexpected physical movement and a safety risk before it lists people, the building, door locks, lighting, HVAC and actuators. The yes branch goes left to a single box and stops there — nothing continues from it, because the form is no longer the right tool. The five numbered fields all hang below the no branch on the right, under a box that stops your activity rather than the building's.
In plain terms

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.

FieldWhat goes in itThe 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
Collecting more during an incident is not being thorough. Environment or event timestamps, log timestamps, execution times, hosts, endpoints, device paths, serial numbers, addresses, account numbers, secrets, and any detail that could be associated with household activity are all disallowed. Order is expressed with abstract labels only: 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.
Adjacency is not causation, and the file layout makes it tempting. Initialization responsibilities, daemon-invocation responsibilities and driver file classes sit next to each other in the source tree, and get described together in the documentation. That proximity is a fact about a repository, not about your incident. Cause and effect cannot be written down without controlled evidence and independent analysis.
Stop, classify, hand over

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.

  1. 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.

  2. 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, or Insufficient Information. Do not specify a root cause. If the honest answer is the last of those five, that is a complete answer.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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, or waiting for responsible role.

In plain terms

“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.
The last line of that list is not a disclaimer. It is the finding. A closed incident form records that responsibility moved to the right people and that the evidence was handled properly. It does not record that the bus is healthy, that ETS can reach anything, or that the integration works — because nothing in the process was allowed to establish any of that.
Afterwards, review the cadence rather than the incident. Go back over your stop conditions periodically alongside the deployment assessment, and use the guide's help and downloads material for de-identifying records. Neither of those resources authorizes live-environment operations either.
When somebody pushes

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 toldWhat it actually isWhat 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 toldWhat it actually isWhat 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
Notice how many of those answers are the same answer. Refuse, record, hand back. That repetition is the point of having a form at all — when the reply is written down in advance, it stops being a judgment call you have to make while three people watch you.
Questions people ask

The objections worth answering properly

I am the administrator. Can I skip the approval field?
No. Ability does not equal authorization. The written scope, the purpose and the responsibility cannot be omitted because the person filling the form happens to hold the credentials that would let them act without it. This is the field most often argued away, and it is the field the whole record hangs on.
Can a read-only observation go in the safe class?
Only a fully offline review of pinned sources is safe. Any read-only viewing of a live or running environment is approval-required. And when that approval exists, it covers viewing within the authorized data categories and scope — it does not extend to modification, to elevated privileges, or to a wider data scope than was granted.
Should the restoration field list the procedure?
No. It describes who decides, which prerequisites are required, and which controlled plan applies. Chapter 21 provides no execution procedure, and Chapter 22 is equally explicit for the incident case: the recovery field specifies independent decision-making roles and handover requirements, and lists no candidate measures. A restart is not written in as a candidate.
The record is complete. Can the change begin?
No. A complete record means the document is available for manual decision-making. It does not constitute operational approval. The word on the form is 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?
This chapter does not include live screenshots. If a separate case authorizes read-only observation, authorized roles handle that material in a controlled location, and the public record keeps only a category and a controlled reference. Nothing from a live screen ends up in the document you circulate.
Does the incident runbook tell me to stop the official service?
No. “Stop” means stopping unapproved trial and error, scope expansion, and public sharing. A formal decision about a running service is a responsibility outside this chapter, made by a role the escalation field names.
It is urgent. Can we detect first and get approval afterwards?
Not under this chapter. Contact incident command or live-environment security immediately, and do not probe the live system yourself. The urgency of an event does not automatically cancel approval — that sentence is in the source precisely because urgency is when the rule is tested.
The error text stopped appearing. Is the incident over?
No. A change in what a program says about itself cannot verify the listener, the KNX bus, ETS, the integration, a group operation, or hardware results. The disappearance of error text proves that some text stopped being written. Program-level descriptions do not establish the state of the bus.
When can the incident form be closed?
When the chain of responsibility has been handed over, the privacy review is finished, and the limitations are written down explicitly. Closing the form does not prove that the live environment recovered or that any restoration succeeded.
Do the pinned service scripts prove anything about a running daemon?
They support source-level responsibility only. A pinned service script can show that settings are generated and a daemon is invoked as a documented responsibility of that file. It cannot prove that a process exists, that a listener is reachable, that a bus is working, or that an integration succeeded — and none of those can be deduced from the source.
Which files are these two chapters actually built on?
Chapter 21 is bounded by three pinned Add-on paths: 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.
The hedge that has run under all nine parts. Pinned sources support only the documented scope. Nothing in this series represents validation of any local environment, hardware, network, or KNX bus. Versions and claims are bounded by KNXD Add-on 0.6.1 and KNXD 0.14.72 as pinned; publication is not validation of any live site.
Next

Where to go from here

part nine of nine

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 guide

Part 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

in KNXD
Triage on paper, before anybody reaches for the reset button