Des volets servo pilotés par des boutons muraux et un curseur de tableau de bord se désynchronisent
Traduit de English par IA ·
Responsable technique d’un hôtel. Nos deux salles de conférence disposent de petits volets de ventilation motorisés réalisés par un prestataire : un ESP32 avec deux servos MG996R, plus deux boutons-poussoirs muraux par salle (ouvrir davantage / fermer davantage, 15 degrés par pression). L’ESP32 transmet déjà la température et le CO2 à Hermetry.Je veux que l’équipe événementielle règle les volets depuis un tableau de bord sur le PC de la réception. J’ai ajouté une commande damper.set avec un paramètre angle au profil et placé une carte de contrôle Slider sur le tableau. L’envoi fonctionne, le volet bouge.Mais le curseur continue d’afficher la mauvaise position. Si quelqu’un a appuyé sur le bouton mural, le curseur indique toujours 45 alors que le volet est à 75. Parfois, après que j’ai déplacé le curseur, il revient à l’ancienne valeur une seconde plus tard, ce qui déroute tout le monde.Existe-t-il un moyen de faire suivre la position réelle au tableau de bord, ou dois-je supprimer les boutons muraux ? Les clients aiment ces boutons.
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.
Traduit de English par IA ·
Suite à cela, nous rencontrons le même problème avec les stores motorisés.
Following this, we have the same with motorised blinds.
Traduit de English par IA ·
Gardez les boutons. Le curseur ne peut afficher que ce que l’appareil remonte à Hermetry, donc l’ESP32 doit signaler la position après chaque mouvement, qu’il vienne d’un bouton ou d’une commande.Je parie que le retour en arrière vient de votre liaison Current value. Vérifiez vers quoi pointe l’emplacement Current value du curseur. S’il lit une valeur qui ne change qu’à l’envoi (ou rien du tout), il revient à cette valeur. Liez-le à une clé de télémétrie que l’ESP32 envoie lui-même, par exemple damper1_pos.Sur l’ESP32, après chaque mouvement :
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
Réglages du curseur qui ont fonctionné chez nous : Minimum 0, Maximum 90, Step 15 pour correspondre aux pas des boutons. Le curseur envoie une seule fois au relâchement, pas pendant le glissement, ce qui évite de saturer le servo. Pour un volet, vous pouvez activer Ask before running off, sinon l’accueil reçoit une boîte de confirmation à chaque mouvement. Laissez la commande au niveau Basic, une carte n’envoie rien de plus élevé.Il existe aussi « Disable the control when the reading is old », activé par défaut. Si l’ESP32 ne signale qu’en cas de changement et que personne n’a touché au volet pendant des heures, le curseur peut se griser. Faites-lui répéter la position toutes les quelques minutes avec les autres mesures.Les étapes de configuration sont dans 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.
Traduit de English par IA ·
C’était bien ça, Current value était liée au paramètre de commande au lieu d’une clé remontée. Le prestataire a ajouté la publication après l’appui sur le bouton, ainsi qu’une répétition toutes les 5 minutes avec la mesure de CO2. Le curseur suit désormais les boutons muraux. « Demander avant exécution » est désactivé, l’équipe événementielle vous remercie.
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.
Traduit de English par IA ·
J’envoie ceci à notre installateur de stores, la même idée devrait fonctionner.
Sending this to our blinds contractor, same idea should work.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

