Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Re : Gradation de dimmers BLE depuis un curseur du tableau de bord via un pont ESP32

Traduit de Türkçe par IA ·

La commande arrive bien au child, et le point bloquant se situe côté ESP32. Une commande destinée à un appareil derrière la passerelle descend vers la passerelle via v1/gw/rpc, et les changements d’attributs partagés passent par v1/gw/attributes. Ton code n’écoute probablement que v1/rpc/req/+, qui concerne les commandes propres à la passerelle. C’est pour ça que la commande reste à Sent. Je suis tombé exactement sur le même problème avec les stations d’eau.Voici ce que j’ai fait :

  1. Ajouté la commande light.set au profil des dimmers (et non à celui de la passerelle), niveau Basic, paramètre level (Number, 0-100).
  2. Sur la carte curseur : Run a command : Device = child atolye-3, Command = light.set, pour level La valeur du contrôle (The control’s value). Je convertis le curseur 0-100 en 0-255 côté ESP32.
  3. Lié le slot Current value à la télémétrie level de ce même child, pour que la carte affiche la vraie valeur du dimmer.
  4. Pour la lumière, j’ai désactivé Ask before running, pour ne pas demander de confirmation à chaque glissement.

Côté ESP32, après chaque connexion, abonne-toi à v1/gw/rpc. Affiche d’abord le message reçu sur le port série pour examiner sa structure, puis déduis-en pour quel child il est destiné et effectue l’écriture BLE :

mqtt.subscribe("v1/gw/rpc", 1);

void onMsg(char* topic, byte* payload, unsigned int len) {
  if (strcmp(topic, "v1/gw/rpc") == 0) {
    Serial.write(payload, len);   // önce yapıya bak
    Serial.println();
    // child adını ve level'ı çöz:
    // bleSetLevel(name, map(level, 0, 100, 0, 255));
  }
}

Les règles des cartes de contrôle sont ici : Kontrol kartları

Solution acceptée♥ 5