E’ disponibile per libero utilizzo il server mqtt.iz3mez.it, un collettore MQTT di messaggi organizzati e suddivisi per specifici topic, dal traffico APRS, ultimi ascolti DMR delle rete BrandMeister, Spot dai server DX Cluster, Reverse Beacon Network CW/FT8, rilevamento dei fulmini, stazioni meteo, SDR.
L’idea nasce dall’esigenza di avere a disposizione un protocollo altamente flessibile e adattabile per ogni esigenza JSON: dal progetto con Arduino, ESP32, STM32, fino alle integrazioni con Bot Telegram, applicazioni software, web con Python, PHP… e tanto altro ancora.
Per tale fine ho creato un bridge MQTT server in continuo sviluppo che si riassume in questa immagine:
Un breve accenno:
MQTT (inizialmente un acronimo di MQ Telemetry Transport) è un protocollo di rete leggero basato sul modello pubblica/sottoscrivi. È stato progettato per connessioni con posizioni remote che dispongono di dispositivi con vincoli di risorse o larghezza di banda di rete limitata, come nell’Internet of Things (IoT). Deve essere eseguito su un protocollo di trasporto che fornisce connessioni ordinate, senza perdite e bidirezionali, tipicamente TCP/IP, ma anche eventualmente su QUIC .
È uno standard OASIS aperto e una raccomandazione ISO (ISO/IEC 20922).
Alcune delle sue caratteristiche chiave includono:
- Leggerezza: MQTT è progettato per essere efficiente in termini di larghezza di banda e consumo energetico, rendendolo adatto per dispositivi con risorse limitate.
- Modello di pubblica/sottoscrivi: MQTT utilizza il modello di comunicazione pubblica/sottoscrivi, in cui i client pubblicano messaggi su argomenti specifici e altri client si sottoscrivono a tali argomenti per ricevere i messaggi.
- Affidabilità: MQTT offre affidabilità di consegna dei messaggi, garantendo che i messaggi vengano consegnati al destinatario.
- Qualità del servizio (QoS): MQTT supporta tre livelli di QoS per la consegna dei messaggi: QoS 0 (al più una volta), QoS 1 (almeno una volta) e QoS 2 (esattamente una volta).
- Messaggi conservati (Retained Messages): MQTT consente di mantenere l’ultimo messaggio pubblicato su un argomento, in modo che i nuovi sottoscrittori ricevano immediatamente l’ultimo stato.
- Sessioni persistenti: MQTT supporta sessioni persistenti, consentendo ai client di riprendere la comunicazione da dove si era interrotta anche dopo la disconnessione.
Premessa una descrizione sommaria, invito ad approfondire consultando il sito https://mqtt.org
Di seguito l’indirizzo del server e topic sottoscrivibili in modalità read-only.
Server (IPv4): mqtt.iz3mez.it |
Porta: 1883 |
Encryption (TLS): No |
Autenticazione: Nessuna |
APRS (Automatic Packet Reporting System)
Topic | Esempio |
aprs/message/# | {“ssid”: “CALL-9”, “message”: “PicoAPRS Check Update Version019”} |
aprs/object/# | {“ssid”: “CALL-8”, “comment”: “T114.8 Lnkd LAR, CYS, BFF”, “lat”: XX.XXXXXX, “lon”: XXX.XXXXXX, “course”: 0, “speed”: 0} |
aprs/position/# | { “ssid”: “CALL-2”, “comment”: “BM2222 DMR Repeater – MMDVM MMDVM HS Hat 431.5000/431.5000 CC1”, “lat”: XX.X, “lon”: XX.X, “course”: 0, “speed”: 0 } |
aprs/raw/# | CALL-9>APRS,qAR,CALL:,PgmiN>/”5m}439.200MHz 73! |
aprs/telemetry-message/# | { “ssid”: “EL-CALL”, “telemetry-message”: “[‘RX Erlang’, ‘TX Erlang’, ‘RXcount/10m’, ‘TXcount/10m’, ‘none1’, ‘STxxxxxx’, ‘logic’, ”, ”, ”, ”, ”, ”]” } |
aprs/weather/# | {“ssid”: “CALL-13”, “lat”: XX.XXXXXX, “lon”: XXX.XXXXX, “humidity”: 63, “pressure”: 995.9, “rain_1h”: 0.0, “rain_24h”: 0.0, “temperature”: 13.33, “wind_direction”: 0, “wind_gust”: 2.2352, “wind_speed”: 0} |
DMR Last Heard BrandMeister
Topic | Esempio |
dmr/bmlh/# | {“LinkName”: “MMDVM Host”, “SessionID”: “2c6f8dae-29e3-4048-8683-9c145929aa68”, “ContextID”: 1234567, “Slot”: 0, “SourceID”: 1234567, “DestinationID”: 222, “LinkCall”: “LINKCALL”, “SourceCall”: “CALL”, “SourceName”: “Name”, “DestinationCall”: “”, “DestinationName”: “Bridge”, “Start”: 1710079123, “Stop”: 1710079128, “RSSI”: 0, “BER”: 0, “LinkTypeName”: “Repeater”, “Master”: 2222, “TalkerAlias”: “CALL Name”} |
dmr/bmlh2/# | Topic di backup, payload “none” non presenti
{“LinkName”: “MMDVM Host”, “SessionID”: “d6d6196b-72c4-40ed-ab11-882a5ee2bf9b”, “ContextID”: 1234567, “Slot”: 0, “SourceID”: 1234567, “DestinationID”: 222, “LinkCall”: “none“, “SourceCall”: “CALL”, “SourceName”: “Name”, “DestinationCall”: “none“, “DestinationName”: “none“, “Start”: 1710080328, “Stop”: 1710080376, “RSSI”: 0.0, “BER”: 0, “LinkTypeName”: “none“, “Master”: “none“, “TalkerAlias”: “none“} |
DX Cluster
Topic | Esempio |
dxc/ls/# | {“spot_datetime_utc”: “10/03/2024 14:19:36”, “spot_time”: “1419Z”, “band”: “10”, “frequency”: “28375.0”, “spotted”: “CALL”, “spotted_dxcc”: “XX”, “spotted_country”: “ITALY”, “spotted_continent”: “EU”, “spotter”: “CALL2”, “spotter_dxcc”: “XX”, “spotter_country”: “ITALY”, “spotter_continent”: “NA”, “spotter_comment”: “Yota”} |
RBN
Topic | Esempio |
rbn/cw/# | {“dx_de”: “CALL”, “frequency”: 14061.0, “band”: “20”, “spotted”: “CALL2”, “mode”: “CW”, “db”: “37”, “wpm”: “25”, “type”: “CQ”, “timez”: “1313Z”} |
rbn/ft8/# | {“dx_de”: “CALL”, “frequency”: 21074.0, “band”: “15”, “spotted”: “CALL2”, “mode”: “FT8”, “db”: “-13”, “locator”: “JN59”, “type”: “CQ”, “timez”: “1314Z”} |
Rilevamento Fulmini
Topic | Esempio |
lightning/lr/# | {“ts”: 1963742400000, “lat”: XX.XXXXXX, “lon”: XXX.XXXXXX, “time”: 1963742400, “wwloc”: “AA00aa”} |
⚠️ Suggerimento: sottoscrivete solo i topic necessari.
Un software per la connessione è MQTT Explorer: github.com/thomasnordquist/MQTT-Explorer
Altro software da provare è MQTTX: github.com/emqx/MQTTX
73
Francesco, iz3mez