Merano was the first — with nobody to look things up in
The first of the three installations. Two things came out of it that saved time later — one of them was a quotation mark.
Contents
On 9 August 2026 the first of the three instances came up: Home Assistant OS on a Raspberry Pi 5, in the flat in Merano.
This article is the beginning the blog skipped over for a long time. And it describes the installation that had the hardest time of it — because there was no sister installation to look things up in.
Everything that went wrong here went wrong for the first time.
Before the first integration came a measurement
The Home Assistant web interface runs on port 8123. Every guide says so; anyone who has ever touched it knows that.
Here it was not true.
8123 does not answer
80 serves /api/ with 200
Where that came from was not clear at the time — the explanation turned up weeks later, in a file nobody had read that day. The same thing was later measured in Vienna and in Kapfenberg, with the same result.
That is why the connection script still tries both ports instead of knowing the right one.
The first number I measured in a new setup was the one everybody knows the answer to.
The SSH key, and the quotation mark
For everything the interface cannot do, you need file access. So: a key.
It was created, the server accepted it, and it still went nowhere. The log said both things one after the other:
Server accepts key
Permission denied
That combination looks like a server problem. It is not one.
Under PowerShell, ssh-keygen -N '""' sets the passphrase to two literal
quotation marks. In Bash those two characters are syntax and disappear; in
PowerShell they are content and end up inside the key. The server accepts the key
correctly and then fails because nobody supplies the passphrase that, according
to the guide, should not exist at all.
The counter-check is one line:
ssh-keygen -y -P "" -f ~/.ssh/<keyfile>
If the public key comes out, the passphrase really is empty. If an error comes out, it is not.
In Kapfenberg this did not happen again — not because I knew better, but because it happened here once and was written down.
The sentence that was born here
The project file of this instance has carried a principle since day one that the two later ones adopted word for word:
Measured, not assumed. Where an assumption was disproved by a later measurement, both appear in the documentation — in the order in which it happened.
The second half is the more important one, and it is not a stylistic flourish.
Roughly half the findings on this blog come out of the contradiction between an earlier assumption and a later measurement. Overwrite the assumption while correcting it and you keep a correct result and lose the finding.
What the first one did not have
The third installation was standing in one day. This one was not — and the difference is not practice but material.
| Merano | Kapfenberg | |
|---|---|---|
| sister installation to consult | none | two |
| port number | had to be measured | was known |
| key trap | stepped into here | avoided here |
| radio channel | from its own measurement | from its own measurement |
The last row is deliberate: the channel could not be carried over. In Merano the Wi-Fi sits on channel 11 and Zigbee belongs on 11; in Kapfenberg the Wi-Fi sits on 1 and Zigbee belongs on 20. The same recommendation would have done exactly the wrong thing in one of the two houses.
What transfers is the method, not the result.
What I’d suggest
- Measure what you are surest about first. The port number was in every guide and wrong in all three flats.
- Create SSH keys in the shell the command was written for — and verify the passphrase with a line of its own.
- Write down the assumption that turned out wrong, not only the correction.
- Carry over methods, not numbers. A measured number belongs to the house it was measured in.
- Expect the first installation to be the most expensive. That is not failure, it is the bill for the two that follow.
So what?
Three flats, three Raspberry Pis, three weeks:
09.08.2026 Merano the first
28.08.2026 Vienna the second
29.08.2026 Kapfenberg the third
Of that first one, no automation survives in the form it had back then. What survives is a port number, a key that works because one here did not — and a sentence about assumptions that now sits in the project folder three times over.
The other two installations together cost less than this single one. That is the price of being first, and it is entirely acceptable as long as somebody is taking notes.
If you want to follow this: use RSS
No newsletter. You give me no address, I keep no list, and nobody has to agree to anything to learn that an article is finished. RSS is the older and, for both sides, the more honest solution.
How it works, and why no newsletter
- 1Get a feed reader. No account needed with an app on your phone or a browser extension; use a hosted service if you prefer.
- 2Add the address above to it.
- 3Done. New articles turn up in your reader by themselves — unread stays unread, and nothing lands between invoices and ads in your inbox.
Why that is better: your reader fetches the file. I get no address and cannot see who reads or whether anyone opened it. Unsubscribing means deleting the entry — no link, no confirmation mail, no me.
