Files
OpenMQTTGateway/use/ble.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

252 lines
89 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Bluetooth ESP32 gateway | 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="Versatile Bluetooth gateway that scans and decodes data from various Bluetooth Low Energy (BLE) devices. It integrates seamlessly with MQTT brokers and controllers like Home Assistant and OpenHAB. Monitor temperature, humidity, pressure, and more for smarter control.">
<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/17.c62583a8.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/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/45.a9dadc66.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" aria-current="page" class="active sidebar-link">Bluetooth ESP32 gateway</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/use/ble.html#products-powered-by-openmqttgateway" class="sidebar-link">Products powered by OpenMQTTGateway</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#disable-or-enable-the-ble-gateway-default-true-available-with-ha-discovery" class="sidebar-link">Disable or enable the BLE gateway (default: true, available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#receiving-signals-from-compatible-ble-sensors-to-publish-it-to-an-mqtt-broker" class="sidebar-link">Receiving signals from compatible BLE sensors to publish it to an MQTT broker.</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#receiving-signals-from-ble-devices-for-device-tracker-detection" class="sidebar-link">Receiving signals from BLE devices for Device Tracker detection</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#receiving-signals-from-ble-devices-for-presence-detection" class="sidebar-link">Receiving signals from BLE devices for Presence detection</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#receiving-signals-from-ble-devices-with-accelerometers-for-movement-detection" class="sidebar-link">Receiving signals from BLE devices with accelerometers for movement detection</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-a-white-or-black-list" class="sidebar-link">Setting a white or black list</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-the-time-between-ble-scans-and-force-a-scan-available-with-ha-discovery" class="sidebar-link">Setting the time between BLE scans and force a scan (available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-the-time-between-connection-attempts-default-60min-available-with-ha-discovery" class="sidebar-link">Setting the time between connection attempts (default: 60min, available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-if-the-gateway-publishes-all-the-ble-devices-scanned-or-only-the-detected-sensors-default-false-available-with-ha-discovery" class="sidebar-link">Setting if the gateway publishes all the BLE devices scanned or only the detected sensors (default: false, available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-if-the-gateway-publishes-known-devices-which-randomly-change-their-mac-address-default-false" class="sidebar-link">Setting if the gateway publishes known devices which randomly change their MAC address (default: false)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-if-the-gateway-use-adaptive-scanning-default-true-available-with-ha-discovery" class="sidebar-link">Setting if the gateway use adaptive scanning (default: true, available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-the-time-between-active-scanning-available-with-ha-discovery" class="sidebar-link">Setting the time between active scanning (available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-the-duration-of-a-scan-available-with-ha-discovery" class="sidebar-link">Setting the duration of a scan (available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-if-the-gateway-connects-to-ble-devices-eligibles-default-true-available-with-ha-discovery" class="sidebar-link">Setting if the gateway connects to BLE devices eligibles (default: true, available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-if-the-gateway-publish-into-home-assistant-home-presence-topic-default-false-available-with-ha-discovery" class="sidebar-link">Setting if the gateway publish into Home Assistant Home presence topic (default: false, available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-if-the-gateway-uses-ibeacon-uuid-as-topic-instead-of-random-mac-address-default-false" class="sidebar-link">Setting if the gateway uses iBeacon UUID as topic, instead of (random) MAC address (default: false)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#setting-the-minimum-rssi-accepted-to-publish-device-data-default-100" class="sidebar-link">Setting the minimum RSSI accepted to publish device data (default:-100)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#store-ble-configuration-into-the-gateway" class="sidebar-link">Store BLE configuration into the gateway</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#controlling-devices" class="sidebar-link">Controlling devices</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#read-write-ble-characteristics-over-mqtt" class="sidebar-link">Read/write BLE characteristics over MQTT</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#switchbot-bot-control-available-with-ha-discovery" class="sidebar-link">SwitchBot Bot control (available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#switchbot-blind-tilt-control-available-with-ha-discovery" class="sidebar-link">SwitchBot Blind Tilt control (available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#switchbot-curtain-2-3-control-available-with-ha-discovery" class="sidebar-link">SwitchBot Curtain (2/3) control (available with HA discovery)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#advanced-setting-up-an-external-decoder" class="sidebar-link">ADVANCED: Setting up an external decoder</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#advanced-filtering-out-connectable-devices-default-false" class="sidebar-link">ADVANCED: Filtering out connectable devices (default: false)</a></li><li class="sidebar-sub-header"><a href="/use/ble.html#advanced-advertisement-and-advanced-data-default-false-available-with-ha-discovery" class="sidebar-link">ADVANCED: Advertisement and advanced data (default: false, available with HA discovery)</a></li></ul></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" class="sidebar-link">System commands (ESP only)</a></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="bluetooth-gateway"><a href="#bluetooth-gateway" class="header-anchor">#</a> Bluetooth gateway</h1> <p>The manufacturer agnostic Bluetooth Low Energy (BLE) gateway acts as a powerful BLE scanner and decoder of <a href="https://compatible.openmqttgateway.com/index.php/devices/ble-devices/" target="_blank" rel="noopener noreferrer">Bluetooth devices<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>, allowing you to visualize and analyze information from a wide range of sensors.
It can also act as a device tracker and presence detection gateway by receiving nearby BLE devices and trackers.</p> <p>Data are transmitted to an MQTT broker, where it can be used to trigger events and rules, as well as displayed, stored and processed in your favorite controller (Home Assistant, OpenHAB, Jeedom, Domoticz, ioBroker or any MQTT compatible software).</p> <p>With the ability to monitor and analyze data such as temperature, humidity, moisture, luminance, weight, pressure, fine particles, and more, the BLE gateway provides a flexible and customizable solution for integrating BLE technology into your control and monitoring systems.</p> <div style="text-align:center;"><img src="/assets/img/OpenMQTTGateway-sensors-ble.d269ad19.png" alt="BLE sensors and devices" style="max-width:100%;height:auto;"></div> <h2 id="products-powered-by-openmqttgateway"><a href="#products-powered-by-openmqttgateway" class="header-anchor">#</a> Products powered by OpenMQTTGateway</h2> <h3 id="theengs-bridge-ble-gateway-with-external-antenna"><a href="#theengs-bridge-ble-gateway-with-external-antenna" class="header-anchor">#</a> Theengs Bridge, BLE gateway with external antenna</h3> <p><a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_blank" rel="noopener noreferrer">Theengs bridge<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> is a powerfull BLE to MQTT gateway for over <a href="https://decoder.theengs.io/devices/devices.html" target="_blank" rel="noopener noreferrer">100 sensors<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>. Equipped with an Ethernet port, and external antenna, ensuring an enhanced range for your BLE sensors. It supports also WiFi connectivity.</p> <div style="text-align:center;"><a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_blank" rel="noopener noreferrer"><img src="/assets/img/Theengs-Bridge-ble-gateway.2badf848.png" alt="Theengs bridge view" style="max-width:100%;height:auto;"></a></div> <h3 id="theengs-plug-ble-gateway-and-smart-plug"><a href="#theengs-plug-ble-gateway-and-smart-plug" class="header-anchor">#</a> Theengs Plug, BLE gateway and Smart Plug</h3> <p><a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_blank" rel="noopener noreferrer">Theengs plug<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> brings the following features:</p> <ul><li>BLE to MQTT gateway, tens of <a href="https://compatible.openmqttgateway.com/index.php/devices/ble-devices/" target="_blank" rel="noopener noreferrer">Bluetooth devices<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> supported thanks to Theengs Decoder library. The plug uses an ESP32 acting as a BLE to Wifi gateway to scan, decode and forward the data of the nearby sensors,</li> <li>Smart plug that can be controlled remotely,</li> <li>Energy consumption monitoring,</li> <li>Device tracker,</li> <li>Presence detection (beta),</li> <li>Local connectivity first.</li></ul> <div style="text-align:center;"><a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_blank" rel="noopener noreferrer"><img src="/assets/img/Theengs-Plug-OpenMQTTGateway.9d2a77ec.png" alt="Theengs plug view" style="max-width:100%;height:auto;"></a></div> <p>Support the project by purchasing the <a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_blank" rel="noopener noreferrer">Theengs bridge<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> or the <a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_blank" rel="noopener noreferrer">Theengs plug<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></p> <h2 id="disable-or-enable-the-ble-gateway-default-true-available-with-ha-discovery"><a href="#disable-or-enable-the-ble-gateway-default-true-available-with-ha-discovery" class="header-anchor">#</a> Disable or enable the BLE gateway (default: true, available with HA discovery)</h2> <p>If you want to deactivate the BLE gateway:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;enabled&quot;:false}'</code></p> <p>If you want to activate the BLE gateway:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;enabled&quot;:true}'</code></p> <h2 id="receiving-signals-from-compatible-ble-sensors-to-publish-it-to-an-mqtt-broker"><a href="#receiving-signals-from-compatible-ble-sensors-to-publish-it-to-an-mqtt-broker" class="header-anchor">#</a> Receiving signals from <a href="https://decoder.theengs.io/devices/devices_by_brand.html" target="_blank" rel="noopener noreferrer">compatible BLE sensors<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> to publish it to an MQTT broker.</h2> <p>To receive data from BLE sensors you can use an ESP32-based device with a programming USB port or use a Serial adapter.</p> <p>OpenMQTTGateway is also available preloaded and configured with the <a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_blank" rel="noopener noreferrer">Theengs plug<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>, a smart plug that acts as a BLE gateway and energy monitoring device.</p> <ol><li><p>Follow the <a href="/upload/web-install.html">Upload</a> and <a href="/upload/portal.html">Configuration</a> steps.</p></li> <li><p>Download an MQTT client like MQTT explorer.</p></li> <li><p>You should see data coming in your broker.</p></li></ol> <p><img src="/assets/img/OpenMQTTGateway-mqtt-explorer-lywsd03mmc-atc.5270b942.png" alt="LYWSD03MMC MQTT data view"></p> <p>Once the data has been transmitted to the MQTT broker, it can be easily integrated with your preferred controller. For example, the data can be automatically discovered and made available within popular controllers, example below with Home Assistant.</p> <p><img src="/assets/img/OpenMQTTGateway-home-assistant-chart.580d5e05.png" alt="Home Assistant chart"></p> <p>Examples of compatible sensors among [our list](https://decoder.theengs.io/devices/devices_by_brand.html: Mi Flora, Mi jia, LYWDS02, LYWSD03MMC, ClearGrass, Mi scale, iBBQ, TPMS</p> <h2 id="receiving-signals-from-ble-devices-for-device-tracker-detection"><a href="#receiving-signals-from-ble-devices-for-device-tracker-detection" class="header-anchor">#</a> Receiving signals from BLE devices for Device Tracker detection</h2> <p>The gateway will detect BLE trackers from Tile, Nut, TagIt, iTAG, Gigaset G-Tag, TicWatch GTH (Pro), Teltonika FMT100 vehicle tracker and Bosch Nyon eBike computers, as well as other devices with additional properties decoding like Mi Band, Amazfit, RuuviTag and others indicated as Device Trackers in the <a href="https://decoder.theengs.io/devices/devices.html" target="_blank" rel="noopener noreferrer">compatible BLE devices list<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>, and automatically create a device tracker entity following the Home Assistant discovery convention (if auto discovery is activated).</p> <p>The devicen tracker entity created can be attached to a person to leverage presence detection. The <code>away</code> or <code>not home</code> state is triggered if the BLE tracker is not detected during the timer defined by <code>presenceawaytimer</code>.</p> <p><img src="/assets/img/OpenMQTTGateway-BLE-tracker-Home-Assistant.4246afef.png" alt="Away home Home assistant view"></p> <p>By default <code>presenceawaytimer</code> is set to 120s, you can change it from the slider in your controller or with the following command (ms)</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;presenceawaytimer&quot;:66000}'</code></p> <p>Generally BLE devices will not broadcast if they are paired so you may need to ensure your beacons is unpaired/disconnected before it will be seen by the gateway.</p> <p>Note that you can find apps to simulate beacons and do some tests like <a href="https://play.google.com/store/apps/details?id=net.alea.beaconsimulator" target="_blank" rel="noopener noreferrer">Beacon simulator<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></p> <p>Apple iOS version &gt;=10 devices advertise without an extra MAC address app, nevertheless this address <a href="https://github.com/1technophile/OpenMQTTGateway/issues/71" target="_blank" rel="noopener noreferrer">changes randomly<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> and can currently only be used with <a href="https://gateway.theengs.io/" target="_blank" rel="noopener noreferrer">Theengs Gateway<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> and its <a href="https://gateway.theengs.io/use/use.html#getting-identity-resolving-key-irk-for-apple-watch-iphone-and-ipad" target="_blank" rel="noopener noreferrer">Identity MAC Address and Identity Resolving Key<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> feature.</p> <div class="custom-block tip"><p class="custom-block-title">INFO</p> <p>The <code>presenceawaytimer</code> is also used to reset the state of the PIR/motion sensors to <code>off</code> when using HA MQTT discovery convention. If the Sensor does not detect a motion, its state will be automatically set to <code>off</code> after the <code>presenceawaytimer</code>.</p></div> <h2 id="receiving-signals-from-ble-devices-for-presence-detection"><a href="#receiving-signals-from-ble-devices-for-presence-detection" class="header-anchor">#</a> Receiving signals from BLE devices for Presence detection</h2> <p>To do this activate the &quot;BT: Publish HASS presence&quot; switch in your controller or send the following MQTT command to your broker: mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;hasspresence&quot;:true}'</p> <h2 id="receiving-signals-from-ble-devices-with-accelerometers-for-movement-detection"><a href="#receiving-signals-from-ble-devices-with-accelerometers-for-movement-detection" class="header-anchor">#</a> Receiving signals from BLE devices with accelerometers for movement detection</h2> <p>The gateway is designed to detect BLE trackers from BlueCharm and automatically create a binary sensor entity in accordance with the Home Assistant discovery convention, provided that auto discovery is enabled.</p> <p>The binary sensor entity's state will be set to on or off based on whether the BLE beacon's x-axis acceleration value is detected during the time period defined by the movingtimer parameter.</p> <p>By default, the movingtimer parameter is set to 60 seconds (60,000 ms). To modify this value, use the following command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;movingtimer&quot;:66000}'</code></p> <p>To ensure proper functionality, configure the beacon using the KBeacon or KBeaconPro app (depending on your specific sensor) with the following settings:</p> <ul><li>In the General tab, set the Trigger Command to &quot;motion&quot;.</li> <li>In the Slot tab, enable advertisement with the Beacon Type set to &quot;KSensor&quot;, the Trigger Only Advertisement option set to &quot;YES&quot;, and the Sensor Axis set to &quot;ON&quot;.</li></ul> <p><img src="/assets/img/KBeacon-app-configuration-moving.7b603aca.jpg" alt="KBeacon trigger settings"></p> <p><img src="/assets/img/KBeacon-app-configuration-moving2.ab00b898.jpg" alt="KBeacon details"></p> <h2 id="setting-a-white-or-black-list"><a href="#setting-a-white-or-black-list" class="header-anchor">#</a> Setting a white or black list</h2> <p>A black list is a list of MAC addresses that will never be published by OMG
to set black list
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;black-list&quot;:[&quot;01:23:14:55:16:15&quot;,&quot;4C:65:77:88:9C:79&quot;,&quot;4C:65:A6:66:3C:79&quot;]}'</code></p> <p>A white list is a list of MAC addresses permitted to be published by OMG
to set white list
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;white-list&quot;:[&quot;01:23:14:55:16:15&quot;,&quot;4C:65:77:88:9C:79&quot;,&quot;4C:65:A6:66:3C:79&quot;]}'</code></p> <p>Note: if you want to filter (white or black list) on BLE sensors that are auto discovered, you need to wait for the discovery before applying the white or black list, or temporarily disable it:</p> <p>to temporarily disable white/black list
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;ignoreWBlist&quot;:true}'</code></p> <p>to enable white/black list back
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;ignoreWBlist&quot;:false}'</code></p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>So as to keep your white/black list persistent you can publish it with the retain option of MQTT (-r with mosquitto_pub or retain check box of MQTT Explorer)
<code>mosquitto_pub -r -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;white-list&quot;:[&quot;01:23:14:55:16:15&quot;,&quot;4C:65:77:88:9C:79&quot;,&quot;4C:65:A6:66:3C:79&quot;]}'</code></p> <p><strong>NOTE</strong>: Only when sending a white/black list should the retain option be set. All other commands to any OpenMQTTGateway gateway <strong>must not</strong> have the retain option set. To persist such other command settings, read <a href="https://docs.openmqttgateway.com/use/ble.html#store-ble-configuration-into-the-gateway" target="_blank" rel="noopener noreferrer">the following section<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></p></div> <h2 id="setting-the-time-between-ble-scans-and-force-a-scan-available-with-ha-discovery"><a href="#setting-the-time-between-ble-scans-and-force-a-scan-available-with-ha-discovery" class="header-anchor">#</a> Setting the time between BLE scans and force a scan (available with HA discovery)</h2> <p>Example if you want the BLE to scan every 66 seconds:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;interval&quot;:66000}'</code></p> <p>you can also force a scan to be done by the following command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;interval&quot;:0}'</code></p> <p>Changing the interval between scans will deactivate adaptive scanning.</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> <p>Once the forced scan has completed, the previous scan interval value will be restored. Forcing a scan command trigger also a BLE connect process after the scan (see below).</p> <p>The default value <code>TimeBtwRead</code> is set into config_BT.h or into your .ini file for platformio users.</p> <p>If you want to scan continuously for BLE devices, for example for beacon location you can set the interval to 100ms:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;interval&quot;:100}'</code></p> <p>In this case you should deactivate the BLE connection mechanism to avoid concurrency between scan and connections (see chapter below, bleconnect).</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>For certain devices like LYWSD03MMC OpenMQTTGateway use a connection (due to the fact that the advertized data are encrypted), this connection mechanism is launched after every <code>TimeBtwConnect</code> per default, you can modify it by following the procedure below.</p></div> <h2 id="setting-the-time-between-connection-attempts-default-60min-available-with-ha-discovery"><a href="#setting-the-time-between-connection-attempts-default-60min-available-with-ha-discovery" class="header-anchor">#</a> Setting the time between connection attempts (default: 60min, available with HA discovery)</h2> <p>If you want to change the time between BLE connect you can change it by MQTT, if you want the BLE connect time to be every 300s:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;intervalcnct&quot;:300000}'</code></p> <h2 id="setting-if-the-gateway-publishes-all-the-ble-devices-scanned-or-only-the-detected-sensors-default-false-available-with-ha-discovery"><a href="#setting-if-the-gateway-publishes-all-the-ble-devices-scanned-or-only-the-detected-sensors-default-false-available-with-ha-discovery" class="header-anchor">#</a> Setting if the gateway publishes all the BLE devices scanned or only the detected sensors (default: false, available with HA discovery)</h2> <p>If you want to change this characteristic:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;onlysensors&quot;:true}'</code></p> <p>The gateway will publish only detected sensors and trackers like Mi Flora, Mi jia, Mi Band, LYWSD03MMC... or trackers like Tile, Nut, TagIt or iTag, and not any other other BLE devices. This is useful if you don't use the gateway for presence detection with unrecognised trackers.</p> <h2 id="setting-if-the-gateway-publishes-known-devices-which-randomly-change-their-mac-address-default-false"><a href="#setting-if-the-gateway-publishes-known-devices-which-randomly-change-their-mac-address-default-false" class="header-anchor">#</a> Setting if the gateway publishes known devices which randomly change their MAC address (default: false)</h2> <p>The default is false, as such changing MAC addresses cannot be related to specific devices.</p> <p>If you want to change this characteristic:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;randommacs&quot;:true}'</code></p> <h2 id="setting-if-the-gateway-use-adaptive-scanning-default-true-available-with-ha-discovery"><a href="#setting-if-the-gateway-use-adaptive-scanning-default-true-available-with-ha-discovery" class="header-anchor">#</a> Setting if the gateway use adaptive scanning (default: true, available with HA discovery)</h2> <p>Adaptive scanning lets the gateway decide for you the best passive <code>interval</code> and active <code>intervalacts</code> scan interval, depending on the characteristics of your devices.
The gateway retrieves your devices' information from <a href="https://decoder.theengs.io" target="_blank" rel="noopener noreferrer">Theengs Decoder<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> and adapts its parameters accordingly if a device that requires it is detected.
For example a door or a PIR sensor will require continuous scanning, so if detected the gateway is going to reduce its time between scans to the minimum. Or your devices may also require active scanning to retrieve data, in this case the gateway will also trigger active scans at regular intervals.</p> <p>If you want to change this characteristic (default:true):</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;adaptivescan&quot;:false}'</code></p> <p>Setting Adaptive scanning to <code>false</code> will automatically put the gateway to continuous active scanning if no additional manual changes have already been applied.</p> <p>An overview with background information to better understand the different setting used:</p> <p><strong>Passive scanning:</strong> With this scanning mode the gateway picks up any freely available broadcasts sent out by devices, without any interaction with the devices. The interval for this is set with <a href="#setting-the-time-between-ble-scans-and-force-a-scan">{&quot;interval&quot;:66000}</a></p> <p><strong>Active scanning:</strong> With this scanning mode the gateway sends out requests for sensor broadcasts first, before then picking up the broadcast advertisement data. Some devices require this request before they send out all data in their broadcasts. The interval for this active scanning with request first is set by <a href="#setting-the-time-between-active-scanning">{&quot;intervalacts&quot;:300000}</a></p> <p>Setting <a href="#advanced-publishing-advertisement-and-advanced-data-default-false">Publishing advertisement and advanced data</a> to true will show you additional data about which of your devices require active scanning and/or continuous scanning, so that you can tune these setting to your devices and your individual requirements of their data.</p> <p><strong>&quot;cont&quot;:true</strong> - the device requires continuous scanning. If passive ({&quot;interval&quot;:100}) or active ({&quot;intervalacts&quot;:100}) depends on the additional device specification.</p> <p><strong>&quot;acts&quot;:true</strong> - the device requires active scanning to broadcast all of it's data for decoding.</p> <h2 id="setting-the-time-between-active-scanning-available-with-ha-discovery"><a href="#setting-the-time-between-active-scanning-available-with-ha-discovery" class="header-anchor">#</a> Setting the time between active scanning (available with HA discovery)</h2> <p>If you have passive scanning activated, but also have some devices which require active scanning, this defines the time interval between two intermittent active scans.</p> <p>Example for setting the active scan interval time to every 5 minutes:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;intervalacts&quot;:300000}'</code></p> <p>Changing the active scan interval will deactivate adaptive scanning.</p> <div class="custom-block warning"><p class="custom-block-title">Note</p> <p>The active scan interval <code>intervalacts</code> can only bet set equal to or higher than the passive scan interval <code>interval</code>, as any lower value would not make any sense.</p></div> <h2 id="setting-the-duration-of-a-scan-available-with-ha-discovery"><a href="#setting-the-duration-of-a-scan-available-with-ha-discovery" class="header-anchor">#</a> Setting the duration of a scan (available with HA discovery)</h2> <p>If you want to change the default duration of each scan cycle to 5 seconds</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;scanduration&quot;:5000}'</code></p> <h2 id="setting-if-the-gateway-connects-to-ble-devices-eligibles-default-true-available-with-ha-discovery"><a href="#setting-if-the-gateway-connects-to-ble-devices-eligibles-default-true-available-with-ha-discovery" class="header-anchor">#</a> Setting if the gateway connects to BLE devices eligibles (default: true, available with HA discovery)</h2> <p>If you want to change this characteristic:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;bleconnect&quot;:false}'</code></p> <h2 id="setting-if-the-gateway-publish-into-home-assistant-home-presence-topic-default-false-available-with-ha-discovery"><a href="#setting-if-the-gateway-publish-into-home-assistant-home-presence-topic-default-false-available-with-ha-discovery" class="header-anchor">#</a> Setting if the gateway publish into Home Assistant Home presence topic (default: false, available with HA discovery)</h2> <p>If you want to publish to Home Assistant presence topic, you can activate this function by the HASS interface (this command is auto discovered), <a href="/integrate/home_assistant.html#mqtt-room-presence">here is a yaml example</a>.
Or by an MQTT command.</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;hasspresence&quot;:true}'</code></p> <p>To change presence publication topic, use this MQTT command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;prestopic&quot;:&quot;presence/&quot;}'</code></p> <p>To use iBeacon UUID for presence, instead of sender (random) MAC address, use this MQTT command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;presuseuuid&quot;:true}'</code></p> <p>This will change usual payload for iBeacon from:
<code>{&quot;id&quot;:&quot;60:87:57:4C:9B:C2&quot;,&quot;mac_type&quot;:1,&quot;rssi&quot;:-78,&quot;distance&quot;:7.85288,&quot;brand&quot;:&quot;GENERIC&quot;,&quot;model&quot;:&quot;iBeacon&quot;,&quot;model_id&quot;:&quot;IBEACON&quot;,&quot;mfid&quot;:&quot;4c00&quot;,&quot;uuid&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;major&quot;:0,&quot;minor&quot;:0,&quot;txpower&quot;:-66}</code>
To:
<code>{&quot;id&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;mac_type&quot;:1,&quot;rssi&quot;:-78,&quot;distance&quot;:7.85288,&quot;brand&quot;:&quot;GENERIC&quot;,&quot;model&quot;:&quot;iBeacon&quot;,&quot;model_id&quot;:&quot;IBEACON&quot;,&quot;mfid&quot;:&quot;4c00&quot;,&quot;uuid&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;major&quot;:0,&quot;minor&quot;:0,&quot;txpower&quot;:-66,&quot;mac&quot;:&quot;60:87:57:4C:9B:C2&quot;}</code>
Note: the MAC address is put in &quot;mac&quot; field.</p> <h2 id="setting-if-the-gateway-uses-ibeacon-uuid-as-topic-instead-of-random-mac-address-default-false"><a href="#setting-if-the-gateway-uses-ibeacon-uuid-as-topic-instead-of-random-mac-address-default-false" class="header-anchor">#</a> Setting if the gateway uses iBeacon UUID as topic, instead of (random) MAC address (default: false)</h2> <p>By default, iBeacon are published like other devices, using a topic based on the MAC address of the sender.
But modern phones randomize their Bluetooth MAC address making it difficult to track iBeacon.</p> <p>For example, the 2 following messages corresponds to the same iBeacon, but with different MAC and topics:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>home/OpenMQTTGateway/BTtoMQTT/58782076BC24 {&quot;id&quot;:&quot;58:78:20:76:BC:24&quot;,&quot;mac_type&quot;:1,&quot;rssi&quot;:-79,&quot;brand&quot;:&quot;GENERIC&quot;,&quot;model&quot;:&quot;iBeacon&quot;,&quot;model_id&quot;:&quot;IBEACON&quot;,&quot;mfid&quot;:&quot;4c00&quot;,&quot;uuid&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;major&quot;:0,&quot;minor&quot;:0,&quot;txpower&quot;:-66}
home/OpenMQTTGateway/BTtoMQTT/5210A84690AC {&quot;id&quot;:&quot;52:10:A8:46:90:AC&quot;,&quot;mac_type&quot;:1,&quot;rssi&quot;:-77,&quot;brand&quot;:&quot;GENERIC&quot;,&quot;model&quot;:&quot;iBeacon&quot;,&quot;model_id&quot;:&quot;IBEACON&quot;,&quot;mfid&quot;:&quot;4c00&quot;,&quot;uuid&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;major&quot;:0,&quot;minor&quot;:0,&quot;txpower&quot;:-66}
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><p>To use iBeacon UUID as topic, use this MQTT command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;pubuuid4topic&quot;:true}'</code></p> <p>Resulting in such messages (for the same iBeacon as previously):</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>home/OpenMQTTGateway/BTtoMQTT/1de4b189115e45f6b44e509352269977 {&quot;id&quot;:&quot;52:10:A8:46:90:AC&quot;,&quot;mac_type&quot;:1,&quot;rssi&quot;:-76,&quot;brand&quot;:&quot;GENERIC&quot;,&quot;model&quot;:&quot;iBeacon&quot;,&quot;model_id&quot;:&quot;IBEACON&quot;,&quot;mfid&quot;:&quot;4c00&quot;,&quot;uuid&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;major&quot;:0,&quot;minor&quot;:0,&quot;txpower&quot;:-66}
home/OpenMQTTGateway/BTtoMQTT/1de4b189115e45f6b44e509352269977 {&quot;id&quot;:&quot;7B:63:C6:82:DC:57&quot;,&quot;mac_type&quot;:1,&quot;rssi&quot;:-83,&quot;brand&quot;:&quot;GENERIC&quot;,&quot;model&quot;:&quot;iBeacon&quot;,&quot;model_id&quot;:&quot;IBEACON&quot;,&quot;mfid&quot;:&quot;4c00&quot;,&quot;uuid&quot;:&quot;1de4b189115e45f6b44e509352269977&quot;,&quot;major&quot;:0,&quot;minor&quot;:0,&quot;txpower&quot;:-66}
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><h2 id="setting-the-minimum-rssi-accepted-to-publish-device-data-default-100"><a href="#setting-the-minimum-rssi-accepted-to-publish-device-data-default-100" class="header-anchor">#</a> Setting the minimum RSSI accepted to publish device data (default:-100)</h2> <p>If you want to change the minimum RSSI value accepted for a device to be published, you can change it by MQTT. For example if you want to set -80</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;minrssi&quot;:-80}'</code></p> <p>you can also accept all the devices by the following command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;minrssi&quot;:-200}'</code></p> <p>The default value is set into config_BT.h</p> <h2 id="store-ble-configuration-into-the-gateway"><a href="#store-ble-configuration-into-the-gateway" class="header-anchor">#</a> Store BLE configuration into the gateway</h2> <p>OpenMQTTGateway has the capability to save the current configuration and reload it at startup.</p> <p>To store the running configuration into the gateway, use the command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;save&quot;:true}'</code></p> <p>At any time, you can reload the stored configuration with the command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;load&quot;:true}'</code></p> <p>If you want to erase the stored configuration, use the command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;erase&quot;:true}'</code>
Note that it will not change the running configuration, only ensure default configuration is used at next startup.</p> <p>By the way, if you want to load the default built-in configuration (on any board, not only ESP32), use the command:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;init&quot;:true}'</code>
Note that it will not change the stored configuration, <code>erase</code> or <code>save</code> is still needed to overwrite the saved configuration.</p> <h2 id="controlling-devices"><a href="#controlling-devices" class="header-anchor">#</a> Controlling devices</h2> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>To control devices reliably, set the interval between scans to at least 5 seconds and the scan duration to 1 second to ensure commands are successfully transmitted to your devices.</p></div> <h2 id="read-write-ble-characteristics-over-mqtt"><a href="#read-write-ble-characteristics-over-mqtt" class="header-anchor">#</a> Read/write BLE characteristics over MQTT</h2> <p>The gateway can read and write BLE characteristics from devices and provide the results in an MQTT message.</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>These actions will be taken on the next BLE connection, which occurs after scanning and after the scan count is reached, <a href="#setting-the-number-of-scans-between-connection-attempts">see above to set this</a>.
This can be overridden by providing an (optional) parameter <code>&quot;immediate&quot;: true</code> within the command. This will cause the BLE scan to stop if currently in progress, allowing the command to be immediately processed. All other connection commands in queue will also be processed for the same device, commands for other devices will be deferred until the next normally scheduled connection.</p> <p><strong>Note</strong> Some devices need to have the MAC address type specified. You can find this type by checking the log/MQTT data and looking for &quot;mac_type&quot;. The mac_type of your device can be seen by setting <code>pubadvdata</code> to <code>true</code> with an MQTT command (see Publishing advertisement data), or with the macro <code>pubBLEAdvData true</code>. By default the type is 0 but some devices use different type values. You must specify the correct type to connect successfully.<br>
To specify the MAC address type add the parameter <code>&quot;mac_type&quot;</code> to the command. For example <code>&quot;mac_type&quot;: 1</code> to connect with a device with the MAC address type of 1.</p></div> <h3 id="example-write-command"><a href="#example-write-command" class="header-anchor">#</a> Example write command</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;ble_write_address&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;ble_write_service&quot;:&quot;cba20d00-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;ble_write_char&quot;:&quot;cba20002-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;ble_write_value&quot;:&quot;TEST&quot;,
&quot;value_type&quot;:&quot;STRING&quot;,
&quot;ttl&quot;:4,
&quot;immediate&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></div></div><p>Response:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>{
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;service&quot;:&quot;cba20d00-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;characteristic&quot;:&quot;cba20002-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;write&quot;:&quot;TEST&quot;,
&quot;success&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></div></div><h3 id="example-read-command"><a href="#example-read-command" class="header-anchor">#</a> Example read command</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;ble_read_address&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;ble_read_service&quot;:&quot;cba20d00-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;ble_read_char&quot;:&quot;cba20002-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;value_type&quot;:&quot;STRING&quot;,
&quot;ttl&quot;: 2 }'
</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><p>Response:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>{
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;service&quot;:&quot;cba20d00-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;characteristic&quot;:&quot;cba20002-224d-11e6-9fb8-0002a5d5c51b&quot;,
&quot;read&quot;:&quot;TEST&quot;,
&quot;success&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></div></div><div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>The <code>ttl</code> parameter is the number of attempts to connect (defaults to 1), which occur after the BLE scan completes.<br> <code>value_type</code> can be one of: STRING, HEX, INT, FLOAT. Default is STRING if omitted in the message.</p></div> <h2 id="switchbot-bot-control-available-with-ha-discovery"><a href="#switchbot-bot-control-available-with-ha-discovery" class="header-anchor">#</a> SwitchBot Bot control (available with HA discovery)</h2> <p>SwitchBot Bot devices are automatically discovered and available as a device in the Home Assistant Settings menu. The following commands are supported:</p> <ul><li>Press</li> <li>On</li> <li>Off</li> <li>Up</li> <li>Down</li></ul> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>If the SwitchBot mode is changed the ESP32 must be restarted.</p></div> <p>The device can also be controlled over MQTT with a simplified BLE write command.</p> <h3 id="set-the-switchbot-bot-state-to-on"><a href="#set-the-switchbot-bot-state-to-on" class="header-anchor">#</a> Set the SwitchBot Bot state to ON:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;X1&quot;,
&quot;cmd&quot;:&quot;on&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-bot-state-to-off"><a href="#set-the-switchbot-bot-state-to-off" class="header-anchor">#</a> Set the SwitchBot Bot state to OFF:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;X1&quot;,
&quot;cmd&quot;:&quot;off&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-bot-to-press"><a href="#set-the-switchbot-bot-to-press" class="header-anchor">#</a> Set the SwitchBot Bot to PRESS:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;X1&quot;,
&quot;cmd&quot;:&quot;press&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-bot-to-go-up"><a href="#set-the-switchbot-bot-to-go-up" class="header-anchor">#</a> Set the SwitchBot Bot to go UP:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;X1&quot;,
&quot;cmd&quot;:&quot;up&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-bot-to-go-down"><a href="#set-the-switchbot-bot-to-go-down" class="header-anchor">#</a> Set the SwitchBot Bot to go DOWN:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;X1&quot;,
&quot;cmd&quot;:&quot;down&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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>Response (assuming success):</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>{
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;state&quot;:&quot;on&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></div></div><h2 id="switchbot-blind-tilt-control-available-with-ha-discovery"><a href="#switchbot-blind-tilt-control-available-with-ha-discovery" class="header-anchor">#</a> SwitchBot Blind Tilt control (available with HA discovery)</h2> <p>SwitchBot Blind Tilt devices are automatically discovered and available as a device in the settings Home Assistant Settings menu. The following commands are supported:</p> <ul><li>Open</li> <li>Close down</li> <li>Set a percentage</li></ul> <p>The device can also be controlled over MQTT with a simplified BLE write command.</p> <h3 id="set-the-switchbot-blind-tilt-state-to-open"><a href="#set-the-switchbot-blind-tilt-state-to-open" class="header-anchor">#</a> Set the SwitchBot Blind Tilt state to OPEN:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W270160X&quot;,
&quot;tilt&quot;:&quot;open&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-blind-tilt-state-to-close-down"><a href="#set-the-switchbot-blind-tilt-state-to-close-down" class="header-anchor">#</a> Set the SwitchBot Blind Tilt state to CLOSE_DOWN:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W270160X&quot;,
&quot;tilt&quot;:&quot;close_down&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-blind-tilt-state-to-close-up"><a href="#set-the-switchbot-blind-tilt-state-to-close-up" class="header-anchor">#</a> Set the SwitchBot Blind Tilt state to CLOSE_UP:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W270160X&quot;,
&quot;tilt&quot;:&quot;close_up&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-blind-tilt-state-to-a-percentage-0-100"><a href="#set-the-switchbot-blind-tilt-state-to-a-percentage-0-100" class="header-anchor">#</a> Set the SwitchBot Blind Tilt state to a percentage (0-100):</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W270160X&quot;,
&quot;tilt&quot;:55,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-blind-tilt-to-stop"><a href="#set-the-switchbot-blind-tilt-to-stop" class="header-anchor">#</a> Set the SwitchBot Blind Tilt to Stop:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W270160X&quot;,
&quot;tilt&quot;:&quot;stop&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="response-assuming-success"><a href="#response-assuming-success" class="header-anchor">#</a> Response (assuming success):</h3> <p>The Switchbot Blind Tilt response :</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>{
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;tilt&quot;:55,
&quot;open&quot;:90,
&quot;direction&quot;:&quot;up&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><h2 id="switchbot-curtain-2-3-control-available-with-ha-discovery"><a href="#switchbot-curtain-2-3-control-available-with-ha-discovery" class="header-anchor">#</a> SwitchBot Curtain (2/3) control (available with HA discovery)</h2> <p>SwitchBot Curtain (2/3) devices are automatically discovered and available as a device in the settings Home Assistant Settings menu. The following commands are supported:</p> <ul><li>Set a percentage</li></ul> <p>The device can also be controlled over MQTT with a simplified BLE write command.</p> <h3 id="set-the-switchbot-curtain-state-to-open"><a href="#set-the-switchbot-curtain-state-to-open" class="header-anchor">#</a> Set the SwitchBot Curtain state to OPEN:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W070160X&quot;,
&quot;position&quot;:&quot;open&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-curtain-state-to-close"><a href="#set-the-switchbot-curtain-state-to-close" class="header-anchor">#</a> Set the SwitchBot Curtain state to CLOSE:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W070160X&quot;,
&quot;position&quot;:&quot;close&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-curtain-to-a-percentage-0-100"><a href="#set-the-switchbot-curtain-to-a-percentage-0-100" class="header-anchor">#</a> Set the SwitchBot Curtain to a percentage (0-100):</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W070160X&quot;,
&quot;position&quot;:55,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="set-the-switchbot-curtain-to-stop"><a href="#set-the-switchbot-curtain-to-stop" class="header-anchor">#</a> Set the SwitchBot Curtain to Stop:</h3> <div class="language- line-numbers-mode"><pre class="language-text"><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT -m '{
&quot;model_id&quot;:&quot;W070160X&quot;,
&quot;position&quot;:&quot;stop&quot;,
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&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><h3 id="response-assuming-success-2"><a href="#response-assuming-success-2" class="header-anchor">#</a> Response (assuming success):</h3> <p>The Switchbot Curtain response :</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>{
&quot;id&quot;:&quot;AA:BB:CC:DD:EE:FF&quot;,
&quot;position&quot;:55,
}
</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><h2 id="advanced-setting-up-an-external-decoder"><a href="#advanced-setting-up-an-external-decoder" class="header-anchor">#</a> ADVANCED: Setting up an external decoder</h2> <p>This advanced option is used to publish raw radio frames on a specific topic to be decoded by an external decoder instead of the integrated one.</p> <p>To enable external decoder:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;extDecoderEnable&quot;:true}'</code></p> <p>To change the default external decoder topic to &quot;undecoded&quot;:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;extDecoderTopic&quot;:&quot;undecoded&quot;}'</code></p> <h2 id="advanced-filtering-out-connectable-devices-default-false"><a href="#advanced-filtering-out-connectable-devices-default-false" class="header-anchor">#</a> ADVANCED: Filtering out connectable devices (default: false)</h2> <p><a href="/integrate/openhab2.html">With OpenHAB integration</a>, this configuration is highly recommended, otherwise you may encounter incomplete data.</p> <p>If you want to enable this feature:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;filterConnectable&quot;:true}'</code></p> <h2 id="advanced-advertisement-and-advanced-data-default-false-available-with-ha-discovery"><a href="#advanced-advertisement-and-advanced-data-default-false-available-with-ha-discovery" class="header-anchor">#</a> ADVANCED: Advertisement and advanced data (default: false, available with HA discovery)</h2> <p>If you want to enable this feature:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;pubadvdata&quot;:true}'</code></p> <p>This will publish extensive information about the device:</p> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span><span class="token property">&quot;id&quot;</span><span class="token operator">:</span><span class="token string">&quot;11:22:33:44:55:66&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;mac_type&quot;</span><span class="token operator">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token property">&quot;adv_type&quot;</span><span class="token operator">:</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token property">&quot;name&quot;</span><span class="token operator">:</span><span class="token string">&quot;Qingping Motion &amp; Light&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;rssi&quot;</span><span class="token operator">:</span><span class="token number">-93</span><span class="token punctuation">,</span><span class="token property">&quot;servicedata&quot;</span><span class="token operator">:</span><span class="token string">&quot;88121122334455660201520f0126090403000000&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;servicedatauuid&quot;</span><span class="token operator">:</span><span class="token string">&quot;0xfdcd&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;brand&quot;</span><span class="token operator">:</span><span class="token string">&quot;Qingping&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;model&quot;</span><span class="token operator">:</span><span class="token string">&quot;Motion &amp; Light&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;model_id&quot;</span><span class="token operator">:</span><span class="token string">&quot;CGPR1&quot;</span><span class="token punctuation">,</span><span class="token property">&quot;lux&quot;</span><span class="token operator">:</span><span class="token number">3</span><span class="token punctuation">,</span><span class="token property">&quot;batt&quot;</span><span class="token operator">:</span><span class="token number">82</span><span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>To stop publishing advertisement data:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{&quot;pubadvdata&quot;:false}'</code></p> <div class="custom-block warning"><p class="custom-block-title">Note</p> <p>All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.</p></div> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>We strongly encourage the use of a white-list (see below) so as to collect data from your devices only and not from other MAC addresses.
By default the gateway scans the advertizing BLE devices nearby with their MAC addresses. Depending on your country, it may be illegal to monitor networks for MAC addresses, especially on networks that you do not own. Please check your country's laws (for US Section 18 U.S. Code § 2511) - <a href="https://github.com/schollz/howmanypeoplearearound/issues/4" target="_blank" rel="noopener noreferrer">discussion 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>.</p></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/1technophile/OpenMQTTGateway/edit/development/docs/use/ble.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/rf.html" class="prev">
RF gateways (RTL_433/RCSwitch/RF/RF2)
</a></span> <span class="next"><a href="/use/ir.html">
Infrared gateway
</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/17.c62583a8.js" defer></script>
</body>
</html>