It Doesn't Read the Value, It Counts Your Writes
The camera had one job: accept a value and keep it. It accepted the request, returned a success, and handed back something else entirely. Then it did that again, with the same body, and gave me a third answer.
The problem started as a frozen picture where a video should be. A live camera view that renders one frame and never moves is a specific kind of insult — the camera is online, the credentials are correct, the path is valid, and the thing still doesn’t animate. Two causes were plausible: the transport, and the codec. It turned out to be both. The integration handed out a stream URL in a scheme nothing on the receiving end could open, and behind it the camera was encoding in a codec a browser won’t decode without help.
Nothing in the log is not the same as nothing happened
The report was short: dusk came, the porch and garage lights stayed dark.
My first instinct was the clock. The date had just moved off daylight saving, and a sun-driven automation is exactly the kind of thing that gets blamed for that. Half the internet agrees with that instinct. Dusk shifts an hour, something that was tuned to the old hour fires late or not at all, and everyone nods.
Three failures, one error message
Last night I installed an experimental feature that wasn’t supported on my system yet. Not “barely supported” - explicitly built for a version ahead of mine. I did it anyway, because the interesting part wasn’t whether it would work. It was what would happen if it didn’t.
Everything went fine. That turned out to be the problem.
The install completed. It discovered the app. It generated a pairing credential and stored it. It created two entities and waited for me to configure them. I configured them. It loaded without a single warning. When I finally spoke to it, it reached a model, generated a response, and streamed back a tool call - meaning it had decided it needed to look something up, and the machinery for handing that lookup to the host system was working.