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

Reply To: BLE dimmer’ları ESP32 köprüsü üzerinden panodaki slider ile kısmak

Child’a komut gidiyor, takıldığın yer ESP32 tarafı. Gateway arkasındaki bir cihaza gönderilen komut gateway’e v1/gw/rpc üzerinden iniyor, shared attribute değişiklikleri de v1/gw/attributes üzerinden. Senin kod büyük ihtimalle sadece v1/rpc/req/+ dinliyor, o da gateway’in kendi komutları için. Komut o yüzden Sent’te kalıyor. Ben de su istasyonlarında aynı yerde takılmıştım.

Yaptığım şey şöyle:

  1. light.set komutunu dimmer’ların profiline ekle (gateway’inkine değil), Basic tier, parametre level (Number, 0-100).
  2. Slider kartında Run a command: Device = atolye-3 child’ı, Command = light.set, level için The control’s value. 0-100 slider’ı ESP32 tarafında 0-255’e çeviriyorum.
  3. Current value slot’unu aynı child’ın level telemetrisine bağla, kart dimmer’ın gerçek değerini göstersin.
  4. Işık için Ask before running’i kapattım, her kaydırmada onay sormasın.

ESP32 tarafında her bağlantıdan sonra v1/gw/rpc‘ye abone ol. Gelen mesajı önce seri porta bastırıp yapısına bak, hangi child için geldiğini oradan çözüp BLE yazmasını yaparsın:

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

Kontrol kartlarının kuralları burada: Kontrol kartları

Kabul edilen çözüm♥ 5