Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Antwort: Können meine Relais einfach ihr eigenes MQTT-Topic abonnieren, oder will Hermetry für Aktoren etwas anderes?

Von English mit KI übersetzt ·

Bei uns läuft das so an Fan-Coil-Ventilen in 140 Hotelzimmern, daher hier unser Aufbau.Hermetry sendet Befehle an das Gerät über dessen eigenes Downlink-Topic. Die Lüfterplatine abonniert v1/rpc/req/+, ein Befehl kommt als v1/rpc/req/<id> mit einer Methode und Parametern an, und die Platine antwortet auf v1/rpc/res/<id>. Die ID im Topic dient dazu, die Antwort zuzuordnen.Im Lüfterprofil den Reiter Commands öffnen und einen Befehl hinzufügen, zum Beispiel Methode fan.set, ein Parameter on vom Typ Yes/no, Tier Basic. Basic ist wichtig, weil ein Dashboard-Switch nur Basic-Tier-Befehle sendet. Dann bekommt die Platine in der Supervisor-Ansicht eine Switch-Karte, deren Aktion Run a command fan.set mit dem Wert des Steuerelements ist, und der Current state wird an einen Telemetrie-Schlüssel gebunden, den die Platine nach dem Schalten meldet; bei uns fan.on.Grobe Arduino-Seite mit PubSubClient:

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);

Laut Doku kann ein Befehl zweimal ankommen, deshalb merken wir uns die letzten IDs und überspringen Wiederholungen. Seite: Befehle an Geräte senden. Für Sollwerte, die einen Neustart überdauern sollen (Solltemperatur der Heizung), verwenden wir stattdessen Shared Attributes auf v1/attributes/set; die Platine fragt sie direkt nach dem Verbinden ab.

QoS 1 and a lot of patience.
Akzeptierte Lösung♥ 5