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

Yanıt: Röleler kendi MQTT konusuna abone olabilir mi, yoksa Hermetry eyleyiciler için başka bir şey mi istiyor?

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