glomus_mqtt_integration
Table of Contents
Glomus MQTT integration
Plan
- Make TLS/SSL work
- current problem: “No subjectAltNames on the certificate match”
- …
Platforms for tests
Kilo
User: kalaschnikow@mail.ru
Pass: kiloYA…“6
- MQTT connector
- Broker URL:
mqtts://mqtt-iot.kiloiot.io:1884
- Topic prefix: iot/8d3bccea-df38-4874-b70a-00c17d6a4e15/95f199fa-ba9c-4dee-9d61-9b656620ef9b
- If device name is “device1”, then topic name is:
- iot/8d3bccea-df38-4874-b70a-00c17d6a4e15/95f199fa-ba9c-4dee-9d61-9b656620ef9b/device1
- Username: mqtt_95f199fa
- Password: wfqY73FTLfzZ3qT9Mdg66guLGWNdV0bY
- Working “MQTT Settings” for MQTTX (as of 08.10.2026)
- MQTT version:
- 5.0
- 3.1 - worked too (?)
- SSL / TLS: true
- Host: mqtt-iot.kiloiot.io
- Port: 1884
- Client ID: device1
- User Name: mqtt_95f199fa
- Password: wfqY73FTLfzZ3qT9Mdg66guLGWNdV0bY
- Topic: iot/8d3bccea-df38-4874-b70a-00c17d6a4e15/95f199fa-ba9c-4dee-9d61-9b656620ef9b/device1
- Data sent:
{"msg": "msg_20260821102105","lat": 49.04223684221506,"lon": 8.722192514687777}
- Working “MQTT Settings” for Glomus app (as of 08.10.2026)
- MQTT version:
- 5.0
- SSL / TLS: true
- Host: mqtt-iot.kiloiot.io
- Port: 1884
- Client ID: device1
- User Name: mqtt_95f199fa
- Password: wfqY73FTLfzZ3qT9Mdg66guLGWNdV0bY
- Topic: iot/8d3bccea-df38-4874-b70a-00c17d6a4e15/95f199fa-ba9c-4dee-9d61-9b656620ef9b/device1
- Data sent:
{"msg": "msg_20260821102105","lat": 49.04223684221506,"lon": 8.722192514687777}
OpenRemote
https://docs.openremote.io/docs/user-guide/domains/fleet-management/
- Working “MQTT Settings” for MQTTX (as of 02.10.2026)
- MQTT version: 3.1
- SSL / TLS: true
- Host: awow2024
- Port: 8883
- Client ID: mqttx_aaf87899
- User Name: master:mqttuser
- Password: h0ZEXtVgEIf0xP1tLDweoU0l6PNuCpFf2GfGpm4rkpabcTdjnHOO174st79s7j1jScPEqsJxZfLk6jSwhAREL1
- Topic: master/mqttx_aaf87899/writeattributevalue/location/5soNjlXan6x0U9i1hL2G6D
- Data sent:
{ "type": "Point", "coordinates": [ 8.72233, 49.042166 ] }
Thinger.io
ThingsBoard
User: blubbsik@gmx.de
Pass: thingsYA…
A small “How To” by RouterOS: https://help.mikrotik.com/docs/spaces/ROS/pages/166920428/GPS-tracking+using+MQTT+and+ThingsBoard
Clients for tests
- MQTTX
- CLI
- UI App
- Ubuntu
- Windows
- …
Certificates / SSL etc
Certificates are in /mnt/sda4/development/_projects/fleet-management/
- myclient.p12
- PKCS#12 keystore
- myclient.pfx
- key in pfx
- myclient.pem
- key in PEM
- myclient.pubkey.pem
- pubkey ?
-
- tool to create / export certificates etc
A forum post (with example code?) that seems to be interesting: https://community.hivemq.com/t/hivemq-client-mtls-is-failing/1548/2
Example code from google:
import com.hivemq.client.mqtt.MqttClient;
import com.hivemq.client.mqtt.mqtt5.Mqtt5BlockingClient;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.TrustManagerFactory;
import java.io.FileInputStream;
import java.io.InputStream;
import java.security.KeyStore;
public class MqttSslExample {
public static void main(String[] args) {
try {
// 1. Pfade und Passwörter definieren
String truststorePath = "pfad/zu/client-truststore.jks";
String truststorePassword = "truststore_passwort";
String keystorePath = "pfad/zu/client-keystore.p12"; // Oft PKCS12 (.p12/.pfx)
String keystorePassword = "keystore_passwort";
// 2. TrustManagerFactory initialisieren (Zertifikat des Brokers validieren)
KeyStore trustStore = KeyStore.getInstance("JKS"); // oder "PKCS12"
try (InputStream tsIn = new FileInputStream(truststorePath)) {
trustStore.load(tsIn, truststorePassword.toCharArray());
}
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);
// 3. KeyManagerFactory initialisieren (Eigenes Client-Zertifikat für mTLS - Optional)
KeyStore keyStore = KeyStore.getInstance("PKCS12");
try (InputStream ksIn = new FileInputStream(keystorePath)) {
keyStore.load(ksIn, keystorePassword.toCharArray());
}
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keystorePassword.toCharArray());
// 4. HiveMQ MQTT Client mit SSL-Konfiguration bauen
Mqtt5BlockingClient client = MqttClient.builder()
.useMqttVersion5()
.serverHost("ihr-secure-broker.de")
.serverPort(8883)
.sslConfig()
.trustManagerFactory(trustManagerFactory) // Broker-Zertifikat prüfen
.keyManagerFactory(keyManagerFactory) // Client-Zertifikat mitsenden (mTLS)
.applySslConfig()
.buildBlocking();
// Client verbinden
client.connect();
System.out.println("Erfolgreich über TLS verbunden!");
client.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Also interesting :
- Security features of HiveMQ - HiveMQ docs
MQTT
- MQTT Essentials by HiveMQ
- very good resource
- https://www.hivemq.com/mqtt/mqtt-security-fundamentals/ MQTT Security Fundamentals - a series by HiveMQ
- …
-
- more info about TLS: https://hpbn.co/transport-layer-security-tls/
- …
MQTT Libraries
- HiveMQ MQTT Client
- Eclipse Paho
- Pros
- …
- Cons
- too old?
- Misc
- Nice article about MQTT and Android etc:
Android GPS Tracking Apps with MQTT support
- OwnTracks
- OwnTracks booklet - information about the app
- open source
- SensorSpot
- an MQTT client, which also sends location (and other sensor data available on Android device)
- open source
glomus_mqtt_integration.txt · Last modified: by kalaschnikow
