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

Variateur de BLE depuis un curseur du tableau de bord via un pont ESP32

Variateur de BLE depuis un curseur du tableau de bord via un pont ESP32

Résolu 4 3

Traduit de Türkçe par IA ·

Salut. Nous avons 6 variateurs LED BLE bon marché à l’atelier. Le bon côté, c’est que la luminosité se règle en écrivant un seul octet entre 0 et 255 dans une seule caractéristique GATT ; je l’ai testé avec nRF Connect et ça fonctionne. J’ai fait un pont avec un ESP32 : il se connecte aux variateurs en BLE et à Hermetry en Wi-Fi via MQTT. Les variateurs apparaissent comme des périphériques enfants de la passerelle, j’envoie leur luminosité avec v1/gw/telemetry, et les graphiques arrivent.J’ai maintenant placé un Slider sur le tableau de bord, mais la carte affiche « Choose a command in this widget’s settings » et je suis bloqué. Je ne sais pas où définir la commande ni comment l’ESP32 la recevra. Comme les variateurs sont des appareils séparés, je pense qu’il faut que je rattache le slider au périphérique enfant.

♥ 0

Traduit de Türkçe par IA ·

As-tu défini la commande dans l’onglet Commands de ton profil ? Le tableau de bord ne peut envoyer que les commandes présentes dans le catalogue du profil ; il n’accepte pas les méthodes brutes.

Sahadan selamlar.
♥ 0

Traduit de Türkçe par IA ·

Je l’ai défini. light.set, avec le paramètre level. J’ai d’abord passé le Tier en Privileged, j’ai obtenu l’erreur « This command cannot be sent from a board », puis je l’ai remis en Basic. Mais quand je sélectionne l’appareil enfant, la commande ne part pas, elle reste en Sent.

♥ 2

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

Traduit de Türkçe par IA ·

Ça marche, merci. L’ESP32 n’était en fait pas abonné à v1/gw/rpc, et j’avais mis la commande dans le profil de la gateway. J’ai ajouté 6 sliders, chacun lié à son propre child. Par ailleurs, le slider n’envoie qu’au relâchement. Je pensais qu’il envoyait à chaque mouvement et je me préparais à écrire une file d’attente sur l’ESP32, mais ce n’est plus nécessaire.

♥ 0
5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager