Servoklappen über Wandtaster und Dashboard-Schieberegler laufen nicht synchron
Von English mit KI übersetzt ·
Facility Manager in einem Hotel. Unsere zwei Konferenzräume haben kleine motorisierte Lüftungsklappen, die ein Dienstleister gebaut hat: ein ESP32 mit zwei MG996R-Servos, dazu pro Raum zwei Taster an der Wand (weiter öffnen / weiter schließen, 15 Grad pro Tastendruck). Der ESP32 meldet Temperatur und CO2 bereits an Hermetry.Das Eventteam soll die Klappen über ein Dashboard am Empfangs-PC einstellen können. Ich habe dem Profil einen Befehl damper.set mit dem Parameter angle hinzugefügt und eine Slider-Steuerkarte auf das Board gesetzt. Das Senden funktioniert, die Klappe bewegt sich.Der Schieberegler zeigt aber weiterhin die falsche Position an. Wenn jemand den Wandtaster gedrückt hat, steht der Regler noch auf 45, obwohl die Klappe bei 75 ist. Manchmal springt er nach dem Verschieben eine Sekunde später auf den alten Wert zurück, was alle verwirrt.Gibt es eine Möglichkeit, dass das Dashboard die tatsächliche Position anzeigt, oder muss ich die Wandtaster entfernen? Die Gäste mögen die Taster.
Facility manager at a hotel. Our two conference rooms have small motorised vent dampers that a contractor built: an ESP32 with two MG996R servos, plus two push buttons on the wall per room (open more / close more, 15 degrees per press). The ESP32 already reports temperature and CO2 to Hermetry.
I want the events team to adjust the dampers from a dashboard on the reception PC. I added a command damper.set with a parameter angle to the profile and put a Slider control card on the board. Sending works, the damper moves.
But the slider keeps showing the wrong position. If someone pressed the wall button, the slider still says 45 when the damper is at 75. And sometimes after I move the slider it jumps back to the old value a second later, which confuses everyone.
Is there a way to make the dashboard follow the real position, or do I have to remove the wall buttons? Guests like the buttons.
Von English mit KI übersetzt ·
Im Anschluss dazu haben wir dasselbe Problem bei motorisierten Jalousien.
Following this, we have the same with motorised blinds.
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.
Von English mit KI übersetzt ·
Das war es, Current value war an den Befehlsparameter statt an einen gemeldeten Schlüssel gebunden. Der Auftragnehmer hat die Veröffentlichung nach dem Tastendruck und eine Wiederholung alle 5 Minuten mit dem CO2-Messwert hinzugefügt. Der Schieberegler folgt jetzt den Wandtastern. Die Abfrage „Vor dem Ausführen fragen“ ist deaktiviert, das Eventteam bedankt sich.
That was it, Current value was bound to the command parameter instead of a reported key. Contractor added the publish after the button press and a repeat every 5 minutes with the CO2 reading. Slider follows the wall buttons now. Ask before running is off, the events team thanks you.
Von English mit KI übersetzt ·
Ich schicke das an unseren Jalousien-Dienstleister, die gleiche Idee sollte funktionieren.
Sending this to our blinds contractor, same idea should work.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

