Yapay zekâ tarafından English dilinden çevrildi ·
Evet. O blog, kendi ev ağınızdaki bir broker için hazırlanmış, bu yüzden 192.168 adresi var. Hermetry için hiç IP kullanmanız gerekmiyor: Connection details kartındaki host adıyla, 8883 portunda TLS üzerinden bağlanın. TLS ad bilgisini (SNI) gerektirir, bu yüzden ping attığınız IP başarısız olur; düz 1883 ise profil düz MQTT’ye izin vermediği sürece reddedilir, varsayılan olarak da izin vermez. rc=5 “not authorised” (yetkisiz) anlamına gelir; asıl neden cihazın Log sekmesinde yer alıyor, bir bakmaya değer.
import ssl, json, paho.mqtt.client as mqtt
HOST = "<host from Connection details>"
TOKEN = "<access token>"
c = mqtt.Client(client_id="reefer-01")
c.username_pw_set(TOKEN) # token as username, no password
c.tls_set(cert_reqs=ssl.CERT_REQUIRED) # normal public CA bundle
c.connect(HOST, 8883, keepalive=60)
c.loop_start()
c.publish("v1/telemetry", json.dumps({"temperature": -18.2}), qos=1)
paho 2.x ile bunun yerine mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="reefer-01") kullanmanız gerekir.
Yes. That blog is for a broker on your own home network, that’s why it has a 192.168 address. For Hermetry there’s no IP you should use at all: connect by the host name from the Connection details card, TLS on 8883. TLS needs the name (SNI), so the pinged IP fails, and plain 1883 is refused unless the profile allows plain MQTT, which it doesn’t by default. rc=5 is “not authorised”, and the actual reason ends up on the device’s Log tab, worth a look.
import ssl, json, paho.mqtt.client as mqtt
HOST = "<host from Connection details>"
TOKEN = "<access token>"
c = mqtt.Client(client_id="reefer-01")
c.username_pw_set(TOKEN) # token as username, no password
c.tls_set(cert_reqs=ssl.CERT_REQUIRED) # normal public CA bundle
c.connect(HOST, 8883, keepalive=60)
c.loop_start()
c.publish("v1/telemetry", json.dumps({"temperature": -18.2}), qos=1)
With paho 2.x you need mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="reefer-01") instead.

