Von English mit KI übersetzt ·
Behalten Sie die Tasten. Der Schieberegler kann nur anzeigen, was das Gerät an Hermetry meldet. Der ESP32 muss also nach jeder Bewegung die Position melden, egal ob sie durch eine Taste oder einen Befehl ausgelöst wurde.Ich wette, das Zurückspringen liegt an Ihrer Bindung für Current value. Prüfen Sie, worauf der Current-value-Slot des Schiebereglers zeigt. Liest er einen Wert, der sich nur beim Senden ändert (oder gar keinen), springt er dorthin zurück. Binden Sie ihn an einen Telemetrie-Schlüssel, den der ESP32 selbst sendet, zum Beispiel damper1_pos.Auf dem ESP32 nach jeder Bewegung:
void moveTo(int ch, int angle) {
angle = constrain(angle, 0, 90);
servo[ch].write(angle);
pos[ch] = angle;
char buf[48];
snprintf(buf, sizeof buf, "{"damper%d_pos":%d}", ch + 1, angle);
mqtt.publish("v1/telemetry", buf);
}
// button handler: moveTo(ch, pos[ch] + 15);
// command handler for damper.set: moveTo(ch, params["angle"]); then answer ok
Schiebereglereinstellungen, die bei uns funktioniert haben: Minimum 0, Maximum 90, Step 15, damit er zu den Tastenschritten passt. Der Schieberegler sendet einmal beim Loslassen, nicht während des Ziehens, damit der Servo nicht mit Befehlen überflutet wird. Bei einer Klappe können Sie Ask before running off aktivieren, sonst erhält die Rezeption bei jeder Bewegung ein Bestätigungsfenster. Lassen Sie den Befehl auf Basic-Stufe, ein Board sendet nichts Höheres.Außerdem gibt es die standardmäßig aktivierte Option „Disable the control when the reading is old“. Meldet der ESP32 nur bei Änderungen und hat niemand stundenlang etwas berührt, kann der Schieberegler ausgegraut werden. Lassen Sie ihn die Position alle paar Minuten zusammen mit den übrigen Messwerten wiederholen.Die Einrichtungsschritte finden Sie unter Control cards.
Keep the buttons. The slider can only show what the device tells Hermetry, so the ESP32 has to report the position after every move, from a button or from a command.
I’d bet the jump-back is your Current value binding. Check what the slider’s Current value slot points at. If it reads something that only changes when you send (or nothing), it snaps back to that. Bind it to a telemetry key the ESP32 sends itself, for example damper1_pos.
On the ESP32, after any move:
void moveTo(int ch, int angle) {
angle = constrain(angle, 0, 90);
servo[ch].write(angle);
pos[ch] = angle;
char buf[48];
snprintf(buf, sizeof buf, "{"damper%d_pos":%d}", ch + 1, angle);
mqtt.publish("v1/telemetry", buf);
}
// button handler: moveTo(ch, pos[ch] + 15);
// command handler for damper.set: moveTo(ch, params["angle"]); then answer ok
Slider settings that worked for us: Minimum 0, Maximum 90, Step 15 so it matches the button steps. The slider sends once when you let go, not while dragging, so the servo isn’t spammed. For a damper you can turn Ask before running off, otherwise reception gets a confirm dialog on every move. Leave the command Basic tier, a board won’t send anything higher.
There’s also „Disable the control when the reading is old“ on by default. If the ESP32 only reports on change and nobody touched it for hours, the slider may grey out. Have it repeat the position every few minutes with the other readings.
Setup steps are on Control cards.

