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

Cihaz, yayınladığı telemetriyi v1/telemetry'ye abone olduğunda göremiyor

Cihaz, yayınladığı telemetriyi v1/telemetry'ye abone olduğunda göremiyor

Çözüldü 6 5

Yapay zekâ tarafından English dilinden çevrildi ·

Muhtemelen aptalca bir soru ama anlatayım. Sokak dolaplarındaki (enerji ölçümü, pilot projenin parçası) ESP32 kontrolcülerimiz Hermetry’ye v1/telemetry üzerinden QoS 1 ile veri yayınlıyor, token ile giriş yapılıyor, sorunsuz çalışıyor; okumalar her dakika panoda görünüyor.
Eklemek istediğim iki şey var:
1. Her dolabın da v1/telemetry konusuna abone olmasını istiyorum; gönderdiği verinin gerçekten ulaştığını doğrulayabilsin (bir meslektaşımın fikri, “yankı kontrolü” dedi)
2. Depodaki küçük bir e-kağıt ekran ünitesinin 3 numaralı dolabın telemetrisine abone olmasını istiyorum; böylece ekip hiçbir şeye giriş yapmadan kWh değerini görebilsin
İkisi de çalışmıyor. Abone olma çağrısı true dönüyor, PubSubClient’tan hata yok, bağlantı açık kalıyor ama hiçbir şey gelmiyor. v1/telemetry/# ve # de denedim, aynı sonuç. Bir istemci yayınladığı konuya abone olamaz mı? Yoksa konuyu yanlış mı yazdım?

client.subscribe("v1/telemetry", 1);   // returns true
client.publish("v1/telemetry", "{"kwh":1203.4}");
// callback never fires

Ekran da Hermetry’de kendi cihazı ve tokenı olan aynı ESP32 kartı, eğer önemliyse.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Takipteyim. MQTT’nin herkesin her şeyi gördüğü bir grup sohbeti gibi olduğunu varsaydım?

Timestamps in UTC or it didn't happen.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Düz bir broker üzerinde görebiliyor. Depodaki bir Pi üzerinde Mosquitto çalıştırıp dolapların oraya da yayın yapmasını sağlayabilirsiniz. Yalnız biraz karmaşık olur, iki farklı yere gönderim yapmak gerekir.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Bu sizin konunuz değil. Hermetry, bir cihazın yalnızca kendi aşağı yön (downlink) konularına abone olmasına izin verir: v1/attributes/set, v1/attributes/res/+, v1/rpc/req/+, v1/rpc/up/res/+ ve v1/cert (ayrıca ağ geçitleri için gw konuları). Bir cihaz asla başka bir cihazın mesajlarını almaz ve kendi yukarı yön (uplink) mesajlarını görmez. Tablo MQTT topics and payload reference sayfasındadır. İlk projemde ben de aynı şeye takılmıştım.
1 numaralı konu için hiç yankıya ihtiyacınız yok. PUBACK onayın kendisidir: Hermetry, mesajı güvenli şekilde kuyruğa aldıktan ve yayımladığınız sırayla işledikten sonra bunu gönderir. Okumayı, PUBACK’i gelene kadar tamponunuzda tutun, ardından silin. Oturum bundan önce kapanırsa, yeniden bağlandıktan sonra tekrar gönderin; aynı anahtar ve zaman damgasına sahip yinelenen mesajlar yine de yalnızca bir kez saklanır.
2 numaralı konu için ekranın MQTT’yi hiç dinlemesine gerek yok. Ona bir API anahtarı verin ve birkaç dakikada bir en son değeri REST üzerinden okusun:

GET https://<your host>/tenant/<tenantId>/api/telemetry/latest?kind=iot_device&entityId=<cabinet3 id>&keys=kwh
Authorization: Bearer sk_live_...

Anahtarı yalnızca okuma yetkili yapın (telemetri okuma yeterlidir), deponun genel adresini anahtarın IP izin listesine ekleyin ve son kullanma tarihine dikkat edin: varsayılan 90 gün, en fazla bir yıl. Bu yüzden anahtar yenileme için bir hatırlatıcı ekleyin. Ardından ekranın cihazını da silebilirsiniz, buna ihtiyacı yok.

Timestamps in UTC or it didn't happen.
Kabul edilen çözüm♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Polling yapmak, sadece subscribe olmaktan daha ağır olmaz mı?

Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Tek bir cihazdan beş dakikada bir mi? Hayır. Ayrıca okumalar mesaj kotasına dahil edilmez; kota, cihazların gönderdiği telemetri ve öznitelikler içindir.

Timestamps in UTC or it didn't happen.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Çözüldü, teşekkürler Eric. Echo aboneliğini kaldırdım, artık kabin tamponlanmış okumayı silmeden önce PUBACK bekliyor. Ekran her 5 dakikada bir GET yapıyor. İlk çağrı reddedildi ve biraz paniğe kapıldım; meğer anahtarı test organizasyonunda kendi oturumumla oluşturmuşum, bu yüzden yoldaki tenant id anahtarla eşleşmiyormuş. Doğru organizasyonda yeni bir anahtar oluşturdum ve hemen çalıştı.

♥ 0
7 yazı görüntüleniyor – 1 ile 7 arası (toplam 7)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş