Duvar düğmeleri ve pano kaydırıcısıyla sürülen servo damperler senkronize olmuyor
Yapay zekâ tarafından English dilinden çevrildi ·
Otelde tesis yöneticisiyim. İki konferans odamızda bir yüklenicinin yaptığı küçük motorlu havalandırma damperleri var: iki MG996R servolu bir ESP32, oda başına duvarda iki itme düğmesi (daha fazla aç / daha fazla kapat, basış başına 15 derece). ESP32 zaten sıcaklık ve CO2 verilerini Hermetry’ye iletiyor.Etkinlik ekibinin damperleri resepsiyon bilgisayarındaki bir panelden ayarlamasını istiyorum. Profile damper.set komutunu ve angle parametresini ekledim, panoya bir Slider kontrol kartı koydum. Gönderim çalışıyor, damper hareket ediyor.Ancak kaydırıcı sürekli yanlış konumu gösteriyor. Biri duvar düğmesine bastığında damper 75’teyken kaydırıcı hâlâ 45 diyor. Bazen kaydırıcıyı taşıdıktan bir saniye sonra eski değere geri zıplıyor ve herkesi şaşırtıyor.Panonun gerçek konumu takip etmesini sağlamanın bir yolu var mı, yoksa duvar düğmelerini kaldırmam mı gerekiyor? Misafirler düğmeleri seviyor.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Bunun devamı olarak, motorlu panjurlarda da aynı durum var.
Following this, we have the same with motorised blinds.
Yapay zekâ tarafından English dilinden çevrildi ·
Butonları koruyun. Kaydırıcı yalnızca cihazın Hermetry’ye bildirdiğini gösterebilir; bu yüzden ESP32, her harekettan sonra, butondan ya da komuttan gelmiş olsun, konumu bildirmek zorundadır.Geri zıplamanın Current value bağlantınızdan kaynaklandığından eminim. Kaydırıcının Current value yuvasının neye bağlı olduğunu kontrol edin. Yalnızca siz gönderdiğinizde değişen (ya da hiç değişmeyen) bir değeri okuyorsa, oraya geri döner. Bunu ESP32’nin kendisinin gönderdiği bir telemetri anahtarına bağlayın, örneğin damper1_pos.ESP32 üzerinde, her harekettan sonra:
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
Bizim için işe yarayan kaydırıcı ayarları: Minimum 0, Maximum 90, Step 15; böylece buton adımlarıyla eşleşir. Kaydırıcı, sürüklerken değil bıraktığınızda bir kez gönderir; servo böylece gereksiz yere bombardımana tutulmaz. Damper için Ask before running off seçeneğini açabilirsiniz; aksi halde resepsiyon her harekette bir onay penceresi alır. Komutu Basic seviyesinde bırakın, kart bundan yükseğini göndermez.Varsayılan olarak açık olan “Disable the control when the reading is old” seçeneği de var. ESP32 yalnızca değişiklikte bildiriyorsa ve saatlerce kimse dokunmadıysa kaydırıcı gri görünebilir. Konumu diğer okumalarla birlikte birkaç dakikada bir tekrarlamasını sağlayın.Kurulum adımları Control cards sayfasında.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Sorun buymuş: Mevcut değer, bildirilen bir anahtar yerine komut parametresine bağlanmıştı. Yüklenici, buton basımından sonra yayın ekledi ve CO2 okumasıyla birlikte her 5 dakikada bir tekrar ekledi. Kaydırıcı artık duvar butonlarını takip ediyor. Çalıştırmadan önce sor seçeneği kapalı, etkinlik ekibi teşekkür ediyor.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Bunu panjur yüklenicimize gönderiyorum, aynı fikir işe yaramalı.
Sending this to our blinds contractor, same idea should work.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

