Přeskočit na hlavní obsah

ERDDAP Integrace MQTT

ERDDAP nyní zahrnuje podporu protokolu MQTT pro usnadnění požití a oznamování údajů v reálném čase. Tato funkce je napájena otevřeným zdrojem HiveMQ MQTT klient a HiveMQ Community Edition knihovny makléřů.

ERDDAP může využít MQTT dvěma primárními způsoby:

  1. Jako klient MQTT: ERDDAP může přihlásit k tématům existujícího makléře MQTT data a vytvářet data v reálném čase.

  2. Jako MQTT Broker: ERDDAP může hostit vlastního vloženého makléře MQTT, který umožňuje externím klientům zveřejňovat data přímo k němu.


ERDDAP jako MQTT klient

ERDDAP může působit jako MQTT klient, aby se přihlásil k tématům na externí nebo vlastní zabudovaný MQTT broker. Toho je dosaženo pomocí nového EDDTableFromMqtt Typ datového souboru, který funguje podobně jako stávající EDDTableFromHttpGet Soubor dat.

V současné době klientská implementace podporuje pouze Přihlášení na témata.

Nastavení: EDDTableFromMqtt

Konfigurace datového souboru pro přihlášení k makléři MQTT, definovat datový soubor typu EDDTableFromMqtt ve Vašem datasets.xml Složka. Následující konfigurační značky jsou dostupné v rámci <dataset> blok:

<!-- Example configuration for an EDDTableFromMqtt dataset in datasets.xml -->
<dataset type="EDDTableFromMqtt" datasetID="mqtt_realtime_data" active="true">

<!-- The hostname or IP address of the MQTT broker. -->
<serverHost>broker.example.com</serverHost>

<!-- The port number of the MQTT broker. -->
<serverPort>1883</serverPort>

<!-- A unique identifier for this MQTT client. -->
<clientId>erddap-subscriber-1</clientId>

<!-- The username for broker authentication (optional). -->
<username>user</username>

<!-- The password for broker authentication (optional). -->
<password>secret</password>

<!-- A comma-separated list of MQTT topics to subscribe to. -->
<topics>sensor/+/data, another/topic</topics>

<!-- Set to 'true' to use a secure SSL/TLS connection. Default is 'false'. -->
<useSsl>false</useSsl>

<!-- The session expiry interval in seconds. -->
<sessionExpiryInterval>3600</sessionExpiryInterval>

<!-- The connection timeout in seconds. -->
<connectionTimeout>10</connectionTimeout>

<!-- Set to 'true' to enable automatic reconnection. Default is 'true'. -->
<automaticReconnect>true</automaticReconnect>

</dataset>

ERDDAP jako MQTT makléř

ERDDAP může provozovat vložený makléř MQTT, který slouží dvěma hlavním účelům:

  1. Požití dat: Získání dat zveřejněných externími klienty MQTT pro vytváření dat v reálném čase.

  2. Oznámení: Zveřejnit oznámení o změnách datového souboru.

Umožnění vloženému makléři

Vložený makléř MQTT je defaultně zakázán. K tomu přidejte následující vlajku setup.xml :

<!-- Enables the embedded HiveMQ broker. Default is 'false'. --> <enableMqttBroker> pravda </enableMqttBroker>

Konfigurace a datové adresáře makléře

Můžete zadat vlastní adresáře pro konfiguraci makléře a datové soubory v setup.xml . Pokud jsou tyto značky prázdné, ERDDAP použije výchozí adresáře určené knihovnou HiveMQ. Pro pokročilejší údaje o konfiguraci, včetně logování a rozšíření, se prosím obraťte na úředníka HiveMQ Community Edition Wiki .

<!-- The parent directory for all MQTT-related files. -->
<bigParentDirectory>/opt/erddap/mqtt/</bigParentDirectory>

<!-- The path to the embedded MQTT broker's configuration folder. -->
<mqttConfigFolder>/opt/erddap/mqtt/conf/</mqttConfigFolder>

<!-- The path to the embedded MQTT broker's data folder. -->
<mqttDataFolder>/opt/erddap/mqtt/data/</mqttDataFolder>

Použít případ 1: požití dat od MQTT klientů

Pro sestavení souboru v reálném čase pomocí vloženého brokera můžete nakonfigurovat EDDTableFromMqtt Soubor údajů (jak je popsáno výše) v rámci zame ERDDAP instance pro připojení k vlastnímu místnímu makléři . Externí klienti MQTT pak mohou zveřejnit data k tomuto ERDDAP makléř, který EDDTableFromMqtt Databáze se přihlásí a pozře.

Použít případ 2: Publishing Dataset Změna oznámení

ERDDAP lze nakonfigurovat pro zveřejnění oznámení o změnách datového souboru (např. aktualizace nebo opětovné načítání) na téma MQTT makléře. Za prvé, zajistit, že makléř je povolen nebo externí je k dispozici. Poté povolte oznamovací funkci v setup.xml :

<!-- Set to 'true' to publish dataset change notifications via MQTT. Default is 'false'. --> <publishMqttNotif> pravda </publishMqttNotif>

Když je tato funkce povolena, ERDDAP ke zveřejnění zpráv používá interní MQTT klient. Nastavení připojení pro tohoto klienta lze přizpůsobit v setup.xml . Níže uvedená tabulka uvádí dostupná nastavení a jejich výchozí hodnoty.

ZnačkaTypVýchozí hodnotaPopis zboží
<mqttServerHost>řetězeclocalhostHostitel makléře zveřejní oznámení.
<mqttServerPort>int1883Přístav oznamovacího makléře.
<mqttClientId>řetězecerddap- klientID klienta pro vydavatele oznámení.
<mqttUserName>řetězecerddap-usernameUživatelské jméno vydavatele oznámení.
<mqttPassword>řetězecerddap- passwordHeslo pro vydavatele oznámení.
<mqttSsl>booleanfalsePro oznamovací spojení použijte SSL/TLS.
<mqttKeepAlive>int60Udržujte interval v sekundách.
<mqttCleanStart>booleanfalseZačít s čistým sezením (žádný trvalý stav relace) .
<mqttSessionExpiry>int10Čas ukončení session v sekundách.
<mqttConnectionTimeout>int10Timeout spojení za sekundy.
<mqttAutomaticReconnect>booleanpravdaAutomaticky se znovu připojit, pokud je spojení ztraceno.

Prostředí Proměnná Analýza v datasets.xml

Byla zavedena nová funkce, která umožňuje používání proměnných prostředí v rámci datasets.xml . Tohle je standardně zapnuto .

Pro vypnutí této funkce přidejte následující vlajku setup.xml :

xml

<enableEnvParsing> false </enableEnvParsing>