Files
OpenMQTTGateway/use/gateway.html
1technophile 065b372c11 deploy: caea021ca9
deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 382fa5e9f2

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: 226297ba5b

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: e495b61216

deploy: 32174e37a5

deploy: 6e6b54b05e

deploy: 6e6b54b05e

deploy: 51bdc2d080

deploy: 5add388fbc

deploy: 5add388fbc

deploy: 5add388fbc

deploy: 5add388fbc

deploy: 75b3a3657e

deploy: b6de1042d565063836d6c257e9ef0255b5628fd6

deploy: 6d1b7935c4

deploy: 6d1b7935c4

deploy: ddb9cc67cc

deploy: ddb9cc67cc

deploy: ddb9cc67cc

deploy: 2d29ee4524

deploy: a0d5b7d181

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: b6de1042d565063836d6c257e9ef0255b5628fd6

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 27a6ec592b

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: 162a4d3ae9

deploy: f634f1f204

deploy: f634f1f204

deploy: f634f1f204

deploy: f634f1f204

deploy: f634f1f204

deploy: f634f1f204

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: 9b6e835afb

deploy: a4ba937553

deploy: 8085f6bf16

deploy: 828f0a226e

deploy: 828f0a226e

deploy: 9a0615e740b037e1d53ff9b149616825140f9869

deploy: 828f0a226e

deploy: 301b3eecd8

deploy: 6175e03bc8

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 585df9a420

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: 6e77efb11b

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: bb135aa0bf

deploy: 037ee88528

deploy: 037ee88528

deploy: 037ee88528

deploy: 037ee88528

deploy: 037ee88528

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 08118d0d8925b6eda4bab1c31c0f427810084250

deploy: e719bbc27650a18d49bd054defe1aeb7ac3e12a3

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: 7f542c8347

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: e2ada763ec

deploy: d03795d0bf

deploy: d03795d0bf

deploy: d03795d0bf

deploy: 4bf43f5695

deploy: 4bf43f5695

deploy: 4bf43f5695

deploy: 4bf43f5695

deploy: 4bf43f5695

deploy: 4bf43f5695

deploy: 4bf43f5695

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: cd35520bb0

deploy: 1990b8cd9f4b289bc858149d0f71b592ddc4298d

deploy: cd35520bb0

deploy: 471348d906

deploy: bead01347e

deploy: d8c0f0f9c5

deploy: 4d6e7f4afa

deploy: 4d6e7f4afa

deploy: 4d6e7f4afa

deploy: 4d6e7f4afa

deploy: 5e1860abd9

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 3db54b4266

deploy: 7fa00dd593

deploy: 7fa00dd593

deploy: 7fa00dd593

deploy: 7fa00dd593

deploy: 1b50c8ec02

deploy: 1b50c8ec02

deploy: 1b50c8ec02

deploy: 1b50c8ec02

deploy: 81eb8b5a77e63d369432b61fdd0d5e50a2b0c5fe

deploy: 1b50c8ec02

deploy: 1b50c8ec02

deploy: 1b50c8ec02

deploy: 1b50c8ec02

deploy: 81eb8b5a77e63d369432b61fdd0d5e50a2b0c5fe

deploy: 2cce06ed4e

deploy: 81eb8b5a77e63d369432b61fdd0d5e50a2b0c5fe

deploy: 2cce06ed4e

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 9bb7751b8d

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: 1f45a7711b

deploy: b5adf1f5ac

deploy: b5adf1f5ac

deploy: 18cfbb759a

deploy: bb05011bdc

deploy: 87228b5f29

deploy: e2641f49e7

deploy: e2641f49e7

deploy: e2641f49e7

deploy: ba9506c022

deploy: ba9506c022

deploy: ba9506c022

deploy: ba9506c022

deploy: 67e50642dd

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 67e50642dd

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 67e50642dd

deploy: 9be4f6f7981b53fe339ab1fad3f58db5715fb234

deploy: 3b18f0020fe3711ff65da1498772147697039110

deploy: 952a65dd0f

deploy: 3b18f0020fe3711ff65da1498772147697039110

deploy: 3b18f0020fe3711ff65da1498772147697039110

deploy: 7f7576ee87058b3a09d7e0cb428309a2ed9a81d5

deploy: f86d89db85

deploy: f86d89db85

deploy: f86d89db85

deploy: f86d89db85

deploy: f86d89db85

deploy: f86d89db85

deploy: f86d89db85

deploy: f86d89db85

deploy: 3b3fe3eabe

deploy: 3b3fe3eabe

deploy: 258e3b3f6a

deploy: 258e3b3f6a

deploy: 258e3b3f6a

deploy: 258e3b3f6a

deploy: 258e3b3f6a

deploy: 4f26d39b93

deploy: 4f26d39b93

deploy: c98ac731b4

deploy: c98ac731b4

deploy: 4e090eda3c

deploy: fcc09df02c

deploy: e390aca43b

deploy: 3187ed6154

deploy: 3187ed6154

deploy: 3187ed6154

deploy: 3187ed6154

deploy: 3187ed6154

deploy: a89ff43900

deploy: 6fa725d633

deploy: 0d338cc5c5

deploy: 0d338cc5c5

deploy: 0d338cc5c5

deploy: 0d338cc5c5

deploy: 0b4c6ef107

deploy: 0b4c6ef107

deploy: 0b4c6ef107

deploy: ed0b683754

deploy: ed0b683754

deploy: ed0b683754

deploy: ed0b683754

deploy: 5d6f735058

deploy: 5d6f735058

deploy: 5d6f735058
2025-10-07 07:01:22 -05:00

235 lines
51 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>System commands (ESP only) | Theengs OpenMQTTGateway v1.8.1</title>
<meta name="generator" content="VuePress 1.9.10">
<link rel="apple-touch-icon" sizes="180x180" href=".apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/icons/safari-pinned-tab.svg" color="#3eaf7c">
<script type="module" src="https://unpkg.com/esp-web-tools@9.4.3/dist/web/install-button.js?module"></script>
<meta name="description" content="One gateway, many technologies: MQTT gateway for ESP8266 or ESP32 with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, LoRa, beacons detection, mi flora / mi jia / LYWSD02/ Mi Scale compatibility, SMS &amp; LORA.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#3eaf7c">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="msapplication-TileImage" content="/favicon-144x144.png">
<meta name="msapplication-TileColor" content="#000000">
<link rel="preload" href="/assets/css/0.styles.d60bac15.css" as="style"><link rel="preload" href="/assets/js/app.7105f145.js" as="script"><link rel="preload" href="/assets/js/2.1486a66d.js" as="script"><link rel="preload" href="/assets/js/1.4ad45915.js" as="script"><link rel="preload" href="/assets/js/45.a9dadc66.js" as="script"><link rel="prefetch" href="/assets/js/10.f28d2cae.js"><link rel="prefetch" href="/assets/js/100.53b852b8.js"><link rel="prefetch" href="/assets/js/101.4244edd6.js"><link rel="prefetch" href="/assets/js/102.56afbd65.js"><link rel="prefetch" href="/assets/js/103.fe8a4389.js"><link rel="prefetch" href="/assets/js/104.e3dfe83c.js"><link rel="prefetch" href="/assets/js/105.05b1f092.js"><link rel="prefetch" href="/assets/js/106.d0d1bfce.js"><link rel="prefetch" href="/assets/js/107.e18a51ed.js"><link rel="prefetch" href="/assets/js/108.f68bc055.js"><link rel="prefetch" href="/assets/js/109.d09a8d95.js"><link rel="prefetch" href="/assets/js/11.a0e96e5a.js"><link rel="prefetch" href="/assets/js/110.1ec8c36a.js"><link rel="prefetch" href="/assets/js/111.ba658c78.js"><link rel="prefetch" href="/assets/js/112.16171560.js"><link rel="prefetch" href="/assets/js/113.70d2e220.js"><link rel="prefetch" href="/assets/js/114.cb1e0ba3.js"><link rel="prefetch" href="/assets/js/115.61bf1e40.js"><link rel="prefetch" href="/assets/js/116.1f65efd0.js"><link rel="prefetch" href="/assets/js/117.bc7fe2e6.js"><link rel="prefetch" href="/assets/js/118.1eb4241a.js"><link rel="prefetch" href="/assets/js/119.bf950c8c.js"><link rel="prefetch" href="/assets/js/12.3d501858.js"><link rel="prefetch" href="/assets/js/120.08a91723.js"><link rel="prefetch" href="/assets/js/121.3f423747.js"><link rel="prefetch" href="/assets/js/122.0e6fbf9d.js"><link rel="prefetch" href="/assets/js/123.5794911a.js"><link rel="prefetch" href="/assets/js/124.e10bc61c.js"><link rel="prefetch" href="/assets/js/125.45a7d3a4.js"><link rel="prefetch" href="/assets/js/126.e96d2fb7.js"><link rel="prefetch" href="/assets/js/127.fb67bb05.js"><link rel="prefetch" href="/assets/js/128.92d24328.js"><link rel="prefetch" href="/assets/js/129.e078cf95.js"><link rel="prefetch" href="/assets/js/13.aa7cc538.js"><link rel="prefetch" href="/assets/js/130.462e333b.js"><link rel="prefetch" href="/assets/js/131.d357026c.js"><link rel="prefetch" href="/assets/js/132.3d8685c4.js"><link rel="prefetch" href="/assets/js/133.c759fcb7.js"><link rel="prefetch" href="/assets/js/134.b07eb44d.js"><link rel="prefetch" href="/assets/js/135.6e41d539.js"><link rel="prefetch" href="/assets/js/136.63699a98.js"><link rel="prefetch" href="/assets/js/137.4a367201.js"><link rel="prefetch" href="/assets/js/138.0ec581d6.js"><link rel="prefetch" href="/assets/js/139.d616347a.js"><link rel="prefetch" href="/assets/js/14.d4097d38.js"><link rel="prefetch" href="/assets/js/140.b1657685.js"><link rel="prefetch" href="/assets/js/141.94c44889.js"><link rel="prefetch" href="/assets/js/142.fba21ce0.js"><link rel="prefetch" href="/assets/js/15.0dfffdbd.js"><link rel="prefetch" href="/assets/js/16.bcd0ee76.js"><link rel="prefetch" href="/assets/js/17.c62583a8.js"><link rel="prefetch" href="/assets/js/18.9e31d1bc.js"><link rel="prefetch" href="/assets/js/19.7c603986.js"><link rel="prefetch" href="/assets/js/20.b2e40f1b.js"><link rel="prefetch" href="/assets/js/21.665b21da.js"><link rel="prefetch" href="/assets/js/22.1fa11360.js"><link rel="prefetch" href="/assets/js/23.d5ff69ee.js"><link rel="prefetch" href="/assets/js/24.63ed5834.js"><link rel="prefetch" href="/assets/js/25.3cdd6711.js"><link rel="prefetch" href="/assets/js/26.a1bfb6b4.js"><link rel="prefetch" href="/assets/js/27.0341bff6.js"><link rel="prefetch" href="/assets/js/28.876af64b.js"><link rel="prefetch" href="/assets/js/29.5cc5bfcd.js"><link rel="prefetch" href="/assets/js/3.2fb8cc22.js"><link rel="prefetch" href="/assets/js/30.528387fc.js"><link rel="prefetch" href="/assets/js/31.7ec0b927.js"><link rel="prefetch" href="/assets/js/32.bf6ed2d3.js"><link rel="prefetch" href="/assets/js/33.e428d526.js"><link rel="prefetch" href="/assets/js/34.c87f68f5.js"><link rel="prefetch" href="/assets/js/35.db47fb85.js"><link rel="prefetch" href="/assets/js/36.7e7f03db.js"><link rel="prefetch" href="/assets/js/37.b5b3d5f5.js"><link rel="prefetch" href="/assets/js/38.a49da124.js"><link rel="prefetch" href="/assets/js/39.960cbce6.js"><link rel="prefetch" href="/assets/js/4.2a2fed8f.js"><link rel="prefetch" href="/assets/js/40.355436d7.js"><link rel="prefetch" href="/assets/js/41.c56bed06.js"><link rel="prefetch" href="/assets/js/42.22a6564e.js"><link rel="prefetch" href="/assets/js/43.00015e95.js"><link rel="prefetch" href="/assets/js/44.8a366437.js"><link rel="prefetch" href="/assets/js/46.f46fc3e0.js"><link rel="prefetch" href="/assets/js/47.473e57e3.js"><link rel="prefetch" href="/assets/js/48.fbb11cfa.js"><link rel="prefetch" href="/assets/js/49.643a39ea.js"><link rel="prefetch" href="/assets/js/5.e28032c6.js"><link rel="prefetch" href="/assets/js/50.fba259e5.js"><link rel="prefetch" href="/assets/js/51.070a330b.js"><link rel="prefetch" href="/assets/js/52.f7daa8c4.js"><link rel="prefetch" href="/assets/js/53.f5436453.js"><link rel="prefetch" href="/assets/js/54.fc373c60.js"><link rel="prefetch" href="/assets/js/55.a6e0e050.js"><link rel="prefetch" href="/assets/js/56.23aa37ff.js"><link rel="prefetch" href="/assets/js/57.d9dc58a1.js"><link rel="prefetch" href="/assets/js/58.0b95d274.js"><link rel="prefetch" href="/assets/js/59.22c071fb.js"><link rel="prefetch" href="/assets/js/6.641c06fe.js"><link rel="prefetch" href="/assets/js/60.762e478b.js"><link rel="prefetch" href="/assets/js/61.d169d163.js"><link rel="prefetch" href="/assets/js/62.bdc7d66c.js"><link rel="prefetch" href="/assets/js/63.c51eb86b.js"><link rel="prefetch" href="/assets/js/64.f37e695b.js"><link rel="prefetch" href="/assets/js/65.a66f4b0d.js"><link rel="prefetch" href="/assets/js/66.ed9c13f9.js"><link rel="prefetch" href="/assets/js/67.c453212c.js"><link rel="prefetch" href="/assets/js/68.2cbe0673.js"><link rel="prefetch" href="/assets/js/69.48e7a551.js"><link rel="prefetch" href="/assets/js/7.dafeb66f.js"><link rel="prefetch" href="/assets/js/70.183092c4.js"><link rel="prefetch" href="/assets/js/71.ac92f389.js"><link rel="prefetch" href="/assets/js/72.5837a359.js"><link rel="prefetch" href="/assets/js/73.acbbe34f.js"><link rel="prefetch" href="/assets/js/74.6bd74a28.js"><link rel="prefetch" href="/assets/js/75.8df71348.js"><link rel="prefetch" href="/assets/js/76.8bc62af5.js"><link rel="prefetch" href="/assets/js/77.de5a3135.js"><link rel="prefetch" href="/assets/js/78.41cb6cd0.js"><link rel="prefetch" href="/assets/js/79.aa1247db.js"><link rel="prefetch" href="/assets/js/80.ba98eec9.js"><link rel="prefetch" href="/assets/js/81.94484817.js"><link rel="prefetch" href="/assets/js/82.66164822.js"><link rel="prefetch" href="/assets/js/83.87f9902c.js"><link rel="prefetch" href="/assets/js/84.2944769a.js"><link rel="prefetch" href="/assets/js/85.57ca1abf.js"><link rel="prefetch" href="/assets/js/86.983b9dac.js"><link rel="prefetch" href="/assets/js/87.fbdb4ebe.js"><link rel="prefetch" href="/assets/js/88.e8482d50.js"><link rel="prefetch" href="/assets/js/89.67dfd670.js"><link rel="prefetch" href="/assets/js/90.53fba60f.js"><link rel="prefetch" href="/assets/js/91.dc2e9665.js"><link rel="prefetch" href="/assets/js/92.9adbbdb6.js"><link rel="prefetch" href="/assets/js/93.1df335f2.js"><link rel="prefetch" href="/assets/js/94.7d7f8314.js"><link rel="prefetch" href="/assets/js/95.180e554f.js"><link rel="prefetch" href="/assets/js/96.b68a80c6.js"><link rel="prefetch" href="/assets/js/97.b4bbd028.js"><link rel="prefetch" href="/assets/js/98.e0fc5a9e.js"><link rel="prefetch" href="/assets/js/99.530d2f40.js"><link rel="prefetch" href="/assets/js/vendors~docsearch.fc117b08.js">
<link rel="stylesheet" href="/assets/css/0.styles.d60bac15.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Theengs OpenMQTTGateway v1.8.1</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.theengs.io" target="_self" class="nav-link external">
Home
<!----></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Use cases" class="dropdown-title"><span class="title">Use cases</span> <span class="arrow down"></span></button> <button type="button" aria-label="Use cases" class="mobile-dropdown-title"><span class="title">Use cases</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/smarthome.html" target="_self" class="nav-link external">
Smart Home
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/iot.html" target="_self" class="nav-link external">
IoT
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/research.html" target="_self" class="nav-link external">
Research
<!----></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Solutions" class="dropdown-title"><span class="title">Solutions</span> <span class="arrow down"></span></button> <button type="button" aria-label="Solutions" class="mobile-dropdown-title"><span class="title">Solutions</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
Hardware
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_self" class="nav-link external">
Theengs Plug
<!----></a></li><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_self" class="nav-link external">
Theengs Bridge
<!----></a></li></ul></li><li class="dropdown-item"><h4>
Software
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://app.theengs.io" target="_self" class="nav-link external">
Mobile App
<!----></a></li><li class="dropdown-subitem"><a href="https://docs.openmqttgateway.com" target="_self" class="nav-link external">
OpenMQTTGateway
<!----></a></li><li class="dropdown-subitem"><a href="https://gateway.theengs.io" target="_self" class="nav-link external">
Gateway
<!----></a></li></ul></li><li class="dropdown-item"><h4>
Core
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://decoder.theengs.io" target="_self" class="nav-link external">
Decoder
<!----></a></li><li class="dropdown-subitem"><a href="https://parser.theengs.io" target="_self" class="nav-link external">
Web Parser
<!----></a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://decoder.theengs.io/devices/devices.html" target="_self" class="nav-link external">
Compatible devices
<!----></a></div><div class="nav-item"><a href="https://community.openmqttgateway.com" target="_self" class="nav-link external">
Community
<!----></a></div><div class="nav-item"><a href="https://shop.theengs.io/" target="_self" class="nav-link external">
Shop
<!----></a></div><div class="nav-item"><a href="https://github.com/sponsors/theengs" target="_self" class="nav-link external">
Sponsor 🤍
<!----></a></div> <a href="https://github.com/1technophile/OpenMQTTGateway" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="https://www.theengs.io" target="_self" class="nav-link external">
Home
<!----></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Use cases" class="dropdown-title"><span class="title">Use cases</span> <span class="arrow down"></span></button> <button type="button" aria-label="Use cases" class="mobile-dropdown-title"><span class="title">Use cases</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/smarthome.html" target="_self" class="nav-link external">
Smart Home
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/iot.html" target="_self" class="nav-link external">
IoT
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/research.html" target="_self" class="nav-link external">
Research
<!----></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Solutions" class="dropdown-title"><span class="title">Solutions</span> <span class="arrow down"></span></button> <button type="button" aria-label="Solutions" class="mobile-dropdown-title"><span class="title">Solutions</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
Hardware
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_self" class="nav-link external">
Theengs Plug
<!----></a></li><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_self" class="nav-link external">
Theengs Bridge
<!----></a></li></ul></li><li class="dropdown-item"><h4>
Software
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://app.theengs.io" target="_self" class="nav-link external">
Mobile App
<!----></a></li><li class="dropdown-subitem"><a href="https://docs.openmqttgateway.com" target="_self" class="nav-link external">
OpenMQTTGateway
<!----></a></li><li class="dropdown-subitem"><a href="https://gateway.theengs.io" target="_self" class="nav-link external">
Gateway
<!----></a></li></ul></li><li class="dropdown-item"><h4>
Core
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://decoder.theengs.io" target="_self" class="nav-link external">
Decoder
<!----></a></li><li class="dropdown-subitem"><a href="https://parser.theengs.io" target="_self" class="nav-link external">
Web Parser
<!----></a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://decoder.theengs.io/devices/devices.html" target="_self" class="nav-link external">
Compatible devices
<!----></a></div><div class="nav-item"><a href="https://community.openmqttgateway.com" target="_self" class="nav-link external">
Community
<!----></a></div><div class="nav-item"><a href="https://shop.theengs.io/" target="_self" class="nav-link external">
Shop
<!----></a></div><div class="nav-item"><a href="https://github.com/sponsors/theengs" target="_self" class="nav-link external">
Sponsor 🤍
<!----></a></div> <a href="https://github.com/1technophile/OpenMQTTGateway" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><a href="/" aria-current="page" class="sidebar-link">0 - What is it for 🏠</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>1 - Prerequisites🧭</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2 - Set it up 🔨</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>3 - Upload ➡️</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>4 - Use ✈️</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/use/rf.html" class="sidebar-link">RF gateways (RTL_433/RCSwitch/RF/RF2)</a></li><li><a href="/use/ble.html" class="sidebar-link">Bluetooth ESP32 gateway</a></li><li><a href="/use/ir.html" class="sidebar-link">Infrared gateway</a></li><li><a href="/use/lora.html" class="sidebar-link">LoRa gateway</a></li><li><a href="/use/gsm.html" class="sidebar-link">GSM 2G gateway</a></li><li><a href="/use/serial.html" class="sidebar-link">RS232/Serial gateway</a></li><li><a href="/use/rfm69.html" class="sidebar-link">RFM69 gateway</a></li><li><a href="/use/sensors.html" class="sidebar-link">Sensors</a></li><li><a href="/use/actuators.html" class="sidebar-link">Actuators</a></li><li><a href="/use/boards.html" class="sidebar-link">Boards</a></li><li><a href="/use/displays.html" class="sidebar-link">Displays</a></li><li><a href="/use/gateway.html" aria-current="page" class="active sidebar-link">System commands (ESP only)</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/use/gateway.html#restart-the-esp" class="sidebar-link">Restart the ESP</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#erase-the-esp-settings" class="sidebar-link">Erase the ESP settings</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#retrieve-current-status-of-the-esp" class="sidebar-link">Retrieve current status of the ESP</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#auto-discovery" class="sidebar-link">Auto discovery</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#autodiscovery-compatible-with-openhab-default-false" class="sidebar-link">AutoDiscovery compatible with OpenHAB (default: false)</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#activate-offline-mode" class="sidebar-link">Activate Offline mode</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#change-the-wifi-credentials" class="sidebar-link">Change the WiFi credentials</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#change-the-gateway-password" class="sidebar-link">Change the gateway password</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#change-the-mqtt-broker-credentials" class="sidebar-link">Change the MQTT broker credentials</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#change-the-mqtt-main-topic-discovery-prefix-and-or-gateway-name" class="sidebar-link">Change the MQTT main topic, discovery prefix, and or gateway name</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#switching-brokers-and-using-signed-and-client-certificates" class="sidebar-link">Switching brokers and using signed and client certificates</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#saving-loading-connection-parameters-certificates-at-runtime" class="sidebar-link">Saving/Loading connection parameters/certificates at runtime</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#mqtt" class="sidebar-link">MQTT</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#serial" class="sidebar-link">Serial</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#change-the-led-indicator-brightness" class="sidebar-link">Change the LED indicator brightness</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#understanding-led-indicators-in-openmqttgateway" class="sidebar-link">Understanding LED Indicators in OpenMQTTGateway</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#led-color-guide" class="sidebar-link">LED Color Guide</a></li><li class="sidebar-sub-header"><a href="/use/gateway.html#understanding-gateway-states" class="sidebar-link">Understanding Gateway States</a></li></ul></li><li><a href="/use/webui.html" class="sidebar-link">WebUI</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>5 - Integrate 🎉</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>6 - Participate 💻</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="system-commands-esp-only"><a href="#system-commands-esp-only" class="header-anchor">#</a> System commands (ESP only)</h1> <h2 id="restart-the-esp"><a href="#restart-the-esp" class="header-anchor">#</a> Restart the ESP</h2> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;cmd&quot;:&quot;restart&quot;}'</code></p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>With Home Assistant, this command is directly available through MQTT auto discovery as a switch into the HASS OpenMQTTGateway device entities list.</p></div> <h2 id="erase-the-esp-settings"><a href="#erase-the-esp-settings" class="header-anchor">#</a> Erase the ESP settings</h2> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;cmd&quot;:&quot;erase&quot;}'</code></p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>With Home Assistant, this command is directly available through MQTT auto discovery as a switch into the HASS OpenMQTTGateway device entities list.</p></div> <h2 id="retrieve-current-status-of-the-esp"><a href="#retrieve-current-status-of-the-esp" class="header-anchor">#</a> Retrieve current status of the ESP</h2> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;cmd&quot;:&quot;status&quot;}'</code></p> <h2 id="auto-discovery"><a href="#auto-discovery" class="header-anchor">#</a> Auto discovery</h2> <p>You can deactivate the MQTT auto-discovery function, which enables you to create devices/entities with the Home Assistant convention automatically. This function is set to <code>true</code> at startup for 30 minutes unless you deactivate it.</p> <h3 id="deactivate"><a href="#deactivate" class="header-anchor">#</a> Deactivate</h3> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;disc&quot;:false}'</code></p> <h3 id="activate"><a href="#activate" class="header-anchor">#</a> Activate</h3> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;disc&quot;:true}'</code></p> <p>If you want the settings to be kept upon gateway restart, you can save the state by adding <code>&quot;save&quot;:true</code> (ESP32 only).
<code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;disc&quot;:false, &quot;save&quot;:true}'</code></p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>Auto discovery is enabled by default on release binaries and platformio.</p></div> <h2 id="autodiscovery-compatible-with-openhab-default-false"><a href="#autodiscovery-compatible-with-openhab-default-false" class="header-anchor">#</a> AutoDiscovery compatible with OpenHAB (default: false)</h2> <p>OpenHAB does not support the key <code>is_defined</code> in the json template, to remove it at runtime and make the auto discovery compatible you can use the following command with a retain flag.</p> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;ohdisc&quot;:true}'</code></p> <p>If you want the settings to be kept upon gateway restart, you can save the state by adding <code>&quot;save&quot;:true</code> (ESP32 only).
<code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;ohdisc&quot;:true, &quot;save&quot;:true}'</code></p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>This command can also be used with other controllers that does not support the is_defined key.</p></div> <h2 id="activate-offline-mode"><a href="#activate-offline-mode" class="header-anchor">#</a> Activate Offline mode</h2> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;offline&quot;:true,&quot;save&quot;:true}'</code></p> <h2 id="change-the-wifi-credentials"><a href="#change-the-wifi-credentials" class="header-anchor">#</a> Change the WiFi credentials</h2> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;wifi_ssid&quot;:&quot;ssid&quot;, &quot;wifi_pass&quot;:&quot;password&quot;}'</code></p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>If the new connection fails the gateway will fallback to the previous connection.</p></div> <h2 id="change-the-gateway-password"><a href="#change-the-gateway-password" class="header-anchor">#</a> Change the gateway password</h2> <p>The password must be 8 characters minimum.</p> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;gw_pass&quot;:&quot;12345678&quot;}'</code></p> <h2 id="change-the-mqtt-broker-credentials"><a href="#change-the-mqtt-broker-credentials" class="header-anchor">#</a> Change the MQTT broker credentials</h2> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m
'{
&quot;mqtt_user&quot;: &quot;user_name&quot;,
&quot;mqtt_pass&quot;: &quot;password&quot;,
&quot;mqtt_server&quot;: &quot;host&quot;,
&quot;mqtt_port&quot;: &quot;port&quot;,
&quot;mqtt_validate&quot;: false,
&quot;mqtt_secure&quot;: false
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br></div></div><div class="custom-block tip"><p class="custom-block-title">INFO</p> <p>By default this function is not available on the pre built binary of RFBridge, in order to have less code size and enable to have OTA update working properly. So as to enable it remove from the rf bridge env:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>build_flags = '-UMQTTsetMQTT'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div></div> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>If the new connection fails the gateway will fallback to the previous connection.</p></div> <h2 id="change-the-mqtt-main-topic-discovery-prefix-and-or-gateway-name"><a href="#change-the-mqtt-main-topic-discovery-prefix-and-or-gateway-name" class="header-anchor">#</a> Change the MQTT main topic, discovery prefix, and or gateway name</h2> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m
'{
&quot;mqtt_topic&quot;: &quot;topic/&quot;,
&quot;discovery_prefix&quot;: &quot;prefix&quot;,
&quot;gateway_name&quot;: &quot;name&quot;
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><div class="custom-block tip"><p class="custom-block-title">INFO</p> <p>This will change the subscribed and published mqtt_topic/gateway_name that the gateway uses. No parameters are mandatory, the current topic or gateway name will be used if not supplied.</p></div> <h2 id="switching-brokers-and-using-signed-and-client-certificates"><a href="#switching-brokers-and-using-signed-and-client-certificates" class="header-anchor">#</a> Switching brokers and using signed and client certificates</h2> <p>In the <code>user_config.h</code> file it is possible to specify multiple MQTT brokers and client certificates.
Additionally, support for multiple brokers and client certificates has been added. To use this, it is required that the server certificate, client certificate, and client key are provided as their own constant string value as demonstrated in the file.<br>
To add more than one broker and switch between them it is necessary to provide all of the relevant certificates/keys and add their respective variable names in the <code>cnt_parameters_array</code> structure, as shown in <code>user_config.h</code>..</p> <p>To switch between these connections with an MQTT command message, the format is as follows:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m
'{
&quot;mqtt_user&quot;: &quot;user&quot;,
&quot;mqtt_pass&quot;: &quot;password&quot;,
&quot;mqtt_server&quot;: &quot;host&quot;,
&quot;mqtt_port&quot;: &quot;port&quot;,
&quot;mqtt_secure&quot;: true,
&quot;mqtt_validate&quot;: true,
&quot;cnt_index&quot;:1,
&quot;save_cnt&quot;: true
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br></div></div><div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>The <code>cnt_index</code> value corresponds to the 0 to 2 index of the <code>cnt_parameters_array</code> in <code>user_config.h</code>.
0 being the default index, containing the onboarding parameters.</p></div> <p>To read the connection parameters:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m
'{
&quot;cnt_index&quot;:1,
&quot;read_cnt&quot;: true
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><p>To test a connection change without saving:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m
'{
&quot;cnt_index&quot;:1,
&quot;test_cnt&quot;: true
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>If the client can't connect to the MQTT broker corresponding to the current <code>cnt_index</code>, it will increment the index to the next valid connection set and restart with it.</p></div> <h2 id="saving-loading-connection-parameters-certificates-at-runtime"><a href="#saving-loading-connection-parameters-certificates-at-runtime" class="header-anchor">#</a> Saving/Loading connection parameters/certificates at runtime</h2> <p>This chapter details the process for managing certificates/connections parameters used for secure MQTT communication with OpenMQTTGateway</p> <h3 id="storing-and-loading-certificates"><a href="#storing-and-loading-certificates" class="header-anchor">#</a> Storing and Loading Certificates</h3> <ul><li>Flash Memory Storage:
Certificates can be saved to the flash memory using specific indices. Valid indices for storing certificates are 1 and 2, as 0 is reserved for the default certificate.</li> <li>RAM Memory Loading:
Certificates can be loaded from RAM, where valid indices range from 0 to 2. The device publishes a hash of the certificate to the broker to verify its identity. If the connection using the current certificate fails, the device will revert to the previous certificate.</li></ul> <h3 id="use-case-changing-a-group-of-certificates"><a href="#use-case-changing-a-group-of-certificates" class="header-anchor">#</a> Use Case: Changing a Group of Certificates</h3> <p>When updating certificates, follow these steps to ensure that the new certificates are correctly loaded and used:</p> <ol><li>Push Certificates via MQTT:
Send the new certificates one by one through MQTT, using indices 1 or 2. Replace newline characters (\n) in the certificates with spaces.</li></ol> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;cnt_index&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
<span class="token property">&quot;mqtt_server_cert&quot;</span><span class="token operator">:</span> <span class="token string">&quot;-----BEGIN CERTIFICATE----- MIIDQTCC----END CERTIFICATE-----&quot;</span>
<span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><p>Accepted certificates are:</p> <ul><li><code>mqtt_server_cert</code></li> <li><code>mqtt_client_cert</code></li> <li><code>mqtt_client_key</code></li> <li><code>ota_server_cert</code></li></ul> <ol start="2"><li>Verify Certificates in RAM:
After pushing the certificates, verify that they have been correctly loaded into RAM.</li></ol> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;cnt_index&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
<span class="token property">&quot;read_cnt&quot;</span><span class="token operator">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><ol start="3"><li>Test and Save Certificates:
Once verification is complete, test the connection using the new certificates. If the connection is successful, send the command to save the certificates to flash.</li></ol> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;cnt_index&quot;</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
<span class="token property">&quot;save_cnt&quot;</span><span class="token operator">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><ol start="4"><li><p>Broker Connection:
The broker will attempt to use the newly received certificates for the connection.</p></li> <li><p>Successful Connection Handling:
If the connection is successful, the certificates are permanently stored in the flash memory at the specified index.</p></li> <li><p>Handling Connection Failures:
If the connection fails, the device will revert to the previously used certificate index, and the new certificates will not be saved.</p></li></ol> <h1 id="firmware-update-from-mqtt-esp-only"><a href="#firmware-update-from-mqtt-esp-only" class="header-anchor">#</a> Firmware update from MQTT (ESP only)</h1> <p>When the gateway used is from a standard ESP32 environment <a href="https://github.com/1technophile/OpenMQTTGateway/blob/development/environments.ini" target="_blank" rel="noopener noreferrer">listed and defined here<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>, it can be updated through a simple MQTT command:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway_ESP32_BLE/commands/MQTTtoSYS/firmware_update&quot; -m '{
&quot;version&quot;: &quot;latest&quot;
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p>This would download the latest version firmware binary from Github and install it.
It can be used with version 1.5.0 and above.</p> <p>Note that this update option is also autodiscovered through Home Assistant convention, you can update directly from the device page with 2 clicks.</p> <p><img src="/assets/img/OpenMQTTGateway-OTA-Update-Home-Assistant.beaca92f.png" alt="Home Assistant OTA Update"></p> <p>You can also indicate the target version to update:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway_ESP32_BLE/commands/MQTTtoSYS/firmware_update&quot; -m '{
&quot;version&quot;: &quot;v1.2.0&quot;
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p>OpenMQTTGateway checks at start and every hour if an update is available.</p> <p>Alternatively if you want to choose the update URL you can use the command below (ESP32 and ESP8266):</p> <p>Without certificate, in this case the gateway will use the ota_server_cert certificate defined in default_ota_cert.h</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway_ESP32_BLE/commands/MQTTtoSYS/firmware_update&quot; -m '{
&quot;version&quot;: &quot;test&quot;,
&quot;password&quot;: &quot;OTAPASSWORD&quot;,
&quot;url&quot;: &quot;https://github.com/1technophile/OpenMQTTGateway/releases/download/v0.9.12/esp32dev-ble-firmware.bin&quot;
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><p>With certificate (replace the \n in the certificate by spaces to publish it easily):</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway_ESP32_BLE/commands/MQTTtoSYS/firmware_update&quot; -m '{
&quot;version&quot;: &quot;test&quot;,
&quot;password&quot;: &quot;OTAPASSWORD&quot;,
&quot;url&quot;: &quot;https://github.com/1technophile/OpenMQTTGateway/releases/download/v0.9.12/esp32dev-ble-firmware.bin&quot;,
&quot;ota_server_cert&quot;: &quot;-----BEGIN CERTIFICATE----- MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= -----END CERTIFICATE-----&quot;}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><p>A bash script is available <a href="ota_command_cert.zip">here also</a> to simplify the use of the <code>server_cert</code> parameter.</p> <p>Alternatively the OTA certificate can also be saved with the cnt_index for future use:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t &quot;home/OpenMQTTGateway_ESP32_BLE/commands/MQTTtoSYS/config&quot; -m '{
&quot;cnt_index&quot;: 1,
&quot;save_cnt&quot;:true,
&quot;ota_server_cert&quot;: &quot;-----BEGIN CERTIFICATE----- MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= -----END CERTIFICATE-----&quot;
}'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><p>The other connection parameters corresponding to the index need to be valid for the save function to work. This command will switch to connection parameters of index 1.</p> <p>To enable this functionality, <code>MQTT_HTTPS_FW_UPDATE</code> will need to be defined or the line that defines in in user_config.h will need to be uncommented.</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>If using an unsecure MQTT broker it is <strong>highly recommended</strong> to disable the password checking by setting the macro <code>MQTT_HTTPS_FW_UPDATE_USE_PASSWORD</code> to 0 (default is 1 (enabled)), otherwise a clear text password may be sent over the network.</p> <p>The <code>server_cert</code> parameter is optional. If the update server has changed or certificate updated or not set in <code>user_config.h</code> then you can provide the certificate here.</p></div> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>The pre-built binaries for <strong>rfbridge</strong> and <strong>avatto-bakeey-ir</strong> have the above WiFi and MQTT broker credentials and the Firmware update via MQTT options disabled. This is due to the restricted available flash, so as to still be able to use OTA firmware updates for these boards.</p></div> <h1 id="communication-layers"><a href="#communication-layers" class="header-anchor">#</a> Communication layers</h1> <h2 id="mqtt"><a href="#mqtt" class="header-anchor">#</a> MQTT</h2> <p>OpenMQTTGateway uses per default MQTT on top of Ethernet or WiFi for communicating (default: true).
The MQTT communication can be deactivated with the following command:
<code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;mqtt&quot;:false}'</code>
Once activated the MQTT API is no longer accessible</p> <h2 id="serial"><a href="#serial" class="header-anchor">#</a> Serial</h2> <p>Added to MQTT, OpenMQTTGateway cans use Serial to transmit or receive json data (default: false):
<code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;serial&quot;:true}'</code></p> <p>The build need to have the following macro:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code> '-DZgatewaySERIAL=&quot;SERIAL&quot;'
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>An example scenario is a slave offline ESP32 dedicated to RF decoding connected to another online ESP32 through Serial.</p> <h1 id="indicators"><a href="#indicators" class="header-anchor">#</a> Indicators</h1> <h2 id="change-the-led-indicator-brightness"><a href="#change-the-led-indicator-brightness" class="header-anchor">#</a> Change the LED indicator brightness</h2> <p>Minimum: 0, Maximum: 255, Default defined by DEFAULT_ADJ_BRIGHTNESS</p> <p><code>mosquitto_pub -t &quot;home/OpenMQTTGateway/commands/MQTTtoSYS/config&quot; -m '{&quot;brightness&quot;:200}'</code></p> <h2 id="understanding-led-indicators-in-openmqttgateway"><a href="#understanding-led-indicators-in-openmqttgateway" class="header-anchor">#</a> Understanding LED Indicators in OpenMQTTGateway</h2> <p>With boards having one or several RGB Led, OpenMQTTGateway uses them to provide visual feedback about its current state. This guide will help you interpret these LED signals to understand what's happening with your gateway.</p> <h2 id="led-color-guide"><a href="#led-color-guide" class="header-anchor">#</a> LED Color Guide</h2> <p>OpenMQTTGateway uses a variety of colors to indicate different states:</p> <p>Green (0x00FF00): Indicates normal operation or successful connections
Blue (0x0000FF): Shows processing or offline status
Orange (0xFFA500): Indicates waiting states or minor issues
Yellow (0xFFFF00): Used during the onboarding process
Red (0xFF0000): Signals an error state
Magenta (0xFF00FF): Indicates local Over-The-Air (OTA) updates
Purple (0x8000FF): Shows remote OTA updates are in progress</p> <h2 id="understanding-gateway-states"><a href="#understanding-gateway-states" class="header-anchor">#</a> Understanding Gateway States</h2> <p>Here's what different LED behaviors mean:</p> <h3 id="power-on"><a href="#power-on" class="header-anchor">#</a> Power On</h3> <p>Color: Green
Behavior: Solid light
Meaning: The gateway is powered and operational</p> <h3 id="processing"><a href="#processing" class="header-anchor">#</a> Processing</h3> <p>Color: Blue
Behavior: Blinking (3 times)
Meaning: The gateway is processing data</p> <h3 id="waiting-for-onboarding"><a href="#waiting-for-onboarding" class="header-anchor">#</a> Waiting for Onboarding</h3> <p>Color: Orange
Behavior: Solid light
Meaning: The gateway is ready to be set up</p> <h3 id="onboarding-in-progress"><a href="#onboarding-in-progress" class="header-anchor">#</a> Onboarding in Progress</h3> <p>Color: Yellow
Behavior: Solid light
Meaning: The gateway is being configured</p> <h3 id="network-connected"><a href="#network-connected" class="header-anchor">#</a> Network Connected</h3> <p>Color: Green
Behavior: Solid light
Meaning: Successfully connected to the network</p> <h3 id="network-disconnected"><a href="#network-disconnected" class="header-anchor">#</a> Network Disconnected</h3> <p>Color: Orange
Behavior: Blinking
Meaning: Lost connection to the network</p> <h3 id="mqtt-broker-connected"><a href="#mqtt-broker-connected" class="header-anchor">#</a> MQTT Broker Connected</h3> <p>Color: Green
Behavior: Solid light
Meaning: Successfully connected to the MQTT broker</p> <h3 id="mqtt-broker-disconnected"><a href="#mqtt-broker-disconnected" class="header-anchor">#</a> MQTT Broker Disconnected</h3> <p>Color: Orange
Behavior: Blinking
Meaning: Lost connection to the MQTT broker</p> <h3 id="offline"><a href="#offline" class="header-anchor">#</a> Offline</h3> <p>Color: Blue
Behavior: Blinking
Meaning: The gateway is offline</p> <h3 id="local-ota-update"><a href="#local-ota-update" class="header-anchor">#</a> Local OTA Update</h3> <p>Color: Magenta
Behavior: Blinking
Meaning: A local Over-The-Air update is in progress</p> <h3 id="remote-ota-update"><a href="#remote-ota-update" class="header-anchor">#</a> Remote OTA Update</h3> <p>Color: Purple
Behavior: Blinking
Meaning: A remote Over-The-Air update is in progress</p> <h3 id="error"><a href="#error" class="header-anchor">#</a> Error</h3> <p>Color: Red
Behavior: Blinking (3 times)
Meaning: An error has occurred</p> <h3 id="actuator-on-off"><a href="#actuator-on-off" class="header-anchor">#</a> Actuator On/Off</h3> <p>Color: Green
Behavior: Depends on actuator state
Meaning: Indicates the state of a connected actuator</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/1technophile/OpenMQTTGateway/edit/development/docs/use/gateway.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/13/2025, 4:15:36 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/use/displays.html" class="prev">
Displays
</a></span> <span class="next"><a href="/use/webui.html">
WebUI
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/assets/js/app.7105f145.js" defer></script><script src="/assets/js/2.1486a66d.js" defer></script><script src="/assets/js/1.4ad45915.js" defer></script><script src="/assets/js/45.a9dadc66.js" defer></script>
</body>
</html>