Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Rölelerim sadece kendi MQTT konularına abone olabilir mi, yoksa Hermetry eyleyiciler için başka bir şey mi istiyor?

Rölelerim sadece kendi MQTT konularına abone olabilir mi, yoksa Hermetry eyleyiciler için başka bir şey mi istiyor?

Çözüldü 6 5

Yapay zekâ tarafından English dilinden çevrildi ·

Muhtemelen tam bir acemi sorusu. Lojistik deponumuz için soğuk depo izleme sistemini pilot olarak uyguluyoruz. Altı ESP32 kartı sıcaklıkları v1/telemetry konusuna yayınlıyor ve bu sorunsuz çalışıyor, grafik ve alarm hazır.Şimdi eyleyicileri istiyorum: kapı çerçevesi ısıtıcıları ve iki ek fan, her biri ESP32’li bir röle kartında. Aklımda pub/sub iki yönlü çalışıyor; planım şuydu: fan kartı warehouse/zone3/fan/set konusuna abone olacak ve bir şey (bir gösterge paneli düğmesi? bir betik?) bu konuya on veya off yayınlayacak.Bunu dizüstü bilgisayarımdan paho-mqtt ile, sensör cihazlarından biri olarak giriş yaparak test ettim ve v1/zone3/fan/set konusuna yayınladım. Fan kartına hiçbir şey ulaşmadı. Üç denemeden sonra dizüstü bilgisayarımın bağlantısı kapandı. O sensör cihazının Günlük sekmesinde, yayınların unknown_reserved_topic nedeniyle reddedildiği görünüyor.Eyleyiciler için pub/sub burada yanlış model mi? Yoksa cihazların birbiriyle konuşmasına izin veren bir ayarı mı kaçırıyorum?

Still waiting for the gateway to reconnect.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Profildeki Custom topics bunun için değil mi? v1/ dışındaki herhangi bir konuyu kabul eden bir ayar olduğunu hatırlıyorum.

QoS 1 and a lot of patience.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Özel konular yalnızca gelen yöndedir, yayımlayan cihazın telemetrisi haline gelirler. Ayrıca Hermetry’de cihazlar birbirlerinin mesajlarını hiçbir zaman almaz, dolayısıyla bir fan için yayın yapan bir sensör asla çalışmaz.Ayrıca 14 yıllık tesis deneyimimden: eyleyicinin yanıt vermesini istersiniz. Bir röleye gönder-unut yöntemiyle komut vermek, kontrol odasında açık görünen ama odada kapalı olan bir fanla sonuçlanmanın yoludur.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Tamam, bu mantıklı. Peki bir şey fan kartına nasıl iniyor? Depo amiri için yine bir yerde bir butona ihtiyacım var.

Still waiting for the gateway to reconnect.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Bunu 140 otel odasındaki fan coil vanalarında yapıyoruz, bu yüzden kurulumumuzu aşağıda anlatıyorum.Hermetry komutları cihaza kendi downlink konusu üzerinden gönderir. Fan kartı v1/rpc/req/+ konusuna abone olur; komut v1/rpc/req/<id> olarak, bir method ve params ile gelir ve kart yanıtını v1/rpc/res/<id> üzerinden verir. Konudaki id, yanıtın eşleştirilme yoludur.Fan profilinde Commands sekmesini açın ve bir komut ekleyin; örneğin method fan.set, tipi Yes/no olan tek bir parametre on, tier Basic. Basic önemli, çünkü bir dashboard Switch yalnızca Basic tier komutları gönderir. Sonra supervisor’daki karta bir Switch kartı ekleyin, eylemi kontrolün değeriyle Run a command fan.set olsun ve Current state, kartın değiştirdikten sonra bildirdiği bir telemetri anahtarına bağlansın; biz fan.on kullanıyoruz.Arduino tarafı kabaca PubSubClient ile:

void onMsg(char* topic, byte* payload, unsigned int len) {
  String t(topic);
  if (!t.startsWith("v1/rpc/req/")) return;
  String id = t.substring(11);
  StaticJsonDocument<256> doc;
  deserializeJson(doc, payload, len);
  if (doc["method"] == "fan.set") {
    bool on = doc["params"]["on"];
    digitalWrite(RELAY, on ? HIGH : LOW);
    client.publish(("v1/rpc/res/" + id).c_str(), "{"ok":true}");
    client.publish("v1/telemetry", on ? "{"fan.on":1}" : "{"fan.on":0}");
  }
}
// after every connect:
client.subscribe("v1/rpc/req/+", 1);

Belgelere göre bir komut iki kez gelebilir, bu yüzden son birkaç id’yi saklayıp tekrarları atlıyoruz. Sayfa: Komutları cihazlara gönderme. Yeniden başlatmadan sonra korunması gereken ayar noktaları (ısıtıcı hedef sıcaklığı) için ise bunun yerine v1/attributes/set üzerindeki paylaşılan öznitelikleri kullanıyoruz; kart bağlanır bağlanmaz bunları ister.

QoS 1 and a lot of patience.
Kabul edilen çözüm♥ 5

Yapay zekâ tarafından English dilinden çevrildi ·

Sahadan bir not: komut setini her zaman bir durum olarak tasarlayın, asla toggle olarak değil. Zaman aşımına uğrayan bir komut yalnızca yanıt gelmediği anlamına gelir, yine de çalışmış olabilir. Supervisor tekrar basarsa, fan.set on iki kez gönderilmesi zararsızdır, fan.toggle iki kez gönderilirse ise fan kapanır.

If it isn't logged, it didn't happen.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Çalışıyor. Denetleyici kartındaki anahtar kartı, fan tıklıyor ve durum fan.on olarak geri geliyor.Yanlış yaptığım iki şey vardı. Önce fan.toggle olarak ayarladım, Tyler’ın gönderisinden sonra değiştirdim. Ayrıca aboneliği yalnızca setup() içinde bir kez yapmıştım, bu yüzden komutlar ilk WiFi kopmasına kadar çalışıyordu, sonra bir daha çalışmıyordu. Aboneliği yeniden bağlanma fonksiyonuna taşıdım ve artık kopmalara dayanıyor.

Still waiting for the gateway to reconnect.
♥ 1
7 yazı görüntüleniyor – 1 ile 7 arası (toplam 7)
  • 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.

Paylaş