Cihazım telemetri verilerini hangi MQTT konusuna yayınlamalı?
Yapay zekâ tarafından English dilinden çevrildi ·
Küçük bir ESP32 sensörüm var ve MQTT üzerinden sıcaklık ve nem verilerini Hermetry’ye göndermek istiyorum. Hangi broker adresini, kimlik bilgilerini ve konuyu kullanmalıyım ve JSON yükü nasıl görünüyor?
I have a small ESP32 sensor and want to send temperature and humidity to Hermetry over MQTT. Which broker address, credentials and topic do I use, and what does the JSON payload look like?
Yapay zekâ tarafından English dilinden çevrildi ·
Bağlantı
- Host: cihazın Connection details kartında gösterilen broker host adresini kullanın. Bu adresi REST API üzerinden de okuyabilirsiniz:
GET /api/iot/devices/{deviceId}/connectionçağrısı MQTT host ve port bilgisini, HTTPS temel adresini ve topic’leri döndürür. - Port:
8883(TLS) kullanın.- Düz
1883portu yalnızca cihaz profilinde Plain MQTT etkinleştirilmişse çalışır. - Bu ayar varsayılan olarak kapalıdır; birisi etkinleştirmedikçe 1883 üzerinden yapılan giriş reddedilir.
- Düz
- Protokol: MQTT 3.1.1. MQTT 5 CONNECT isteği CONNACK 1 ile reddedilir.
- Oturum ayarları: clean session = true gönderin ve MQTT keepalive kullanın.
- TLS:
- En düşük TLS 1.2, tercihen 1.3.
- SNI gereklidir, bu yüzden IP adresi yerine host adıyla bağlanın.
- Sunucu sertifikasını normal CA paketinize ve host adına göre doğrulayın.
- ESP32 gibi küçük cihazlar 4 KB TLS kayıtları isteyebilir (
max_fragment_length).
Kimlik bilgileri (erişim belirteci, varsayılan giriş)
- Client ID: geçerli herhangi bir ID:
A–Z a–z 0–9 . _ : -karakterlerinden oluşan 1–64 karakter - Username: cihazın erişim belirteci
- Password: boş
Kullanıcı adı olmadan yapılan CONNECT isteği reddedilir. Cihaz POST /api/iot/devices ile oluşturulduğunda erişim belirteci yalnızca bir kez döndürülür, bu yüzden o anda saklayın.TopicTelemetriyi v1/telemetry topic’ine yayınlayın. v1/ altında bilinen bir topic olmayan diğer her şey reddedilir. Bir dakika içinde üç reddedilen topic oturumu kapatır.PayloadBu biçimlerin herhangi biri çalışır:
- Düz bir nesne:
{"temperature": 21.5, "humidity": 40}
- Milisaniye cinsinden zaman damgası içeren bir nesne:
{"ts": 1759572000000, "values": {"temperature": 21.5, "humidity": 40}}
- Yukarıdaki biçimlerden birinin dizisi.
Bağlantı reddedilirse
- 4 (hatalı kullanıcı adı veya parola): En az 5 dakika bekleyin
- 5 (yetkisiz): Uzun bekleme programını uygulayın
5 kodunun arkasındaki neden cihaza gönderilmez. Cihazın Log kaydına yazılır.Kaynaklar
Connection
- Host: use the broker host shown on the device's Connection details card. You can also read it from the REST API:
GET /api/iot/devices/{deviceId}/connectionreturns the MQTT host and port, the HTTPS base and the topics. - Port: use
8883(TLS).- Plain port
1883works only if the device profile turns on Plain MQTT. - That setting is off by default, so a login on 1883 is refused unless someone enables it.
- Plain port
- Protocol: MQTT 3.1.1. An MQTT 5 CONNECT is refused with CONNACK 1.
- Session settings: send clean session = true and use MQTT keepalive.
- TLS:
- TLS 1.2 minimum, 1.3 preferred.
- SNI is required, so connect by host name, not by IP address.
- Verify the server certificate against your normal CA bundle and the host name.
- Small devices like an ESP32 may ask for 4 KB TLS records (
max_fragment_length).
Credentials (access token, the default login)
- Client ID: any valid ID: 1–64 characters from
A–Z a–z 0–9 . _ : - - Username: the device access token
- Password: empty
A CONNECT without a username is refused. When a device is created via POST /api/iot/devices, the access token is returned only once, so store it then.
Topic
Publish telemetry to v1/telemetry. Anything else under v1/ that isn't a known topic is rejected. Three rejected topics in a minute close the session.
Payload
Any of these forms works:
- A flat object:
{"temperature": 21.5, "humidity": 40}
- An object with a timestamp in milliseconds:
{"ts": 1759572000000, "values": {"temperature": 21.5, "humidity": 40}}
- An array of either form.
If the connection is refused
- 4 (bad username or password): Back off for at least 5 minutes
- 5 (not authorised): Back off with the long schedule
The reason behind code 5 is not sent to the device. It is written to the device's Log.
Sources
Belgelerden ve çözülmüş konulardan YZ tarafından yazıldı. Sorununuzu çözdüyse çözüm olarak işaretleyin; çözmediyse ekip sizinle ilgilenecek.
- 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.

