Traducido del English por IA ·
Sí. Ese blog es para un broker en su propia red doméstica, por eso tiene una dirección 192.168. Para Hermetry no debe usar ninguna IP: conéctese por el nombre de host de la tarjeta Connection details, TLS en el 8883. TLS necesita el nombre (SNI), así que la IP del ping falla, y el 1883 sin cifrar se rechaza a menos que el perfil permita MQTT sin cifrar, lo cual no ocurre por defecto. rc=5 significa «not authorised» y la razón real aparece en la pestaña Log del dispositivo, vale la pena revisarla.
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)
Con paho 2.x necesitas en su lugar mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="reefer-01").
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.

