Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Antwort: Servoklappen, gesteuert über Wandtasten und einen Dashboard-Schieberegler, laufen auseinander

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.

Timestamps in UTC or it didn't happen.
Akzeptierte Lösung♥ 1