Jalousie-Verfolgung an der Anlage nachgezogen

Am echten Geraet ausprobiert - drei Sachen stimmten nicht.

Die PHP-Warnung. Nicht jeder Tahoma-Zustand ist eine Zahl oder ein Wort,
manche sind Listen. strval() darauf ist eine Warnung, und die stand mitten
in der JSON-Antwort. response.json() scheiterte, raumRequest() lieferte
{error}, die Verfolgung brach still ab - genau das Bild, das der Bericht
"kommt noch nicht" beschreibt. Nicht-Skalare werden jetzt uebergangen, und
ein Fehler wird gemeldet statt verschluckt.

Das Mitziehen waehrend der Fahrt. Gemessen: die Hoehe steht die ganzen
zwanzig Sekunden auf dem alten Wert und springt erst am Ende um. Wer das
anzeigte, holte den Regler vom eingestellten Ziel auf den alten Stand
zurueck, um ihn danach wieder vorzuschieben. Angezeigt wird deshalb erst,
was am Ende dasteht.

Das vorzeitige Aufhoeren. Zwischen den beiden Befehlen der
Kugelschreiber-Mechanik steht die Jalousie still und meldet die
Zwischenstellung. Die Verfolgung hielt das fuer das Ende und schrieb
"Neigung 0" fest, wo 62 gemeint war. Sie laeuft jetzt mindestens, bis der
Auftrag zurueck ist, und danach noch vierzehn Sekunden - so lange dauert
eine Neigungsfahrt von Anschlag zu Anschlag.

Gegengeprueft an der Wozi-Schiebetuer: Position 49 -> 20 -> 100 -> 49,
Neigung 62 -> 80 -> 62. Die Neigung wanderte beim Herunterfahren von
selbst auf 100 und stand sofort richtig im Modal. Waehrend des zehn
Sekunden langen Kugelschreiber-Auftrags liefen drei Verfolgungsanfragen
durch - die Sitzungssperre ist also wirklich weg.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 12:46:10 +02:00
co-authored by Claude Opus 5
parent 8914133d01
commit 60c4ad989b
2 changed files with 65 additions and 16 deletions
+8 -1
View File
@@ -336,6 +336,13 @@ function tahomaWertText($wert)
if (is_bool($wert)) {
return $wert ? "True" : "False";
}
// Nicht jeder Zustand der Box ist eine Zahl oder ein Wort: manche sind
// Listen oder Objekte. Als Messwert taugt das nicht, und strval() darauf
// ist eine PHP-Warnung - die stuende dann mitten in der JSON-Antwort und
// machte sie unlesbar, ohne dass irgendwo ein Fehler auftaucht.
if (!is_scalar($wert)) {
return null;
}
return strval($wert);
}
@@ -376,7 +383,7 @@ function tahomaZustaendeSchreiben($deviceUrl, $zustaende)
continue;
}
$text = tahomaWertText($zustaende[$zeile["url"]]);
if (strval($zeile["current_value"]) === $text) {
if ($text === null || strval($zeile["current_value"]) === $text) {
continue;
}
$id = intval($zeile["id"]);