Obsah

MQTT

Model „Ústředny“

Abychom pochopili, jak MQTT funguje v systému Mervis, představme si spíše ústřednu než přímý telefonní hovor.

V tradičních systémech si zařízení často „volají“ navzájem přímo. Pokud je jedna strana zaneprázdněná nebo offline, hovor selže. MQTT je jiné. Využívá centrální uzel (Broker), který funguje jako operátor ústředny.

Architektury připojení

Existují dva způsoby připojení, ale kvůli bezpečnosti a jednoduchosti důrazně doporučujeme Embedded Broker.

1. Vestavěný broker v Mervis (Doporučeno)

V tomto režimu je ústředna přímo součástí Mervis Cloudu.

2. Externí broker (Klientský režim)

V tomto režimu používáte vlastní broker třetí strany. Mervis funguje pouze jako další odběratel.

Provozní tok připojení (Embedded)

Pro nastavení zabezpečeného Embedded připojení postupujte takto:

  1. 1. Registrace v Portálu (DataNode):
    • Přihlaste se do portálu Mervis: portal.mervis.info.
    • Vytvořte DataNode pro váš projekt – digitální dvojče v cloudu.
    • Vyberte typ zařízení.
    • Portál vygeneruje DeviceID, uživatelské jméno a heslo.
  1. 2. Konfigurace zařízení:
    • Otevřete webovou administraci zařízení.
    • Adresa brokeru: nastavte na ``mqtt.mervis.info``.
    • Port: použijte zabezpečený port s TLS.
    • Zadejte přihlašovací údaje z portálu.
  1. 3. Mervis Generator:
    • Jakmile je DataNode aktivní, navštivte generator.mervis.info.
    • Automaticky naskenuje vaše DataNodes a vygeneruje SCADA projekt, včetně propojení všech tagů bez ručního zadávání.

Podporované Embedded ovladače

Následující zařízení mají v Mervis dedikované ovladače `EmbeddedBroker`:

Specializované senzory

Datová struktura & Payloady

Analogie s vlakem

Představte si MQTT pakety jako vlak:

I když MQTT je způsob přepravy, „nákladem“ může být cokoliv. Mezi běžné typy patří:

Požadavky na payload

Řešení běžných problémů

Příznak Možná příčina Řešení
Žádné připojení Blokování firewallem Ujistěte se, že síť umožňuje odchozí provoz na mqtt.mervis.info.
Chyba ověření Nesoulad přihlašovacích údajů Zkontrolujte, že ID, uživatelské jméno a heslo v zařízení odpovídají údajům z portálu.
Offline stav Chybí heartbeat Zkontrolujte, že zařízení odesílá „Keep Alive“ každých 60 sekund.
Špatné hodnoty Chybějící škálování Nastavte škálovací faktor (např. /10) ve značkách v Mervis.

Pokročilý přehled: JSON struktury

Pro vývojáře, kteří ručně integrují zařízení Wago nebo Weintek, použijte následující vzorové payloady.

Podporované formáty

Formát kompatibilní s Wago

Registrace dostupných proměnných

Příklad

{
	"FormatId": "TagConfiguration",
	"ApiVersion": 1,
	"Complete": true,
	"Collections": [{
		"Id": 1,
		"CollectionName": "Building 1",
		"SampleRate": 60000,
		"PublishInterval": 60000,
		"TagData": [{
			"Tag": "Temperature1",
			"Unit": "ºC",
			"ValueType": "real"
		},
		{
			"Tag": "Humidity",
			"Unit": "%",
			"ValueType": "word"
		}]
	},
	{
		"Id": 2,
		"CollectionName": "Building 2",
		"SampleRate": 120000,
		"PublishInterval": 240000,
		"TagData": [{
			"Tag": "Water flow",
			"Unit": "m3/h",
			"ValueType": "byte"
		},
		{
			"Tag": "Current phase L1",
			"Unit": "A",
			"ValueType": "lreal"
		}]
	}]
}

Hodnoty proměnných

Příklad

{
	"FormatId": "TagValues",
	"ApiVersion": 1,
	"CollectionId": 1,
	"TagData": [{
		"Time": "2018-03-27T17:19:23.720+02:00",
		"Values": {
			"Temperature1": 15.52,
			"Humidity": 21
		}
	}]
}

Formát kompatibilní s Weintek

Hodnoty proměnných

Příklad

{
    "d" : {
        "name:MyHomeTemperature, type:generic_sint64, unit:°C" : [ 0 ],
        "number C" : [ 0 ],
        "Bit" : [ false ],
        "My array" : [ 0, 10, 20 ]
    },
    "ts" : "2020-08-27T07:10:24.360316"
}

Registrace příkazů

{
    "d" : {
        "id:change_temperature, name:change temperature in house ,params:[{name: temperature, type:generic_float64, unit:°C}, {name: date, type:generic_datetime, unit:UTC}]" : false
    },
    "ts" : "2020-08-27T07:10:11.356013"
}

choose/create $deviceId/mervis/cmd_reg/ nastavte obecnou záložku dle screenshotu přidejte příkazy

Naše podporované typy

Vytvoření odběrového topicu pro spuštění příkazu