From 3f1fac419772b5bb1135bece50a4de94e76ce3cb Mon Sep 17 00:00:00 2001 From: DigiH Date: Mon, 20 May 2024 16:54:33 +0000 Subject: [PATCH] deploy: 5a95d9040c36a7ec844db04fb3ec1b531417cd88 --- 404.html | 4 ++-- assets/img/CGP1W.png | Bin 0 -> 177154 bytes assets/js/{10.ed85af0e.js => 10.9599f487.js} | 2 +- assets/js/{100.a9d603d9.js => 100.4ef208fd.js} | 2 +- assets/js/{102.02123482.js => 102.15bfa295.js} | 2 +- assets/js/{103.88f2b189.js => 103.c980e003.js} | 2 +- assets/js/{104.0a40d3af.js => 104.d0a04716.js} | 2 +- assets/js/{106.d34d54cc.js => 106.c91a5fb4.js} | 2 +- assets/js/{107.24f56abe.js => 107.c10759ca.js} | 2 +- assets/js/{108.af4f6dd4.js => 108.5f8a5ee1.js} | 2 +- assets/js/{109.407c4fda.js => 109.39cb5053.js} | 2 +- assets/js/{11.71c71271.js => 11.ca4090c3.js} | 2 +- assets/js/{110.cadfba0a.js => 110.bdc0a639.js} | 2 +- assets/js/{112.82a13a28.js => 112.ab91a454.js} | 2 +- assets/js/{113.9a06472d.js => 113.b92674a8.js} | 2 +- assets/js/{114.d86a6ba6.js => 114.06ab9303.js} | 2 +- assets/js/{115.7569ac87.js => 115.56331eac.js} | 2 +- assets/js/{116.cc5c77b4.js => 116.b3680cd9.js} | 2 +- assets/js/{117.0925bcc7.js => 117.2bb0dfba.js} | 2 +- assets/js/{118.6e9b7d91.js => 118.888d2ab3.js} | 2 +- assets/js/{119.af61c5b4.js => 119.517f3c63.js} | 2 +- assets/js/{12.ff4a0460.js => 12.60262062.js} | 2 +- assets/js/{120.e6839c37.js => 120.f2280d62.js} | 2 +- assets/js/{13.1ca5b608.js => 13.8dd9b9f1.js} | 2 +- assets/js/{14.7dcf893d.js => 14.98fdd00f.js} | 2 +- assets/js/{15.7335d5c3.js => 15.43d9895e.js} | 2 +- assets/js/{16.6c25fb1c.js => 16.766dd89a.js} | 2 +- assets/js/{17.0fd9c128.js => 17.9b4fdfc9.js} | 2 +- assets/js/{18.4e4f715e.js => 18.b719775f.js} | 2 +- assets/js/{19.322c61f3.js => 19.38b2c194.js} | 2 +- assets/js/{20.2c52d720.js => 20.87bdb4de.js} | 2 +- assets/js/{21.81d5d09e.js => 21.dd6d53e9.js} | 2 +- assets/js/{22.9d26117a.js => 22.18e8c33f.js} | 2 +- assets/js/{24.e89cab37.js => 24.3bf06ae8.js} | 2 +- assets/js/{25.37011e0a.js => 25.bc9c8825.js} | 2 +- assets/js/{26.339b41ca.js => 26.fc293c37.js} | 2 +- assets/js/{27.f16ea0bd.js => 27.94159bd9.js} | 2 +- assets/js/{28.9e8fdadf.js => 28.7cb19aed.js} | 2 +- assets/js/{29.6d36a818.js => 29.448e1e25.js} | 2 +- assets/js/{30.fdb96972.js => 30.84be415d.js} | 2 +- assets/js/{31.202d3075.js => 31.bec0bdd0.js} | 2 +- assets/js/{32.316f184a.js => 32.7e84ce16.js} | 2 +- assets/js/{33.08e0133c.js => 33.39e416dc.js} | 2 +- assets/js/{34.121327a2.js => 34.3450a34b.js} | 2 +- assets/js/{35.e68db2e8.js => 35.44fadaac.js} | 2 +- assets/js/{36.eff273ec.js => 36.52c79b18.js} | 2 +- assets/js/{37.ae560090.js => 37.702409ef.js} | 2 +- assets/js/{38.59bb9385.js => 38.8237f54f.js} | 2 +- assets/js/{39.4d02ea1a.js => 39.deb037b9.js} | 2 +- assets/js/{42.7a5bec82.js => 42.8b899fd7.js} | 2 +- assets/js/{43.5a61a673.js => 43.0cf7890d.js} | 2 +- assets/js/{44.9f95d0d9.js => 44.245cd86f.js} | 2 +- assets/js/{45.97754c06.js => 45.18156264.js} | 2 +- assets/js/{46.b9fc38b2.js => 46.560a0816.js} | 2 +- assets/js/{48.56ce9100.js => 48.476fd02d.js} | 2 +- assets/js/{49.1b27ca11.js => 49.4e499b69.js} | 2 +- assets/js/{50.430cad70.js => 50.82575be8.js} | 2 +- assets/js/{51.3f48e397.js => 51.b877c98a.js} | 2 +- assets/js/{52.f0042e07.js => 52.d3bdd7d3.js} | 2 +- assets/js/{53.3da4f036.js => 53.0df9c540.js} | 2 +- assets/js/{54.57c29628.js => 54.af496b47.js} | 2 +- assets/js/{55.cde5b718.js => 55.b6593f79.js} | 2 +- assets/js/{56.e280a65b.js => 56.f774d359.js} | 2 +- assets/js/{57.10b60402.js => 57.4a5921d8.js} | 2 +- assets/js/{58.52750d25.js => 58.378637bf.js} | 2 +- assets/js/{59.a68d39e2.js => 59.ad821971.js} | 2 +- assets/js/{6.9539e060.js => 6.5e296234.js} | 2 +- assets/js/{60.3a3aa25e.js => 60.4eaf3000.js} | 2 +- assets/js/{62.00a160a9.js => 62.b0e64004.js} | 2 +- assets/js/{63.0e6bb573.js => 63.60c223b3.js} | 2 +- assets/js/{64.912b0c8f.js => 64.95d177cf.js} | 2 +- assets/js/{65.f2ee2a6b.js => 65.adfe0979.js} | 2 +- assets/js/{66.5e129ee6.js => 66.b5ec4a90.js} | 2 +- assets/js/{67.333d3c26.js => 67.02c47bab.js} | 2 +- assets/js/{68.b869250a.js => 68.c76beaef.js} | 2 +- assets/js/{7.1e824c5a.js => 7.a04ca7f1.js} | 2 +- assets/js/{70.6ec9d642.js => 70.a596606c.js} | 2 +- assets/js/{71.3e5172de.js => 71.de64ad6e.js} | 2 +- assets/js/{73.bd0e0590.js => 73.6c97b117.js} | 2 +- assets/js/{74.37868374.js => 74.c7b7c89c.js} | 2 +- assets/js/{75.e03f48a6.js => 75.e70b7bfb.js} | 2 +- assets/js/{76.3193a0c0.js => 76.df9cba00.js} | 2 +- assets/js/{78.75545bd6.js => 78.4e6424d5.js} | 2 +- assets/js/{79.76d2623c.js => 79.c348e825.js} | 2 +- assets/js/{8.7326962f.js => 8.82c1d730.js} | 2 +- assets/js/{80.43ee2996.js => 80.0596a490.js} | 2 +- assets/js/{81.8b327944.js => 81.fee48c3e.js} | 2 +- assets/js/{84.5a9ac33e.js => 84.51c97e64.js} | 2 +- assets/js/{85.7a887872.js => 85.c9ab69dc.js} | 2 +- assets/js/{86.e26d0a7e.js => 86.57f430fc.js} | 2 +- assets/js/{87.d35a93d0.js => 87.5161d01c.js} | 2 +- assets/js/{88.f8452435.js => 88.f41d6e94.js} | 2 +- assets/js/{89.edf8dc19.js => 89.c3af308c.js} | 2 +- assets/js/{9.62483b7b.js => 9.9b2d0ee1.js} | 2 +- assets/js/{90.8e6dee64.js => 90.d96654ae.js} | 2 +- assets/js/{91.886d387a.js => 91.d0176df2.js} | 2 +- assets/js/{93.b8c87536.js => 93.ba06809a.js} | 2 +- assets/js/{94.93657e52.js => 94.6984c777.js} | 2 +- assets/js/{95.79aa5406.js => 95.fcb321d0.js} | 2 +- assets/js/{96.ba382cf3.js => 96.e3549ae3.js} | 2 +- assets/js/{97.ced9d37d.js => 97.2c2b1c43.js} | 2 +- assets/js/{98.0e4b8a18.js => 98.c81ea279.js} | 2 +- assets/js/{app.508146a3.js => app.6f2c9c78.js} | 4 ++-- devices/ABN03.html | 6 +++--- devices/ABN07.html | 6 +++--- devices/ABTemp.html | 6 +++--- devices/Amazfit.html | 6 +++--- devices/Amphiro.html | 6 +++--- devices/AppleDevice.html | 6 +++--- devices/AppleWatch.html | 6 +++--- devices/Aranet4.html | 6 +++--- devices/BC08.html | 6 +++--- devices/BM1in1.html | 6 +++--- devices/BM2.html | 6 +++--- devices/BM3in1.html | 6 +++--- devices/BM4in1.html | 6 +++--- devices/BM6.html | 6 +++--- devices/BPARASITE.html | 6 +++--- devices/BWBSDOO.html | 6 +++--- devices/CGC1.html | 6 +++--- devices/CGD1.html | 6 +++--- devices/CGDK2.html | 6 +++--- devices/CGDN1.html | 6 +++--- devices/CGG1.html | 6 +++--- devices/CGH1.html | 6 +++--- devices/CGP1W.html | 6 +++--- devices/CGP23W.html | 6 +++--- devices/CGPR1.html | 6 +++--- devices/H5055.html | 6 +++--- devices/H5072.html | 6 +++--- devices/H5074.html | 6 +++--- devices/H5075.html | 6 +++--- devices/H5100.html | 6 +++--- devices/H5101.html | 6 +++--- devices/H5102.html | 6 +++--- devices/H5104.html | 6 +++--- devices/H5105.html | 6 +++--- devices/H5106.html | 6 +++--- devices/H5174.html | 6 +++--- devices/H5177.html | 6 +++--- devices/H5179.html | 6 +++--- devices/HHCCJCY01HHCC.html | 6 +++--- devices/HHCCJCY10.html | 6 +++--- devices/HHCCPOT002.html | 6 +++--- devices/IBS-P01B.html | 6 +++--- devices/IBS_TH1.html | 6 +++--- devices/IBS_TH2.html | 6 +++--- devices/IBT_2X.html | 6 +++--- devices/IBT_4XS.html | 6 +++--- devices/IBT_6XS.html | 6 +++--- devices/ITH_12S.html | 6 +++--- devices/JAALEE.html | 6 +++--- devices/JQJCY01YM.html | 6 +++--- devices/KKM_K6P.html | 6 +++--- devices/KKM_K9.html | 6 +++--- devices/LYWSD02.html | 6 +++--- devices/LYWSD03MMC.html | 6 +++--- devices/LYWSDCGQ.html | 6 +++--- devices/MBXPRO.html | 6 +++--- devices/MHO-C401.html | 6 +++--- devices/MJWSD05MMC.html | 6 +++--- devices/MUE4094RT.html | 6 +++--- devices/Miband.html | 6 +++--- devices/MokoBeacon.html | 6 +++--- devices/Mopeka.html | 6 +++--- devices/NODONNIU.html | 6 +++--- devices/ORALB.html | 6 +++--- devices/ORAS.html | 6 +++--- devices/OTOD.html | 6 +++--- devices/PH10.html | 6 +++--- devices/RDL52832.html | 6 +++--- devices/RuuviTag_RAWv1.html | 6 +++--- devices/RuuviTag_RAWv2.html | 6 +++--- devices/SBBT-002C.html | 6 +++--- devices/SBBT.html | 6 +++--- devices/SBCS.html | 6 +++--- devices/SBCU.html | 6 +++--- devices/SBDW-002C.html | 6 +++--- devices/SBMO-003Z.html | 6 +++--- devices/SBMS.html | 6 +++--- devices/SBMT.html | 6 +++--- devices/SBOT.html | 6 +++--- devices/SBS1.html | 6 +++--- devices/SCD4X.html | 6 +++--- devices/SDLS.html | 6 +++--- devices/SE_MAG.html | 6 +++--- devices/SE_RHT_PRO.html | 6 +++--- devices/SE_TEMP.html | 6 +++--- devices/SE_TEMP_PRO.html | 6 +++--- devices/SE_TPROBE.html | 6 +++--- devices/SHT4x.html | 6 +++--- devices/SOLIS_6.html | 6 +++--- devices/ServiceData.html | 6 +++--- devices/Skale.html | 6 +++--- devices/T201.html | 6 +++--- devices/T301.html | 6 +++--- devices/TILT.html | 6 +++--- devices/TP357.html | 6 +++--- devices/TP358.html | 6 +++--- devices/TP359.html | 6 +++--- devices/TP393.html | 6 +++--- devices/TPMS.html | 6 +++--- devices/ThermoBeacon.html | 6 +++--- devices/XMTZC04HM.html | 6 +++--- devices/XMTZC05HM.html | 6 +++--- devices/XOSSX2.html | 6 +++--- devices/devices.html | 8 ++++---- devices/devices_by_brand.html | 6 +++--- devices/iBeacon.html | 6 +++--- devices/iNodeEM.html | 6 +++--- devices/rows.html | 6 +++--- index.html | 6 +++--- participate/adding-decoders.html | 6 +++--- participate/development.html | 6 +++--- participate/support.html | 6 +++--- use/ESP32.html | 6 +++--- use/include.html | 6 +++--- use/python.html | 6 +++--- 218 files changed, 450 insertions(+), 450 deletions(-) create mode 100644 assets/img/CGP1W.png rename assets/js/{10.ed85af0e.js => 10.9599f487.js} (89%) rename assets/js/{100.a9d603d9.js => 100.4ef208fd.js} (95%) rename assets/js/{102.02123482.js => 102.15bfa295.js} (95%) rename assets/js/{103.88f2b189.js => 103.c980e003.js} (95%) rename assets/js/{104.0a40d3af.js => 104.d0a04716.js} (95%) rename assets/js/{106.d34d54cc.js => 106.c91a5fb4.js} (95%) rename assets/js/{107.24f56abe.js => 107.c10759ca.js} (95%) rename assets/js/{108.af4f6dd4.js => 108.5f8a5ee1.js} (96%) rename assets/js/{109.407c4fda.js => 109.39cb5053.js} (95%) rename assets/js/{11.71c71271.js => 11.ca4090c3.js} (88%) rename assets/js/{110.cadfba0a.js => 110.bdc0a639.js} (95%) rename assets/js/{112.82a13a28.js => 112.ab91a454.js} (95%) rename assets/js/{113.9a06472d.js => 113.b92674a8.js} (95%) rename assets/js/{114.d86a6ba6.js => 114.06ab9303.js} (93%) rename assets/js/{115.7569ac87.js => 115.56331eac.js} (99%) rename assets/js/{116.cc5c77b4.js => 116.b3680cd9.js} (99%) rename assets/js/{117.0925bcc7.js => 117.2bb0dfba.js} (96%) rename assets/js/{118.6e9b7d91.js => 118.888d2ab3.js} (96%) rename assets/js/{119.af61c5b4.js => 119.517f3c63.js} (98%) rename assets/js/{12.ff4a0460.js => 12.60262062.js} (89%) rename assets/js/{120.e6839c37.js => 120.f2280d62.js} (98%) rename assets/js/{13.1ca5b608.js => 13.8dd9b9f1.js} (89%) rename assets/js/{14.7dcf893d.js => 14.98fdd00f.js} (88%) rename assets/js/{15.7335d5c3.js => 15.43d9895e.js} (89%) rename assets/js/{16.6c25fb1c.js => 16.766dd89a.js} (88%) rename assets/js/{17.0fd9c128.js => 17.9b4fdfc9.js} (96%) rename assets/js/{18.4e4f715e.js => 18.b719775f.js} (96%) rename assets/js/{19.322c61f3.js => 19.38b2c194.js} (96%) rename assets/js/{20.2c52d720.js => 20.87bdb4de.js} (96%) rename assets/js/{21.81d5d09e.js => 21.dd6d53e9.js} (96%) rename assets/js/{22.9d26117a.js => 22.18e8c33f.js} (88%) rename assets/js/{24.e89cab37.js => 24.3bf06ae8.js} (92%) rename assets/js/{25.37011e0a.js => 25.bc9c8825.js} (96%) rename assets/js/{26.339b41ca.js => 26.fc293c37.js} (88%) rename assets/js/{27.f16ea0bd.js => 27.94159bd9.js} (93%) rename assets/js/{28.9e8fdadf.js => 28.7cb19aed.js} (92%) rename assets/js/{29.6d36a818.js => 29.448e1e25.js} (89%) rename assets/js/{30.fdb96972.js => 30.84be415d.js} (89%) rename assets/js/{31.202d3075.js => 31.bec0bdd0.js} (90%) rename assets/js/{32.316f184a.js => 32.7e84ce16.js} (92%) rename assets/js/{33.08e0133c.js => 33.39e416dc.js} (96%) rename assets/js/{34.121327a2.js => 34.3450a34b.js} (88%) rename assets/js/{35.e68db2e8.js => 35.44fadaac.js} (88%) rename assets/js/{36.eff273ec.js => 36.52c79b18.js} (96%) rename assets/js/{37.ae560090.js => 37.702409ef.js} (96%) rename assets/js/{38.59bb9385.js => 38.8237f54f.js} (96%) rename assets/js/{39.4d02ea1a.js => 39.deb037b9.js} (96%) rename assets/js/{42.7a5bec82.js => 42.8b899fd7.js} (95%) rename assets/js/{43.5a61a673.js => 43.0cf7890d.js} (96%) rename assets/js/{44.9f95d0d9.js => 44.245cd86f.js} (95%) rename assets/js/{45.97754c06.js => 45.18156264.js} (96%) rename assets/js/{46.b9fc38b2.js => 46.560a0816.js} (96%) rename assets/js/{48.56ce9100.js => 48.476fd02d.js} (97%) rename assets/js/{49.1b27ca11.js => 49.4e499b69.js} (95%) rename assets/js/{50.430cad70.js => 50.82575be8.js} (96%) rename assets/js/{51.3f48e397.js => 51.b877c98a.js} (96%) rename assets/js/{52.f0042e07.js => 52.d3bdd7d3.js} (96%) rename assets/js/{53.3da4f036.js => 53.0df9c540.js} (95%) rename assets/js/{54.57c29628.js => 54.af496b47.js} (95%) rename assets/js/{55.cde5b718.js => 55.b6593f79.js} (96%) rename assets/js/{56.e280a65b.js => 56.f774d359.js} (96%) rename assets/js/{57.10b60402.js => 57.4a5921d8.js} (95%) rename assets/js/{58.52750d25.js => 58.378637bf.js} (95%) rename assets/js/{59.a68d39e2.js => 59.ad821971.js} (95%) rename assets/js/{6.9539e060.js => 6.5e296234.js} (93%) rename assets/js/{60.3a3aa25e.js => 60.4eaf3000.js} (95%) rename assets/js/{62.00a160a9.js => 62.b0e64004.js} (95%) rename assets/js/{63.0e6bb573.js => 63.60c223b3.js} (95%) rename assets/js/{64.912b0c8f.js => 64.95d177cf.js} (95%) rename assets/js/{65.f2ee2a6b.js => 65.adfe0979.js} (95%) rename assets/js/{66.5e129ee6.js => 66.b5ec4a90.js} (95%) rename assets/js/{67.333d3c26.js => 67.02c47bab.js} (95%) rename assets/js/{68.b869250a.js => 68.c76beaef.js} (95%) rename assets/js/{7.1e824c5a.js => 7.a04ca7f1.js} (93%) rename assets/js/{70.6ec9d642.js => 70.a596606c.js} (95%) rename assets/js/{71.3e5172de.js => 71.de64ad6e.js} (95%) rename assets/js/{73.bd0e0590.js => 73.6c97b117.js} (95%) rename assets/js/{74.37868374.js => 74.c7b7c89c.js} (96%) rename assets/js/{75.e03f48a6.js => 75.e70b7bfb.js} (96%) rename assets/js/{76.3193a0c0.js => 76.df9cba00.js} (95%) rename assets/js/{78.75545bd6.js => 78.4e6424d5.js} (95%) rename assets/js/{79.76d2623c.js => 79.c348e825.js} (95%) rename assets/js/{8.7326962f.js => 8.82c1d730.js} (88%) rename assets/js/{80.43ee2996.js => 80.0596a490.js} (95%) rename assets/js/{81.8b327944.js => 81.fee48c3e.js} (95%) rename assets/js/{84.5a9ac33e.js => 84.51c97e64.js} (96%) rename assets/js/{85.7a887872.js => 85.c9ab69dc.js} (96%) rename assets/js/{86.e26d0a7e.js => 86.57f430fc.js} (87%) rename assets/js/{87.d35a93d0.js => 87.5161d01c.js} (95%) rename assets/js/{88.f8452435.js => 88.f41d6e94.js} (95%) rename assets/js/{89.edf8dc19.js => 89.c3af308c.js} (95%) rename assets/js/{9.62483b7b.js => 9.9b2d0ee1.js} (89%) rename assets/js/{90.8e6dee64.js => 90.d96654ae.js} (95%) rename assets/js/{91.886d387a.js => 91.d0176df2.js} (95%) rename assets/js/{93.b8c87536.js => 93.ba06809a.js} (95%) rename assets/js/{94.93657e52.js => 94.6984c777.js} (95%) rename assets/js/{95.79aa5406.js => 95.fcb321d0.js} (95%) rename assets/js/{96.ba382cf3.js => 96.e3549ae3.js} (95%) rename assets/js/{97.ced9d37d.js => 97.2c2b1c43.js} (95%) rename assets/js/{98.0e4b8a18.js => 98.c81ea279.js} (95%) rename assets/js/{app.508146a3.js => app.6f2c9c78.js} (78%) diff --git a/404.html b/404.html index ed5b4dae..c152e133 100644 --- a/404.html +++ b/404.html @@ -18,13 +18,13 @@ - +

404

There's nothing here.
Take me home.
- + diff --git a/assets/img/CGP1W.png b/assets/img/CGP1W.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9ee9f5fbd1bf3b7367e2eef3959648d77f023e GIT binary patch literal 177154 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 literal 0 HcmV?d00001 diff --git a/assets/js/10.ed85af0e.js b/assets/js/10.9599f487.js similarity index 89% rename from assets/js/10.ed85af0e.js rename to assets/js/10.9599f487.js index cb3ab031..18aa320d 100644 --- a/assets/js/10.ed85af0e.js +++ b/assets/js/10.9599f487.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{277:function(t,e,r){t.exports=r.p+"assets/img/CGD1.f3a9c70c.png"},334:function(t,e,r){"use strict";r.r(e);var a=r(14),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"cleargrass-qingping-alarm-clock-cgd1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-alarm-clock-cgd1"}},[t._v("#")]),t._v(" ClearGrass/Qingping Alarm Clock CGD1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGD1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGD1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Alarm Clock")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Blue, green or white alarm clock with temperature and humidity sensors. Triggers a blue backlight when pressed (device needs to be provisioned through the Qingping+ app)")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(277),alt:"CGD1"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{279:function(t,e,r){t.exports=r.p+"assets/img/CGD1.f3a9c70c.png"},335:function(t,e,r){"use strict";r.r(e);var a=r(14),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"cleargrass-qingping-alarm-clock-cgd1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-alarm-clock-cgd1"}},[t._v("#")]),t._v(" ClearGrass/Qingping Alarm Clock CGD1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGD1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGD1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Alarm Clock")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Blue, green or white alarm clock with temperature and humidity sensors. Triggers a blue backlight when pressed (device needs to be provisioned through the Qingping+ app)")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(279),alt:"CGD1"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/100.a9d603d9.js b/assets/js/100.4ef208fd.js similarity index 95% rename from assets/js/100.a9d603d9.js rename to assets/js/100.4ef208fd.js index 81fa37d9..bae48e71 100644 --- a/assets/js/100.a9d603d9.js +++ b/assets/js/100.4ef208fd.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{404:function(t,e,r){"use strict";r.r(e);var n=r(14),v=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensirion-sht4x-smart-gadget"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensirion-sht4x-smart-gadget"}},[t._v("#")]),t._v(" Sensirion SHT4X Smart Gadget")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SHT4X_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SHT4X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensirion")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("TH Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{405:function(t,e,r){"use strict";r.r(e);var n=r(14),v=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensirion-sht4x-smart-gadget"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensirion-sht4x-smart-gadget"}},[t._v("#")]),t._v(" Sensirion SHT4X Smart Gadget")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SHT4X_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SHT4X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensirion")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("TH Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/102.02123482.js b/assets/js/102.15bfa295.js similarity index 95% rename from assets/js/102.02123482.js rename to assets/js/102.15bfa295.js index 76f68073..58ce6c9f 100644 --- a/assets/js/102.02123482.js +++ b/assets/js/102.15bfa295.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{405:function(t,e,r){"use strict";r.r(e);var v=r(14),a=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"service-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#service-data"}},[t._v("#")]),t._v(" Service data")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ServiceData_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ServiceData"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("GENERIC")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Service data")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Various devices broadcasting service data for Bluetooth SIG service UUIDs")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("various")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{407:function(t,e,r){"use strict";r.r(e);var v=r(14),a=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"service-data"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#service-data"}},[t._v("#")]),t._v(" Service data")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ServiceData_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ServiceData"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("GENERIC")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Service data")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Various devices broadcasting service data for Bluetooth SIG service UUIDs")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("various")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/103.88f2b189.js b/assets/js/103.c980e003.js similarity index 95% rename from assets/js/103.88f2b189.js rename to assets/js/103.c980e003.js index 30645420..faa8cb6c 100644 --- a/assets/js/103.88f2b189.js +++ b/assets/js/103.c980e003.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{407:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"atomax-skale-i-ii"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#atomax-skale-i-ii"}},[t._v("#")]),t._v(" Atomax Skale I/II")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Skale_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SKALE"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Atomax")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Skale I/II")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Bluetooth kitchen scale")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("USB/4 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("weight")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{408:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"atomax-skale-i-ii"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#atomax-skale-i-ii"}},[t._v("#")]),t._v(" Atomax Skale I/II")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Skale_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SKALE"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Atomax")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Skale I/II")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Bluetooth kitchen scale")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("USB/4 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("weight")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/104.0a40d3af.js b/assets/js/104.d0a04716.js similarity index 95% rename from assets/js/104.0a40d3af.js rename to assets/js/104.d0a04716.js index 939e46fd..b6471752 100644 --- a/assets/js/104.0a40d3af.js +++ b/assets/js/104.d0a04716.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{410:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"oria-brifit-sigmawit-sensorpro-t301"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#oria-brifit-sigmawit-sensorpro-t301"}},[t._v("#")]),t._v(" Oria/Brifit/SigmaWit/SensorPro T301")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/T301_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("T301"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Oria/Brifit/SigmaWit/SensorPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{409:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"oria-brifit-sigmawit-sensorpro-t301"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#oria-brifit-sigmawit-sensorpro-t301"}},[t._v("#")]),t._v(" Oria/Brifit/SigmaWit/SensorPro T301")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/T301_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("T301"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Oria/Brifit/SigmaWit/SensorPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/106.d34d54cc.js b/assets/js/106.c91a5fb4.js similarity index 95% rename from assets/js/106.d34d54cc.js rename to assets/js/106.c91a5fb4.js index 75c9ccba..e58542cf 100644 --- a/assets/js/106.d34d54cc.js +++ b/assets/js/106.c91a5fb4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{413:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp359"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp359"}},[t._v("#")]),t._v(" ThermoPro TP359")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP359"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{416:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp359"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp359"}},[t._v("#")]),t._v(" ThermoPro TP359")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP359"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/107.24f56abe.js b/assets/js/107.c10759ca.js similarity index 95% rename from assets/js/107.24f56abe.js rename to assets/js/107.c10759ca.js index 951627e9..012f0901 100644 --- a/assets/js/107.24f56abe.js +++ b/assets/js/107.c10759ca.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{415:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp393"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp393"}},[t._v("#")]),t._v(" ThermoPro TP393")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP393"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery, USB-C")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{414:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp393"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp393"}},[t._v("#")]),t._v(" ThermoPro TP393")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP393"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery, USB-C")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/108.af4f6dd4.js b/assets/js/108.5f8a5ee1.js similarity index 96% rename from assets/js/108.af4f6dd4.js rename to assets/js/108.5f8a5ee1.js index 64c2b676..bbe53708 100644 --- a/assets/js/108.af4f6dd4.js +++ b/assets/js/108.5f8a5ee1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{416:function(e,t,r){"use strict";r.r(t);var o=r(14),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"sensorblue-oria-brifit-thermobeacon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensorblue-oria-brifit-thermobeacon"}},[e._v("#")]),e._v(" SensorBlue/Oria/Brifit ThermoBeacon")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[e._v("Model Id")]),e._v(" "),t("th",[t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ThermoBeacon_json.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("WS02/WS08"),t("OutboundLink")],1)])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("Brand")]),e._v(" "),t("td",[e._v("SensorBlue/Oria/Brifit")])]),e._v(" "),t("tr",[t("td",[e._v("Model")]),e._v(" "),t("td",[e._v("ThermoBeacon")])]),e._v(" "),t("tr",[t("td",[e._v("Short Description")]),e._v(" "),t("td",[e._v("Temperature and humidity sensor, various models sold under various brands")])]),e._v(" "),t("tr",[t("td",[e._v("Communication")]),e._v(" "),t("td",[e._v("BLE broadcast")])]),e._v(" "),t("tr",[t("td",[e._v("Frequency")]),e._v(" "),t("td",[e._v("2.4Ghz")])]),e._v(" "),t("tr",[t("td",[e._v("Power Source")]),e._v(" "),t("td",[e._v("CR2032/CR2477")])]),e._v(" "),t("tr",[t("td",[e._v("Exchanged Data")]),e._v(" "),t("td",[e._v("temperature, humidity, voltage, timestamp, maximum temperature, maximum temperature timestamp, minimum temperature, minimum temperature timestamp")])]),e._v(" "),t("tr",[t("td",[e._v("Encrypted")]),e._v(" "),t("td",[e._v("No")])])])]),e._v(" "),t("p",[e._v("All timestamps are the number of seconds since the device is powered on. The minimum and maximum temperatures are also the values since the device is powered on.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[108],{417:function(e,t,r){"use strict";r.r(t);var o=r(14),a=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"sensorblue-oria-brifit-thermobeacon"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#sensorblue-oria-brifit-thermobeacon"}},[e._v("#")]),e._v(" SensorBlue/Oria/Brifit ThermoBeacon")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[e._v("Model Id")]),e._v(" "),t("th",[t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ThermoBeacon_json.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("WS02/WS08"),t("OutboundLink")],1)])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("Brand")]),e._v(" "),t("td",[e._v("SensorBlue/Oria/Brifit")])]),e._v(" "),t("tr",[t("td",[e._v("Model")]),e._v(" "),t("td",[e._v("ThermoBeacon")])]),e._v(" "),t("tr",[t("td",[e._v("Short Description")]),e._v(" "),t("td",[e._v("Temperature and humidity sensor, various models sold under various brands")])]),e._v(" "),t("tr",[t("td",[e._v("Communication")]),e._v(" "),t("td",[e._v("BLE broadcast")])]),e._v(" "),t("tr",[t("td",[e._v("Frequency")]),e._v(" "),t("td",[e._v("2.4Ghz")])]),e._v(" "),t("tr",[t("td",[e._v("Power Source")]),e._v(" "),t("td",[e._v("CR2032/CR2477")])]),e._v(" "),t("tr",[t("td",[e._v("Exchanged Data")]),e._v(" "),t("td",[e._v("temperature, humidity, voltage, timestamp, maximum temperature, maximum temperature timestamp, minimum temperature, minimum temperature timestamp")])]),e._v(" "),t("tr",[t("td",[e._v("Encrypted")]),e._v(" "),t("td",[e._v("No")])])])]),e._v(" "),t("p",[e._v("All timestamps are the number of seconds since the device is powered on. The minimum and maximum temperatures are also the values since the device is powered on.")])])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/109.407c4fda.js b/assets/js/109.39cb5053.js similarity index 95% rename from assets/js/109.407c4fda.js rename to assets/js/109.39cb5053.js index 003a2b2a..5c970f54 100644 --- a/assets/js/109.407c4fda.js +++ b/assets/js/109.39cb5053.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{417:function(t,e,r){"use strict";r.r(e);var _=r(14),a=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-mi-smart-scale"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mi-smart-scale"}},[t._v("#")]),t._v(" Xiaomi Mi Smart Scale")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/XMTZC04HM_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("XMTZC01HM/XMTZC04HM"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Mi Smart Scale")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("First (MI_SCALE) and second (MI SCALE2) version of the Mi Smart Scale")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("4 AA/3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("weighing_mode, unit, weight")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[109],{418:function(t,e,r){"use strict";r.r(e);var _=r(14),a=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-mi-smart-scale"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mi-smart-scale"}},[t._v("#")]),t._v(" Xiaomi Mi Smart Scale")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/XMTZC04HM_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("XMTZC01HM/XMTZC04HM"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Mi Smart Scale")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("First (MI_SCALE) and second (MI SCALE2) version of the Mi Smart Scale")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("4 AA/3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("weighing_mode, unit, weight")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/11.71c71271.js b/assets/js/11.ca4090c3.js similarity index 88% rename from assets/js/11.71c71271.js rename to assets/js/11.ca4090c3.js index 883194d9..c1469ab2 100644 --- a/assets/js/11.71c71271.js +++ b/assets/js/11.ca4090c3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{278:function(t,e,r){t.exports=r.p+"assets/img/CGDK2.f1bfeeb4.png"},335:function(t,e,r){"use strict";r.r(e);var n=r(14),v=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"qingping-th-lite-cgdk2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#qingping-th-lite-cgdk2"}},[t._v("#")]),t._v(" Qingping TH Lite CGDK2")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGDK2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGDK2"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("TH Lite")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Simple temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2430")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, voltage (depending on which CGDK2 firmware is installed)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(278),alt:"CGDK2"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{280:function(t,e,r){t.exports=r.p+"assets/img/CGDK2.f1bfeeb4.png"},336:function(t,e,r){"use strict";r.r(e);var n=r(14),v=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"qingping-th-lite-cgdk2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#qingping-th-lite-cgdk2"}},[t._v("#")]),t._v(" Qingping TH Lite CGDK2")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGDK2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGDK2"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("TH Lite")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Simple temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2430")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, voltage (depending on which CGDK2 firmware is installed)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(280),alt:"CGDK2"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/110.cadfba0a.js b/assets/js/110.bdc0a639.js similarity index 95% rename from assets/js/110.cadfba0a.js rename to assets/js/110.bdc0a639.js index 209562b3..fc00fb7f 100644 --- a/assets/js/110.cadfba0a.js +++ b/assets/js/110.bdc0a639.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{418:function(t,e,r){"use strict";r.r(e);var a=r(14),v=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xoss-x2-heart-rate-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xoss-x2-heart-rate-sensor"}},[t._v("#")]),t._v(" XOSS X2 Heart Rate Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/XOSSX2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("XOSSX2"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("XOSS")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("X2 Heart Rate Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Chest strap heart rate sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("heart rate, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{421:function(t,e,r){"use strict";r.r(e);var a=r(14),v=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xoss-x2-heart-rate-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xoss-x2-heart-rate-sensor"}},[t._v("#")]),t._v(" XOSS X2 Heart Rate Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/XOSSX2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("XOSSX2"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("XOSS")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("X2 Heart Rate Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Chest strap heart rate sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("heart rate, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/112.82a13a28.js b/assets/js/112.ab91a454.js similarity index 95% rename from assets/js/112.82a13a28.js rename to assets/js/112.ab91a454.js index abfbd651..503e5845 100644 --- a/assets/js/112.82a13a28.js +++ b/assets/js/112.ab91a454.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{421:function(t,e,r){"use strict";r.r(e);var o=r(14),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ibeacon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ibeacon"}},[t._v("#")]),t._v(" iBeacon")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/iBeacon_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBEACON"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Generic")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("iBeacon")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("iBeacon protocol")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Sensor dependent")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("mfid, uuid, minor, major, txpower @ 1 m/voltage")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[112],{422:function(t,e,r){"use strict";r.r(e);var o=r(14),n=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ibeacon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ibeacon"}},[t._v("#")]),t._v(" iBeacon")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/iBeacon_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBEACON"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Generic")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("iBeacon")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("iBeacon protocol")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Sensor dependent")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("mfid, uuid, minor, major, txpower @ 1 m/voltage")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/113.9a06472d.js b/assets/js/113.b92674a8.js similarity index 95% rename from assets/js/113.9a06472d.js rename to assets/js/113.b92674a8.js index 85be8730..28c529e5 100644 --- a/assets/js/113.9a06472d.js +++ b/assets/js/113.b92674a8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{422:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"inode-energy-meter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inode-energy-meter"}},[t._v("#")]),t._v(" iNode Energy Meter")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/iNodeEM_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("INEM"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("iNode")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Energy Meter")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Sensors for electricity or water meters")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032/14250/CR2")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("Current average and aggregate kW(h)/m³, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[113],{423:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"inode-energy-meter"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inode-energy-meter"}},[t._v("#")]),t._v(" iNode Energy Meter")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/iNodeEM_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("INEM"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("iNode")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Energy Meter")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Sensors for electricity or water meters")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032/14250/CR2")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("Current average and aggregate kW(h)/m³, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/114.d86a6ba6.js b/assets/js/114.06ab9303.js similarity index 93% rename from assets/js/114.d86a6ba6.js rename to assets/js/114.06ab9303.js index 89d6667b..0de1e941 100644 --- a/assets/js/114.d86a6ba6.js +++ b/assets/js/114.06ab9303.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{423:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"rows"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rows"}},[t._v("#")]),t._v(" Rows")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Image")])]),t._v(" "),r("tr",[r("td",[t._v("Brand")])]),t._v(" "),r("tr",[r("td",[t._v("Model")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")])]),t._v(" "),r("tr",[r("td",[t._v("Filename")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{424:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"rows"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rows"}},[t._v("#")]),t._v(" Rows")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Image")])]),t._v(" "),r("tr",[r("td",[t._v("Brand")])]),t._v(" "),r("tr",[r("td",[t._v("Model")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")])]),t._v(" "),r("tr",[r("td",[t._v("Filename")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/115.7569ac87.js b/assets/js/115.56331eac.js similarity index 99% rename from assets/js/115.7569ac87.js rename to assets/js/115.56331eac.js index a0840658..822c4afc 100644 --- a/assets/js/115.7569ac87.js +++ b/assets/js/115.56331eac.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{430:function(e,t,a){"use strict";a.r(t);var s=a(14),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adding-decoders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-decoders"}},[e._v("#")]),e._v(" Adding decoders")]),e._v(" "),t("p",[e._v("Adding your device protocol to Theengs Decoder enables to increase interoperability and to create new use cases with your device. Below you will find some guidance to do that.")]),e._v(" "),t("p",[e._v("You can do a pull request directly to the "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("Repository"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h1",{attrs:{id:"adding-device-decoding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-device-decoding"}},[e._v("#")]),e._v(" Adding device decoding")]),e._v(" "),t("p",[e._v("Device decode specifications are located in a json file, example "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCJCY01HHCC_json.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("HHCCJCY01HHCC_json.h"),t("OutboundLink")],1),e._v(". The format is:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('R""""(\n{\n "brand":"Xiaomi",\n "model":"miflora",\n "model_id":"HHCCJCY01HHCC",\n "condition":["servicedata", "contain", "209800"],\n "properties":{\n "tempc":{\n "condition":["servicedata", 25, "4"],\n "decoder":["value_from_hex_data", "servicedata", 30, 4, true],\n "post_proc":["/", 10]\n },\n "moi":{\n "condition":["servicedata", 25, "8"],\n "decoder":["value_from_hex_data", "servicedata", 30, 2, false]\n },\n "lux":{\n "condition":["servicedata", 25, "7"],\n "decoder":["value_from_hex_data", "servicedata", 30, 6, true]\n },\n "fer":{\n "condition":["servicedata", 25, "9"],\n "decoder":["value_from_hex_data", "servicedata", 30, 4, true]\n }\n }\n})"""",\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br"),t("span",{staticClass:"line-number"},[e._v("12")]),t("br"),t("span",{staticClass:"line-number"},[e._v("13")]),t("br"),t("span",{staticClass:"line-number"},[e._v("14")]),t("br"),t("span",{staticClass:"line-number"},[e._v("15")]),t("br"),t("span",{staticClass:"line-number"},[e._v("16")]),t("br"),t("span",{staticClass:"line-number"},[e._v("17")]),t("br"),t("span",{staticClass:"line-number"},[e._v("18")]),t("br"),t("span",{staticClass:"line-number"},[e._v("19")]),t("br"),t("span",{staticClass:"line-number"},[e._v("20")]),t("br"),t("span",{staticClass:"line-number"},[e._v("21")]),t("br"),t("span",{staticClass:"line-number"},[e._v("22")]),t("br"),t("span",{staticClass:"line-number"},[e._v("23")]),t("br"),t("span",{staticClass:"line-number"},[e._v("24")]),t("br"),t("span",{staticClass:"line-number"},[e._v("25")]),t("br"),t("span",{staticClass:"line-number"},[e._v("26")]),t("br")])]),t("p",[e._v("Each device must provide a "),t("code",[e._v("brand")]),e._v(", "),t("code",[e._v("model")]),e._v(", "),t("code",[e._v("model_id")]),e._v(", "),t("code",[e._v("condition")]),e._v(", and "),t("code",[e._v("properties")]),e._v(".")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("brand")]),e._v(" = brand name of the device.")]),e._v(" "),t("li",[t("code",[e._v("model")]),e._v(" = model name of the device.")]),e._v(" "),t("li",[t("code",[e._v("model_id")]),e._v(" = model id number of the device.")])]),e._v(" "),t("h3",{attrs:{id:"tag-property"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tag-property"}},[e._v("#")]),e._v(" Tag property")]),e._v(" "),t("p",[e._v("Each device should also have an encoded "),t("strong",[e._v("tag")]),e._v(" property to, at the minimum, define the device type for a decoder, and additionally define other descriptive properties to be published. This enables projects to adjust their display and scanning behaviour accordingly.")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",{attrs:{colspan:"3"}},[e._v("tag encoding")])])]),e._v(" "),t("tbody",[t("tr",[t("td",{attrs:{rowspan:"21"}},[e._v("Byte[0]")]),e._v(" "),t("td",{attrs:{rowspan:"21"}},[e._v('Device Type > "type":')]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("0 - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("1 - THB - temperature, humidity, battery")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("2 - THBX - temperature, humidity, battery, extras")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("3 - BBQ - temperatures with several probes")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("4 - CTMO - contact and/or motion sensors")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("5 - SCALE - weight scales")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("6 - BCON - iBeacon protocol")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("7 - ACEL - acceleration")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("8 - BATT - battery")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("9 - PLANT - plant sensors")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("10 - TIRE - tire pressure monitoring system")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("11 - BODY - health monitoring devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("12 - ENRG - energy monitoring devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("13 - WCVR - window covering devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("14 - ACTR - ON/OFF actuators")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("15 - AIR - air environmental monitoring devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("16 - TRACK - bluetooth tracker")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("17 - BTN - button")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("18-253 - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("254 - RMAC - known random MAC address devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("255 - UNIQ - unique devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"6"}},[e._v("Byte[1]")]),e._v(" "),t("td",{attrs:{rowspan:"6"}},[e._v("Additional properties")]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("Bits[7-5] - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[4] Potential RMAC device - if not defined with Identity MAC and IRK in Theengs Gateway > "prmac":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[3] Device discoverable as a device tracker > "track":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[2] Requires continuous scanning > "cont":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[1] Requires active scanning > "acts":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[0] Is NOT Company ID compliant > "cidc":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"2"}},[e._v("Byte[2]")]),e._v(" "),t("td",{attrs:{rowspan:"2"}},[e._v('Encryption Model > "encr":')]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("1 - LYWSD03MMC PVVX")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("2 - BTHome v2")])])])]),e._v(" "),t("p",[t("strong",[e._v("cidc")]),e._v(' - Whenever a decoder is based on "manufacturerdata" and the first bytes do not comply with the '),t("a",{attrs:{href:"https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bluetooth SIG's company identifier convention"),t("OutboundLink")],1),e._v(', this should be set to 1/true, to then produce "cidc":false in the published message.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "brand":"Otio/BeeWi",\n "model":"Door & Window Sensor",\n "model_id":"BSDOO",\n "tag":"0405",\n …\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("will have "),t("code",[e._v('… "type":"CTMO","cidc":false,"cont":true …')]),e._v(" in the published message.")]),e._v(" "),t("h3",{attrs:{id:"condition"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#condition"}},[e._v("#")]),e._v(" Condition")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" is a JSON array, which must contain as the first parameter, the data source to test for the condition. Valid inputs are:")]),e._v(" "),t("ul",[t("li",[e._v('"servicedata"')]),e._v(" "),t("li",[e._v('"manufacturerdata"')]),e._v(" "),t("li",[e._v('"name"')]),e._v(" "),t("li",[e._v('"uuid"')])]),e._v(" "),t("p",[e._v('The second parameter is variable. If required, further qualification can be made by setting a conditional data length in the case of "servicedata" or "manufacturerdata" as the first condition. This is an operator in the form of '),t("code",[e._v('">" , ">=" , "=" , "<" , "<="')]),e._v(" followed by the third parameter being a numeric value that specifies the length of the data to accept. If no data length is defined the second parameter must indicate how the data should be tested. Valid inputs are:")]),e._v(" "),t("ul",[t("li",[e._v('"contain" tests if the specified value (see below) exists the data source')]),e._v(" "),t("li",[e._v('"index" tests if the specified value exists at the index location (see below) in the data source')]),e._v(" "),t("li",[e._v('"mac@index" tests if the device\'s MAC address exists at the index location (see below) in the data source')]),e._v(" "),t("li",[e._v('"revmac@index" tests if the device\'s MAC address exists octet-reversed at the index location (see below) in the data source')])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('For compatibility of a decoder for running successfully on an OS which masks the real MAC addresses of devices by generic uuids, like macOS and iOS, an alternative model condition with the name "conditionnomac" needs to be defined in addition to "condition" if the latter contains "mac@index" or "revmac@index".')])]),e._v(" "),t("p",[e._v("Examples:\n"),t("code",[e._v('"condition":["servicedata", "index", 0, "0804"')]),e._v(" -- no data length check\n"),t("code",[e._v('"condition":["servicedata", ">=", 40, "index", 0, "0804"')]),e._v(" -- data length must be equal to or greater than 40 bytes")]),e._v(" "),t("p",[e._v("The third parameter (fifth if data length is specified) can be either the index value or the data value to find. If the second (fourth if data length specified) parameter is "),t("code",[e._v("contain")]),e._v(", the next parameter should be the value to look for in the data source. If the second (fourth if data length specified) parameter is "),t("code",[e._v("index")]),e._v(", "),t("code",[e._v("mac@index")]),e._v(" or "),t("code",[e._v("revmac@index")]),e._v(" the next parameter should be the location in the data source to look for the value.")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(' can have multiple conditions chained together using "|" and "&" between them.'),t("br"),e._v("\nFor example: "),t("code",[e._v('"condition":["servicedata", "index", 0, "0804", "|", "servicedata", "index", 0, "8804"]')]),t("br"),e._v('\nThis will match if the service data at index 0 is "0804" '),t("code",[e._v("OR")]),e._v(' "8804".')]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" can contain JSON arrays that can be processed separately. This allows for nesting of detection tests such as:"),t("br"),e._v(" "),t("code",[e._v('"condition": [["servicedata", "index", 0, "1234", "&" "servicedata", "index", 5, "5678"], "|", "servicedata", "index", 30, "abcd"]')]),t("br"),e._v("\nThis will result in a positive detection if the service data at index "),t("code",[e._v("0")]),e._v(" == "),t("code",[e._v("0x1234")]),e._v(" and the service data at index "),t("code",[e._v("5")]),e._v(" == "),t("code",[e._v("0x5678")]),e._v(", otherwise, if the service data at index "),t("code",[e._v("30")]),e._v(" == "),t("code",[e._v("0xabcd")]),e._v(", the result will also be positive.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('Nesting is discouraged from use wherever possible as the recursive nature may cause stack overflowing in some circumstances.\nIt should only be used if absolutely necessary, as in the above example.\nIf all the conditions in an array bracket are chained with "|", as in\n'),t("code",[e._v('"condition": [["servicedata", "index", 0, "abcd", "|", "servicedata", "index", 0, "efef"], "&", "servicedata", "index", 5, "1212"]')]),e._v("\nthis could be re-written as\n"),t("code",[e._v('"condition": ["servicedata", "index", 0, "abcd", "|", "servicedata", "index", 0, "efef", "&", "servicedata", "index", 5, "1212"]')]),t("br"),e._v("\nmaking sure the additional AND condition is at the end. This has the same result, without nesting.")])]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(' NOT(!) testing; Anytime a condition test value is preceded by a "!", the inverse of the result will be used to determine the result.'),t("br"),e._v('\nExample: `"condition": ["servicedata", "index", 30, "!", "abcd", "&", "servicedata", "index", 0, "1234"]'),t("br"),e._v("\nIf the value of the service data at index 30 is not 0xabcd and the data at index 0 is 0x1234, the result is a positive detection.")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(' "no-mfgdata"; This single argument condition allows to test for the non-existence of manufacturerdata in the received advertising data.')]),e._v(" "),t("h3",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("p",[e._v("Properties is a nested JSON object containing one or more JSON objects. In the example above it looks like:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "tempc":{\n "condition":["servicedata", 25, "4"],\n "decoder":["value_from_hex_data", "servicedata", 30, 4, true],\n "post_proc":["/", 10]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br")])]),t("p",[e._v('Here we have a single property that defines a value that we want to decode. The key "tempc" will be used as the key in the JsonObject provided when '),t("code",[e._v("decodeBLEJson(JsonObject)")]),e._v(' is called. "tempc" in this example is another JSON object that has an (optional, explained below) '),t("code",[e._v("condition")]),e._v(", "),t("code",[e._v("decoder")]),e._v(", and "),t("code",[e._v("post_proc")]),e._v(".")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" is a JSON array. The first parameter defines the data source of the condition to test and must be one of:")]),e._v(" "),t("ul",[t("li",[e._v('"servicedata"')]),e._v(" "),t("li",[e._v('"manufacturerdata"')])]),e._v(" "),t("p",[e._v("The second parameter is the index of the data source to look for the value. Then the third parameter is the value to test for.")]),e._v(" "),t("p",[e._v("If a direct binary bit evaluation encoded in a hex digit is desired the third parameter is "),t("code",[e._v('"bit"')]),e._v(", the fourth parameter the bit position from "),t("code",[e._v("3-0")]),e._v(" and the fifth parameter the bit state "),t("code",[e._v("0")]),e._v(" or "),t("code",[e._v("1")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "hum":{\n "condition":["servicedata", 10, "bit", 3, 0],\n "decoder":["value_from_hex_data", "servicedata", 10, 2, false, false]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("The second parameter can also be an operator in the form of "),t("code",[e._v('">" , ">=" , "=" , "<" , "<="')]),e._v(", then followed by the third parameter being a numeric value that specifies the length of the data to accept for evaluation of the first parameter.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "tempc":{\n "condition":["manufacturerdata", "=", 40],\n "decoder":["value_from_hex_data", "manufacturerdata", 24, 4, true]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("If the condition is met the data will be decoded and added to the JsonObject.")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" can contain JSON arrays that can be processed separately. This allows for nesting of detection tests such as:"),t("br"),e._v(" "),t("code",[e._v('"condition": [["servicedata", 25, "4", "&" "servicedata", 26, "5"], "|", "servicedata", 30, "abcd"]')]),t("br"),e._v("\nThis will result in a positive detection if the service data at index "),t("code",[e._v("25")]),e._v(" == "),t("code",[e._v("4")]),e._v(" and the service data at index "),t("code",[e._v("26")]),e._v(" == "),t("code",[e._v("5")]),e._v(", otherwise, if the service data at index "),t("code",[e._v("30")]),e._v(" == "),t("code",[e._v("0xabcd")]),e._v(", the result will also be positive.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('Nesting is discouraged from use wherever possible as the recursive nature may cause stack overflowing in some circumstances.\nIt should only be used if absolutely necessary, as in the above example.\nIf all the conditions in an array bracket are chained with "|", as in\n'),t("code",[e._v('"condition": [["servicedata", 20, "5", "|", "servicedata", 20, "6"], "&", "servicedata", 30, "a"]')]),e._v("\nthis could be re-written as\n"),t("code",[e._v('"condition": ["servicedata", 20 , "5", "|", "servicedata", 20, "6", "&", "servicedata", 30, "a"]')]),t("br"),e._v("\nmaking sure the additional AND condition is at the end. This has the same result, without nesting.")])]),e._v(" "),t("p",[e._v("Property conditions also allow for a NOT comparison, as in")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "tempc":{\n "condition":["manufacturerdata", 24, "!", "ffff"],\n "decoder":["value_from_hex_data", "manufacturerdata", 24, 4, true, false],\n "post_proc":["/", 10]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br")])]),t("p",[e._v("where then the fourth parameter is the value to test for.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('The NOT comparison is case sensitive! Therefore any NOT comparisons should be defined in lower case, as this is the format in which devices\' "servicedata" and "manufacturerdata" are being reported.')])]),e._v(" "),t("p",[t("code",[e._v("decoder")]),e._v(" is a JSON array that specifies the decoder function and parameters to decode the value.\nThe first parameter is the name of the function to call, The available functions are:")]),e._v(" "),t("ul",[t("li",[e._v('"value_from_hex_data" - converts the hex string value into an '),t("code",[e._v("integer")]),e._v(" or "),t("code",[e._v("double")]),e._v(" type.")]),e._v(" "),t("li",[e._v('"bf_value_from_hex_data" - converts the (binary fraction) hex string value into a '),t("code",[e._v("double")]),e._v(" type. This should be used when the hex data is represented in the format of "),t("code",[e._v("XX.XX")]),e._v(". For example: when "),t("code",[e._v("0x1a1e")]),e._v(" should output 26.30.")]),e._v(" "),t("li",[e._v('"string_from_hex_data" - converts the hex value to a string type.')]),e._v(" "),t("li",[e._v('"ascii_from_hex_data" - converts the hex value to ASCII text.')]),e._v(" "),t("li",[e._v('"static_value" - sets the value to the static value specified if the condition is met.')]),e._v(" "),t("li",[e._v('"bit_static_value" - sets the value to either one of two given values, depending on the evaluated binary bit.')])]),e._v(" "),t("p",[e._v("The other parameters for the first three functions are:")]),e._v(" "),t("ul",[t("li",[e._v('"servicedata" or "manufacturerdata" Extract the value from the specified data.')]),e._v(" "),t("li",[e._v("24, The index of the data source where the value exists.")]),e._v(" "),t("li",[e._v("4, The length of the data in bytes (characters in the string).\nand additional boolean parameters applicable to the first two functions:")]),e._v(" "),t("li",[e._v("true/false, If the value in the data source should have its endianness reversed before converting.")]),e._v(" "),t("li",[e._v("(optional)true/false, Sets if the resulting value can be a negative number. Defaults to true when omitted.")]),e._v(" "),t("li",[e._v('(optional)false/true, Sets if the "value_from_hex_data" decoding result is a '),t("code",[e._v("float")]),e._v(" instead of an "),t("code",[e._v("integer")]),e._v(" type. Defaults to false when omitted.")])]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "unit":{\n "decoder":["bit_static_value", "servicedata", 1, 0, "kg", "lb"]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br")])]),t("p",[e._v('The parameters for the "bit_static_value" function are:')]),e._v(" "),t("ul",[t("li",[e._v('"servicedata" or "manufacturerdata" - extract the value from the specified data.')]),e._v(" "),t("li",[e._v("1, the index of the data source where the value exists.")]),e._v(" "),t("li",[e._v("0, the bit position from "),t("code",[e._v("3-0")]),e._v(".")]),e._v(" "),t("li",[e._v("The return value for bit state "),t("code",[e._v("0")]),e._v(".")]),e._v(" "),t("li",[e._v("The return value for bit state "),t("code",[e._v("1")]),e._v(".")])]),e._v(" "),t("p",[t("code",[e._v("post_proc")]),e._v(' This specifies any post processing of the resulting decoded value. This is a JSON array that should be written in the order that the operation order is desired. In the simple example the first parameter is the "/" divide operation and the second parameter (10) is the value to divide the result by. Multiple operations can be chained together in this array to perform more complex calculations.')]),e._v(" "),t("p",[e._v("Valid operations are:")]),e._v(" "),t("ul",[t("li",[e._v('"/" divide')]),e._v(" "),t("li",[e._v('"*" multiply')]),e._v(" "),t("li",[e._v('"+" add')]),e._v(" "),t("li",[e._v('"-" subtract')]),e._v(" "),t("li",[e._v('"±" signed conditional add or subtract')]),e._v(" "),t("li",[e._v('"%" modulo')]),e._v(" "),t("li",[e._v('"<" shift left')]),e._v(" "),t("li",[e._v('">" shift right')]),e._v(" "),t("li",[e._v('"!" Not (invert), useful for bool types')]),e._v(" "),t("li",[e._v('"&" Logical AND the values')]),e._v(" "),t("li",[e._v('"^" Logical XOR the values')]),e._v(" "),t("li",[e._v('"min" the minimum allowed value')]),e._v(" "),t("li",[e._v('"max" the maximum allowed value')]),e._v(" "),t("li",[e._v('"abs" absolute value')])]),e._v(" "),t("p",[t("code",[e._v("lookup")]),e._v(' This specifies a lookup table for any decoded "string_from_hex_data" string. If the string is defined in the table its related string will be assigned to the property. If no matching hex string is present the property is defined as not decoded.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "state":{\n "decoder":["string_from_hex_data", "manufacturerdata", 10, 2],\n "lookup":["01", "initialising", \n "02", "idle", \n "03", "running", \n "04", "charging", \n "73", "sleeping"]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br")])]),t("h4",{attrs:{id:"special-property-cal"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#special-property-cal"}},[e._v("#")]),e._v(" Special property .cal")]),e._v(" "),t("p",[e._v(".cal is a special property that can extracted from the provided data and used in calculations of other properties following it's definition. For example:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"properties":{\n ".cal":{\n "decoder":["value_from_hex_data", "manufacturerdata", 16, 4, true],\n "post_proc":["&", 16383]\n },\n "power":{\n "decoder":["value_from_hex_data", "manufacturerdata", 4, 4, true],\n "post_proc":["/", ".cal", "*", 60000]\n }\n }\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br")])]),t("p",[e._v("Here the calculation value extracted first from the data stream and used by the next property to calculate the data value.")]),e._v(" "),t("h4",{attrs:{id:"special-property-mac"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#special-property-mac"}},[e._v("#")]),e._v(' Special property "mac"')]),e._v(" "),t("p",[e._v('The "mac" property contains a device\'s MAC address if this is contained in the broadcast service- or manufacturerdata, with either forward or reversed octet order.')]),e._v(" "),t("p",[e._v('In such cases the "mac" property should be included in the decoder, so that these devices can have their proper MAC address assigned on iOS or macOS, which usually masks these with generic uuids.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"properties":{\n "mac":{\n "decoder":["mac_from_hex_data", "servicedata", 4]\n }\n\n … or\n\n "mac":{\n "decoder":["revmac_from_hex_data", "servicedata", 4]\n }\n\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br")])]),t("h1",{attrs:{id:"checking-and-fixing-your-changes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#checking-and-fixing-your-changes"}},[e._v("#")]),e._v(" Checking and fixing your changes")]),e._v(" "),t("p",[e._v("You can use a script to check whether your raw JSON strings correspond to the escaped string value in the line before. Run the script as:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("python scripts/check_decoder.py src/devices/NAMEOFDEVICE.h\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("You can also install "),t("a",{attrs:{href:"https://pre-commit.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("pre-commit"),t("OutboundLink")],1),e._v(" to run this check every time you commit a file change:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install pre-commit\npre-commit install\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("The last command should be run in the root directory of the decoder repository.")]),e._v(" "),t("p",[e._v("If you're using "),t("a",{attrs:{href:"https://code.visualstudio.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Visual Studio Code"),t("OutboundLink")],1),e._v(", you can install the "),t("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=elagil.pre-commit-helper",target:"_blank",rel:"noopener noreferrer"}},[e._v("pre-commit extension"),t("OutboundLink")],1),e._v(". After this, when you have a decoder file open, just open the command palette with Ctrl+Shift+P and choose "),t("strong",[e._v("pre-commit run (current file)")]),e._v(" to check and fix its JSON strings.")]),e._v(" "),t("p",[e._v("Tip: if you just declare a JSON string with an empty string, such as:")]),e._v(" "),t("div",{staticClass:"language-c line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-c"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("char")]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("*")]),e._v(" _SBBT_002C_json "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('""')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(";")]),e._v("\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Then the script automatically copies the following raw string in the comment to fill the empty string in the previous line, with all double quotes escaped correctly.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[115],{429:function(e,t,a){"use strict";a.r(t);var s=a(14),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"adding-decoders"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-decoders"}},[e._v("#")]),e._v(" Adding decoders")]),e._v(" "),t("p",[e._v("Adding your device protocol to Theengs Decoder enables to increase interoperability and to create new use cases with your device. Below you will find some guidance to do that.")]),e._v(" "),t("p",[e._v("You can do a pull request directly to the "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("Repository"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("h1",{attrs:{id:"adding-device-decoding"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#adding-device-decoding"}},[e._v("#")]),e._v(" Adding device decoding")]),e._v(" "),t("p",[e._v("Device decode specifications are located in a json file, example "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCJCY01HHCC_json.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("HHCCJCY01HHCC_json.h"),t("OutboundLink")],1),e._v(". The format is:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('R""""(\n{\n "brand":"Xiaomi",\n "model":"miflora",\n "model_id":"HHCCJCY01HHCC",\n "condition":["servicedata", "contain", "209800"],\n "properties":{\n "tempc":{\n "condition":["servicedata", 25, "4"],\n "decoder":["value_from_hex_data", "servicedata", 30, 4, true],\n "post_proc":["/", 10]\n },\n "moi":{\n "condition":["servicedata", 25, "8"],\n "decoder":["value_from_hex_data", "servicedata", 30, 2, false]\n },\n "lux":{\n "condition":["servicedata", 25, "7"],\n "decoder":["value_from_hex_data", "servicedata", 30, 6, true]\n },\n "fer":{\n "condition":["servicedata", 25, "9"],\n "decoder":["value_from_hex_data", "servicedata", 30, 4, true]\n }\n }\n})"""",\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br"),t("span",{staticClass:"line-number"},[e._v("12")]),t("br"),t("span",{staticClass:"line-number"},[e._v("13")]),t("br"),t("span",{staticClass:"line-number"},[e._v("14")]),t("br"),t("span",{staticClass:"line-number"},[e._v("15")]),t("br"),t("span",{staticClass:"line-number"},[e._v("16")]),t("br"),t("span",{staticClass:"line-number"},[e._v("17")]),t("br"),t("span",{staticClass:"line-number"},[e._v("18")]),t("br"),t("span",{staticClass:"line-number"},[e._v("19")]),t("br"),t("span",{staticClass:"line-number"},[e._v("20")]),t("br"),t("span",{staticClass:"line-number"},[e._v("21")]),t("br"),t("span",{staticClass:"line-number"},[e._v("22")]),t("br"),t("span",{staticClass:"line-number"},[e._v("23")]),t("br"),t("span",{staticClass:"line-number"},[e._v("24")]),t("br"),t("span",{staticClass:"line-number"},[e._v("25")]),t("br"),t("span",{staticClass:"line-number"},[e._v("26")]),t("br")])]),t("p",[e._v("Each device must provide a "),t("code",[e._v("brand")]),e._v(", "),t("code",[e._v("model")]),e._v(", "),t("code",[e._v("model_id")]),e._v(", "),t("code",[e._v("condition")]),e._v(", and "),t("code",[e._v("properties")]),e._v(".")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("brand")]),e._v(" = brand name of the device.")]),e._v(" "),t("li",[t("code",[e._v("model")]),e._v(" = model name of the device.")]),e._v(" "),t("li",[t("code",[e._v("model_id")]),e._v(" = model id number of the device.")])]),e._v(" "),t("h3",{attrs:{id:"tag-property"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tag-property"}},[e._v("#")]),e._v(" Tag property")]),e._v(" "),t("p",[e._v("Each device should also have an encoded "),t("strong",[e._v("tag")]),e._v(" property to, at the minimum, define the device type for a decoder, and additionally define other descriptive properties to be published. This enables projects to adjust their display and scanning behaviour accordingly.")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",{attrs:{colspan:"3"}},[e._v("tag encoding")])])]),e._v(" "),t("tbody",[t("tr",[t("td",{attrs:{rowspan:"21"}},[e._v("Byte[0]")]),e._v(" "),t("td",{attrs:{rowspan:"21"}},[e._v('Device Type > "type":')]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("0 - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("1 - THB - temperature, humidity, battery")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("2 - THBX - temperature, humidity, battery, extras")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("3 - BBQ - temperatures with several probes")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("4 - CTMO - contact and/or motion sensors")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("5 - SCALE - weight scales")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("6 - BCON - iBeacon protocol")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("7 - ACEL - acceleration")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("8 - BATT - battery")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("9 - PLANT - plant sensors")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("10 - TIRE - tire pressure monitoring system")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("11 - BODY - health monitoring devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("12 - ENRG - energy monitoring devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("13 - WCVR - window covering devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("14 - ACTR - ON/OFF actuators")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("15 - AIR - air environmental monitoring devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("16 - TRACK - bluetooth tracker")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("17 - BTN - button")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("18-253 - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("254 - RMAC - known random MAC address devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("255 - UNIQ - unique devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"6"}},[e._v("Byte[1]")]),e._v(" "),t("td",{attrs:{rowspan:"6"}},[e._v("Additional properties")]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("Bits[7-5] - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[4] Potential RMAC device - if not defined with Identity MAC and IRK in Theengs Gateway > "prmac":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[3] Device discoverable as a device tracker > "track":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[2] Requires continuous scanning > "cont":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[1] Requires active scanning > "acts":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[0] Is NOT Company ID compliant > "cidc":')])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"2"}},[e._v("Byte[2]")]),e._v(" "),t("td",{attrs:{rowspan:"2"}},[e._v('Encryption Model > "encr":')]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("1 - LYWSD03MMC PVVX")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("2 - BTHome v2")])])])]),e._v(" "),t("p",[t("strong",[e._v("cidc")]),e._v(' - Whenever a decoder is based on "manufacturerdata" and the first bytes do not comply with the '),t("a",{attrs:{href:"https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Bluetooth SIG's company identifier convention"),t("OutboundLink")],1),e._v(', this should be set to 1/true, to then produce "cidc":false in the published message.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "brand":"Otio/BeeWi",\n "model":"Door & Window Sensor",\n "model_id":"BSDOO",\n "tag":"0405",\n …\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("will have "),t("code",[e._v('… "type":"CTMO","cidc":false,"cont":true …')]),e._v(" in the published message.")]),e._v(" "),t("h3",{attrs:{id:"condition"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#condition"}},[e._v("#")]),e._v(" Condition")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" is a JSON array, which must contain as the first parameter, the data source to test for the condition. Valid inputs are:")]),e._v(" "),t("ul",[t("li",[e._v('"servicedata"')]),e._v(" "),t("li",[e._v('"manufacturerdata"')]),e._v(" "),t("li",[e._v('"name"')]),e._v(" "),t("li",[e._v('"uuid"')])]),e._v(" "),t("p",[e._v('The second parameter is variable. If required, further qualification can be made by setting a conditional data length in the case of "servicedata" or "manufacturerdata" as the first condition. This is an operator in the form of '),t("code",[e._v('">" , ">=" , "=" , "<" , "<="')]),e._v(" followed by the third parameter being a numeric value that specifies the length of the data to accept. If no data length is defined the second parameter must indicate how the data should be tested. Valid inputs are:")]),e._v(" "),t("ul",[t("li",[e._v('"contain" tests if the specified value (see below) exists the data source')]),e._v(" "),t("li",[e._v('"index" tests if the specified value exists at the index location (see below) in the data source')]),e._v(" "),t("li",[e._v('"mac@index" tests if the device\'s MAC address exists at the index location (see below) in the data source')]),e._v(" "),t("li",[e._v('"revmac@index" tests if the device\'s MAC address exists octet-reversed at the index location (see below) in the data source')])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('For compatibility of a decoder for running successfully on an OS which masks the real MAC addresses of devices by generic uuids, like macOS and iOS, an alternative model condition with the name "conditionnomac" needs to be defined in addition to "condition" if the latter contains "mac@index" or "revmac@index".')])]),e._v(" "),t("p",[e._v("Examples:\n"),t("code",[e._v('"condition":["servicedata", "index", 0, "0804"')]),e._v(" -- no data length check\n"),t("code",[e._v('"condition":["servicedata", ">=", 40, "index", 0, "0804"')]),e._v(" -- data length must be equal to or greater than 40 bytes")]),e._v(" "),t("p",[e._v("The third parameter (fifth if data length is specified) can be either the index value or the data value to find. If the second (fourth if data length specified) parameter is "),t("code",[e._v("contain")]),e._v(", the next parameter should be the value to look for in the data source. If the second (fourth if data length specified) parameter is "),t("code",[e._v("index")]),e._v(", "),t("code",[e._v("mac@index")]),e._v(" or "),t("code",[e._v("revmac@index")]),e._v(" the next parameter should be the location in the data source to look for the value.")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(' can have multiple conditions chained together using "|" and "&" between them.'),t("br"),e._v("\nFor example: "),t("code",[e._v('"condition":["servicedata", "index", 0, "0804", "|", "servicedata", "index", 0, "8804"]')]),t("br"),e._v('\nThis will match if the service data at index 0 is "0804" '),t("code",[e._v("OR")]),e._v(' "8804".')]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" can contain JSON arrays that can be processed separately. This allows for nesting of detection tests such as:"),t("br"),e._v(" "),t("code",[e._v('"condition": [["servicedata", "index", 0, "1234", "&" "servicedata", "index", 5, "5678"], "|", "servicedata", "index", 30, "abcd"]')]),t("br"),e._v("\nThis will result in a positive detection if the service data at index "),t("code",[e._v("0")]),e._v(" == "),t("code",[e._v("0x1234")]),e._v(" and the service data at index "),t("code",[e._v("5")]),e._v(" == "),t("code",[e._v("0x5678")]),e._v(", otherwise, if the service data at index "),t("code",[e._v("30")]),e._v(" == "),t("code",[e._v("0xabcd")]),e._v(", the result will also be positive.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('Nesting is discouraged from use wherever possible as the recursive nature may cause stack overflowing in some circumstances.\nIt should only be used if absolutely necessary, as in the above example.\nIf all the conditions in an array bracket are chained with "|", as in\n'),t("code",[e._v('"condition": [["servicedata", "index", 0, "abcd", "|", "servicedata", "index", 0, "efef"], "&", "servicedata", "index", 5, "1212"]')]),e._v("\nthis could be re-written as\n"),t("code",[e._v('"condition": ["servicedata", "index", 0, "abcd", "|", "servicedata", "index", 0, "efef", "&", "servicedata", "index", 5, "1212"]')]),t("br"),e._v("\nmaking sure the additional AND condition is at the end. This has the same result, without nesting.")])]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(' NOT(!) testing; Anytime a condition test value is preceded by a "!", the inverse of the result will be used to determine the result.'),t("br"),e._v('\nExample: `"condition": ["servicedata", "index", 30, "!", "abcd", "&", "servicedata", "index", 0, "1234"]'),t("br"),e._v("\nIf the value of the service data at index 30 is not 0xabcd and the data at index 0 is 0x1234, the result is a positive detection.")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(' "no-mfgdata"; This single argument condition allows to test for the non-existence of manufacturerdata in the received advertising data.')]),e._v(" "),t("h3",{attrs:{id:"properties"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#properties"}},[e._v("#")]),e._v(" Properties")]),e._v(" "),t("p",[e._v("Properties is a nested JSON object containing one or more JSON objects. In the example above it looks like:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "tempc":{\n "condition":["servicedata", 25, "4"],\n "decoder":["value_from_hex_data", "servicedata", 30, 4, true],\n "post_proc":["/", 10]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br")])]),t("p",[e._v('Here we have a single property that defines a value that we want to decode. The key "tempc" will be used as the key in the JsonObject provided when '),t("code",[e._v("decodeBLEJson(JsonObject)")]),e._v(' is called. "tempc" in this example is another JSON object that has an (optional, explained below) '),t("code",[e._v("condition")]),e._v(", "),t("code",[e._v("decoder")]),e._v(", and "),t("code",[e._v("post_proc")]),e._v(".")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" is a JSON array. The first parameter defines the data source of the condition to test and must be one of:")]),e._v(" "),t("ul",[t("li",[e._v('"servicedata"')]),e._v(" "),t("li",[e._v('"manufacturerdata"')])]),e._v(" "),t("p",[e._v("The second parameter is the index of the data source to look for the value. Then the third parameter is the value to test for.")]),e._v(" "),t("p",[e._v("If a direct binary bit evaluation encoded in a hex digit is desired the third parameter is "),t("code",[e._v('"bit"')]),e._v(", the fourth parameter the bit position from "),t("code",[e._v("3-0")]),e._v(" and the fifth parameter the bit state "),t("code",[e._v("0")]),e._v(" or "),t("code",[e._v("1")]),e._v(".")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "hum":{\n "condition":["servicedata", 10, "bit", 3, 0],\n "decoder":["value_from_hex_data", "servicedata", 10, 2, false, false]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("The second parameter can also be an operator in the form of "),t("code",[e._v('">" , ">=" , "=" , "<" , "<="')]),e._v(", then followed by the third parameter being a numeric value that specifies the length of the data to accept for evaluation of the first parameter.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "tempc":{\n "condition":["manufacturerdata", "=", 40],\n "decoder":["value_from_hex_data", "manufacturerdata", 24, 4, true]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br")])]),t("p",[e._v("If the condition is met the data will be decoded and added to the JsonObject.")]),e._v(" "),t("p",[t("code",[e._v("condition")]),e._v(" can contain JSON arrays that can be processed separately. This allows for nesting of detection tests such as:"),t("br"),e._v(" "),t("code",[e._v('"condition": [["servicedata", 25, "4", "&" "servicedata", 26, "5"], "|", "servicedata", 30, "abcd"]')]),t("br"),e._v("\nThis will result in a positive detection if the service data at index "),t("code",[e._v("25")]),e._v(" == "),t("code",[e._v("4")]),e._v(" and the service data at index "),t("code",[e._v("26")]),e._v(" == "),t("code",[e._v("5")]),e._v(", otherwise, if the service data at index "),t("code",[e._v("30")]),e._v(" == "),t("code",[e._v("0xabcd")]),e._v(", the result will also be positive.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('Nesting is discouraged from use wherever possible as the recursive nature may cause stack overflowing in some circumstances.\nIt should only be used if absolutely necessary, as in the above example.\nIf all the conditions in an array bracket are chained with "|", as in\n'),t("code",[e._v('"condition": [["servicedata", 20, "5", "|", "servicedata", 20, "6"], "&", "servicedata", 30, "a"]')]),e._v("\nthis could be re-written as\n"),t("code",[e._v('"condition": ["servicedata", 20 , "5", "|", "servicedata", 20, "6", "&", "servicedata", 30, "a"]')]),t("br"),e._v("\nmaking sure the additional AND condition is at the end. This has the same result, without nesting.")])]),e._v(" "),t("p",[e._v("Property conditions also allow for a NOT comparison, as in")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "tempc":{\n "condition":["manufacturerdata", 24, "!", "ffff"],\n "decoder":["value_from_hex_data", "manufacturerdata", 24, 4, true, false],\n "post_proc":["/", 10]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br")])]),t("p",[e._v("where then the fourth parameter is the value to test for.")]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v('The NOT comparison is case sensitive! Therefore any NOT comparisons should be defined in lower case, as this is the format in which devices\' "servicedata" and "manufacturerdata" are being reported.')])]),e._v(" "),t("p",[t("code",[e._v("decoder")]),e._v(" is a JSON array that specifies the decoder function and parameters to decode the value.\nThe first parameter is the name of the function to call, The available functions are:")]),e._v(" "),t("ul",[t("li",[e._v('"value_from_hex_data" - converts the hex string value into an '),t("code",[e._v("integer")]),e._v(" or "),t("code",[e._v("double")]),e._v(" type.")]),e._v(" "),t("li",[e._v('"bf_value_from_hex_data" - converts the (binary fraction) hex string value into a '),t("code",[e._v("double")]),e._v(" type. This should be used when the hex data is represented in the format of "),t("code",[e._v("XX.XX")]),e._v(". For example: when "),t("code",[e._v("0x1a1e")]),e._v(" should output 26.30.")]),e._v(" "),t("li",[e._v('"string_from_hex_data" - converts the hex value to a string type.')]),e._v(" "),t("li",[e._v('"ascii_from_hex_data" - converts the hex value to ASCII text.')]),e._v(" "),t("li",[e._v('"static_value" - sets the value to the static value specified if the condition is met.')]),e._v(" "),t("li",[e._v('"bit_static_value" - sets the value to either one of two given values, depending on the evaluated binary bit.')])]),e._v(" "),t("p",[e._v("The other parameters for the first three functions are:")]),e._v(" "),t("ul",[t("li",[e._v('"servicedata" or "manufacturerdata" Extract the value from the specified data.')]),e._v(" "),t("li",[e._v("24, The index of the data source where the value exists.")]),e._v(" "),t("li",[e._v("4, The length of the data in bytes (characters in the string).\nand additional boolean parameters applicable to the first two functions:")]),e._v(" "),t("li",[e._v("true/false, If the value in the data source should have its endianness reversed before converting.")]),e._v(" "),t("li",[e._v("(optional)true/false, Sets if the resulting value can be a negative number. Defaults to true when omitted.")]),e._v(" "),t("li",[e._v('(optional)false/true, Sets if the "value_from_hex_data" decoding result is a '),t("code",[e._v("float")]),e._v(" instead of an "),t("code",[e._v("integer")]),e._v(" type. Defaults to false when omitted.")])]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "properties":{\n "unit":{\n "decoder":["bit_static_value", "servicedata", 1, 0, "kg", "lb"]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br")])]),t("p",[e._v('The parameters for the "bit_static_value" function are:')]),e._v(" "),t("ul",[t("li",[e._v('"servicedata" or "manufacturerdata" - extract the value from the specified data.')]),e._v(" "),t("li",[e._v("1, the index of the data source where the value exists.")]),e._v(" "),t("li",[e._v("0, the bit position from "),t("code",[e._v("3-0")]),e._v(".")]),e._v(" "),t("li",[e._v("The return value for bit state "),t("code",[e._v("0")]),e._v(".")]),e._v(" "),t("li",[e._v("The return value for bit state "),t("code",[e._v("1")]),e._v(".")])]),e._v(" "),t("p",[t("code",[e._v("post_proc")]),e._v(' This specifies any post processing of the resulting decoded value. This is a JSON array that should be written in the order that the operation order is desired. In the simple example the first parameter is the "/" divide operation and the second parameter (10) is the value to divide the result by. Multiple operations can be chained together in this array to perform more complex calculations.')]),e._v(" "),t("p",[e._v("Valid operations are:")]),e._v(" "),t("ul",[t("li",[e._v('"/" divide')]),e._v(" "),t("li",[e._v('"*" multiply')]),e._v(" "),t("li",[e._v('"+" add')]),e._v(" "),t("li",[e._v('"-" subtract')]),e._v(" "),t("li",[e._v('"±" signed conditional add or subtract')]),e._v(" "),t("li",[e._v('"%" modulo')]),e._v(" "),t("li",[e._v('"<" shift left')]),e._v(" "),t("li",[e._v('">" shift right')]),e._v(" "),t("li",[e._v('"!" Not (invert), useful for bool types')]),e._v(" "),t("li",[e._v('"&" Logical AND the values')]),e._v(" "),t("li",[e._v('"^" Logical XOR the values')]),e._v(" "),t("li",[e._v('"min" the minimum allowed value')]),e._v(" "),t("li",[e._v('"max" the maximum allowed value')]),e._v(" "),t("li",[e._v('"abs" absolute value')])]),e._v(" "),t("p",[t("code",[e._v("lookup")]),e._v(' This specifies a lookup table for any decoded "string_from_hex_data" string. If the string is defined in the table its related string will be assigned to the property. If no matching hex string is present the property is defined as not decoded.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(' "state":{\n "decoder":["string_from_hex_data", "manufacturerdata", 10, 2],\n "lookup":["01", "initialising", \n "02", "idle", \n "03", "running", \n "04", "charging", \n "73", "sleeping"]\n },\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br")])]),t("h4",{attrs:{id:"special-property-cal"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#special-property-cal"}},[e._v("#")]),e._v(" Special property .cal")]),e._v(" "),t("p",[e._v(".cal is a special property that can extracted from the provided data and used in calculations of other properties following it's definition. For example:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"properties":{\n ".cal":{\n "decoder":["value_from_hex_data", "manufacturerdata", 16, 4, true],\n "post_proc":["&", 16383]\n },\n "power":{\n "decoder":["value_from_hex_data", "manufacturerdata", 4, 4, true],\n "post_proc":["/", ".cal", "*", 60000]\n }\n }\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br")])]),t("p",[e._v("Here the calculation value extracted first from the data stream and used by the next property to calculate the data value.")]),e._v(" "),t("h4",{attrs:{id:"special-property-mac"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#special-property-mac"}},[e._v("#")]),e._v(' Special property "mac"')]),e._v(" "),t("p",[e._v('The "mac" property contains a device\'s MAC address if this is contained in the broadcast service- or manufacturerdata, with either forward or reversed octet order.')]),e._v(" "),t("p",[e._v('In such cases the "mac" property should be included in the decoder, so that these devices can have their proper MAC address assigned on iOS or macOS, which usually masks these with generic uuids.')]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('"properties":{\n "mac":{\n "decoder":["mac_from_hex_data", "servicedata", 4]\n }\n\n … or\n\n "mac":{\n "decoder":["revmac_from_hex_data", "servicedata", 4]\n }\n\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br")])]),t("h1",{attrs:{id:"checking-and-fixing-your-changes"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#checking-and-fixing-your-changes"}},[e._v("#")]),e._v(" Checking and fixing your changes")]),e._v(" "),t("p",[e._v("You can use a script to check whether your raw JSON strings correspond to the escaped string value in the line before. Run the script as:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("python scripts/check_decoder.py src/devices/NAMEOFDEVICE.h\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("You can also install "),t("a",{attrs:{href:"https://pre-commit.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("pre-commit"),t("OutboundLink")],1),e._v(" to run this check every time you commit a file change:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install pre-commit\npre-commit install\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("The last command should be run in the root directory of the decoder repository.")]),e._v(" "),t("p",[e._v("If you're using "),t("a",{attrs:{href:"https://code.visualstudio.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("Visual Studio Code"),t("OutboundLink")],1),e._v(", you can install the "),t("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=elagil.pre-commit-helper",target:"_blank",rel:"noopener noreferrer"}},[e._v("pre-commit extension"),t("OutboundLink")],1),e._v(". After this, when you have a decoder file open, just open the command palette with Ctrl+Shift+P and choose "),t("strong",[e._v("pre-commit run (current file)")]),e._v(" to check and fix its JSON strings.")]),e._v(" "),t("p",[e._v("Tip: if you just declare a JSON string with an empty string, such as:")]),e._v(" "),t("div",{staticClass:"language-c line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-c"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("char")]),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("*")]),e._v(" _SBBT_002C_json "),t("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[e._v('""')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(";")]),e._v("\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Then the script automatically copies the following raw string in the comment to fill the empty string in the previous line, with all double quotes escaped correctly.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/116.cc5c77b4.js b/assets/js/116.b3680cd9.js similarity index 99% rename from assets/js/116.cc5c77b4.js rename to assets/js/116.b3680cd9.js index 9d5a3fd8..6a0af831 100644 --- a/assets/js/116.cc5c77b4.js +++ b/assets/js/116.b3680cd9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{429:function(e,t,n){"use strict";n.r(t);var i=n(14),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"development-contributions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-contributions"}},[e._v("#")]),e._v(" Development contributions")]),e._v(" "),t("p",[e._v("We like pull requests from everyone. By participating in this project, you\nagree to follow the code of conduct below")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/master/CODE_OF_CONDUCT.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("code of conduct"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://google.github.io/styleguide/cppguide.html#Formatting",target:"_blank",rel:"noopener noreferrer"}},[e._v("code style guide"),t("OutboundLink")],1),e._v('\nSo as to format automatically your document you have to add the "clang-Format" extension to VSCode, once done, you can format the code by doing a right click into the code file window and clicking "Format document".')]),e._v(" "),t("p",[e._v("Fork the "),t("a",{attrs:{href:"https://github.com/theengs/decoder/tree/development",target:"_blank",rel:"noopener noreferrer"}},[e._v("development branch"),t("OutboundLink")],1),e._v(", then clone the repo")]),e._v(" "),t("p",[e._v("Make your modification,")]),e._v(" "),t("p",[e._v("Review your code, build it")]),e._v(" "),t("p",[e._v("Test it locally on your hardware config")]),e._v(" "),t("p",[e._v("Emit a pull request")]),e._v(" "),t("p",[e._v("Verify the GitHub Actions CI compilation results")]),e._v(" "),t("p",[e._v("Request for review")]),e._v(" "),t("p",[e._v("We may suggest some changes, improvements or alternatives.")]),e._v(" "),t("p",[e._v("Some things that will increase the chance that your pull request is accepted:")]),e._v(" "),t("ul",[t("li",[e._v("Comment your code,")]),e._v(" "),t("li",[e._v("Ask eventually for design guidelines,")]),e._v(" "),t("li",[e._v("Write a "),t("a",{attrs:{href:"http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("good commit message"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"developer-certificate-of-origin"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#developer-certificate-of-origin"}},[e._v("#")]),e._v(" Developer Certificate Of Origin")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(" By making a contribution to this project, I certify that:\n\n (a) The contribution was created in whole or in part by me and I\n have the right to submit it under the open source license\n indicated in the file; or\n\n (b) The contribution is based upon previous work that, to the best\n of my knowledge, is covered under an appropriate open source\n license and I have the right under that license to submit that\n work with modifications, whether created in whole or in part\n by me, under the same open source license (unless I am\n permitted to submit under a different license), as indicated\n in the file; or\n\n (c) The contribution was provided directly to me by some other\n person who certified (a), (b) or (c) and I have not modified\n it.\n\n (d) I understand and agree that this project and the contribution\n are public and that a record of the contribution (including all\n personal information I submit with it, including my sign-off) is\n maintained indefinitely and may be redistributed consistent with\n this project or the open source license(s) involved.\n\n (e) I understand and agree that the project maintainers have the\n right to re-license my contribution under any other license,\n with or without notice to me. By contributing, I waive\n any claim against the project maintainers relating to the\n re-licensing of my contribution under a different license, \n including any claim for royalties or other compensation.\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br"),t("span",{staticClass:"line-number"},[e._v("12")]),t("br"),t("span",{staticClass:"line-number"},[e._v("13")]),t("br"),t("span",{staticClass:"line-number"},[e._v("14")]),t("br"),t("span",{staticClass:"line-number"},[e._v("15")]),t("br"),t("span",{staticClass:"line-number"},[e._v("16")]),t("br"),t("span",{staticClass:"line-number"},[e._v("17")]),t("br"),t("span",{staticClass:"line-number"},[e._v("18")]),t("br"),t("span",{staticClass:"line-number"},[e._v("19")]),t("br"),t("span",{staticClass:"line-number"},[e._v("20")]),t("br"),t("span",{staticClass:"line-number"},[e._v("21")]),t("br"),t("span",{staticClass:"line-number"},[e._v("22")]),t("br"),t("span",{staticClass:"line-number"},[e._v("23")]),t("br"),t("span",{staticClass:"line-number"},[e._v("24")]),t("br"),t("span",{staticClass:"line-number"},[e._v("25")]),t("br"),t("span",{staticClass:"line-number"},[e._v("26")]),t("br"),t("span",{staticClass:"line-number"},[e._v("27")]),t("br"),t("span",{staticClass:"line-number"},[e._v("28")]),t("br"),t("span",{staticClass:"line-number"},[e._v("29")]),t("br"),t("span",{staticClass:"line-number"},[e._v("30")]),t("br")])]),t("p",[e._v("This Developer Certificate Of Origin (DCO) was adopted on September 24, 2021.")]),e._v(" "),t("p",[e._v("The text of this license is available under the "),t("a",{attrs:{href:"http://creativecommons.org/licenses/by-sa/3.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creative Commons Attribution-ShareAlike 3.0 Unported License"),t("OutboundLink")],1),e._v(". It is based on the Linux "),t("a",{attrs:{href:"http://elinux.org/Developer_Certificate_Of_Origin",target:"_blank",rel:"noopener noreferrer"}},[e._v("Developer Certificate Of Origin"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("To accept the DCO it is required to put a x between [ ] on "),t("code",[e._v("[ ] I accept the DCO")]),e._v(" in the PR template when submitting it. The [ ] is an opt-in box, so you have to manually accept it.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[116],{430:function(e,t,n){"use strict";n.r(t);var i=n(14),r=Object(i.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"development-contributions"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#development-contributions"}},[e._v("#")]),e._v(" Development contributions")]),e._v(" "),t("p",[e._v("We like pull requests from everyone. By participating in this project, you\nagree to follow the code of conduct below")]),e._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/master/CODE_OF_CONDUCT.md",target:"_blank",rel:"noopener noreferrer"}},[e._v("code of conduct"),t("OutboundLink")],1)]),e._v(" "),t("p",[t("a",{attrs:{href:"https://google.github.io/styleguide/cppguide.html#Formatting",target:"_blank",rel:"noopener noreferrer"}},[e._v("code style guide"),t("OutboundLink")],1),e._v('\nSo as to format automatically your document you have to add the "clang-Format" extension to VSCode, once done, you can format the code by doing a right click into the code file window and clicking "Format document".')]),e._v(" "),t("p",[e._v("Fork the "),t("a",{attrs:{href:"https://github.com/theengs/decoder/tree/development",target:"_blank",rel:"noopener noreferrer"}},[e._v("development branch"),t("OutboundLink")],1),e._v(", then clone the repo")]),e._v(" "),t("p",[e._v("Make your modification,")]),e._v(" "),t("p",[e._v("Review your code, build it")]),e._v(" "),t("p",[e._v("Test it locally on your hardware config")]),e._v(" "),t("p",[e._v("Emit a pull request")]),e._v(" "),t("p",[e._v("Verify the GitHub Actions CI compilation results")]),e._v(" "),t("p",[e._v("Request for review")]),e._v(" "),t("p",[e._v("We may suggest some changes, improvements or alternatives.")]),e._v(" "),t("p",[e._v("Some things that will increase the chance that your pull request is accepted:")]),e._v(" "),t("ul",[t("li",[e._v("Comment your code,")]),e._v(" "),t("li",[e._v("Ask eventually for design guidelines,")]),e._v(" "),t("li",[e._v("Write a "),t("a",{attrs:{href:"http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("good commit message"),t("OutboundLink")],1),e._v(".")])]),e._v(" "),t("h2",{attrs:{id:"developer-certificate-of-origin"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#developer-certificate-of-origin"}},[e._v("#")]),e._v(" Developer Certificate Of Origin")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v(" By making a contribution to this project, I certify that:\n\n (a) The contribution was created in whole or in part by me and I\n have the right to submit it under the open source license\n indicated in the file; or\n\n (b) The contribution is based upon previous work that, to the best\n of my knowledge, is covered under an appropriate open source\n license and I have the right under that license to submit that\n work with modifications, whether created in whole or in part\n by me, under the same open source license (unless I am\n permitted to submit under a different license), as indicated\n in the file; or\n\n (c) The contribution was provided directly to me by some other\n person who certified (a), (b) or (c) and I have not modified\n it.\n\n (d) I understand and agree that this project and the contribution\n are public and that a record of the contribution (including all\n personal information I submit with it, including my sign-off) is\n maintained indefinitely and may be redistributed consistent with\n this project or the open source license(s) involved.\n\n (e) I understand and agree that the project maintainers have the\n right to re-license my contribution under any other license,\n with or without notice to me. By contributing, I waive\n any claim against the project maintainers relating to the\n re-licensing of my contribution under a different license, \n including any claim for royalties or other compensation.\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br"),t("span",{staticClass:"line-number"},[e._v("9")]),t("br"),t("span",{staticClass:"line-number"},[e._v("10")]),t("br"),t("span",{staticClass:"line-number"},[e._v("11")]),t("br"),t("span",{staticClass:"line-number"},[e._v("12")]),t("br"),t("span",{staticClass:"line-number"},[e._v("13")]),t("br"),t("span",{staticClass:"line-number"},[e._v("14")]),t("br"),t("span",{staticClass:"line-number"},[e._v("15")]),t("br"),t("span",{staticClass:"line-number"},[e._v("16")]),t("br"),t("span",{staticClass:"line-number"},[e._v("17")]),t("br"),t("span",{staticClass:"line-number"},[e._v("18")]),t("br"),t("span",{staticClass:"line-number"},[e._v("19")]),t("br"),t("span",{staticClass:"line-number"},[e._v("20")]),t("br"),t("span",{staticClass:"line-number"},[e._v("21")]),t("br"),t("span",{staticClass:"line-number"},[e._v("22")]),t("br"),t("span",{staticClass:"line-number"},[e._v("23")]),t("br"),t("span",{staticClass:"line-number"},[e._v("24")]),t("br"),t("span",{staticClass:"line-number"},[e._v("25")]),t("br"),t("span",{staticClass:"line-number"},[e._v("26")]),t("br"),t("span",{staticClass:"line-number"},[e._v("27")]),t("br"),t("span",{staticClass:"line-number"},[e._v("28")]),t("br"),t("span",{staticClass:"line-number"},[e._v("29")]),t("br"),t("span",{staticClass:"line-number"},[e._v("30")]),t("br")])]),t("p",[e._v("This Developer Certificate Of Origin (DCO) was adopted on September 24, 2021.")]),e._v(" "),t("p",[e._v("The text of this license is available under the "),t("a",{attrs:{href:"http://creativecommons.org/licenses/by-sa/3.0/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Creative Commons Attribution-ShareAlike 3.0 Unported License"),t("OutboundLink")],1),e._v(". It is based on the Linux "),t("a",{attrs:{href:"http://elinux.org/Developer_Certificate_Of_Origin",target:"_blank",rel:"noopener noreferrer"}},[e._v("Developer Certificate Of Origin"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("To accept the DCO it is required to put a x between [ ] on "),t("code",[e._v("[ ] I accept the DCO")]),e._v(" in the PR template when submitting it. The [ ] is an opt-in box, so you have to manually accept it.")])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/117.0925bcc7.js b/assets/js/117.2bb0dfba.js similarity index 96% rename from assets/js/117.0925bcc7.js rename to assets/js/117.2bb0dfba.js index d43081b6..524c9da2 100644 --- a/assets/js/117.0925bcc7.js +++ b/assets/js/117.2bb0dfba.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{424:function(e,t,r){"use strict";r.r(t);var o=r(14),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supporting-the-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supporting-the-project"}},[e._v("#")]),e._v(" Supporting the project")]),e._v(" "),t("p",[e._v("If you like the project and/or used it please consider supporting it! It can be done in different ways:")]),e._v(" "),t("ul",[t("li",[e._v("Helping others in the "),t("a",{attrs:{href:"https://github.com/theengs/decoder/discussions",target:"_blank",rel:"noopener noreferrer"}},[e._v("community"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"development"}},[e._v("Contribute")]),e._v(" to the "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("code"),t("OutboundLink")],1),e._v(" or the documentation,")]),e._v(" "),t("li",[e._v("Buy devices, boards or parts from the "),t("a",{attrs:{href:"https://compatible.openmqttgateway.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenMQTTGateway compatible web site"),t("OutboundLink")],1),e._v(", the devices and parts linked use affiliated links,")]),e._v(" "),t("li",[e._v("Donate or sponsor the project "),t("a",{attrs:{href:"https://github.com/theengs/decoder/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}},[e._v("developers"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Make a video or a blog article about what you have done with "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("TheengsDecoder"),t("OutboundLink")],1),e._v(" and share it.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{426:function(e,t,r){"use strict";r.r(t);var o=r(14),n=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"supporting-the-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#supporting-the-project"}},[e._v("#")]),e._v(" Supporting the project")]),e._v(" "),t("p",[e._v("If you like the project and/or used it please consider supporting it! It can be done in different ways:")]),e._v(" "),t("ul",[t("li",[e._v("Helping others in the "),t("a",{attrs:{href:"https://github.com/theengs/decoder/discussions",target:"_blank",rel:"noopener noreferrer"}},[e._v("community"),t("OutboundLink")],1)]),e._v(" "),t("li",[t("a",{attrs:{href:"development"}},[e._v("Contribute")]),e._v(" to the "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("code"),t("OutboundLink")],1),e._v(" or the documentation,")]),e._v(" "),t("li",[e._v("Buy devices, boards or parts from the "),t("a",{attrs:{href:"https://compatible.openmqttgateway.com",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenMQTTGateway compatible web site"),t("OutboundLink")],1),e._v(", the devices and parts linked use affiliated links,")]),e._v(" "),t("li",[e._v("Donate or sponsor the project "),t("a",{attrs:{href:"https://github.com/theengs/decoder/graphs/contributors",target:"_blank",rel:"noopener noreferrer"}},[e._v("developers"),t("OutboundLink")],1)]),e._v(" "),t("li",[e._v("Make a video or a blog article about what you have done with "),t("a",{attrs:{href:"https://github.com/theengs/decoder",target:"_blank",rel:"noopener noreferrer"}},[e._v("TheengsDecoder"),t("OutboundLink")],1),e._v(" and share it.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/118.6e9b7d91.js b/assets/js/118.888d2ab3.js similarity index 96% rename from assets/js/118.6e9b7d91.js rename to assets/js/118.888d2ab3.js index f87a75ff..5d0e642a 100644 --- a/assets/js/118.6e9b7d91.js +++ b/assets/js/118.888d2ab3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{428:function(e,n,t){"use strict";t.r(n);var r=t(14),a=Object(r.a)({},(function(){var e=this,n=e._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"using-with-esp32"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#using-with-esp32"}},[e._v("#")]),e._v(" Using with ESP32")]),e._v(" "),n("p",[e._v("The library includes a BLE decoder "),n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/ESP32/ScanAndDecode/ScanAndDecode.ino",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),n("OutboundLink")],1),e._v(" based on ESP32, you can open the folder "),n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/ESP32/ScanAndDecode",target:"_blank",rel:"noopener noreferrer"}},[e._v("ScanAndDecode"),n("OutboundLink")],1),e._v(" with a platformio environment or directly "),n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/ESP32/ScanAndDecode/ScanAndDecode.ino",target:"_blank",rel:"noopener noreferrer"}},[e._v("ScanAndDecode.ino"),n("OutboundLink")],1),e._v(" with an Arduino IDE.")]),e._v(" "),n("p",[e._v("If Theengs Decoder recognize a device, it will print in the serial output a message like the example below:")]),e._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[e._v('TheengsDecoder found device: {"id":"AA:BB:CC:DD:EE:FF","name":"ATC_800021","rssi":-90,"servicedatauuid":"0x181a","brand":"Xiaomi","model":"LYWSD03MMC","model_id":"LYWSD03MMC_ATC","tempc":26.3,"tempf":79.34,"hum":49,"batt":29,"volt":2.487}\n')])]),e._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[e._v("1")]),n("br")])])])}),[],!1,null,null,null);n.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{425:function(e,n,t){"use strict";t.r(n);var r=t(14),a=Object(r.a)({},(function(){var e=this,n=e._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"using-with-esp32"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#using-with-esp32"}},[e._v("#")]),e._v(" Using with ESP32")]),e._v(" "),n("p",[e._v("The library includes a BLE decoder "),n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/ESP32/ScanAndDecode/ScanAndDecode.ino",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),n("OutboundLink")],1),e._v(" based on ESP32, you can open the folder "),n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/ESP32/ScanAndDecode",target:"_blank",rel:"noopener noreferrer"}},[e._v("ScanAndDecode"),n("OutboundLink")],1),e._v(" with a platformio environment or directly "),n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/ESP32/ScanAndDecode/ScanAndDecode.ino",target:"_blank",rel:"noopener noreferrer"}},[e._v("ScanAndDecode.ino"),n("OutboundLink")],1),e._v(" with an Arduino IDE.")]),e._v(" "),n("p",[e._v("If Theengs Decoder recognize a device, it will print in the serial output a message like the example below:")]),e._v(" "),n("div",{staticClass:"language- line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[e._v('TheengsDecoder found device: {"id":"AA:BB:CC:DD:EE:FF","name":"ATC_800021","rssi":-90,"servicedatauuid":"0x181a","brand":"Xiaomi","model":"LYWSD03MMC","model_id":"LYWSD03MMC_ATC","tempc":26.3,"tempf":79.34,"hum":49,"batt":29,"volt":2.487}\n')])]),e._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[e._v("1")]),n("br")])])])}),[],!1,null,null,null);n.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/119.af61c5b4.js b/assets/js/119.517f3c63.js similarity index 98% rename from assets/js/119.af61c5b4.js rename to assets/js/119.517f3c63.js index 48586bab..b0d85743 100644 --- a/assets/js/119.af61c5b4.js +++ b/assets/js/119.517f3c63.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{426:function(e,t,a){"use strict";a.r(t);var s=a(14),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"using-the-library-in-a-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-library-in-a-project"}},[e._v("#")]),e._v(" Using the library in a project")]),e._v(" "),t("p",[e._v("Call "),t("code",[e._v("decodeBLEJson(JsonObject)")]),e._v(" with the input being of the Arduino JSON JsonObject type. If the device is known the JsonObject will have the decoded device data added to it.")]),e._v(" "),t("h3",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("p",[e._v("Input JsonObject:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "servicedata": "712098000163b6658d7cc40d0410024001"\n}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("JsonObject after decoding:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "servicedata": "712098000163b6658d7cc40d0410024001"\n "brand":"Xiaomi",\n "model":"miflora",\n "model_id":"HHCCJCY01HHCC",\n "tempc":32,\n "tempf":89.6\n}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br")])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("If you are using ArduinoJson library with your project (like TheengsDecoder) you may have to align the ArduinoJson build options into TheengDecoder with it. To do so, go to "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/decoder.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("decoder.h"),t("OutboundLink")],1),e._v(" and align the flags with your project. In particular you may have to remove "),t("code",[e._v("ARDUINOJSON_USE_LONG_LONG=1")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"encrypted-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#encrypted-data"}},[e._v("#")]),e._v(" Encrypted data")]),e._v(" "),t("p",[e._v("Decoders for encrypted data, indicated by the "),t("code",[e._v('"encr": true')]),e._v(" tag, will send a JsonObject with the properties cipher, counter, message integrity check and MAC address, e.g.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "encr": true,\n "cipher":"62511158bd25",\n "ctr":"b8f09364",\n "mic":"5b573115",\n "mac":"AA:BB:CC:DD:EE:FF"\n}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br")])]),t("p",[e._v("With a correct bindkey this encrypted data can be decrypted and sent back to Decoder for properties decoding.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{427:function(e,t,a){"use strict";a.r(t);var s=a(14),n=Object(s.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"using-the-library-in-a-project"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-the-library-in-a-project"}},[e._v("#")]),e._v(" Using the library in a project")]),e._v(" "),t("p",[e._v("Call "),t("code",[e._v("decodeBLEJson(JsonObject)")]),e._v(" with the input being of the Arduino JSON JsonObject type. If the device is known the JsonObject will have the decoded device data added to it.")]),e._v(" "),t("h3",{attrs:{id:"example"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[e._v("#")]),e._v(" Example")]),e._v(" "),t("p",[e._v("Input JsonObject:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "servicedata": "712098000163b6658d7cc40d0410024001"\n}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("JsonObject after decoding:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "servicedata": "712098000163b6658d7cc40d0410024001"\n "brand":"Xiaomi",\n "model":"miflora",\n "model_id":"HHCCJCY01HHCC",\n "tempc":32,\n "tempf":89.6\n}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br"),t("span",{staticClass:"line-number"},[e._v("8")]),t("br")])]),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),t("p",[e._v("If you are using ArduinoJson library with your project (like TheengsDecoder) you may have to align the ArduinoJson build options into TheengDecoder with it. To do so, go to "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/decoder.h",target:"_blank",rel:"noopener noreferrer"}},[e._v("decoder.h"),t("OutboundLink")],1),e._v(" and align the flags with your project. In particular you may have to remove "),t("code",[e._v("ARDUINOJSON_USE_LONG_LONG=1")]),e._v(".")])]),e._v(" "),t("h3",{attrs:{id:"encrypted-data"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#encrypted-data"}},[e._v("#")]),e._v(" Encrypted data")]),e._v(" "),t("p",[e._v("Decoders for encrypted data, indicated by the "),t("code",[e._v('"encr": true')]),e._v(" tag, will send a JsonObject with the properties cipher, counter, message integrity check and MAC address, e.g.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{\n "encr": true,\n "cipher":"62511158bd25",\n "ctr":"b8f09364",\n "mic":"5b573115",\n "mac":"AA:BB:CC:DD:EE:FF"\n}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br"),t("span",{staticClass:"line-number"},[e._v("5")]),t("br"),t("span",{staticClass:"line-number"},[e._v("6")]),t("br"),t("span",{staticClass:"line-number"},[e._v("7")]),t("br")])]),t("p",[e._v("With a correct bindkey this encrypted data can be decrypted and sent back to Decoder for properties decoding.")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/12.ff4a0460.js b/assets/js/12.60262062.js similarity index 89% rename from assets/js/12.ff4a0460.js rename to assets/js/12.60262062.js index 318a82e1..170f1b4f 100644 --- a/assets/js/12.ff4a0460.js +++ b/assets/js/12.60262062.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{279:function(t,r,e){t.exports=e.p+"assets/img/CGDN1.ac4dfe54.png"},336:function(t,r,e){"use strict";e.r(r);var n=e(14),i=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"qingping-air-monitor-lite"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#qingping-air-monitor-lite"}},[t._v("#")]),t._v(" Qingping Air Monitor Lite")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGDN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGDN1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Qingping")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Air Monitor Lite")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Air quality monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery, USB-C")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, PM2.5, PM10, carbon dioxide")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No - BLE broadcast only working after being paired with a companion app")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(279),alt:"CGDN1"}})])])])])])}),[],!1,null,null,null);r.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{282:function(t,r,e){t.exports=e.p+"assets/img/CGDN1.ac4dfe54.png"},338:function(t,r,e){"use strict";e.r(r);var n=e(14),i=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"qingping-air-monitor-lite"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#qingping-air-monitor-lite"}},[t._v("#")]),t._v(" Qingping Air Monitor Lite")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGDN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGDN1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Qingping")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Air Monitor Lite")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Air quality monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery, USB-C")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, PM2.5, PM10, carbon dioxide")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No - BLE broadcast only working after being paired with a companion app")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(282),alt:"CGDN1"}})])])])])])}),[],!1,null,null,null);r.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/120.e6839c37.js b/assets/js/120.f2280d62.js similarity index 98% rename from assets/js/120.e6839c37.js rename to assets/js/120.f2280d62.js index 691916e9..85fea145 100644 --- a/assets/js/120.e6839c37.js +++ b/assets/js/120.f2280d62.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{425:function(e,t,s){"use strict";s.r(t);var a=s(14),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"using-with-python"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-with-python"}},[e._v("#")]),e._v(" Using with Python")]),e._v(" "),t("h2",{attrs:{id:"installing-from-pypi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-from-pypi"}},[e._v("#")]),e._v(" Installing from PyPI")]),e._v(" "),t("p",[e._v("Install the latest stable version from PyPI:")]),e._v(" "),t("p",[e._v("Make sure to have the latest pip")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install --upgrade pip\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("then")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install TheengsDecoder\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("h2",{attrs:{id:"installing-a-development-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-a-development-version"}},[e._v("#")]),e._v(" Installing a development version")]),e._v(" "),t("p",[e._v("Building this module requires scikit-build and cmake. If not already installed you will need to open a terminal and execute:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install scikit-build\nsudo apt-get install cmake\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("Make sure to have the latest pip")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install --upgrade pip\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Then clone the repository and install the latest development version:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("git clone --recursive https://github.com/theengs/decoder.git\ncd decoder/python\ncp -r ../src .\npip install .\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br")])]),t("h2",{attrs:{id:"using"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using"}},[e._v("#")]),e._v(" Using")]),e._v(" "),t("p",[e._v("Import the TheengsDecoder in your Python modules as:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("import TheengsDecoder\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("The library includes a BLE decoder "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/python/ScanAndDecode.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),t("OutboundLink")],1),e._v(". To run the example, open the folder "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/python/ScanAndDecode.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("ScanAndDecode"),t("OutboundLink")],1),e._v(" in a terminal and type 'python ScanAndDecode.py`")]),e._v(" "),t("p",[e._v("If Theengs Decoder recognized a device, it will print a message like the example below, otherwise None.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('TheengsDecoder found device: {"brand":"Xiaomi","model":"LYWSD03MMC","model_id":"LYWSD03MMC_ATC","tempc":26.3,"tempf":79.34,"hum":49,"batt":29,"volt":2.487}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Additionally the example will print the properties of the device as well as the brand and model using the "),t("code",[e._v("getProperties")]),e._v(" and "),t("code",[e._v("getAttributes")]),e._v(" methods. The output of these looks like:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{"properties":{"volt":{"unit":"V","name":"voltage"},"x_axis":{"unit":"int","name":"x_axis"},"y_axis":{"unit":"int","name":"y_axis"},"z_axis":{"unit":"int","name":"z_axis"},"tempc":{"unit":"°C","name":"temperature"},"hum":{"unit":"%","name":"humidity"}}}\n\nbrand: Mokosmart , model: BeaconX Pro\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("These functions are useful for passing the data to HomeAssistant or other home automation/monitoring services.")]),e._v(" "),t("h2",{attrs:{id:"methods"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[e._v("#")]),e._v(" Methods")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("decodeBLE(string)")]),e._v(" Returns a string with the decoded data in JSON format or None.")]),e._v(" "),t("li",[t("code",[e._v("getProperties('model_id string')")]),e._v(" Returns the properties (string) of the given model ID or None")]),e._v(" "),t("li",[t("code",[e._v("getAttribute('model_id string', 'attribute string')")]),e._v(" Return the value (string) of named attribute of the model ID or None.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{428:function(e,t,s){"use strict";s.r(t);var a=s(14),n=Object(a.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"using-with-python"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using-with-python"}},[e._v("#")]),e._v(" Using with Python")]),e._v(" "),t("h2",{attrs:{id:"installing-from-pypi"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-from-pypi"}},[e._v("#")]),e._v(" Installing from PyPI")]),e._v(" "),t("p",[e._v("Install the latest stable version from PyPI:")]),e._v(" "),t("p",[e._v("Make sure to have the latest pip")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install --upgrade pip\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("then")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install TheengsDecoder\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("h2",{attrs:{id:"installing-a-development-version"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#installing-a-development-version"}},[e._v("#")]),e._v(" Installing a development version")]),e._v(" "),t("p",[e._v("Building this module requires scikit-build and cmake. If not already installed you will need to open a terminal and execute:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install scikit-build\nsudo apt-get install cmake\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br")])]),t("p",[e._v("Make sure to have the latest pip")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("pip install --upgrade pip\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Then clone the repository and install the latest development version:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("git clone --recursive https://github.com/theengs/decoder.git\ncd decoder/python\ncp -r ../src .\npip install .\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br"),t("span",{staticClass:"line-number"},[e._v("4")]),t("br")])]),t("h2",{attrs:{id:"using"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#using"}},[e._v("#")]),e._v(" Using")]),e._v(" "),t("p",[e._v("Import the TheengsDecoder in your Python modules as:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v("import TheengsDecoder\n")])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("The library includes a BLE decoder "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/python/ScanAndDecode.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("example"),t("OutboundLink")],1),e._v(". To run the example, open the folder "),t("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/examples/python/ScanAndDecode.py",target:"_blank",rel:"noopener noreferrer"}},[e._v("ScanAndDecode"),t("OutboundLink")],1),e._v(" in a terminal and type 'python ScanAndDecode.py`")]),e._v(" "),t("p",[e._v("If Theengs Decoder recognized a device, it will print a message like the example below, otherwise None.")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('TheengsDecoder found device: {"brand":"Xiaomi","model":"LYWSD03MMC","model_id":"LYWSD03MMC_ATC","tempc":26.3,"tempf":79.34,"hum":49,"batt":29,"volt":2.487}\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br")])]),t("p",[e._v("Additionally the example will print the properties of the device as well as the brand and model using the "),t("code",[e._v("getProperties")]),e._v(" and "),t("code",[e._v("getAttributes")]),e._v(" methods. The output of these looks like:")]),e._v(" "),t("div",{staticClass:"language- line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[e._v('{"properties":{"volt":{"unit":"V","name":"voltage"},"x_axis":{"unit":"int","name":"x_axis"},"y_axis":{"unit":"int","name":"y_axis"},"z_axis":{"unit":"int","name":"z_axis"},"tempc":{"unit":"°C","name":"temperature"},"hum":{"unit":"%","name":"humidity"}}}\n\nbrand: Mokosmart , model: BeaconX Pro\n')])]),e._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[e._v("1")]),t("br"),t("span",{staticClass:"line-number"},[e._v("2")]),t("br"),t("span",{staticClass:"line-number"},[e._v("3")]),t("br")])]),t("p",[e._v("These functions are useful for passing the data to HomeAssistant or other home automation/monitoring services.")]),e._v(" "),t("h2",{attrs:{id:"methods"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#methods"}},[e._v("#")]),e._v(" Methods")]),e._v(" "),t("ul",[t("li",[t("code",[e._v("decodeBLE(string)")]),e._v(" Returns a string with the decoded data in JSON format or None.")]),e._v(" "),t("li",[t("code",[e._v("getProperties('model_id string')")]),e._v(" Returns the properties (string) of the given model ID or None")]),e._v(" "),t("li",[t("code",[e._v("getAttribute('model_id string', 'attribute string')")]),e._v(" Return the value (string) of named attribute of the model ID or None.")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/13.1ca5b608.js b/assets/js/13.8dd9b9f1.js similarity index 89% rename from assets/js/13.1ca5b608.js rename to assets/js/13.8dd9b9f1.js index 3fd40def..363c1278 100644 --- a/assets/js/13.1ca5b608.js +++ b/assets/js/13.8dd9b9f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{284:function(t,e,r){t.exports=r.p+"assets/img/CGG1.bf5b90dd.png"},341:function(t,e,r){"use strict";r.r(e);var n=r(14),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"cleargrass-qingping-hygro-thermometer-cgg1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-hygro-thermometer-cgg1"}},[t._v("#")]),t._v(" ClearGrass/Qingping Hygro Thermometer CGG1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGG1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGG1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Round Hygro Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Simple temperature and humidity sensor with e-ink display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2430")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, voltage (depending on which CGG1 firmware is installed)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(284),alt:"CGG1"}})])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{281:function(t,e,r){t.exports=r.p+"assets/img/CGG1.bf5b90dd.png"},337:function(t,e,r){"use strict";r.r(e);var n=r(14),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"cleargrass-qingping-hygro-thermometer-cgg1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-hygro-thermometer-cgg1"}},[t._v("#")]),t._v(" ClearGrass/Qingping Hygro Thermometer CGG1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGG1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGG1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Round Hygro Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Simple temperature and humidity sensor with e-ink display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2430")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, voltage (depending on which CGG1 firmware is installed)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(281),alt:"CGG1"}})])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/14.7dcf893d.js b/assets/js/14.98fdd00f.js similarity index 88% rename from assets/js/14.7dcf893d.js rename to assets/js/14.98fdd00f.js index 6edb886f..32339e7f 100644 --- a/assets/js/14.7dcf893d.js +++ b/assets/js/14.98fdd00f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{280:function(t,n,e){t.exports=e.p+"assets/img/CGH1.6716ff1c.png"},337:function(t,n,e){"use strict";e.r(n);var r=e(14),o=Object(r.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"qingping-contact-sensor-cgh1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#qingping-contact-sensor-cgh1"}},[t._v("#")]),t._v(" Qingping Contact Sensor CGH1")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("Model Id")]),t._v(" "),n("th",[n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGH1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGH1"),n("OutboundLink")],1)])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("Brand")]),t._v(" "),n("td",[t._v("Qingping")])]),t._v(" "),n("tr",[n("td",[t._v("Model")]),t._v(" "),n("td",[t._v("Contact sensor")])]),t._v(" "),n("tr",[n("td",[t._v("Short Description")]),t._v(" "),n("td",[t._v("Door/Window contact sensor with Open-Close status")])]),t._v(" "),n("tr",[n("td",[t._v("Communication")]),t._v(" "),n("td",[t._v("BLE broadcast")])]),t._v(" "),n("tr",[n("td",[t._v("Frequency")]),t._v(" "),n("td",[t._v("2.4Ghz")])]),t._v(" "),n("tr",[n("td",[t._v("Power Source")]),t._v(" "),n("td",[t._v("CR1632")])]),t._v(" "),n("tr",[n("td",[t._v("Exchanged Data")]),t._v(" "),n("td",[t._v("open")])]),t._v(" "),n("tr",[n("td",[t._v("Encrypted")]),t._v(" "),n("td",[t._v("No")])]),t._v(" "),n("tr",[n("td",[t._v("Image")]),t._v(" "),n("td",[n("img",{attrs:{src:e(280),alt:"CGH1"}})])])])])])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{283:function(t,n,e){t.exports=e.p+"assets/img/CGH1.6716ff1c.png"},339:function(t,n,e){"use strict";e.r(n);var r=e(14),o=Object(r.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"qingping-contact-sensor-cgh1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#qingping-contact-sensor-cgh1"}},[t._v("#")]),t._v(" Qingping Contact Sensor CGH1")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("Model Id")]),t._v(" "),n("th",[n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGH1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGH1"),n("OutboundLink")],1)])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("Brand")]),t._v(" "),n("td",[t._v("Qingping")])]),t._v(" "),n("tr",[n("td",[t._v("Model")]),t._v(" "),n("td",[t._v("Contact sensor")])]),t._v(" "),n("tr",[n("td",[t._v("Short Description")]),t._v(" "),n("td",[t._v("Door/Window contact sensor with Open-Close status")])]),t._v(" "),n("tr",[n("td",[t._v("Communication")]),t._v(" "),n("td",[t._v("BLE broadcast")])]),t._v(" "),n("tr",[n("td",[t._v("Frequency")]),t._v(" "),n("td",[t._v("2.4Ghz")])]),t._v(" "),n("tr",[n("td",[t._v("Power Source")]),t._v(" "),n("td",[t._v("CR1632")])]),t._v(" "),n("tr",[n("td",[t._v("Exchanged Data")]),t._v(" "),n("td",[t._v("open")])]),t._v(" "),n("tr",[n("td",[t._v("Encrypted")]),t._v(" "),n("td",[t._v("No")])]),t._v(" "),n("tr",[n("td",[t._v("Image")]),t._v(" "),n("td",[n("img",{attrs:{src:e(283),alt:"CGH1"}})])])])])])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/15.7335d5c3.js b/assets/js/15.43d9895e.js similarity index 89% rename from assets/js/15.7335d5c3.js rename to assets/js/15.43d9895e.js index 84bd384b..84ca39b7 100644 --- a/assets/js/15.7335d5c3.js +++ b/assets/js/15.43d9895e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{285:function(t,e,r){t.exports=r.p+"assets/img/CGP1W.1fff3afe.png"},342:function(t,e,r){"use strict";r.r(e);var a=r(14),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"cleargrass-qingping-weather-station-cgp1w"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-weather-station-cgp1w"}},[t._v("#")]),t._v(" ClearGrass/Qingping Weather Station CGP1W")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGP1W_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGP1W"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Weather Station")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Rechargeable temperature, humidity and atmospheric pressure sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Internal battery/USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, atmospheric pressure, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(285),alt:"CGP1W"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{284:function(t,e,r){t.exports=r.p+"assets/img/CGP1W.1fff3afe.png"},340:function(t,e,r){"use strict";r.r(e);var a=r(14),n=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"cleargrass-qingping-weather-station-cgp1w"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-weather-station-cgp1w"}},[t._v("#")]),t._v(" ClearGrass/Qingping Weather Station CGP1W")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGP1W_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGP1W"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Weather Station")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Rechargeable temperature, humidity and atmospheric pressure sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Internal battery/USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, atmospheric pressure, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(284),alt:"CGP1W"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/16.6c25fb1c.js b/assets/js/16.766dd89a.js similarity index 88% rename from assets/js/16.6c25fb1c.js rename to assets/js/16.766dd89a.js index 05ec2f1c..aff0a6eb 100644 --- a/assets/js/16.6c25fb1c.js +++ b/assets/js/16.766dd89a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{283:function(t,n,r){t.exports=r.p+"assets/img/CGPR1.e38aaa79.png"},340:function(t,n,r){"use strict";r.r(n);var e=r(14),o=Object(e.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"qingping-motion-light-cgpr1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#qingping-motion-light-cgpr1"}},[t._v("#")]),t._v(" Qingping Motion & Light CGPR1")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("Model Id")]),t._v(" "),n("th",[n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGPR1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGPR1"),n("OutboundLink")],1)])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("Brand")]),t._v(" "),n("td",[t._v("Qingping")])]),t._v(" "),n("tr",[n("td",[t._v("Model")]),t._v(" "),n("td",[t._v("Motion & Light")])]),t._v(" "),n("tr",[n("td",[t._v("Short Description")]),t._v(" "),n("td",[t._v("Motion and ambient light sensor")])]),t._v(" "),n("tr",[n("td",[t._v("Communication")]),t._v(" "),n("td",[t._v("BLE broadcast")])]),t._v(" "),n("tr",[n("td",[t._v("Frequency")]),t._v(" "),n("td",[t._v("2.4Ghz")])]),t._v(" "),n("tr",[n("td",[t._v("Power Source")]),t._v(" "),n("td",[t._v("2 CR2450")])]),t._v(" "),n("tr",[n("td",[t._v("Exchanged Data")]),t._v(" "),n("td",[t._v("luminance, motion, battery")])]),t._v(" "),n("tr",[n("td",[t._v("Encrypted")]),t._v(" "),n("td",[t._v("No")])]),t._v(" "),n("tr",[n("td",[t._v("Image")]),t._v(" "),n("td",[n("img",{attrs:{src:r(283),alt:"CGPR1"}})])])])])])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{285:function(t,n,r){t.exports=r.p+"assets/img/CGPR1.e38aaa79.png"},341:function(t,n,r){"use strict";r.r(n);var e=r(14),o=Object(e.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"qingping-motion-light-cgpr1"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#qingping-motion-light-cgpr1"}},[t._v("#")]),t._v(" Qingping Motion & Light CGPR1")]),t._v(" "),n("table",[n("thead",[n("tr",[n("th",[t._v("Model Id")]),t._v(" "),n("th",[n("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGPR1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGPR1"),n("OutboundLink")],1)])])]),t._v(" "),n("tbody",[n("tr",[n("td",[t._v("Brand")]),t._v(" "),n("td",[t._v("Qingping")])]),t._v(" "),n("tr",[n("td",[t._v("Model")]),t._v(" "),n("td",[t._v("Motion & Light")])]),t._v(" "),n("tr",[n("td",[t._v("Short Description")]),t._v(" "),n("td",[t._v("Motion and ambient light sensor")])]),t._v(" "),n("tr",[n("td",[t._v("Communication")]),t._v(" "),n("td",[t._v("BLE broadcast")])]),t._v(" "),n("tr",[n("td",[t._v("Frequency")]),t._v(" "),n("td",[t._v("2.4Ghz")])]),t._v(" "),n("tr",[n("td",[t._v("Power Source")]),t._v(" "),n("td",[t._v("2 CR2450")])]),t._v(" "),n("tr",[n("td",[t._v("Exchanged Data")]),t._v(" "),n("td",[t._v("luminance, motion, battery")])]),t._v(" "),n("tr",[n("td",[t._v("Encrypted")]),t._v(" "),n("td",[t._v("No")])]),t._v(" "),n("tr",[n("td",[t._v("Image")]),t._v(" "),n("td",[n("img",{attrs:{src:r(285),alt:"CGPR1"}})])])])])])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/17.0fd9c128.js b/assets/js/17.9b4fdfc9.js similarity index 96% rename from assets/js/17.0fd9c128.js rename to assets/js/17.9b4fdfc9.js index 7c51c213..d770711a 100644 --- a/assets/js/17.0fd9c128.js +++ b/assets/js/17.9b4fdfc9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{286:function(t,e,r){t.exports=r.p+"assets/img/H5074.b670acdc.png"},344:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5074"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5074"}},[t._v("#")]),t._v(" Govee H5074")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5074_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5074"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with large LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(286),alt:"H5074"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{286:function(t,e,r){t.exports=r.p+"assets/img/H5074.b670acdc.png"},343:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5074"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5074"}},[t._v("#")]),t._v(" Govee H5074")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5074_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5074"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with large LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(286),alt:"H5074"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/18.4e4f715e.js b/assets/js/18.b719775f.js similarity index 96% rename from assets/js/18.4e4f715e.js rename to assets/js/18.b719775f.js index 39206627..ac104543 100644 --- a/assets/js/18.4e4f715e.js +++ b/assets/js/18.b719775f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{287:function(t,e,r){t.exports=r.p+"assets/img/H5075.e5980c19.png"},345:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5075"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5075"}},[t._v("#")]),t._v(" Govee H5075")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5072_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5075"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with large LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(287),alt:"H5075"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{287:function(t,e,r){t.exports=r.p+"assets/img/H5075.e5980c19.png"},346:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5075"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5075"}},[t._v("#")]),t._v(" Govee H5075")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5072_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5075"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with large LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(287),alt:"H5075"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/19.322c61f3.js b/assets/js/19.38b2c194.js similarity index 96% rename from assets/js/19.322c61f3.js rename to assets/js/19.38b2c194.js index 8efaabde..f8e9e220 100644 --- a/assets/js/19.322c61f3.js +++ b/assets/js/19.38b2c194.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{288:function(t,e,r){t.exports=r.p+"assets/img/H5106.4a279ee8.png"},351:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5106"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5106"}},[t._v("#")]),t._v(" Govee H5106")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5106_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5106"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Air Quality Monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Air quality monitor with temperature, humidity and PM2.5")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("USB-C")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, PM2.5")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(288),alt:"H5106"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{288:function(t,e,r){t.exports=r.p+"assets/img/H5106.4a279ee8.png"},352:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5106"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5106"}},[t._v("#")]),t._v(" Govee H5106")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5106_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5106"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Air Quality Monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Air quality monitor with temperature, humidity and PM2.5")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("USB-C")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, PM2.5")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(288),alt:"H5106"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/20.2c52d720.js b/assets/js/20.87bdb4de.js similarity index 96% rename from assets/js/20.2c52d720.js rename to assets/js/20.87bdb4de.js index 208902f1..159f637d 100644 --- a/assets/js/20.2c52d720.js +++ b/assets/js/20.87bdb4de.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{289:function(t,r,e){t.exports=e.p+"assets/img/HHCCJCY01HHCC.7aa7491b.png"},355:function(t,r,e){"use strict";e.r(r);var v=e(14),a=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-vegtrug-mi-flora"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-vegtrug-mi-flora"}},[t._v("#")]),t._v(" Xiaomi/VegTrug Mi Flora")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCJCY01HHCC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("HHCCJCY01HHCC"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi/VegTrug")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("MiFlora")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Moisture, light, temperature and fertility sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, moisture, fertility, luminance")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(289),alt:"HHCCJCY01HHCC"}})])])])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{289:function(t,r,e){t.exports=e.p+"assets/img/HHCCJCY01HHCC.7aa7491b.png"},354:function(t,r,e){"use strict";e.r(r);var v=e(14),a=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-vegtrug-mi-flora"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-vegtrug-mi-flora"}},[t._v("#")]),t._v(" Xiaomi/VegTrug Mi Flora")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCJCY01HHCC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("HHCCJCY01HHCC"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi/VegTrug")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("MiFlora")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Moisture, light, temperature and fertility sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, moisture, fertility, luminance")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(289),alt:"HHCCJCY01HHCC"}})])])])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/21.81d5d09e.js b/assets/js/21.dd6d53e9.js similarity index 96% rename from assets/js/21.81d5d09e.js rename to assets/js/21.dd6d53e9.js index 6d610112..300306e2 100644 --- a/assets/js/21.81d5d09e.js +++ b/assets/js/21.dd6d53e9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{290:function(t,r,e){t.exports=e.p+"assets/img/IBS-TH1.d9393955.png"},358:function(t,r,e){"use strict";e.r(r);var d=e(14),n=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-th1"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-th1"}},[t._v("#")]),t._v(" Inkbird TH1")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBS_THBP01B_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBS-TH1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Inkbird")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Thermometer Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor (also mini and Plus models) with external probe (not mini)")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("1 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(290),alt:"IBS-TH1"}})])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{290:function(t,r,e){t.exports=e.p+"assets/img/IBS-TH1.d9393955.png"},360:function(t,r,e){"use strict";e.r(r);var d=e(14),n=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-th1"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-th1"}},[t._v("#")]),t._v(" Inkbird TH1")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBS_THBP01B_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBS-TH1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Inkbird")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Thermometer Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor (also mini and Plus models) with external probe (not mini)")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("1 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(290),alt:"IBS-TH1"}})])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/22.9d26117a.js b/assets/js/22.18e8c33f.js similarity index 88% rename from assets/js/22.9d26117a.js rename to assets/js/22.18e8c33f.js index d55ff37e..990ac1cb 100644 --- a/assets/js/22.9d26117a.js +++ b/assets/js/22.18e8c33f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{291:function(t,r,e){t.exports=e.p+"assets/img/IBS-TH2.f46f6610.png"},360:function(t,r,e){"use strict";e.r(r);var d=e(14),_=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-th2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-th2"}},[t._v("#")]),t._v(" Inkbird TH2")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBS_THBP01B_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBS-TH2"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Inkbird")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Thermometer Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity (not for all models) sensor (also Plus model with external probe)")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA/AA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(291),alt:"IBS-TH2"}})])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{292:function(t,r,e){t.exports=e.p+"assets/img/IBS-TH2.f46f6610.png"},362:function(t,r,e){"use strict";e.r(r);var d=e(14),_=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-th2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-th2"}},[t._v("#")]),t._v(" Inkbird TH2")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBS_THBP01B_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBS-TH2"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Inkbird")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Thermometer Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity (not for all models) sensor (also Plus model with external probe)")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA/AA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(292),alt:"IBS-TH2"}})])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/24.e89cab37.js b/assets/js/24.3bf06ae8.js similarity index 92% rename from assets/js/24.e89cab37.js rename to assets/js/24.3bf06ae8.js index eb07be55..62fe334b 100644 --- a/assets/js/24.e89cab37.js +++ b/assets/js/24.3bf06ae8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{292:function(t,e,r){t.exports=r.p+"assets/img/IBT_4X.4c063ab7.png"},361:function(t,e,r){"use strict";r.r(e);var _=r(14),v=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"inkbird-4x-s-c-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-4x-s-c-bbq"}},[t._v("#")]),t._v(" Inkbird 4X(S/C) BBQ")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBT_4XS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBT_4X(S/C)"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Inkbird")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor with 4 probes")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery, USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, temperature2, temperature3, temperature4")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(292),alt:"IBT_4X"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{291:function(t,e,r){t.exports=r.p+"assets/img/IBT_4X.4c063ab7.png"},361:function(t,e,r){"use strict";r.r(e);var _=r(14),v=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"inkbird-4x-s-c-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-4x-s-c-bbq"}},[t._v("#")]),t._v(" Inkbird 4X(S/C) BBQ")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBT_4XS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBT_4X(S/C)"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Inkbird")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor with 4 probes")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery, USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, temperature2, temperature3, temperature4")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(291),alt:"IBT_4X"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/25.37011e0a.js b/assets/js/25.bc9c8825.js similarity index 96% rename from assets/js/25.37011e0a.js rename to assets/js/25.bc9c8825.js index 8163becc..2ce92861 100644 --- a/assets/js/25.37011e0a.js +++ b/assets/js/25.bc9c8825.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{294:function(t,e,r){t.exports=r.p+"assets/img/JQJCY01YM.8f083f65.png"},366:function(t,e,r){"use strict";r.r(e);var d=r(14),o=Object(d.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-formaldehyde-detector"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-formaldehyde-detector"}},[t._v("#")]),t._v(" Xiaomi Formaldehyde detector")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/JQJCY01YM_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("JQJCY01YM"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Formaldehyde detector")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Honeywell formaldehyde monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("formaldehyde, temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(294),alt:"JQJCY01YM"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[25],{294:function(t,e,r){t.exports=r.p+"assets/img/JQJCY01YM.8f083f65.png"},367:function(t,e,r){"use strict";r.r(e);var d=r(14),o=Object(d.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-formaldehyde-detector"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-formaldehyde-detector"}},[t._v("#")]),t._v(" Xiaomi Formaldehyde detector")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/JQJCY01YM_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("JQJCY01YM"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Formaldehyde detector")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Honeywell formaldehyde monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("formaldehyde, temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(294),alt:"JQJCY01YM"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/26.339b41ca.js b/assets/js/26.fc293c37.js similarity index 88% rename from assets/js/26.339b41ca.js rename to assets/js/26.fc293c37.js index 8c091047..2ce12a26 100644 --- a/assets/js/26.339b41ca.js +++ b/assets/js/26.fc293c37.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{295:function(t,e,r){t.exports=r.p+"assets/img/LYWSD02MMC.62f3049e.png"},369:function(t,e,r){"use strict";r.r(e);var a=r(14),i=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-mijia-lywsd02-e-ink-clock"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mijia-lywsd02-e-ink-clock"}},[t._v("#")]),t._v(" Xiaomi/Mijia LYWSD02 e-ink Clock")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD02_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("LYWSD02"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi/Mijia")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("e-ink Clock")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Rectangular clock with e-ink display and temperature/humidity measurement")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(295),alt:"LYWSD02MMC"}})])])])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{297:function(t,e,r){t.exports=r.p+"assets/img/LYWSD02MMC.62f3049e.png"},372:function(t,e,r){"use strict";r.r(e);var a=r(14),i=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-mijia-lywsd02-e-ink-clock"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mijia-lywsd02-e-ink-clock"}},[t._v("#")]),t._v(" Xiaomi/Mijia LYWSD02 e-ink Clock")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD02_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("LYWSD02"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi/Mijia")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("e-ink Clock")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Rectangular clock with e-ink display and temperature/humidity measurement")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(297),alt:"LYWSD02MMC"}})])])])])])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/27.f16ea0bd.js b/assets/js/27.94159bd9.js similarity index 93% rename from assets/js/27.f16ea0bd.js rename to assets/js/27.94159bd9.js index 9bd782b9..5077a222 100644 --- a/assets/js/27.f16ea0bd.js +++ b/assets/js/27.94159bd9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{296:function(t,e,r){t.exports=r.p+"assets/img/LYWSD03MMC.f6b2cd08.png"},370:function(t,e,r){"use strict";r.r(e);var a=r(14),o=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-lywsd03mmc-atc-or-pvvx-firmware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-lywsd03mmc-atc-or-pvvx-firmware"}},[t._v("#")]),t._v(" Xiaomi LYWSD03MMC ATC or PVVX firmware")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD03MMC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("LYWSD03MMC_ATC/PVVX"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Compact Temperature sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, voltage (depending on which LYWSD03MMC firmware is installed)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("Yes/No - Optional")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(296),alt:"LYWSD03MMC"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{295:function(t,e,r){t.exports=r.p+"assets/img/LYWSD03MMC.f6b2cd08.png"},370:function(t,e,r){"use strict";r.r(e);var a=r(14),o=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-lywsd03mmc-atc-or-pvvx-firmware"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-lywsd03mmc-atc-or-pvvx-firmware"}},[t._v("#")]),t._v(" Xiaomi LYWSD03MMC ATC or PVVX firmware")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD03MMC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("LYWSD03MMC_ATC/PVVX"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Compact Temperature sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, voltage (depending on which LYWSD03MMC firmware is installed)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("Yes/No - Optional")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(295),alt:"LYWSD03MMC"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/28.9e8fdadf.js b/assets/js/28.7cb19aed.js similarity index 92% rename from assets/js/28.9e8fdadf.js rename to assets/js/28.7cb19aed.js index 80f3995d..9aa44218 100644 --- a/assets/js/28.9e8fdadf.js +++ b/assets/js/28.7cb19aed.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{297:function(t,e,r){t.exports=r.p+"assets/img/LYWSDCGQ.6739d850.png"},371:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-lywsdcgq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-lywsdcgq"}},[t._v("#")]),t._v(" Xiaomi LYWSDCGQ")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSDCGQ_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("LYWSDCGQ"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Mi Jia")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Round Temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("1 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(297),alt:"LYWSDCGQ"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{296:function(t,e,r){t.exports=r.p+"assets/img/LYWSDCGQ.6739d850.png"},371:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-lywsdcgq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-lywsdcgq"}},[t._v("#")]),t._v(" Xiaomi LYWSDCGQ")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSDCGQ_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("LYWSDCGQ"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Mi Jia")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Round Temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("1 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(296),alt:"LYWSDCGQ"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/29.6d36a818.js b/assets/js/29.448e1e25.js similarity index 89% rename from assets/js/29.6d36a818.js rename to assets/js/29.448e1e25.js index bfe9576a..380753ab 100644 --- a/assets/js/29.6d36a818.js +++ b/assets/js/29.448e1e25.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{298:function(t,r,e){t.exports=e.p+"assets/img/H4.ab827f20.png"},372:function(t,r,e){"use strict";e.r(r);var v=e(14),o=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"mokosmart-pro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#mokosmart-pro"}},[t._v("#")]),t._v(" MokoSmart Pro")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/MBXPRO_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MBXPRO"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("MOKOSMART")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("H4")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("IP66 Waterproof temperature and humidity sensor with accelerometer")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, acceleration x/y/z-axis, volt")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(298),alt:"H4"}})])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{299:function(t,r,e){t.exports=e.p+"assets/img/H4.ab827f20.png"},374:function(t,r,e){"use strict";e.r(r);var v=e(14),o=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"mokosmart-pro"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#mokosmart-pro"}},[t._v("#")]),t._v(" MokoSmart Pro")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/MBXPRO_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MBXPRO"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("MOKOSMART")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("H4")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("IP66 Waterproof temperature and humidity sensor with accelerometer")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, acceleration x/y/z-axis, volt")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(299),alt:"H4"}})])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/30.fdb96972.js b/assets/js/30.84be415d.js similarity index 89% rename from assets/js/30.fdb96972.js rename to assets/js/30.84be415d.js index 218ebffc..55a858de 100644 --- a/assets/js/30.fdb96972.js +++ b/assets/js/30.84be415d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{299:function(t,r,e){t.exports=e.p+"assets/img/MHO-C401.69243c51.png"},374:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-mho-c401-mmc-c401-atc-or-pvvx-firmware"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mho-c401-mmc-c401-atc-or-pvvx-firmware"}},[t._v("#")]),t._v(" Xiaomi MHO-C401/MMC-C401 ATC or PVVX firmware")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD03MMC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MHO/MMC-C401_ATC/PVVX"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Compact Temperature sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery, volt")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(299),alt:"MHO-C401"}})])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{298:function(t,r,e){t.exports=e.p+"assets/img/MHO-C401.69243c51.png"},373:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-mho-c401-mmc-c401-atc-or-pvvx-firmware"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mho-c401-mmc-c401-atc-or-pvvx-firmware"}},[t._v("#")]),t._v(" Xiaomi MHO-C401/MMC-C401 ATC or PVVX firmware")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD03MMC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MHO/MMC-C401_ATC/PVVX"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Compact Temperature sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery, volt")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(298),alt:"MHO-C401"}})])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/31.202d3075.js b/assets/js/31.bec0bdd0.js similarity index 90% rename from assets/js/31.202d3075.js rename to assets/js/31.bec0bdd0.js index 51729d48..79fbe4c0 100644 --- a/assets/js/31.202d3075.js +++ b/assets/js/31.bec0bdd0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{300:function(t,e,a){t.exports=a.p+"assets/img/MiBand.45aef307.png"},376:function(t,e,a){"use strict";a.r(e);var r=a(14),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-mi-band"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mi-band"}},[t._v("#")]),t._v(" Xiaomi Mi Band")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Miband_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MiBand"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Mi Band")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Fitness band with step count and activity heart rate monitoring")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("steps (*), activity heart rate (when activated in the Zepp Life settings)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:a(300),alt:"MiBand"}})])])])]),t._v(" "),e("p",[t._v("(*) Starting with Mi Band 7 the steps don't seem to be freely broadcast any longer so that only the activity heart rate is available.")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{301:function(t,e,a){t.exports=a.p+"assets/img/MiBand.45aef307.png"},378:function(t,e,a){"use strict";a.r(e);var r=a(14),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-mi-band"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mi-band"}},[t._v("#")]),t._v(" Xiaomi Mi Band")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Miband_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MiBand"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Mi Band")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Fitness band with step count and activity heart rate monitoring")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("steps (*), activity heart rate (when activated in the Zepp Life settings)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:a(301),alt:"MiBand"}})])])])]),t._v(" "),e("p",[t._v("(*) Starting with Mi Band 7 the steps don't seem to be freely broadcast any longer so that only the activity heart rate is available.")])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/32.316f184a.js b/assets/js/32.7e84ce16.js similarity index 92% rename from assets/js/32.316f184a.js rename to assets/js/32.7e84ce16.js index 327e401e..8057a4bb 100644 --- a/assets/js/32.316f184a.js +++ b/assets/js/32.7e84ce16.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{301:function(t,e,o){t.exports=o.p+"assets/img/M2.5ff17b93.png"},377:function(t,e,o){"use strict";o.r(e);var r=o(14),v=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"mokosmart-beacon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mokosmart-beacon"}},[t._v("#")]),t._v(" MokoSmart Beacon")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Mokobeacon_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MokoBeacon"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("MOKOSMART")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Beacon")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("MokoBeacon protocol")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("acceleration x/y/z-axis, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:o(301),alt:"M2"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{300:function(t,e,o){t.exports=o.p+"assets/img/M2.5ff17b93.png"},377:function(t,e,o){"use strict";o.r(e);var r=o(14),v=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"mokosmart-beacon"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mokosmart-beacon"}},[t._v("#")]),t._v(" MokoSmart Beacon")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Mokobeacon_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MokoBeacon"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("MOKOSMART")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Beacon")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("MokoBeacon protocol")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("acceleration x/y/z-axis, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:o(300),alt:"M2"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/33.08e0133c.js b/assets/js/33.39e416dc.js similarity index 96% rename from assets/js/33.08e0133c.js rename to assets/js/33.39e416dc.js index 13902bb1..9d0a8484 100644 --- a/assets/js/33.08e0133c.js +++ b/assets/js/33.39e416dc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{302:function(t,e,r){t.exports=r.p+"assets/img/M1017.c709cdeb.png"},378:function(t,e,r){"use strict";r.r(e);var o=r(14),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"mopeka-lippert-pro-check-universal-bottlecheck-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mopeka-lippert-pro-check-universal-bottlecheck-sensor"}},[t._v("#")]),t._v(" Mopeka/Lippert Pro Check (Universal)/BottleCheck Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Mopeka_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("M1017"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Mopeka/Lippert")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Pro Check (Universal)/BottleCheck Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Ultrasonic LPG Tank level sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, level, sync status, voltage, battery, reading quality, acceleration x/y-axis")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(302),alt:"M1017"}})])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{302:function(t,e,r){t.exports=r.p+"assets/img/M1017.c709cdeb.png"},379:function(t,e,r){"use strict";r.r(e);var o=r(14),a=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"mopeka-lippert-pro-check-universal-bottlecheck-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mopeka-lippert-pro-check-universal-bottlecheck-sensor"}},[t._v("#")]),t._v(" Mopeka/Lippert Pro Check (Universal)/BottleCheck Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Mopeka_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("M1017"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Mopeka/Lippert")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Pro Check (Universal)/BottleCheck Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Ultrasonic LPG Tank level sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, level, sync status, voltage, battery, reading quality, acceleration x/y-axis")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(302),alt:"M1017"}})])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/34.121327a2.js b/assets/js/34.3450a34b.js similarity index 88% rename from assets/js/34.121327a2.js rename to assets/js/34.3450a34b.js index c124dc28..8729d988 100644 --- a/assets/js/34.121327a2.js +++ b/assets/js/34.3450a34b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{303:function(t,e,o){t.exports=o.p+"assets/img/W110150X.f306ade6.png"},392:function(t,e,o){"use strict";o.r(e);var r=o(14),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"switchbot-motion-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-motion-sensor"}},[t._v("#")]),t._v(" SwitchBot Motion Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBMS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W110150X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("SwitchBot")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Motion Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("PIR Motion Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("motion, light level, sensing distance, led, scope tested, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:o(303),alt:"W110150X"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{304:function(t,e,o){t.exports=o.p+"assets/img/W110150X.f306ade6.png"},395:function(t,e,o){"use strict";o.r(e);var r=o(14),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"switchbot-motion-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-motion-sensor"}},[t._v("#")]),t._v(" SwitchBot Motion Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBMS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W110150X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("SwitchBot")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Motion Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("PIR Motion Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("motion, light level, sensing distance, led, scope tested, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:o(304),alt:"W110150X"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/35.e68db2e8.js b/assets/js/35.44fadaac.js similarity index 88% rename from assets/js/35.e68db2e8.js rename to assets/js/35.44fadaac.js index ce1908bc..55d5cc9b 100644 --- a/assets/js/35.e68db2e8.js +++ b/assets/js/35.44fadaac.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{304:function(t,e,r){t.exports=r.p+"assets/img/THX1.1d2a5e73.png"},393:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"switchbot-meter-plus"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-meter-plus"}},[t._v("#")]),t._v(" SwitchBot Meter (Plus)")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBMT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("THX1(W230150X)"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("SwitchBot")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Meter (Plus)")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Thermometer and Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(304),alt:"THX1"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{303:function(t,e,r){t.exports=r.p+"assets/img/THX1.1d2a5e73.png"},394:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"switchbot-meter-plus"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-meter-plus"}},[t._v("#")]),t._v(" SwitchBot Meter (Plus)")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBMT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("THX1(W230150X)"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("SwitchBot")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Meter (Plus)")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Thermometer and Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(303),alt:"THX1"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/36.eff273ec.js b/assets/js/36.52c79b18.js similarity index 96% rename from assets/js/36.eff273ec.js rename to assets/js/36.52c79b18.js index 1768d1f9..26b6431f 100644 --- a/assets/js/36.eff273ec.js +++ b/assets/js/36.52c79b18.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{305:function(t,r,e){t.exports=e.p+"assets/img/T201.b99146a9.png"},408:function(t,r,e){"use strict";e.r(r);var o=e(14),a=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"oria-brifit-sigmawit-sensorpro-t201"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#oria-brifit-sigmawit-sensorpro-t201"}},[t._v("#")]),t._v(" Oria/Brifit/SigmaWit/SensorPro T201")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/T201_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("T201"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Oria/Brifit/SigmaWit/SensorPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(305),alt:"T201"}})])])])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[36],{305:function(t,r,e){t.exports=e.p+"assets/img/T201.b99146a9.png"},410:function(t,r,e){"use strict";e.r(r);var o=e(14),a=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"oria-brifit-sigmawit-sensorpro-t201"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#oria-brifit-sigmawit-sensorpro-t201"}},[t._v("#")]),t._v(" Oria/Brifit/SigmaWit/SensorPro T201")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/T201_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("T201"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Oria/Brifit/SigmaWit/SensorPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(305),alt:"T201"}})])])])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/37.ae560090.js b/assets/js/37.702409ef.js similarity index 96% rename from assets/js/37.ae560090.js rename to assets/js/37.702409ef.js index a25ecbf5..a47dcb1e 100644 --- a/assets/js/37.ae560090.js +++ b/assets/js/37.702409ef.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{306:function(t,r,e){t.exports=e.p+"assets/img/TP357.8cc76feb.png"},409:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp357"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp357"}},[t._v("#")]),t._v(" ThermoPro TP357")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP357"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("1 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(306),alt:"TP357"}})])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{306:function(t,r,e){t.exports=e.p+"assets/img/TP357.8cc76feb.png"},411:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp357"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp357"}},[t._v("#")]),t._v(" ThermoPro TP357")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP357"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("1 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(306),alt:"TP357"}})])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/38.59bb9385.js b/assets/js/38.8237f54f.js similarity index 96% rename from assets/js/38.59bb9385.js rename to assets/js/38.8237f54f.js index 47d6152f..030b50af 100644 --- a/assets/js/38.59bb9385.js +++ b/assets/js/38.8237f54f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{307:function(t,r,e){t.exports=e.p+"assets/img/TP358.a836795d.png"},411:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp358"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp358"}},[t._v("#")]),t._v(" ThermoPro TP358")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP358"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(307),alt:"TP358"}})])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{307:function(t,r,e){t.exports=e.p+"assets/img/TP358.a836795d.png"},413:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"thermopro-tp358"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#thermopro-tp358"}},[t._v("#")]),t._v(" ThermoPro TP358")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPTH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TP358"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ThermoPro")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("TH sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(307),alt:"TP358"}})])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/39.4d02ea1a.js b/assets/js/39.deb037b9.js similarity index 96% rename from assets/js/39.4d02ea1a.js rename to assets/js/39.deb037b9.js index af238fdc..f810c20d 100644 --- a/assets/js/39.4d02ea1a.js +++ b/assets/js/39.deb037b9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{308:function(t,e,r){t.exports=r.p+"assets/img/TPMS.5b33df43.png"},414:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"tpms"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tpms"}},[t._v("#")]),t._v(" TPMS")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPMS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TPMS"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Generic")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tire pressure monitoring system")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("TPMS that can replace the valve cap")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("count, pressure, temperature, battery, alarm")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(308),alt:"TPMS"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{308:function(t,e,r){t.exports=r.p+"assets/img/TPMS.5b33df43.png"},415:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"tpms"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tpms"}},[t._v("#")]),t._v(" TPMS")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/TPMS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TPMS"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Generic")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tire pressure monitoring system")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("TPMS that can replace the valve cap")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("count, pressure, temperature, battery, alarm")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(308),alt:"TPMS"}})])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/42.7a5bec82.js b/assets/js/42.8b899fd7.js similarity index 95% rename from assets/js/42.7a5bec82.js rename to assets/js/42.8b899fd7.js index 9bab23cc..23aebaa4 100644 --- a/assets/js/42.7a5bec82.js +++ b/assets/js/42.8b899fd7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{317:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"april-brother-n03"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#april-brother-n03"}},[t._v("#")]),t._v(" April Brother N03")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ABN03_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ABN03"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("April Brother")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Sensor N03")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature, humidity and light sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, luminance, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{319:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"april-brother-n03"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#april-brother-n03"}},[t._v("#")]),t._v(" April Brother N03")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ABN03_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ABN03"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("April Brother")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Sensor N03")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature, humidity and light sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, luminance, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/43.5a61a673.js b/assets/js/43.0cf7890d.js similarity index 96% rename from assets/js/43.5a61a673.js rename to assets/js/43.0cf7890d.js index 98545142..f7fcd9a1 100644 --- a/assets/js/43.5a61a673.js +++ b/assets/js/43.0cf7890d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{318:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"april-brother-n07"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#april-brother-n07"}},[t._v("#")]),t._v(" April Brother N07")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ABN07_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ABN07"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("April Brother")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Sensor N07")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature/humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4GHz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery, packet ID")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])]),t._v(" "),r("p",[t._v("Theengs Decoder supports firmware 4.0.1 and higher on the device.")])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{317:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"april-brother-n07"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#april-brother-n07"}},[t._v("#")]),t._v(" April Brother N07")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ABN07_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ABN07"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("April Brother")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Sensor N07")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature/humidity sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4GHz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery, packet ID")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])]),t._v(" "),r("p",[t._v("Theengs Decoder supports firmware 4.0.1 and higher on the device.")])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/44.9f95d0d9.js b/assets/js/44.245cd86f.js similarity index 95% rename from assets/js/44.9f95d0d9.js rename to assets/js/44.245cd86f.js index 6e316b14..47236954 100644 --- a/assets/js/44.9f95d0d9.js +++ b/assets/js/44.245cd86f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{319:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"april-brother-abtemp"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#april-brother-abtemp"}},[t._v("#")]),t._v(" April Brother ABTemp")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ABTemp_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ABTemp"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("April Brother")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("ABTemp")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("iBeacon with temperature sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("mfid, uuid, major, battery, temperature, txpower @ 1 m")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{320:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"april-brother-abtemp"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#april-brother-abtemp"}},[t._v("#")]),t._v(" April Brother ABTemp")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ABTemp_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ABTemp"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("April Brother")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("ABTemp")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("iBeacon with temperature sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("mfid, uuid, major, battery, temperature, txpower @ 1 m")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/45.97754c06.js b/assets/js/45.18156264.js similarity index 96% rename from assets/js/45.97754c06.js rename to assets/js/45.18156264.js index 4008da79..e536cc3a 100644 --- a/assets/js/45.97754c06.js +++ b/assets/js/45.18156264.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{320:function(t,a,e){"use strict";e.r(a);var r=e(14),v=Object(r.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"amazfit-smart-watch-band"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#amazfit-smart-watch-band"}},[t._v("#")]),t._v(" Amazfit Smart Watch/Band")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Model Id")]),t._v(" "),a("th",[a("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Miband_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("Amazfit"),a("OutboundLink")],1)])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Brand")]),t._v(" "),a("td",[t._v("Amazfit")])]),t._v(" "),a("tr",[a("td",[t._v("Model")]),t._v(" "),a("td",[t._v("Smart Watch/Band")])]),t._v(" "),a("tr",[a("td",[t._v("Short Description")]),t._v(" "),a("td",[t._v("Various Amazfit Smart Watch/Band models with step count and activity heart rate monitoring")])]),t._v(" "),a("tr",[a("td",[t._v("Communication")]),t._v(" "),a("td",[t._v("BLE broadcast")])]),t._v(" "),a("tr",[a("td",[t._v("Frequency")]),t._v(" "),a("td",[t._v("2.4Ghz")])]),t._v(" "),a("tr",[a("td",[t._v("Power Source")]),t._v(" "),a("td",[t._v("Rechargeable battery")])]),t._v(" "),a("tr",[a("td",[t._v("Exchanged Data")]),t._v(" "),a("td",[t._v("steps, activity heart rate (when activated in the Zepp Life settings)")])]),t._v(" "),a("tr",[a("td",[t._v("Encrypted")]),t._v(" "),a("td",[t._v("No")])]),t._v(" "),a("tr",[a("td",[t._v("Device Tracker")]),t._v(" "),a("td",[t._v("✅")])])])])])}),[],!1,null,null,null);a.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{321:function(t,a,e){"use strict";e.r(a);var r=e(14),v=Object(r.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"amazfit-smart-watch-band"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#amazfit-smart-watch-band"}},[t._v("#")]),t._v(" Amazfit Smart Watch/Band")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("Model Id")]),t._v(" "),a("th",[a("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Miband_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("Amazfit"),a("OutboundLink")],1)])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("Brand")]),t._v(" "),a("td",[t._v("Amazfit")])]),t._v(" "),a("tr",[a("td",[t._v("Model")]),t._v(" "),a("td",[t._v("Smart Watch/Band")])]),t._v(" "),a("tr",[a("td",[t._v("Short Description")]),t._v(" "),a("td",[t._v("Various Amazfit Smart Watch/Band models with step count and activity heart rate monitoring")])]),t._v(" "),a("tr",[a("td",[t._v("Communication")]),t._v(" "),a("td",[t._v("BLE broadcast")])]),t._v(" "),a("tr",[a("td",[t._v("Frequency")]),t._v(" "),a("td",[t._v("2.4Ghz")])]),t._v(" "),a("tr",[a("td",[t._v("Power Source")]),t._v(" "),a("td",[t._v("Rechargeable battery")])]),t._v(" "),a("tr",[a("td",[t._v("Exchanged Data")]),t._v(" "),a("td",[t._v("steps, activity heart rate (when activated in the Zepp Life settings)")])]),t._v(" "),a("tr",[a("td",[t._v("Encrypted")]),t._v(" "),a("td",[t._v("No")])]),t._v(" "),a("tr",[a("td",[t._v("Device Tracker")]),t._v(" "),a("td",[t._v("✅")])])])])])}),[],!1,null,null,null);a.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/46.b9fc38b2.js b/assets/js/46.560a0816.js similarity index 96% rename from assets/js/46.b9fc38b2.js rename to assets/js/46.560a0816.js index 9e9e6a07..005a929e 100644 --- a/assets/js/46.b9fc38b2.js +++ b/assets/js/46.560a0816.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{321:function(t,e,a){"use strict";a.r(e);var r=a(14),v=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"amphiro-oras-hansa-hydractiva-activejet-digital"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#amphiro-oras-hansa-hydractiva-activejet-digital"}},[t._v("#")]),t._v(" Amphiro/Oras/Hansa Hydractiva/Activejet Digital")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Amphiro_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ADHS"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Amphiro/Oras/Hansa")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Hydractiva/Activejet Digital")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Digital hand shower giving real-time feedback and statistics")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Powered by the water flow")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("session, duration, volume, temperature, energy")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{323:function(t,e,a){"use strict";a.r(e);var r=a(14),v=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"amphiro-oras-hansa-hydractiva-activejet-digital"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#amphiro-oras-hansa-hydractiva-activejet-digital"}},[t._v("#")]),t._v(" Amphiro/Oras/Hansa Hydractiva/Activejet Digital")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Amphiro_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ADHS"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Amphiro/Oras/Hansa")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Hydractiva/Activejet Digital")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Digital hand shower giving real-time feedback and statistics")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Powered by the water flow")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("session, duration, volume, temperature, energy")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/48.56ce9100.js b/assets/js/48.476fd02d.js similarity index 97% rename from assets/js/48.56ce9100.js rename to assets/js/48.476fd02d.js index 325ada7f..f6d6eba1 100644 --- a/assets/js/48.56ce9100.js +++ b/assets/js/48.476fd02d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{323:function(t,e,r){"use strict";r.r(e);var n=r(14),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"apple-watch"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#apple-watch"}},[t._v("#")]),t._v(" Apple Watch")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/APPLEWATCH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("APPLEWATCH"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Apple")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Apple Watch")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Various Apple Watch models")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("unlocked")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])]),t._v(" "),e("p",[t._v("Currently only usefully working with the "),e("a",{attrs:{href:"https://gateway.theengs.io/use/use.html#details-options",target:"_blank",rel:"noopener noreferrer"}},[t._v("Theengs Gateway"),e("OutboundLink")],1),t._v(" "),e("strong",[t._v("Identity Address")]),t._v(" and "),e("strong",[t._v("IRK")]),t._v(" functionality, to be able to decrypt the randomly changing Bluetooth MAC address to the static identity MAC address.")]),t._v(" "),e("p",[t._v("Instructions on how to get the "),e("a",{attrs:{href:"https://gateway.theengs.io/use/use.html#getting-identity-resolving-key-irk-for-apple-watch-iphone-and-ipad",target:"_blank",rel:"noopener noreferrer"}},[t._v("Identity Address and IRK for an Apple Watch, iPhone or iPad"),e("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{324:function(t,e,r){"use strict";r.r(e);var n=r(14),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"apple-watch"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#apple-watch"}},[t._v("#")]),t._v(" Apple Watch")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/APPLEWATCH_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("APPLEWATCH"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Apple")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Apple Watch")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Various Apple Watch models")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("unlocked")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])]),t._v(" "),e("p",[t._v("Currently only usefully working with the "),e("a",{attrs:{href:"https://gateway.theengs.io/use/use.html#details-options",target:"_blank",rel:"noopener noreferrer"}},[t._v("Theengs Gateway"),e("OutboundLink")],1),t._v(" "),e("strong",[t._v("Identity Address")]),t._v(" and "),e("strong",[t._v("IRK")]),t._v(" functionality, to be able to decrypt the randomly changing Bluetooth MAC address to the static identity MAC address.")]),t._v(" "),e("p",[t._v("Instructions on how to get the "),e("a",{attrs:{href:"https://gateway.theengs.io/use/use.html#getting-identity-resolving-key-irk-for-apple-watch-iphone-and-ipad",target:"_blank",rel:"noopener noreferrer"}},[t._v("Identity Address and IRK for an Apple Watch, iPhone or iPad"),e("OutboundLink")],1)])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/49.1b27ca11.js b/assets/js/49.4e499b69.js similarity index 95% rename from assets/js/49.1b27ca11.js rename to assets/js/49.4e499b69.js index e412709e..c19d2949 100644 --- a/assets/js/49.1b27ca11.js +++ b/assets/js/49.4e499b69.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{324:function(t,r,e){"use strict";e.r(r);var o=e(14),n=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"aranet-aranet4-co2-monitor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#aranet-aranet4-co2-monitor"}},[t._v("#")]),t._v(" Aranet Aranet4 CO₂ Monitor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ARANET4_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ARANET4"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Aranet")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Aranet4 CO₂ Monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Air quality monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, pressure, carbon dioxide, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No - BLE broadcast only working when Bluetooth dip switch set to ON")])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{325:function(t,r,e){"use strict";e.r(r);var o=e(14),n=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"aranet-aranet4-co2-monitor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#aranet-aranet4-co2-monitor"}},[t._v("#")]),t._v(" Aranet Aranet4 CO₂ Monitor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/ARANET4_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ARANET4"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Aranet")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Aranet4 CO₂ Monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Air quality monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, pressure, carbon dioxide, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No - BLE broadcast only working when Bluetooth dip switch set to ON")])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/50.430cad70.js b/assets/js/50.82575be8.js similarity index 96% rename from assets/js/50.430cad70.js rename to assets/js/50.82575be8.js index 29f494a8..21f1530f 100644 --- a/assets/js/50.430cad70.js +++ b/assets/js/50.82575be8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{325:function(t,e,r){"use strict";r.r(e);var v=r(14),a=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blue-maestro-tempo-disc-temperature"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blue-maestro-tempo-disc-temperature"}},[t._v("#")]),t._v(" Blue Maestro Tempo Disc Temperature")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM1IN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TD1in1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueMaestro")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tempo Disc")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Red temperature sensor, also available as IP67 waterproof")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032 (IP67 model non-changeable)")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{327:function(t,e,r){"use strict";r.r(e);var v=r(14),a=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blue-maestro-tempo-disc-temperature"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blue-maestro-tempo-disc-temperature"}},[t._v("#")]),t._v(" Blue Maestro Tempo Disc Temperature")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM1IN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TD1in1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueMaestro")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tempo Disc")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Red temperature sensor, also available as IP67 waterproof")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032 (IP67 model non-changeable)")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/51.3f48e397.js b/assets/js/51.b877c98a.js similarity index 96% rename from assets/js/51.3f48e397.js rename to assets/js/51.b877c98a.js index a0cef39e..e932b431 100644 --- a/assets/js/51.3f48e397.js +++ b/assets/js/51.b877c98a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{328:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blue-maestro-tempo-disc-3-in-1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blue-maestro-tempo-disc-3-in-1"}},[t._v("#")]),t._v(" Blue Maestro Tempo Disc 3 in 1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM3IN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TD3in1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueMaestro")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tempo Disc")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Blue temperature, humidity and dew point sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, dew point, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{329:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blue-maestro-tempo-disc-3-in-1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blue-maestro-tempo-disc-3-in-1"}},[t._v("#")]),t._v(" Blue Maestro Tempo Disc 3 in 1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM3IN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TD3in1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueMaestro")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tempo Disc")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Blue temperature, humidity and dew point sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, dew point, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/52.f0042e07.js b/assets/js/52.d3bdd7d3.js similarity index 96% rename from assets/js/52.f0042e07.js rename to assets/js/52.d3bdd7d3.js index 0f5b2bdc..adbbf75f 100644 --- a/assets/js/52.f0042e07.js +++ b/assets/js/52.d3bdd7d3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{329:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blue-maestro-tempo-disc-4-in-1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blue-maestro-tempo-disc-4-in-1"}},[t._v("#")]),t._v(" Blue Maestro Tempo Disc 4 in 1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM4IN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TD4in1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueMaestro")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tempo Disc")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Purple temperature, humidity, dew point and pressure sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, pressure, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{331:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"blue-maestro-tempo-disc-4-in-1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#blue-maestro-tempo-disc-4-in-1"}},[t._v("#")]),t._v(" Blue Maestro Tempo Disc 4 in 1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM4IN1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TD4in1"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueMaestro")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tempo Disc")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Purple temperature, humidity, dew point and pressure sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, pressure, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/53.3da4f036.js b/assets/js/53.0df9c540.js similarity index 95% rename from assets/js/53.3da4f036.js rename to assets/js/53.0df9c540.js index c676d2c0..d7b2957c 100644 --- a/assets/js/53.3da4f036.js +++ b/assets/js/53.0df9c540.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{330:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"bm6-battery-monitor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bm6-battery-monitor"}},[t._v("#")]),t._v(" BM6 Battery Monitor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM6_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BM6"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("GENERIC")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("BM6 Battery Monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Battery capacity")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("6V-20V")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{332:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"bm6-battery-monitor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bm6-battery-monitor"}},[t._v("#")]),t._v(" BM6 Battery Monitor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM6_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BM6"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("GENERIC")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("BM6 Battery Monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Battery capacity")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("6V-20V")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/54.57c29628.js b/assets/js/54.af496b47.js similarity index 95% rename from assets/js/54.57c29628.js rename to assets/js/54.af496b47.js index f5262be0..94ce8d45 100644 --- a/assets/js/54.57c29628.js +++ b/assets/js/54.af496b47.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{331:function(t,e,o){"use strict";o.r(e);var r=o(14),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"otio-beewi-smart-door-window-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#otio-beewi-smart-door-window-sensor"}},[t._v("#")]),t._v(" Otio/BeeWi Smart Door & Window Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BWBSDOO_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BSDOO"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Otio/BeeWi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Door & Window Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Contact sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("open, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{334:function(t,e,o){"use strict";o.r(e);var r=o(14),n=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"otio-beewi-smart-door-window-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#otio-beewi-smart-door-window-sensor"}},[t._v("#")]),t._v(" Otio/BeeWi Smart Door & Window Sensor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BWBSDOO_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BSDOO"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Otio/BeeWi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Door & Window Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Contact sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("open, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/55.cde5b718.js b/assets/js/55.b6593f79.js similarity index 96% rename from assets/js/55.cde5b718.js rename to assets/js/55.b6593f79.js index cab90f35..4d8a1653 100644 --- a/assets/js/55.cde5b718.js +++ b/assets/js/55.b6593f79.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{332:function(t,r,e){"use strict";e.r(r);var a=e(14),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"cleargrass-qingping-alarm-and-timer-clock-cgc1"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-alarm-and-timer-clock-cgc1"}},[t._v("#")]),t._v(" ClearGrass/Qingping Alarm and Timer Clock CGC1")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGD1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGC1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Alarm Clock")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Pink or beige alarm and timer clock with temperature and humidity sensors (device needs to be provisioned through the Qingping+ app)")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2430")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{333:function(t,r,e){"use strict";e.r(r);var a=e(14),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"cleargrass-qingping-alarm-and-timer-clock-cgc1"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-alarm-and-timer-clock-cgc1"}},[t._v("#")]),t._v(" ClearGrass/Qingping Alarm and Timer Clock CGC1")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGD1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGC1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Alarm Clock")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Pink or beige alarm and timer clock with temperature and humidity sensors (device needs to be provisioned through the Qingping+ app)")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2430")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/56.e280a65b.js b/assets/js/56.f774d359.js similarity index 96% rename from assets/js/56.e280a65b.js rename to assets/js/56.f774d359.js index 17214601..04bd6605 100644 --- a/assets/js/56.e280a65b.js +++ b/assets/js/56.f774d359.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{339:function(t,r,e){"use strict";e.r(r);var a=e(14),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"cleargrass-qingping-barometer-pro-cgp23w"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-barometer-pro-cgp23w"}},[t._v("#")]),t._v(" ClearGrass/Qingping Barometer Pro CGP23W")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGP1W_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGP1W"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Barometer Pro")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Rechargeable temperature, humidity and atmospheric pressure sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Internal battery/USB-C")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, atmospheric pressure, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{344:function(t,r,e){"use strict";e.r(r);var a=e(14),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"cleargrass-qingping-barometer-pro-cgp23w"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cleargrass-qingping-barometer-pro-cgp23w"}},[t._v("#")]),t._v(" ClearGrass/Qingping Barometer Pro CGP23W")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/CGP1W_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGP1W"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("ClearGrass/Qingping")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Barometer Pro")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Rechargeable temperature, humidity and atmospheric pressure sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Internal battery/USB-C")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, atmospheric pressure, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/57.10b60402.js b/assets/js/57.4a5921d8.js similarity index 95% rename from assets/js/57.10b60402.js rename to assets/js/57.4a5921d8.js index a3b515bd..1f1d13ca 100644 --- a/assets/js/57.10b60402.js +++ b/assets/js/57.4a5921d8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{343:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5055"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5055"}},[t._v("#")]),t._v(" Govee H5055")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5055_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5055"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Bluetooth BBQ Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Bluetooth BBQ Thermometer with 6 probes")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{342:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5055"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5055"}},[t._v("#")]),t._v(" Govee H5055")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5055_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5055"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Bluetooth BBQ Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Bluetooth BBQ Thermometer with 6 probes")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/58.52750d25.js b/assets/js/58.378637bf.js similarity index 95% rename from assets/js/58.52750d25.js rename to assets/js/58.378637bf.js index 9abead93..860f41b1 100644 --- a/assets/js/58.52750d25.js +++ b/assets/js/58.378637bf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{427:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5072"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5072"}},[t._v("#")]),t._v(" Govee H5072")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5072_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5072"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{345:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5072"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5072"}},[t._v("#")]),t._v(" Govee H5072")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5072_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5072"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/59.a68d39e2.js b/assets/js/59.ad821971.js similarity index 95% rename from assets/js/59.a68d39e2.js rename to assets/js/59.ad821971.js index 4974b437..4db38366 100644 --- a/assets/js/59.a68d39e2.js +++ b/assets/js/59.ad821971.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{346:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5100"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5100"}},[t._v("#")]),t._v(" Govee H5100")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5100"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Mini Indoor Digital Humidity and Temperature monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("1 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{347:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5100"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5100"}},[t._v("#")]),t._v(" Govee H5100")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5100"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Mini Indoor Digital Humidity and Temperature monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("1 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/6.9539e060.js b/assets/js/6.5e296234.js similarity index 93% rename from assets/js/6.9539e060.js rename to assets/js/6.5e296234.js index 1be09c52..36cc8dbc 100644 --- a/assets/js/6.9539e060.js +++ b/assets/js/6.5e296234.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{281:function(e,t,n){e.exports=n.p+"assets/img/Theengs_decoder_iot_chain.39d4be52.jpg"},282:function(e,t,n){e.exports=n.p+"assets/img/Theengs_decoder.8baf8340.jpg"},338:function(e,t,n){"use strict";n.r(t);var o=n(14),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"theengs-ble-decoder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#theengs-ble-decoder"}},[e._v("#")]),e._v(" Theengs BLE decoder")]),e._v(" "),t("p",[e._v("Theengs Decoder project aims to provide an efficient, portable and lightweight library for BLE Internet of Things messages decoding.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(281),alt:"Iot"}})]),e._v(" "),t("p",[e._v("Sensors and devices use chains of data to communicate to gateways, computers, servers. Enabling them to have lightweight and fast communication.\nOn the other hand we have a huge diversity of communication methods, resulting in the sensors or devices being closed to one ecosystem or a few.")]),e._v(" "),t("p",[e._v("Theengs Decoder library translates these data chains into human readable data leveraging the well known data interchange format JSON. This format can easily be integrated into different systems or software.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(282),alt:"Overview"}})]),e._v(" "),t("p",[e._v("It's also a simplified way of defining the thing properties and how to decode these.")]),e._v(" "),t("p",[e._v("Theengs Decoder supports the decoding of "),t("a",{attrs:{href:"https://decoder.theengs.io/devices/devices.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("more than 100 Bluetooth devices"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Theengs Decoder can be used on memory constraint environments like micro controllers (ESP32, ESP8266, Arduino), on a PC or on a Unix server.\nUnit testing assures that the modification done on the library doesn't affect previous capabilities.")]),e._v(" "),t("p",[e._v("In a few words:")]),e._v(" "),t("ul",[t("li",[e._v("Light")]),e._v(" "),t("li",[e._v("Portable")]),e._v(" "),t("li",[e._v("Expandable")]),e._v(" "),t("li",[e._v("Interoperable")])]),e._v(" "),t("p",[e._v("Projects using the Theengs Decoder library")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://docs.openmqttgateway.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenMQTTGateway"),t("OutboundLink")],1),e._v(" - A BLE to MQTT bridge running on ESP8266, ESP32 or Arduino boards.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://gateway.theengs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs Gateway"),t("OutboundLink")],1),e._v(" - A Python-based BLE to MQTT bridge running on Raspberry Pi, Windows or Linux.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/theengs/explorer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs Explorer"),t("OutboundLink")],1),e._v(" - A text user interface to discover BLE devices, showing their raw advertisement alongside the decoded data; running on Linux, Windows or macOS.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://app.theengs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs App"),t("OutboundLink")],1),e._v(" - A paid app for Android and iOS/iPadOS phones and tablets displaying decoded BLE sensor data and optionally acting as a BLE to MQTT bridge.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/matthias-bs/BresserWeatherSensorTTN",target:"_blank",rel:"noopener noreferrer"}},[e._v("BresserWeatherSensorTTN"),t("OutboundLink")],1),e._v(" - Bresser 5-in-1/6-in-1/7-in-1 868 MHz Weather Sensor Radio Receiver based on ESP32 and RFM95W/SX1276 - sends data to a LoRaWAN Network.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/BlackLight/platypush",target:"_blank",rel:"noopener noreferrer"}},[e._v("Platypush"),t("OutboundLink")],1),e._v(" - A versatile and extensible platform for home and life automation with hundreds of supported integrations.")])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("The material and information contained in this documentation is for general information purposes only. You should not rely upon the material or information on this documentation as a basis for making any business, legal or any other decisions. There is no warranty given on this documentation content. If you decide to follow the information and materials given it is at your own risk. I will not be liable for any false, inaccurate, inappropriate or incomplete information presented on this website.")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{274:function(e,t,n){e.exports=n.p+"assets/img/Theengs_decoder_iot_chain.39d4be52.jpg"},275:function(e,t,n){e.exports=n.p+"assets/img/Theengs_decoder.8baf8340.jpg"},318:function(e,t,n){"use strict";n.r(t);var o=n(14),r=Object(o.a)({},(function(){var e=this,t=e._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"theengs-ble-decoder"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#theengs-ble-decoder"}},[e._v("#")]),e._v(" Theengs BLE decoder")]),e._v(" "),t("p",[e._v("Theengs Decoder project aims to provide an efficient, portable and lightweight library for BLE Internet of Things messages decoding.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(274),alt:"Iot"}})]),e._v(" "),t("p",[e._v("Sensors and devices use chains of data to communicate to gateways, computers, servers. Enabling them to have lightweight and fast communication.\nOn the other hand we have a huge diversity of communication methods, resulting in the sensors or devices being closed to one ecosystem or a few.")]),e._v(" "),t("p",[e._v("Theengs Decoder library translates these data chains into human readable data leveraging the well known data interchange format JSON. This format can easily be integrated into different systems or software.")]),e._v(" "),t("p",[t("img",{attrs:{src:n(275),alt:"Overview"}})]),e._v(" "),t("p",[e._v("It's also a simplified way of defining the thing properties and how to decode these.")]),e._v(" "),t("p",[e._v("Theengs Decoder supports the decoding of "),t("a",{attrs:{href:"https://decoder.theengs.io/devices/devices.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("more than 100 Bluetooth devices"),t("OutboundLink")],1),e._v(".")]),e._v(" "),t("p",[e._v("Theengs Decoder can be used on memory constraint environments like micro controllers (ESP32, ESP8266, Arduino), on a PC or on a Unix server.\nUnit testing assures that the modification done on the library doesn't affect previous capabilities.")]),e._v(" "),t("p",[e._v("In a few words:")]),e._v(" "),t("ul",[t("li",[e._v("Light")]),e._v(" "),t("li",[e._v("Portable")]),e._v(" "),t("li",[e._v("Expandable")]),e._v(" "),t("li",[e._v("Interoperable")])]),e._v(" "),t("p",[e._v("Projects using the Theengs Decoder library")]),e._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://docs.openmqttgateway.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("OpenMQTTGateway"),t("OutboundLink")],1),e._v(" - A BLE to MQTT bridge running on ESP8266, ESP32 or Arduino boards.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://gateway.theengs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs Gateway"),t("OutboundLink")],1),e._v(" - A Python-based BLE to MQTT bridge running on Raspberry Pi, Windows or Linux.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/theengs/explorer",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs Explorer"),t("OutboundLink")],1),e._v(" - A text user interface to discover BLE devices, showing their raw advertisement alongside the decoded data; running on Linux, Windows or macOS.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://app.theengs.io/",target:"_blank",rel:"noopener noreferrer"}},[e._v("Theengs App"),t("OutboundLink")],1),e._v(" - A paid app for Android and iOS/iPadOS phones and tablets displaying decoded BLE sensor data and optionally acting as a BLE to MQTT bridge.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/matthias-bs/BresserWeatherSensorTTN",target:"_blank",rel:"noopener noreferrer"}},[e._v("BresserWeatherSensorTTN"),t("OutboundLink")],1),e._v(" - Bresser 5-in-1/6-in-1/7-in-1 868 MHz Weather Sensor Radio Receiver based on ESP32 and RFM95W/SX1276 - sends data to a LoRaWAN Network.")]),e._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/BlackLight/platypush",target:"_blank",rel:"noopener noreferrer"}},[e._v("Platypush"),t("OutboundLink")],1),e._v(" - A versatile and extensible platform for home and life automation with hundreds of supported integrations.")])]),e._v(" "),t("div",{staticClass:"custom-block warning"},[t("p",{staticClass:"custom-block-title"},[e._v("Note")]),e._v(" "),t("p",[e._v("The material and information contained in this documentation is for general information purposes only. You should not rely upon the material or information on this documentation as a basis for making any business, legal or any other decisions. There is no warranty given on this documentation content. If you decide to follow the information and materials given it is at your own risk. I will not be liable for any false, inaccurate, inappropriate or incomplete information presented on this website.")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/60.3a3aa25e.js b/assets/js/60.4eaf3000.js similarity index 95% rename from assets/js/60.3a3aa25e.js rename to assets/js/60.4eaf3000.js index 75172c2f..39393c47 100644 --- a/assets/js/60.3a3aa25e.js +++ b/assets/js/60.4eaf3000.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{347:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5101"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5101"}},[t._v("#")]),t._v(" Govee H5101")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5101"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2450")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{350:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5101"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5101"}},[t._v("#")]),t._v(" Govee H5101")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5101"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2450")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/62.00a160a9.js b/assets/js/62.b0e64004.js similarity index 95% rename from assets/js/62.00a160a9.js rename to assets/js/62.b0e64004.js index 37054f40..e7fbfcd4 100644 --- a/assets/js/62.00a160a9.js +++ b/assets/js/62.b0e64004.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{350:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5104"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5104"}},[t._v("#")]),t._v(" Govee H5104")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5104"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor Digital Humidity and Temperature monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{349:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5104"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5104"}},[t._v("#")]),t._v(" Govee H5104")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5104"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor Digital Humidity and Temperature monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/63.0e6bb573.js b/assets/js/63.60c223b3.js similarity index 95% rename from assets/js/63.0e6bb573.js rename to assets/js/63.60c223b3.js index 2c9c70b7..e8eb7091 100644 --- a/assets/js/63.0e6bb573.js +++ b/assets/js/63.60c223b3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{349:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5105"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5105"}},[t._v("#")]),t._v(" Govee H5105")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5105"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor Digital Humidity and Temperature monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2450")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{351:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5105"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5105"}},[t._v("#")]),t._v(" Govee H5105")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5105"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor Digital Humidity and Temperature monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2450")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/64.912b0c8f.js b/assets/js/64.95d177cf.js similarity index 95% rename from assets/js/64.912b0c8f.js rename to assets/js/64.95d177cf.js index baf01856..0f123a12 100644 --- a/assets/js/64.912b0c8f.js +++ b/assets/js/64.95d177cf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{353:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5174"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5174"}},[t._v("#")]),t._v(" Govee H5174")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5174"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{356:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5174"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5174"}},[t._v("#")]),t._v(" Govee H5174")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5174"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/65.f2ee2a6b.js b/assets/js/65.adfe0979.js similarity index 95% rename from assets/js/65.f2ee2a6b.js rename to assets/js/65.adfe0979.js index ccda6e20..7ab51e99 100644 --- a/assets/js/65.f2ee2a6b.js +++ b/assets/js/65.adfe0979.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{352:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5177"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5177"}},[t._v("#")]),t._v(" Govee H5177")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5177"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[65],{353:function(t,e,r){"use strict";r.r(e);var v=r(14),o=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5177"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5177"}},[t._v("#")]),t._v(" Govee H5177")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5102_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5177"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor digital temperature and humidity monitor with LCD display")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AAA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/66.5e129ee6.js b/assets/js/66.b5ec4a90.js similarity index 95% rename from assets/js/66.5e129ee6.js rename to assets/js/66.b5ec4a90.js index 956d9156..4e0593a5 100644 --- a/assets/js/66.5e129ee6.js +++ b/assets/js/66.b5ec4a90.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{354:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5179"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5179"}},[t._v("#")]),t._v(" Govee H5179")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5179_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5179"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{355:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"govee-h5179"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5179"}},[t._v("#")]),t._v(" Govee H5179")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/H5179_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H5179"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Govee")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Smart Thermo-Hygrometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature and humidity sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("3 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/67.333d3c26.js b/assets/js/67.02c47bab.js similarity index 95% rename from assets/js/67.333d3c26.js rename to assets/js/67.02c47bab.js index 3e76e580..94680291 100644 --- a/assets/js/67.333d3c26.js +++ b/assets/js/67.02c47bab.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{356:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-mi-flora-pink-version"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mi-flora-pink-version"}},[t._v("#")]),t._v(" Xiaomi Mi Flora (pink version)")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCJCY10_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("HHCCJCY10"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("MiFlora")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature, moisture, light and fertility sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, moisture, luminance, fertility, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{357:function(t,r,e){"use strict";e.r(r);var o=e(14),v=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-mi-flora-pink-version"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mi-flora-pink-version"}},[t._v("#")]),t._v(" Xiaomi Mi Flora (pink version)")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCJCY10_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("HHCCJCY10"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("MiFlora")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature, moisture, light and fertility sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, moisture, luminance, fertility, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/68.b869250a.js b/assets/js/68.c76beaef.js similarity index 95% rename from assets/js/68.b869250a.js rename to assets/js/68.c76beaef.js index 966eefce..39af7766 100644 --- a/assets/js/68.b869250a.js +++ b/assets/js/68.c76beaef.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{357:function(t,e,r){"use strict";r.r(e);var o=r(14),v=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-ropot"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-ropot"}},[t._v("#")]),t._v(" Xiaomi RoPot")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCPOT002_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("HHCCPOT002"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("RoPot")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Moisture, temperature and fertility sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery, USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("moisture, fertility")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{358:function(t,e,r){"use strict";r.r(e);var o=r(14),v=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"xiaomi-ropot"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-ropot"}},[t._v("#")]),t._v(" Xiaomi RoPot")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/HHCCPOT002_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("HHCCPOT002"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Xiaomi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("RoPot")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Moisture, temperature and fertility sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Rechargeable battery, USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("moisture, fertility")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/7.1e824c5a.js b/assets/js/7.a04ca7f1.js similarity index 93% rename from assets/js/7.1e824c5a.js rename to assets/js/7.a04ca7f1.js index 849346ad..923e83fd 100644 --- a/assets/js/7.1e824c5a.js +++ b/assets/js/7.a04ca7f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{274:function(t,e,r){t.exports=r.p+"assets/img/BC021.2533d654.png"},326:function(t,e,r){"use strict";r.r(e);var a=r(14),v=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"bluecharm-beacon-08-04p-021-kkm-k8-k4-k21"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#bluecharm-beacon-08-04p-021-kkm-k8-k4-k21"}},[t._v("#")]),t._v(" BlueCharm Beacon 08/04P/021 - KKM K8/K4/K21")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BC08_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("KSensor"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueCharm/KKM")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Beacon 08/04P/021 - K8/K4/K21")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Water-Resistant (not the BC021/K21) MultiBeacon (KBeacon and iBeacon protocols supported)")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, acceleration x/y/z-axis, voltage")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(274),alt:"BC021"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{276:function(t,e,r){t.exports=r.p+"assets/img/BC021.2533d654.png"},326:function(t,e,r){"use strict";r.r(e);var a=r(14),v=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"bluecharm-beacon-08-04p-021-kkm-k8-k4-k21"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#bluecharm-beacon-08-04p-021-kkm-k8-k4-k21"}},[t._v("#")]),t._v(" BlueCharm Beacon 08/04P/021 - KKM K8/K4/K21")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BC08_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("KSensor"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("BlueCharm/KKM")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Beacon 08/04P/021 - K8/K4/K21")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Water-Resistant (not the BC021/K21) MultiBeacon (KBeacon and iBeacon protocols supported)")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, acceleration x/y/z-axis, voltage")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])]),t._v(" "),e("tr",[e("td",[t._v("Image")]),t._v(" "),e("td",[e("img",{attrs:{src:r(276),alt:"BC021"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/70.6ec9d642.js b/assets/js/70.a596606c.js similarity index 95% rename from assets/js/70.6ec9d642.js rename to assets/js/70.a596606c.js index 6c536637..f7c9b340 100644 --- a/assets/js/70.6ec9d642.js +++ b/assets/js/70.a596606c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{362:function(t,e,r){"use strict";r.r(e);var _=r(14),v=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"inkbird-6x-s-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-6x-s-bbq"}},[t._v("#")]),t._v(" Inkbird 6X(S) BBQ")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBT_6XS_SOLIS6_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBT_6X(S)"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Inkbird")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor with 6 probes")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA (Rechargeable battery, USB)")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, temperature2, temperature3, temperature4, temperature5, temperature6")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{364:function(t,e,r){"use strict";r.r(e);var _=r(14),v=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"inkbird-6x-s-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-6x-s-bbq"}},[t._v("#")]),t._v(" Inkbird 6X(S) BBQ")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBT_6XS_SOLIS6_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBT_6X(S)"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Inkbird")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("BBQ Temperature sensor with 6 probes")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("2 AAA (Rechargeable battery, USB)")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, temperature2, temperature3, temperature4, temperature5, temperature6")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/71.3e5172de.js b/assets/js/71.de64ad6e.js similarity index 95% rename from assets/js/71.3e5172de.js rename to assets/js/71.de64ad6e.js index 1d6e254e..de8a2ec5 100644 --- a/assets/js/71.3e5172de.js +++ b/assets/js/71.de64ad6e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{364:function(t,r,e){"use strict";e.r(r);var d=e(14),_=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-ith-12s"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-ith-12s"}},[t._v("#")]),t._v(" Inkbird ITH-12S")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBS_THBP01B_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ITH-12S"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Inkbird")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Thermometer Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor with display")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{366:function(t,r,e){"use strict";e.r(r);var d=e(14),_=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-ith-12s"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-ith-12s"}},[t._v("#")]),t._v(" Inkbird ITH-12S")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/IBS_THBP01B_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ITH-12S"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Inkbird")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Thermometer Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor with display")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/73.bd0e0590.js b/assets/js/73.6c97b117.js similarity index 95% rename from assets/js/73.bd0e0590.js rename to assets/js/73.6c97b117.js index c141c706..b35fe53e 100644 --- a/assets/js/73.bd0e0590.js +++ b/assets/js/73.6c97b117.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{367:function(t,e,r){"use strict";r.r(e);var n=r(14),o=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"kkm-long-range-beacon-k6p"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#kkm-long-range-beacon-k6p"}},[t._v("#")]),t._v(" KKM Long Range Beacon K6P")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/KKM_K6P_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("K6P"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("KKM")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Long Range K6P")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Long Range Sensor Beacon")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("ER14505")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, voltage")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{368:function(t,e,r){"use strict";r.r(e);var n=r(14),o=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"kkm-long-range-beacon-k6p"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#kkm-long-range-beacon-k6p"}},[t._v("#")]),t._v(" KKM Long Range Beacon K6P")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/KKM_K6P_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("K6P"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("KKM")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Long Range K6P")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Long Range Sensor Beacon")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("ER14505")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, voltage")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/74.37868374.js b/assets/js/74.c7b7c89c.js similarity index 96% rename from assets/js/74.37868374.js rename to assets/js/74.c7b7c89c.js index 140f77df..a5c9b296 100644 --- a/assets/js/74.37868374.js +++ b/assets/js/74.c7b7c89c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{368:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"kkm-tracking-beacon-k9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#kkm-tracking-beacon-k9"}},[t._v("#")]),t._v(" KKM Tracking Beacon K9")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/KKM_K9_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("K9"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("KKM")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tracking K9")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Pallet Tracking Beacon")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("ER14505")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, voltage, acceleration x/y/z-axis (optional - without recognised as K6P)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{369:function(t,e,r){"use strict";r.r(e);var v=r(14),_=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"kkm-tracking-beacon-k9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#kkm-tracking-beacon-k9"}},[t._v("#")]),t._v(" KKM Tracking Beacon K9")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/KKM_K9_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("K9"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("KKM")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Tracking K9")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Pallet Tracking Beacon")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("ER14505")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, voltage, acceleration x/y/z-axis (optional - without recognised as K6P)")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/75.e03f48a6.js b/assets/js/75.e70b7bfb.js similarity index 96% rename from assets/js/75.e03f48a6.js rename to assets/js/75.e70b7bfb.js index 7158779b..91ba1e93 100644 --- a/assets/js/75.e03f48a6.js +++ b/assets/js/75.e70b7bfb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{373:function(t,r,e){"use strict";e.r(r);var a=e(14),o=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-mjwsd05mmc-atc-or-pvvx-firmware"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mjwsd05mmc-atc-or-pvvx-firmware"}},[t._v("#")]),t._v(" Xiaomi MJWSD05MMC ATC or PVVX firmware")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD03MMC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MJWSD05MMC_ATC/PVVX"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Compact Temperature sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor also showing date and time with ATC or PVVX firmware")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery, volt")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{375:function(t,r,e){"use strict";e.r(r);var a=e(14),o=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"xiaomi-mjwsd05mmc-atc-or-pvvx-firmware"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-mjwsd05mmc-atc-or-pvvx-firmware"}},[t._v("#")]),t._v(" Xiaomi MJWSD05MMC ATC or PVVX firmware")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/LYWSD03MMC_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MJWSD05MMC_ATC/PVVX"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Xiaomi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Compact Temperature sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Temperature and humidity sensor also showing date and time with ATC or PVVX firmware")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2450")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery, volt")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/76.3193a0c0.js b/assets/js/76.df9cba00.js similarity index 95% rename from assets/js/76.3193a0c0.js rename to assets/js/76.df9cba00.js index 98b32741..8daf8de8 100644 --- a/assets/js/76.3193a0c0.js +++ b/assets/js/76.df9cba00.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{375:function(t,o,e){"use strict";e.r(o);var n=e(14),r=Object(n.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"xiaomi-motion-sensor-and-light"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-motion-sensor-and-light"}},[t._v("#")]),t._v(" Xiaomi Motion sensor and light")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/MUE4094RT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MUE4094RT"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("Xiaomi")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("Motion and Light")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Motion sensor and ambient light")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("AA")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("darkness, motion")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("No")])])])])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{376:function(t,o,e){"use strict";e.r(o);var n=e(14),r=Object(n.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"xiaomi-motion-sensor-and-light"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#xiaomi-motion-sensor-and-light"}},[t._v("#")]),t._v(" Xiaomi Motion sensor and light")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/MUE4094RT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MUE4094RT"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("Xiaomi")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("Motion and Light")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Motion sensor and ambient light")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("AA")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("darkness, motion")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("No")])])])])])}),[],!1,null,null,null);o.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/78.75545bd6.js b/assets/js/78.4e6424d5.js similarity index 95% rename from assets/js/78.75545bd6.js rename to assets/js/78.4e6424d5.js index f59b322e..118baba1 100644 --- a/assets/js/78.75545bd6.js +++ b/assets/js/78.4e6424d5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{379:function(t,r,e){"use strict";e.r(r);var o=e(14),_=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"oral-b-bluetooth-toothbrush"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#oral-b-bluetooth-toothbrush"}},[t._v("#")]),t._v(" Oral-B Bluetooth Toothbrush")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/OralB_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ORALB_BT"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Oral-B")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("BT Toothbrush")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Various Bluetooth connected toothbrush models")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("state, mode, sector, pressure, duration")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{381:function(t,r,e){"use strict";e.r(r);var o=e(14),_=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"oral-b-bluetooth-toothbrush"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#oral-b-bluetooth-toothbrush"}},[t._v("#")]),t._v(" Oral-B Bluetooth Toothbrush")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/OralB_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ORALB_BT"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Oral-B")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("BT Toothbrush")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Various Bluetooth connected toothbrush models")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("state, mode, sector, pressure, duration")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/79.76d2623c.js b/assets/js/79.c348e825.js similarity index 95% rename from assets/js/79.76d2623c.js rename to assets/js/79.c348e825.js index 43560241..109f9190 100644 --- a/assets/js/79.76d2623c.js +++ b/assets/js/79.c348e825.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{381:function(t,r,a){"use strict";a.r(r);var e=a(14),o=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"amphiro-oras-hansa-smart-faucet"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#amphiro-oras-hansa-smart-faucet"}},[t._v("#")]),t._v(" Amphiro/Oras/Hansa Smart Faucet")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Oras_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ORAS"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Amphiro/Oras/Hansa")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Smart Faucet")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Bluetooth Faucet")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Battery or mains")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("serial number, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[79],{382:function(t,r,a){"use strict";a.r(r);var e=a(14),o=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"amphiro-oras-hansa-smart-faucet"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#amphiro-oras-hansa-smart-faucet"}},[t._v("#")]),t._v(" Amphiro/Oras/Hansa Smart Faucet")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/Oras_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("ORAS"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Amphiro/Oras/Hansa")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Smart Faucet")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Bluetooth Faucet")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Battery or mains")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("serial number, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/8.7326962f.js b/assets/js/8.82c1d730.js similarity index 88% rename from assets/js/8.7326962f.js rename to assets/js/8.82c1d730.js index 2c6ab487..38514b08 100644 --- a/assets/js/8.7326962f.js +++ b/assets/js/8.82c1d730.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{275:function(t,r,e){t.exports=e.p+"assets/img/BM2.5ba6bbcc.png"},327:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"bm2-battery-monitor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bm2-battery-monitor"}},[t._v("#")]),t._v(" BM2 Battery Monitor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BM2"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("GENERIC")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("BM2 Battery Monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Battery capacity")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("8V-16V or 6V-20V (depending on model)")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(275),alt:"BM2"}})])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{277:function(t,r,e){t.exports=e.p+"assets/img/BM2.5ba6bbcc.png"},328:function(t,r,e){"use strict";e.r(r);var v=e(14),_=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"bm2-battery-monitor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#bm2-battery-monitor"}},[t._v("#")]),t._v(" BM2 Battery Monitor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BM2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BM2"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("GENERIC")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("BM2 Battery Monitor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Battery capacity")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("8V-16V or 6V-20V (depending on model)")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(277),alt:"BM2"}})])])])])])}),[],!1,null,null,null);r.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/80.43ee2996.js b/assets/js/80.0596a490.js similarity index 95% rename from assets/js/80.43ee2996.js rename to assets/js/80.0596a490.js index d35cd3da..f338d91e 100644 --- a/assets/js/80.43ee2996.js +++ b/assets/js/80.0596a490.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{382:function(t,e,o){"use strict";o.r(e);var r=o(14),a=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"otodata-rc1010-rotarex-compatible-monitor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#otodata-rc1010-rotarex-compatible-monitor"}},[t._v("#")]),t._v(" Otodata RC1010 Rotarex-compatible Monitor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/OTOD_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("RC1010"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Otodata")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("RC1010 Rotarex-compatible Monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("BLE monitor for Rotarex Level Gauges")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("sealed in non-changeable")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("level, status, serial, model type")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[80],{383:function(t,e,o){"use strict";o.r(e);var r=o(14),a=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"otodata-rc1010-rotarex-compatible-monitor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#otodata-rc1010-rotarex-compatible-monitor"}},[t._v("#")]),t._v(" Otodata RC1010 Rotarex-compatible Monitor")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/OTOD_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("RC1010"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Otodata")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("RC1010 Rotarex-compatible Monitor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("BLE monitor for Rotarex Level Gauges")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("sealed in non-changeable")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("level, status, serial, model type")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/81.8b327944.js b/assets/js/81.fee48c3e.js similarity index 95% rename from assets/js/81.8b327944.js rename to assets/js/81.fee48c3e.js index c826666d..c4c50dd4 100644 --- a/assets/js/81.8b327944.js +++ b/assets/js/81.fee48c3e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{383:function(t,r,e){"use strict";e.r(r);var a=e(14),o=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"polar-h10-heart-rate-sensor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#polar-h10-heart-rate-sensor"}},[t._v("#")]),t._v(" Polar H10 Heart Rate Sensor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/PH10_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H10"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Polar")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Heart Rate Sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Chest strap heart rate sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2025")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("heart rate")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{386:function(t,r,e){"use strict";e.r(r);var a=e(14),o=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"polar-h10-heart-rate-sensor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#polar-h10-heart-rate-sensor"}},[t._v("#")]),t._v(" Polar H10 Heart Rate Sensor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/PH10_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("H10"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Polar")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Heart Rate Sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Chest strap heart rate sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2025")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("heart rate")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/84.5a9ac33e.js b/assets/js/84.51c97e64.js similarity index 96% rename from assets/js/84.5a9ac33e.js rename to assets/js/84.51c97e64.js index 66c12b5e..5219d29e 100644 --- a/assets/js/84.5a9ac33e.js +++ b/assets/js/84.51c97e64.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{386:function(t,e,r){"use strict";r.r(e);var v=r(14),a=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ruuvitag-rawv2-data-format"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ruuvitag-rawv2-data-format"}},[t._v("#")]),t._v(" RuuviTag (RAWv2 data format)")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/RuuviTag_RAWv2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("RuuviTag_RAWv2"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Ruuvi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("RuuviTag")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Open source environmental sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, pressure, acceleration x/y/z-axis, voltage, TX power, movement counter, measurement sequence number")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{387:function(t,e,r){"use strict";r.r(e);var v=r(14),a=Object(v.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"ruuvitag-rawv2-data-format"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ruuvitag-rawv2-data-format"}},[t._v("#")]),t._v(" RuuviTag (RAWv2 data format)")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/RuuviTag_RAWv2_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("RuuviTag_RAWv2"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Ruuvi")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("RuuviTag")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Open source environmental sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, pressure, acceleration x/y/z-axis, voltage, TX power, movement counter, measurement sequence number")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/85.7a887872.js b/assets/js/85.c9ab69dc.js similarity index 96% rename from assets/js/85.7a887872.js rename to assets/js/85.c9ab69dc.js index 1c92e3f8..25a8271d 100644 --- a/assets/js/85.7a887872.js +++ b/assets/js/85.c9ab69dc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{387:function(t,e,v){"use strict";v.r(e);var _=v(14),r=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"shellyblu-button1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-button1"}},[t._v("#")]),t._v(" ShellyBLU Button1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBBT_002C_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBBT-002C"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Shelly")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("ShellyBLU Button1")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Button")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("button press type, battery, packet ID")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("Yes/No - Optional")])])])]),t._v(" "),e("p",[t._v("The button press type is encoded as:")]),t._v(" "),e("ul",[e("li",[t._v("0 - None (sent every 8 seconds if beacon mode is enabled)")]),t._v(" "),e("li",[t._v("1 - Single short click")]),t._v(" "),e("li",[t._v("2 - Double click")]),t._v(" "),e("li",[t._v("3 - Triple click")]),t._v(" "),e("li",[t._v("9 - Long press")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{388:function(t,e,v){"use strict";v.r(e);var _=v(14),r=Object(_.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"shellyblu-button1"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-button1"}},[t._v("#")]),t._v(" ShellyBLU Button1")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBBT_002C_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBBT-002C"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Shelly")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("ShellyBLU Button1")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Button")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2032")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("button press type, battery, packet ID")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("Yes/No - Optional")])])])]),t._v(" "),e("p",[t._v("The button press type is encoded as:")]),t._v(" "),e("ul",[e("li",[t._v("0 - None (sent every 8 seconds if beacon mode is enabled)")]),t._v(" "),e("li",[t._v("1 - Single short click")]),t._v(" "),e("li",[t._v("2 - Double click")]),t._v(" "),e("li",[t._v("3 - Triple click")]),t._v(" "),e("li",[t._v("9 - Long press")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/86.e26d0a7e.js b/assets/js/86.57f430fc.js similarity index 87% rename from assets/js/86.e26d0a7e.js rename to assets/js/86.57f430fc.js index e056db07..5e0582e9 100644 --- a/assets/js/86.e26d0a7e.js +++ b/assets/js/86.57f430fc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{388:function(t,e,r){"use strict";r.r(e);var n=r(14),o=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"switchbot-blind-tilt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-blind-tilt"}},[t._v("#")]),t._v(" SwitchBot Blind Tilt")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBBT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W270160X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("SwitchBot")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("W270160X")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Venetian blind tilting actor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power source")]),t._v(" "),e("td",[t._v("Solar panel")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged data")]),t._v(" "),e("td",[t._v("open, direction, motion, calibrated, light level, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[86],{389:function(t,e,r){"use strict";r.r(e);var n=r(14),o=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"switchbot-blind-tilt"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-blind-tilt"}},[t._v("#")]),t._v(" SwitchBot Blind Tilt")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBBT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W270160X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("SwitchBot")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("W270160X")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Venetian blind tilting actor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("Solar panel")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("open, direction, motion, calibrated, light level, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/87.d35a93d0.js b/assets/js/87.5161d01c.js similarity index 95% rename from assets/js/87.d35a93d0.js rename to assets/js/87.5161d01c.js index 3509c9c3..1eba94ec 100644 --- a/assets/js/87.d35a93d0.js +++ b/assets/js/87.5161d01c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{389:function(t,o,e){"use strict";e.r(o);var r=e(14),n=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"switchbot-contact-sensor"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-contact-sensor"}},[t._v("#")]),t._v(" SwitchBot Contact Sensor")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBCS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W120150X"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("SwitchBot")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("Contact Sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Contact sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("2 AAA")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("contact, motion, light level, scope tested, in count, out count, push count, battery")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("No")])])])])])}),[],!1,null,null,null);o.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{392:function(t,o,e){"use strict";e.r(o);var r=e(14),n=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"switchbot-contact-sensor"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-contact-sensor"}},[t._v("#")]),t._v(" SwitchBot Contact Sensor")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBCS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W120150X"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("SwitchBot")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("Contact Sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Contact sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("2 AAA")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("contact, motion, light level, scope tested, in count, out count, push count, battery")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("No")])])])])])}),[],!1,null,null,null);o.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/88.f8452435.js b/assets/js/88.f41d6e94.js similarity index 95% rename from assets/js/88.f8452435.js rename to assets/js/88.f41d6e94.js index 009b9df9..63a3236a 100644 --- a/assets/js/88.f8452435.js +++ b/assets/js/88.f41d6e94.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{390:function(t,r,e){"use strict";e.r(r);var v=e(14),o=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"switchbot-curtain"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-curtain"}},[t._v("#")]),t._v(" SwitchBot Curtain")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBCU_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W070160X"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("SwitchBot")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Curtain (2/3)")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Curtain motor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("moving, position, light level, battery, calibration state")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{391:function(t,r,e){"use strict";e.r(r);var v=e(14),o=Object(v.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"switchbot-curtain"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-curtain"}},[t._v("#")]),t._v(" SwitchBot Curtain")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBCU_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W070160X"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("SwitchBot")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Curtain (2/3)")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Curtain motor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("Rechargeable battery")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("moving, position, light level, battery, calibration state")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/89.edf8dc19.js b/assets/js/89.c3af308c.js similarity index 95% rename from assets/js/89.edf8dc19.js rename to assets/js/89.c3af308c.js index 5e9ad8c3..38c4148c 100644 --- a/assets/js/89.edf8dc19.js +++ b/assets/js/89.c3af308c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{395:function(t,o,e){"use strict";e.r(o);var r=e(14),_=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"shellyblu-door-window"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-door-window"}},[t._v("#")]),t._v(" ShellyBLU Door/Window")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBDW_002C_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBDW-002C"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("Shelly")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("ShellyBLU Door/Window")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Door/window contact sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("CR2032")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("open, rotation, battery, packet ID")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("Yes/No - Optional")])])])])])}),[],!1,null,null,null);o.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{390:function(t,o,e){"use strict";e.r(o);var r=e(14),_=Object(r.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"shellyblu-door-window"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-door-window"}},[t._v("#")]),t._v(" ShellyBLU Door/Window")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBDW_002C_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBDW-002C"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("Shelly")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("ShellyBLU Door/Window")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Door/window contact sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("CR2032")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("open, rotation, battery, packet ID")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("Yes/No - Optional")])])])])])}),[],!1,null,null,null);o.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/9.62483b7b.js b/assets/js/9.9b2d0ee1.js similarity index 89% rename from assets/js/9.62483b7b.js rename to assets/js/9.9b2d0ee1.js index 671f0d71..debfb71e 100644 --- a/assets/js/9.62483b7b.js +++ b/assets/js/9.9b2d0ee1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{276:function(t,r,e){t.exports=e.p+"assets/img/BP.21ff7a0e.png"},333:function(t,r,e){"use strict";e.r(r);var a=e(14),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"rbaron-b-parasite"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rbaron-b-parasite"}},[t._v("#")]),t._v(" rbaron b-parasite")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BPARASITE_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BPv1.0-1.2"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("rbaron")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("b-parasite")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Open hardware and open source soil moisture and ambient temperature/humidity/light sensor https://github.com/rbaron/b-parasite")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("moisture, temperature, humidity, luminance (v1.1.0+), voltage")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(276),alt:"BPARASITE"}})])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{278:function(t,r,e){t.exports=e.p+"assets/img/BP.21ff7a0e.png"},330:function(t,r,e){"use strict";e.r(r);var a=e(14),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"rbaron-b-parasite"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#rbaron-b-parasite"}},[t._v("#")]),t._v(" rbaron b-parasite")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/BPARASITE_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BPv1.0-1.2"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("rbaron")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("b-parasite")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Open hardware and open source soil moisture and ambient temperature/humidity/light sensor https://github.com/rbaron/b-parasite")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("moisture, temperature, humidity, luminance (v1.1.0+), voltage")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])]),t._v(" "),r("tr",[r("td",[t._v("Image")]),t._v(" "),r("td",[r("img",{attrs:{src:e(278),alt:"BPARASITE"}})])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/90.8e6dee64.js b/assets/js/90.d96654ae.js similarity index 95% rename from assets/js/90.8e6dee64.js rename to assets/js/90.d96654ae.js index 11a1dfe6..7cc50933 100644 --- a/assets/js/90.8e6dee64.js +++ b/assets/js/90.d96654ae.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{391:function(t,e,o){"use strict";o.r(e);var r=o(14),_=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"shellyblu-motion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-motion"}},[t._v("#")]),t._v(" ShellyBLU Motion")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBMO_003Z_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBMO-003Z"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Shelly")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("ShellyBLU Motion")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Motion sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("motion, illuminance, battery, packet ID")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("Yes/No - Optional")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[90],{393:function(t,e,o){"use strict";o.r(e);var r=o(14),_=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"shellyblu-motion"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-motion"}},[t._v("#")]),t._v(" ShellyBLU Motion")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBMO_003Z_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBMO-003Z"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Shelly")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("ShellyBLU Motion")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Motion sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("CR2477")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("motion, illuminance, battery, packet ID")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("Yes/No - Optional")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/91.886d387a.js b/assets/js/91.d0176df2.js similarity index 95% rename from assets/js/91.886d387a.js rename to assets/js/91.d0176df2.js index 5f33ba1f..7bf145a2 100644 --- a/assets/js/91.886d387a.js +++ b/assets/js/91.d0176df2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{394:function(t,r,e){"use strict";e.r(r);var o=e(14),d=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"switchbot-outdoor-meter"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-outdoor-meter"}},[t._v("#")]),t._v(" SwitchBot Outdoor Meter")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBOT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W340001X"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("SwitchBot")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Outdoor Meter")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Indoor/Outdoor Thermometer and Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=d.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[91],{397:function(t,r,e){"use strict";e.r(r);var o=e(14),d=Object(o.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"switchbot-outdoor-meter"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-outdoor-meter"}},[t._v("#")]),t._v(" SwitchBot Outdoor Meter")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SBOT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W340001X"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("SwitchBot")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Outdoor Meter")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Indoor/Outdoor Thermometer and Hygrometer")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("2 AAA")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, battery")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=d.exports}}]); \ No newline at end of file diff --git a/assets/js/93.b8c87536.js b/assets/js/93.ba06809a.js similarity index 95% rename from assets/js/93.b8c87536.js rename to assets/js/93.ba06809a.js index 54ec4d8d..e1592ecf 100644 --- a/assets/js/93.b8c87536.js +++ b/assets/js/93.ba06809a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{397:function(t,e,r){"use strict";r.r(e);var d=r(14),o=Object(d.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensirion-myco2-co2-gadget-scd4x"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensirion-myco2-co2-gadget-scd4x"}},[t._v("#")]),t._v(" Sensirion MyCO₂/CO₂ Gadget SCD4X")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SCD4X_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SCD4X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensirion")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("MyCO₂/CO₂ Gadget")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature, humidity and CO₂ sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, carbon dioxide")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{399:function(t,e,r){"use strict";r.r(e);var d=r(14),o=Object(d.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensirion-myco2-co2-gadget-scd4x"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensirion-myco2-co2-gadget-scd4x"}},[t._v("#")]),t._v(" Sensirion MyCO₂/CO₂ Gadget SCD4X")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SCD4X_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SCD4X"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensirion")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("MyCO₂/CO₂ Gadget")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Temperature, humidity and CO₂ sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("USB")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, carbon dioxide")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/94.93657e52.js b/assets/js/94.6984c777.js similarity index 95% rename from assets/js/94.93657e52.js rename to assets/js/94.6984c777.js index 4b82f46f..b140a3ae 100644 --- a/assets/js/94.93657e52.js +++ b/assets/js/94.6984c777.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{401:function(t,r,e){"use strict";e.r(r);var d=e(14),v=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"smartdry-laundry-sensor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#smartdry-laundry-sensor"}},[t._v("#")]),t._v(" SmartDry Laundry Sensor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SmartDry_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SDLS"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("SmartDry")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Laundry Sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Wireless Laundry Sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, shake, voltage, wake")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{400:function(t,r,e){"use strict";e.r(r);var d=e(14),v=Object(d.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"smartdry-laundry-sensor"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#smartdry-laundry-sensor"}},[t._v("#")]),t._v(" SmartDry Laundry Sensor")]),t._v(" "),r("table",[r("thead",[r("tr",[r("th",[t._v("Model Id")]),t._v(" "),r("th",[r("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SmartDry_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SDLS"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("SmartDry")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("Laundry Sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Wireless Laundry Sensor")])]),t._v(" "),r("tr",[r("td",[t._v("Communication")]),t._v(" "),r("td",[t._v("BLE broadcast")])]),t._v(" "),r("tr",[r("td",[t._v("Frequency")]),t._v(" "),r("td",[t._v("2.4Ghz")])]),t._v(" "),r("tr",[r("td",[t._v("Power Source")]),t._v(" "),r("td",[t._v("CR2032")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, shake, voltage, wake")])]),t._v(" "),r("tr",[r("td",[t._v("Encrypted")]),t._v(" "),r("td",[t._v("No")])])])])])}),[],!1,null,null,null);r.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/95.79aa5406.js b/assets/js/95.fcb321d0.js similarity index 95% rename from assets/js/95.79aa5406.js rename to assets/js/95.fcb321d0.js index 8aeb22a9..f00ed914 100644 --- a/assets/js/95.79aa5406.js +++ b/assets/js/95.fcb321d0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{400:function(t,o,r){"use strict";r.r(o);var e=r(14),n=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"sensor-easy-door-window-sensor"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-door-window-sensor"}},[t._v("#")]),t._v(" Sensor Easy Door/Window sensor")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_MAG_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_MAG"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("Sensor Easy")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("Sensor Easy Door/Window Pro")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Indoor/Outdoor Magnetic sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("embedded")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("open, battery, volt")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("No")])])])])])}),[],!1,null,null,null);o.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{398:function(t,o,r){"use strict";r.r(o);var e=r(14),n=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("h1",{attrs:{id:"sensor-easy-door-window-sensor"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-door-window-sensor"}},[t._v("#")]),t._v(" Sensor Easy Door/Window sensor")]),t._v(" "),o("table",[o("thead",[o("tr",[o("th",[t._v("Model Id")]),t._v(" "),o("th",[o("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_MAG_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_MAG"),o("OutboundLink")],1)])])]),t._v(" "),o("tbody",[o("tr",[o("td",[t._v("Brand")]),t._v(" "),o("td",[t._v("Sensor Easy")])]),t._v(" "),o("tr",[o("td",[t._v("Model")]),t._v(" "),o("td",[t._v("Sensor Easy Door/Window Pro")])]),t._v(" "),o("tr",[o("td",[t._v("Short Description")]),t._v(" "),o("td",[t._v("Indoor/Outdoor Magnetic sensor")])]),t._v(" "),o("tr",[o("td",[t._v("Communication")]),t._v(" "),o("td",[t._v("BLE broadcast")])]),t._v(" "),o("tr",[o("td",[t._v("Frequency")]),t._v(" "),o("td",[t._v("2.4Ghz")])]),t._v(" "),o("tr",[o("td",[t._v("Power Source")]),t._v(" "),o("td",[t._v("embedded")])]),t._v(" "),o("tr",[o("td",[t._v("Exchanged Data")]),t._v(" "),o("td",[t._v("open, battery, volt")])]),t._v(" "),o("tr",[o("td",[t._v("Encrypted")]),t._v(" "),o("td",[t._v("No")])])])])])}),[],!1,null,null,null);o.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/96.ba382cf3.js b/assets/js/96.e3549ae3.js similarity index 95% rename from assets/js/96.ba382cf3.js rename to assets/js/96.e3549ae3.js index e3a86671..ca29cec9 100644 --- a/assets/js/96.ba382cf3.js +++ b/assets/js/96.e3549ae3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{398:function(t,e,r){"use strict";r.r(e);var o=r(14),d=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensor-easy-thermometer-and-hygrometer-pro"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-thermometer-and-hygrometer-pro"}},[t._v("#")]),t._v(" Sensor Easy Thermometer and Hygrometer Pro")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_RHT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_RHT"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensor Easy")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Sensor Easy Temperature and Humidity Pro")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor/Outdoor Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("embedded")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, volt")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=d.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{401:function(t,e,r){"use strict";r.r(e);var o=r(14),d=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensor-easy-thermometer-and-hygrometer-pro"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-thermometer-and-hygrometer-pro"}},[t._v("#")]),t._v(" Sensor Easy Thermometer and Hygrometer Pro")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_RHT_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_RHT"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensor Easy")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Sensor Easy Temperature and Humidity Pro")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor/Outdoor Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("embedded")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, humidity, battery, volt")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=d.exports}}]); \ No newline at end of file diff --git a/assets/js/97.ced9d37d.js b/assets/js/97.2c2b1c43.js similarity index 95% rename from assets/js/97.ced9d37d.js rename to assets/js/97.2c2b1c43.js index 0aa7f789..a7a69c5c 100644 --- a/assets/js/97.ced9d37d.js +++ b/assets/js/97.2c2b1c43.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{399:function(t,e,r){"use strict";r.r(e);var o=r(14),_=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensor-easy-thermometer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-thermometer"}},[t._v("#")]),t._v(" Sensor Easy Thermometer")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_TEMP_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_TEMP"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensor Easy")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Sensor Easy Temperature")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor/Outdoor Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("embedded")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery, volt")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{402:function(t,e,r){"use strict";r.r(e);var o=r(14),_=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensor-easy-thermometer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-thermometer"}},[t._v("#")]),t._v(" Sensor Easy Thermometer")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_TEMP_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_TEMP"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensor Easy")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Sensor Easy Temperature")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor/Outdoor Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("embedded")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery, volt")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/98.0e4b8a18.js b/assets/js/98.c81ea279.js similarity index 95% rename from assets/js/98.0e4b8a18.js rename to assets/js/98.c81ea279.js index 65090134..fa3b287d 100644 --- a/assets/js/98.0e4b8a18.js +++ b/assets/js/98.c81ea279.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{402:function(t,e,r){"use strict";r.r(e);var o=r(14),_=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensor-easy-thermometer-pro"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-thermometer-pro"}},[t._v("#")]),t._v(" Sensor Easy Thermometer Pro")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_TEMP_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_TEMP"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensor Easy")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Sensor Easy Temperature Pro")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor/Outdoor Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("embedded")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery, volt")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{404:function(t,e,r){"use strict";r.r(e);var o=r(14),_=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"sensor-easy-thermometer-pro"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sensor-easy-thermometer-pro"}},[t._v("#")]),t._v(" Sensor Easy Thermometer Pro")]),t._v(" "),e("table",[e("thead",[e("tr",[e("th",[t._v("Model Id")]),t._v(" "),e("th",[e("a",{attrs:{href:"https://github.com/theengs/decoder/blob/development/src/devices/SE_TEMP_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SE_TEMP"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Sensor Easy")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Sensor Easy Temperature Pro")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor/Outdoor Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Communication")]),t._v(" "),e("td",[t._v("BLE broadcast")])]),t._v(" "),e("tr",[e("td",[t._v("Frequency")]),t._v(" "),e("td",[t._v("2.4Ghz")])]),t._v(" "),e("tr",[e("td",[t._v("Power Source")]),t._v(" "),e("td",[t._v("embedded")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, battery, volt")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No")])])])])])}),[],!1,null,null,null);e.default=_.exports}}]); \ No newline at end of file diff --git a/assets/js/app.508146a3.js b/assets/js/app.6f2c9c78.js similarity index 78% rename from assets/js/app.508146a3.js rename to assets/js/app.6f2c9c78.js index 72b3a412..7817de8d 100644 --- a/assets/js/app.508146a3.js +++ b/assets/js/app.6f2c9c78.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,i,s=e[0],c=e[1],l=e[2],f=0,p=[];f
'};function o(t,e,n){return tn?n:t}function a(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),l=c.querySelector(r.barSelector),u=r.speed,f=r.easing;return c.offsetWidth,i((function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(l,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(t)+"%,0)"}:{"margin-left":a(t)+"%"}).transition="all "+e+"ms "+n,o}(t,u,f)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout((function(){s(c,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),e()}),u)}),u)):setTimeout(e,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout((function(){n.status&&(n.trickle(),t())}),r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always((function(){0==--e?(t=0,n.done()):n.set((t-e)/t)})),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");l(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,i=e.querySelector(r.barSelector),c=t?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&l(u,"nprogress-custom-parent"),u.appendChild(e),e},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var i=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()})),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,a=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+a)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,a=arguments;if(2==a.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,a[1],a[2])}}();function c(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function l(t,e){var n=f(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function u(t,e){var n,r=f(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e,n){var r=n(1),o=n(44).f,a=n(16),i=n(105),s=n(31),c=n(62),l=n(121);t.exports=function(t,e){var n,u,f,p,d,h=t.target,v=t.global,m=t.stat;if(n=v?r:m?r[h]||s(h,{}):(r[h]||{}).prototype)for(u in e){if(p=e[u],f=t.dontCallGetSet?(d=o(n,u))&&d.value:n[u],!l(v?u:h+(m?".":"#")+u,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(t.sham||f&&f.sham)&&a(p,"sham",!0),i(n,u,p,t)}}},function(t,e,n){var r=n(26),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,n){var r=n(2);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(45),o=n(47);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(1),o=n(57),a=n(7),i=n(59),s=n(54),c=n(53),l=o("wks"),u=r.Symbol,f=u&&u.for,p=c?u:u&&u.withoutSetter||i;t.exports=function(t){if(!a(l,t)||!s&&"string"!=typeof l[t]){var e="Symbol."+t;s&&a(u,t)?l[t]=u[t]:l[t]=c&&f?f(e):p(e)}return l[t]}},function(t,e,n){var r=n(1),o=n(31),a=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=a},function(t,e,n){var r=n(1),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e,n){var r=n(47),o=Object;t.exports=function(t){return o(r(t))}},function(t,e,n){var r=n(8),o=String,a=TypeError;t.exports=function(t){if(r(t))return t;throw a(o(t)+" is not an object")}},function(t,e,n){var r=n(118);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(143),o=n(10),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return o(t)&&i.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},function(t,e,n){var r=n(9)(n(6),"Map");t.exports=r},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(163),o=n(170),a=n(172),i=n(173),s=n(174);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){var r=n(3),o=n(42),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||(i.test(t)||!a.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(11),o=n(10);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},function(t,e){t.exports=function(t){return t}},function(t,e,n){var r=n(4),o=n(25),a=n(97),i=n(27),s=n(28),c=n(49),l=n(7),u=n(60),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=s(t),e=c(e),u)try{return f(t,e)}catch(t){}if(l(t,e))return i(!o(a.f,t,e),t[e])}},function(t,e,n){var r=n(5),o=n(2),a=n(12),i=Object,s=r("".split);t.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(t){return"String"==a(t)?s(t,""):i(t)}:i},function(t,e,n){var r=n(26),o=Function.prototype,a=o.call,i=r&&o.bind.bind(a,a);t.exports=r?i:function(t){return function(){return a.apply(t,arguments)}}},function(t,e,n){var r=n(48),o=TypeError;t.exports=function(t){if(r(t))throw o("Can't call method on "+t);return t}},function(t,e){t.exports=function(t){return null==t}},function(t,e,n){var r=n(98),o=n(51);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},function(t,e){var n="object"==typeof document&&document.all,r=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:r}},function(t,e,n){var r=n(15),o=n(0),a=n(52),i=n(53),s=Object;t.exports=i?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&a(e.prototype,s(t))}},function(t,e,n){var r=n(5);t.exports=r({}.isPrototypeOf)},function(t,e,n){var r=n(54);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){var r=n(55),o=n(2);t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(t,e,n){var r,o,a=n(1),i=n(99),s=a.process,c=a.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(o=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},function(t,e,n){var r=n(0),o=n(101),a=TypeError;t.exports=function(t){if(r(t))return t;throw a(o(t)+" is not a function")}},function(t,e,n){var r=n(58),o=n(30);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.26.0",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.0/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e){t.exports=!1},function(t,e,n){var r=n(5),o=0,a=Math.random(),i=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+i(++o+a,36)}},function(t,e,n){var r=n(4),o=n(2),a=n(103);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},function(t,e){t.exports={}},function(t,e,n){var r=n(7),o=n(112),a=n(44),i=n(17);t.exports=function(t,e,n){for(var s=o(e),c=i.f,l=a.f,u=0;uu))return!1;var p=c.get(t),d=c.get(e);if(p&&d)return p==e&&d==t;var h=-1,v=!0,m=2&n?new r:void 0;for(c.set(t,e),c.set(e,t);++h-1&&t%1==0&&t=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===f?JSON.stringify(t,null,2):String(t)}function b(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var P=Object.prototype.hasOwnProperty;function x(t,e){return P.call(t,e)}function S(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,T=S((function(t){return t.replace(w,(function(t,e){return e?e.toUpperCase():""}))})),C=S((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,O=S((function(t){return t.replace(k,"-$1").toLowerCase()}));var E=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function M(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function $(t,e){for(var n in e)t[n]=e[n];return t}function U(t){for(var e={},n=0;n0,Q=q&&q.indexOf("edge/")>0;q&&q.indexOf("android");var Z=q&&/iphone|ipad|ipod|ios/.test(q);q&&/chrome\/\d+/.test(q),q&&/phantomjs/.test(q);var tt,et=q&&q.match(/firefox\/(\d+)/),nt={}.watch,rt=!1;if(K)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var at=function(){return void 0===tt&&(tt=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),tt},it=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function st(t){return"function"==typeof t&&/native code/.test(t.toString())}var ct,lt="undefined"!=typeof Symbol&&st(Symbol)&&"undefined"!=typeof Reflect&&st(Reflect.ownKeys);ct="undefined"!=typeof Set&&st(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=null;function ft(t){void 0===t&&(t=null),t||ut&&ut._scope.off(),ut=t,t&&t._scope.on()}var pt=function(){function t(t,e,n,r,o,a,i,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=a,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=i,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function ht(t){return new pt(void 0,void 0,void 0,String(t))}function vt(t){var e=new pt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var mt=0,bt=[],yt=function(){function t(){this._pending=!1,this.id=mt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,bt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Yt((l=t(l,"".concat(n||"","_").concat(r)))[0])&&Yt(f)&&(p[u]=ht(f.text+l[0].text),l.shift()),p.push.apply(p,l)):c(l)?Yt(f)?p[u]=ht(f.text+l):""!==l&&p.push(ht(l)):Yt(l)&&Yt(f)?p[u]=ht(f.text+l.text):(s(e._isVList)&&i(l.tag)&&a(l.key)&&i(n)&&(l.key="__vlist".concat(n,"_").concat(r,"__")),p.push(l)));return p}(t):void 0}function Yt(t){return i(t)&&i(t.text)&&!1===t.isComment}function Jt(t,e){var n,r,a,s,c=null;if(o(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!i,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&c===o.$key&&!i&&!o.$hasNormal)return o;for(var l in a={},e)e[l]&&"$"!==l[0]&&(a[l]=me(t,n,l,e[l]))}else a={};for(var u in n)u in a||(a[u]=be(n,u));return e&&Object.isExtensible(e)&&(e._normalized=a),X(a,"$stable",s),X(a,"$key",c),X(a,"$hasNormal",i),a}function me(t,e,n,r){var a=function(){var e=ut;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),a=(n=n&&"object"==typeof n&&!o(n)?[n]:qt(n))&&n[0];return ft(e),n&&(!a||1===n.length&&a.isComment&&!he(a))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:a,enumerable:!0,configurable:!0}),a}function be(t,e){return function(){return t[e]}}function ye(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};X(e,"_v_attr_proxy",!0),ge(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||ge(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||Pe(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:E(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return It(t,e,n)}))}}}function ge(t,e,n,r,o){var a=!1;for(var i in e)i in t?e[i]!==n[i]&&(a=!0):(a=!0,_e(t,i,r,o));for(var i in t)i in e||(a=!0,delete t[i]);return a}function _e(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function Pe(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var xe=null;function Se(t,e){return(t.__esModule||lt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),u(t)?e.extend(t):t}function we(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(ln=function(){return un.now()})}var fn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function pn(){var t,e;for(cn=ln(),an=!0,en.sort(fn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,De(pn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(a&&!x(o,"default"))i=!1;else if(""===i||i===O(t)){var c=Bn(String,o.type);(c<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Jn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var a in n){var i=n[a];if(i){var s=i.name;s&&!e(s)&&Qn(n,a,r,o)}}}function Qn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,_(n,e)}Vn.prototype._init=function(t){var e=this;e._uid=Xn++,e._isVue=!0,e.__v_skip=!0,e._scope=new Wt(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mn(zn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&qe(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Te(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Te(t,e,n,r,o,!0)};var a=n&&n.data;At(t,"$attrs",a&&a.attrs||r,null,!0),At(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&($t(!1),Object.keys(e).forEach((function(n){At(t,n,e[n])})),$t(!0))}(e),Dn(e),function(t){var e=t.$options.provide;if(e){var n=l(e)?e.call(t):e;if(!u(n))return;for(var r=Gt(t),o=lt?Reflect.ownKeys(n):Object.keys(n),a=0;a1?M(n):n;for(var r=M(arguments,1),o='event handler for "'.concat(t,'"'),a=0,i=n.length;aparseInt(this.max)&&Qn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Qn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Jn(t,(function(t){return Yn(e,t)}))})),this.$watch("exclude",(function(e){Jn(t,(function(t){return!Yn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=we(t),n=e&&e.componentOptions;if(n){var r=qn(n),o=this.include,a=this.exclude;if(o&&(!r||!Yn(o,r))||a&&r&&Yn(a,r))return e;var i=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;i[c]?(e.componentInstance=i[c].componentInstance,_(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return W}};Object.defineProperty(t,"config",e),t.util={warn:Sn,extend:$,mergeOptions:Mn,defineReactive:At},t.set=Bt,t.delete=Rt,t.nextTick=De,t.observable=function(t){return Lt(t),t},t.options=Object.create(null),I.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,$(t.options.components,tr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=M(arguments,1);return n.unshift(this),l(t.install)?t.install.apply(t,n):l(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mn(this.options,t),this}}(t),Kn(t),function(t){I.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&p(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&l(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Vn),Object.defineProperty(Vn.prototype,"$isServer",{get:at}),Object.defineProperty(Vn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Vn,"FunctionalRenderContext",{value:vn}),Vn.version="2.7.13";var er=y("style,class"),nr=y("input,textarea,option,select,progress"),rr=y("contenteditable,draggable,spellcheck"),or=y("events,caret,typing,plaintext-only"),ar=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ir="http://www.w3.org/1999/xlink",sr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},cr=function(t){return sr(t)?t.slice(6,t.length):""},lr=function(t){return null==t||!1===t};function ur(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=fr(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=fr(e,n.data));return function(t,e){if(i(t)||i(e))return pr(t,dr(e));return""}(e.staticClass,e.class)}function fr(t,e){return{staticClass:pr(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function pr(t,e){return t?e?t+" "+e:t:e||""}function dr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Rr(t,e,n):ar(e)?lr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return lr(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):sr(e)?lr(n)?t.removeAttributeNS(ir,cr(e)):t.setAttributeNS(ir,e,n):Rr(t,e,n)}function Rr(t,e,n){if(lr(n))t.removeAttribute(e);else{if(Y&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Hr={create:Ar,update:Ar};function Dr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(a(r.staticClass)&&a(r.class)&&(a(o)||a(o.staticClass)&&a(o.class)))){var s=ur(e),c=n._transitionClasses;i(c)&&(s=pr(s,dr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ir,Nr={create:Dr,update:Dr};function Wr(t,e,n){var r=Ir;return function o(){var a=e.apply(null,arguments);null!==a&&Xr(t,o,n,r)}}var Gr=$e&&!(et&&Number(et[1])<=53);function Fr(t,e,n,r){if(Gr){var o=cn,a=e;e=a._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return a.apply(this,arguments)}}Ir.addEventListener(t,e,rt?{capture:n,passive:r}:n)}function Xr(t,e,n,r){(r||Ir).removeEventListener(t,e._wrapper||e,n)}function zr(t,e){if(!a(t.data.on)||!a(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Ir=e.elm||t.elm,function(t){if(i(t.__r)){var e=Y?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}i(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),zt(n,r,Fr,Xr,Wr,e.context),Ir=void 0}}var Vr,Kr={create:zr,update:zr,destroy:function(t){return zr(t,wr)}};function qr(t,e){if(!a(t.data.domProps)||!a(e.data.domProps)){var n,r,o=e.elm,c=t.data.domProps||{},l=e.data.domProps||{};for(n in(i(l.__ob__)||s(l._v_attr_proxy))&&(l=e.data.domProps=$({},l)),c)n in l||(o[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var u=a(r)?"":String(r);Yr(o,u)&&(o.value=u)}else if("innerHTML"===n&&mr(o.tagName)&&a(o.innerHTML)){(Vr=Vr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Vr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==c[n])try{o[n]=r}catch(t){}}}}function Yr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return b(n)!==b(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Jr={create:qr,update:qr},Qr=S((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Zr(t){var e=to(t.style);return t.staticStyle?$(t.staticStyle,e):e}function to(t){return Array.isArray(t)?U(t):"string"==typeof t?Qr(t):t}var eo,no=/^--/,ro=/\s*!important$/,oo=function(t,e,n){if(no.test(e))t.style.setProperty(e,n);else if(ro.test(n))t.style.setProperty(O(e),n.replace(ro,""),"important");else{var r=io(e);if(Array.isArray(n))for(var o=0,a=n.length;o-1?e.split(lo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function fo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(lo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function po(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&$(e,ho(t.name||"v")),$(e,t),e}return"string"==typeof t?ho(t):void 0}}var ho=S((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),vo=K&&!J,mo="transition",bo="transitionend",yo="animation",go="animationend";vo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mo="WebkitTransition",bo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(yo="WebkitAnimation",go="webkitAnimationEnd"));var _o=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Po(t){_o((function(){_o(t)}))}function xo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),uo(t,e))}function So(t,e){t._transitionClasses&&_(t._transitionClasses,e),fo(t,e)}function wo(t,e,n){var r=Co(t,e),o=r.type,a=r.timeout,i=r.propCount;if(!o)return n();var s="transition"===o?bo:go,c=0,l=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++c>=i&&l()};setTimeout((function(){c0&&(n="transition",u=i,f=a.length):"animation"===e?l>0&&(n="animation",u=l,f=c.length):f=(n=(u=Math.max(i,l))>0?i>l?"transition":"animation":null)?"transition"===n?a.length:c.length:0,{type:n,timeout:u,propCount:f,hasTransform:"transition"===n&&To.test(r[mo+"Property"])}}function ko(t,e){for(;t.length1}function jo(t,e){!0!==e.data.show&&Eo(e)}var Lo=function(t){var e,n,r={},l=t.modules,u=t.nodeOps;for(e=0;eh?_(t,a(n[b+1])?null:n[b+1].elm,n,d,b,r):d>b&&x(e,f,h)}(f,v,b,n,l):i(b)?(i(t.text)&&u.setTextContent(f,""),_(f,null,b,0,b.length-1,n)):i(v)?x(v,0,v.length-1):i(t.text)&&u.setTextContent(f,""):t.text!==e.text&&u.setTextContent(f,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function C(t,e,n){if(s(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,i.selected!==a&&(i.selected=a);else if(B(Do(i),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Ho(t,e){return e.every((function(e){return!B(e,t)}))}function Do(t){return"_value"in t?t._value:t.value}function Io(t){t.target.composing=!0}function No(t){t.target.composing&&(t.target.composing=!1,Wo(t.target,"input"))}function Wo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Go(t){return!t.componentInstance||t.data&&t.data.transition?t:Go(t.componentInstance._vnode)}var Fo={model:Ao,show:{bind:function(t,e,n){var r=e.value,o=(n=Go(n)).data&&n.data.transition,a=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Eo(n,(function(){t.style.display=a}))):t.style.display=r?a:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Go(n)).data&&n.data.transition?(n.data.show=!0,r?Eo(n,(function(){t.style.display=t.__vOriginalDisplay})):Mo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Xo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function zo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?zo(we(e.children)):t}function Vo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[T(r)]=o[r];return e}function Ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var qo=function(t){return t.tag||he(t)},Yo=function(t){return"show"===t.name},Jo={name:"transition",props:Xo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(qo)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var a=zo(o);if(!a)return o;if(this._leaving)return Ko(t,o);var i="__transition-".concat(this._uid,"-");a.key=null==a.key?a.isComment?i+"comment":i+a.tag:c(a.key)?0===String(a.key).indexOf(i)?a.key:i+a.key:a.key;var s=(a.data||(a.data={})).transition=Vo(this),l=this._vnode,u=zo(l);if(a.data.directives&&a.data.directives.some(Yo)&&(a.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,u)&&!he(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=$({},s);if("out-in"===r)return this._leaving=!0,Vt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ko(t,o);if("in-out"===r){if(he(a))return l;var p,d=function(){p()};Vt(s,"afterEnter",d),Vt(s,"enterCancelled",d),Vt(f,"delayLeave",(function(t){p=t}))}}return o}}},Qo=$({tag:String,moveClass:String},Xo);function Zo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ta(t){t.data.newPos=t.elm.getBoundingClientRect()}function ea(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var a=t.elm.style;a.transform=a.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),a.transitionDuration="0s"}}delete Qo.mode;var na={Transition:Jo,TransitionGroup:{props:Qo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],a=this.children=[],i=Vo(this),s=0;s-1?yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:yr[t]=/HTMLUnknownElement/.test(e.toString())},$(Vn.options.directives,Fo),$(Vn.options.components,na),Vn.prototype.__patch__=K?Lo:j,Vn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=dt),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new Xe(t,r,j,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),l=e&&e.path||"/",u=c.path?Sa(c.path,l,n||o.append):l,f=function(t,e,n){void 0===e&&(e={});var r,o=n||ua;try{r=o(t||"")}catch(t){r={}}for(var a in e){var i=e[a];r[a]=Array.isArray(i)?i.map(la):la(i)}return r}(c.query,o.query,r&&r.options.parseQuery),p=o.hash||c.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}var Fa,Xa=function(){},za={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),a=o.location,i=o.route,s=o.href,c={},l=n.options.linkActiveClass,u=n.options.linkExactActiveClass,f=null==l?"router-link-active":l,p=null==u?"router-link-exact-active":u,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=i.redirectedFrom?da(null,Ga(i.redirectedFrom),null,n):i;c[h]=ya(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(pa,"/").indexOf(e.path.replace(pa,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,b=function(t){Va(t)&&(e.replace?n.replace(a,Xa):n.push(a,Xa))},y={click:Va};Array.isArray(this.event)?this.event.forEach((function(t){y[t]=b})):y[this.event]=b;var g={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:i,navigate:b,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)g.on=y,g.attrs={href:s,"aria-current":m};else{var P=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=Wa(u.path,s.params),c(u,s,i)}if(s.path){s.params={};for(var d=0;d-1}function wi(t,e){return Si(t)&&t._isRouter&&(null==e||t.type===e)}function Ti(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function Ci(t){return function(e,n,r){var o=!1,a=0,i=null;ki(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,a++;var c,l=Mi((function(e){var o;((o=e).__esModule||Ei&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Fa.extend(e),n.components[s]=e,--a<=0&&r()})),u=Mi((function(t){var e="Failed to resolve async component "+s+": "+t;i||(i=Si(t)?t:new Error(e),r(i))}));try{c=t(l,u)}catch(t){u(t)}if(c)if("function"==typeof c.then)c.then(l,u);else{var f=c.component;f&&"function"==typeof f.then&&f.then(l,u)}}})),o||r()}}function ki(t,e){return Oi(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Oi(t){return Array.prototype.concat.apply([],t)}var Ei="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Mi(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var $i=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ka){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=va,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ui(t,e,n,r){var o=ki(t,(function(t,r,o,a){var i=function(t,e){"function"!=typeof t&&(t=Fa.extend(t));return t.options[e]}(t,e);if(i)return Array.isArray(i)?i.map((function(t){return n(t,r,o,a)})):n(i,r,o,a)}));return Oi(r?o.reverse():o)}function ji(t,e){if(e)return function(){return t.apply(e,arguments)}}$i.prototype.listen=function(t){this.cb=t},$i.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},$i.prototype.onError=function(t){this.errorCbs.push(t)},$i.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var a=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,a)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(wi(t,yi.redirected)&&a===va||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},$i.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var a,i,s=function(t){!wi(t)&&Si(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,l=o.matched.length-1;if(ya(t,o)&&c===l&&t.matched[c]===o.matched[l])return this.ensureURL(),t.hash&&ii(this.router,o,t,!1),s(((i=Pi(a=o,t,yi.duplicated,'Avoided redundant navigation to current location: "'+a.fullPath+'".')).name="NavigationDuplicated",i));var u=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=vi&&n;r&&this.listeners.push(ai());var o=function(){var n=t.current,o=Ai(t.base);t.current===va&&o===t._startLocation||t.transitionTo(o,(function(t){r&&ii(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){mi(wa(r.base+t.fullPath)),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){bi(wa(r.base+t.fullPath)),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ai(this.base)!==this.current.fullPath){var e=wa(this.base+this.current.fullPath);t?mi(e):bi(e)}},e.prototype.getCurrentLocation=function(){return Ai(this.base)},e}($i);function Ai(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(wa(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Bi=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ai(t);if(!/^\/#/.test(e))return window.location.replace(wa(t+"/#"+e)),!0}(this.base)||Ri()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=vi&&e;n&&this.listeners.push(ai());var r=function(){var e=t.current;Ri()&&t.transitionTo(Hi(),(function(r){n&&ii(t.router,r,e,!0),vi||Ni(r.fullPath)}))},o=vi?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ii(t.fullPath),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ni(t.fullPath),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Hi()!==e&&(t?Ii(e):Ni(e))},e.prototype.getCurrentLocation=function(){return Hi()},e}($i);function Ri(){var t=Hi();return"/"===t.charAt(0)||(Ni("/"+t),!1)}function Hi(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Di(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ii(t){vi?mi(Di(t)):window.location.hash=t}function Ni(t){vi?bi(Di(t)):window.location.replace(Di(t))}var Wi=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){wi(t,yi.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}($i),Gi=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ja(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!vi&&!1!==t.fallback,this.fallback&&(e="hash"),Ka||(e="abstract"),this.mode=e,e){case"history":this.history=new Li(this,t.base);break;case"hash":this.history=new Bi(this,t.base,this.fallback);break;case"abstract":this.history=new Wi(this,t.base);break;default:0}},Fi={currentRoute:{configurable:!0}};Gi.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Fi.currentRoute.get=function(){return this.history&&this.history.current},Gi.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Li||n instanceof Bi){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;vi&&o&&"fullPath"in t&&ii(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Gi.prototype.beforeEach=function(t){return zi(this.beforeHooks,t)},Gi.prototype.beforeResolve=function(t){return zi(this.resolveHooks,t)},Gi.prototype.afterEach=function(t){return zi(this.afterHooks,t)},Gi.prototype.onReady=function(t,e){this.history.onReady(t,e)},Gi.prototype.onError=function(t){this.history.onError(t)},Gi.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},Gi.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},Gi.prototype.go=function(t){this.history.go(t)},Gi.prototype.back=function(){this.go(-1)},Gi.prototype.forward=function(){this.go(1)},Gi.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Gi.prototype.resolve=function(t,e,n){var r=Ga(t,e=e||this.history.current,n,this),o=this.match(r,e),a=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?wa(t+"/"+r):r}(this.history.base,a,this.mode),normalizedTo:r,resolved:o}},Gi.prototype.getRoutes=function(){return this.matcher.getRoutes()},Gi.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==va&&this.history.transitionTo(this.history.getCurrentLocation())},Gi.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==va&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Gi.prototype,Fi);var Xi=Gi;function zi(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Gi.install=function t(e){if(!t.installed||Fa!==e){t.installed=!0,Fa=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Pa),e.component("RouterLink",za);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Gi.version="3.6.5",Gi.isNavigationFailure=wi,Gi.NavigationFailureType=yi,Gi.START_LOCATION=va,Ka&&window.Vue&&window.Vue.use(Gi);n(96);n(92),n(128);var Vi={NotFound:()=>n.e(41).then(n.bind(null,314)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,313))},Ki={"v-bd76cbca":()=>n.e(42).then(n.bind(null,317)),"v-5e433cca":()=>n.e(43).then(n.bind(null,318)),"v-cb67a10e":()=>n.e(44).then(n.bind(null,319)),"v-590a8cca":()=>n.e(45).then(n.bind(null,320)),"v-66cd695b":()=>n.e(46).then(n.bind(null,321)),"v-62a567ca":()=>n.e(47).then(n.bind(null,322)),"v-cd7fa48e":()=>n.e(48).then(n.bind(null,323)),"v-7be1050a":()=>n.e(49).then(n.bind(null,324)),"v-05508cd7":()=>n.e(50).then(n.bind(null,325)),"v-df3fa35e":()=>n.e(7).then(n.bind(null,326)),"v-e44b2e0a":()=>n.e(8).then(n.bind(null,327)),"v-bf08e74a":()=>n.e(51).then(n.bind(null,328)),"v-6e110c1d":()=>n.e(52).then(n.bind(null,329)),"v-71dcbd0a":()=>n.e(53).then(n.bind(null,330)),"v-30fce24a":()=>n.e(54).then(n.bind(null,331)),"v-24eacf82":()=>n.e(55).then(n.bind(null,332)),"v-0cb1307b":()=>n.e(9).then(n.bind(null,333)),"v-6ca26cc1":()=>n.e(10).then(n.bind(null,334)),"v-e228f58a":()=>n.e(11).then(n.bind(null,335)),"v-54871c8a":()=>n.e(12).then(n.bind(null,336)),"v-6901bec9":()=>n.e(14).then(n.bind(null,337)),"v-92347580":()=>n.e(6).then(n.bind(null,338)),"v-d85d80e2":()=>n.e(56).then(n.bind(null,339)),"v-aba55e8a":()=>n.e(16).then(n.bind(null,340)),"v-2c2c2b72":()=>n.e(13).then(n.bind(null,341)),"v-befdac4a":()=>n.e(15).then(n.bind(null,342)),"v-2342d9bb":()=>n.e(57).then(n.bind(null,343)),"v-392bfc1b":()=>n.e(17).then(n.bind(null,344)),"v-f5db240a":()=>n.e(18).then(n.bind(null,345)),"v-c165b0ca":()=>n.e(59).then(n.bind(null,346)),"v-2998cd0a":()=>n.e(60).then(n.bind(null,347)),"v-371a0b5b":()=>n.e(61).then(n.bind(null,348)),"v-1acd60fb":()=>n.e(63).then(n.bind(null,349)),"v-623221ca":()=>n.e(62).then(n.bind(null,350)),"v-66b3d2db":()=>n.e(19).then(n.bind(null,351)),"v-08f0cb9b":()=>n.e(65).then(n.bind(null,352)),"v-253d75fb":()=>n.e(64).then(n.bind(null,353)),"v-be84a14a":()=>n.e(66).then(n.bind(null,354)),"v-7871bcfb":()=>n.e(20).then(n.bind(null,355)),"v-5c18628a":()=>n.e(67).then(n.bind(null,356)),"v-65614ea9":()=>n.e(68).then(n.bind(null,357)),"v-fbeacdca":()=>n.e(21).then(n.bind(null,358)),"v-757f164a":()=>n.e(69).then(n.bind(null,359)),"v-07efbebb":()=>n.e(22).then(n.bind(null,360)),"v-a477c00a":()=>n.e(24).then(n.bind(null,361)),"v-1faec98a":()=>n.e(70).then(n.bind(null,362)),"v-bf7262e2":()=>n.e(23).then(n.bind(null,363)),"v-6a7237ca":()=>n.e(71).then(n.bind(null,364)),"v-4693609f":()=>n.e(72).then(n.bind(null,365)),"v-18e9a14a":()=>n.e(25).then(n.bind(null,366)),"v-0371b60a":()=>n.e(73).then(n.bind(null,367)),"v-34b6fd3a":()=>n.e(74).then(n.bind(null,368)),"v-5bcdcd8a":()=>n.e(26).then(n.bind(null,369)),"v-af62874e":()=>n.e(27).then(n.bind(null,370)),"v-5bb593ff":()=>n.e(28).then(n.bind(null,371)),"v-562de0e2":()=>n.e(29).then(n.bind(null,372)),"v-5c794abd":()=>n.e(75).then(n.bind(null,373)),"v-4659520d":()=>n.e(30).then(n.bind(null,374)),"v-38795a5b":()=>n.e(76).then(n.bind(null,375)),"v-50cf667e":()=>n.e(31).then(n.bind(null,376)),"v-1fcd57e2":()=>n.e(32).then(n.bind(null,377)),"v-123165ee":()=>n.e(33).then(n.bind(null,378)),"v-508b6d9b":()=>n.e(78).then(n.bind(null,379)),"v-499a5933":()=>n.e(77).then(n.bind(null,380)),"v-77595eb9":()=>n.e(79).then(n.bind(null,381)),"v-36fdd4af":()=>n.e(80).then(n.bind(null,382)),"v-17735bb5":()=>n.e(81).then(n.bind(null,383)),"v-e185e69e":()=>n.e(83).then(n.bind(null,384)),"v-2df958ba":()=>n.e(82).then(n.bind(null,385)),"v-1922252f":()=>n.e(84).then(n.bind(null,386)),"v-fae7f80a":()=>n.e(85).then(n.bind(null,387)),"v-bb5a0abe":()=>n.e(86).then(n.bind(null,388)),"v-cd9f8836":()=>n.e(87).then(n.bind(null,389)),"v-acb53b3e":()=>n.e(88).then(n.bind(null,390)),"v-2149b03b":()=>n.e(90).then(n.bind(null,391)),"v-dfc2ee0e":()=>n.e(34).then(n.bind(null,392)),"v-18591c37":()=>n.e(35).then(n.bind(null,393)),"v-1688c53b":()=>n.e(91).then(n.bind(null,394)),"v-3644c2ca":()=>n.e(89).then(n.bind(null,395)),"v-72e5f5c9":()=>n.e(92).then(n.bind(null,396)),"v-21034dca":()=>n.e(93).then(n.bind(null,397)),"v-bcfe58b6":()=>n.e(96).then(n.bind(null,398)),"v-3ad2b88a":()=>n.e(97).then(n.bind(null,399)),"v-2328ba97":()=>n.e(95).then(n.bind(null,400)),"v-4e67a81a":()=>n.e(94).then(n.bind(null,401)),"v-00f466fb":()=>n.e(98).then(n.bind(null,402)),"v-d34e370a":()=>n.e(99).then(n.bind(null,403)),"v-1bf8fdbb":()=>n.e(100).then(n.bind(null,404)),"v-1ef034fb":()=>n.e(102).then(n.bind(null,405)),"v-3e2f1c8a":()=>n.e(101).then(n.bind(null,406)),"v-a0f1084a":()=>n.e(103).then(n.bind(null,407)),"v-26262fb6":()=>n.e(36).then(n.bind(null,408)),"v-77a5bafb":()=>n.e(37).then(n.bind(null,409)),"v-50cfa3e3":()=>n.e(104).then(n.bind(null,410)),"v-78e7a64a":()=>n.e(38).then(n.bind(null,411)),"v-6ce925e9":()=>n.e(105).then(n.bind(null,412)),"v-0f729ebb":()=>n.e(106).then(n.bind(null,413)),"v-1ef9895f":()=>n.e(39).then(n.bind(null,414)),"v-0bab1bfb":()=>n.e(107).then(n.bind(null,415)),"v-5261d156":()=>n.e(108).then(n.bind(null,416)),"v-7b51fb7b":()=>n.e(109).then(n.bind(null,417)),"v-75a52741":()=>n.e(110).then(n.bind(null,418)),"v-0c830cdb":()=>n.e(40).then(n.bind(null,419)),"v-588a4461":()=>n.e(111).then(n.bind(null,420)),"v-35f4f98a":()=>n.e(112).then(n.bind(null,421)),"v-b8fe1e0a":()=>n.e(113).then(n.bind(null,422)),"v-1350da9e":()=>n.e(114).then(n.bind(null,423)),"v-43b9401b":()=>n.e(117).then(n.bind(null,424)),"v-54537f3f":()=>n.e(120).then(n.bind(null,425)),"v-5e1da45b":()=>n.e(119).then(n.bind(null,426)),"v-bd41cf4a":()=>n.e(58).then(n.bind(null,427)),"v-0db7e63b":()=>n.e(118).then(n.bind(null,428)),"v-3dbed0ca":()=>n.e(116).then(n.bind(null,429)),"v-3766ecca":()=>n.e(115).then(n.bind(null,430))};function qi(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Yi=/-(\w)/g,Ji=qi(t=>t.replace(Yi,(t,e)=>e?e.toUpperCase():"")),Qi=/\B([A-Z])/g,Zi=qi(t=>t.replace(Qi,"-$1").toLowerCase()),ts=qi(t=>t.charAt(0).toUpperCase()+t.slice(1));function es(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ts(Ji(e))):t(ts(e))||t(Zi(e))}const ns=Object.assign({},Vi,Ki),rs=t=>ns[t],os=t=>Ki[t],as=t=>Vi[t],is=t=>Vn.component(t);function ss(t){return es(os,t)}function cs(t){return es(as,t)}function ls(t){return es(rs,t)}function us(t){return es(is,t)}function fs(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!us(t)&&ls(t)){const e=await ls(t)();Vn.component(t,e.default)}}))}function ps(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ds=n(88),hs=n.n(ds),vs=n(89),ms=n.n(vs),bs={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${ms()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=gs(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=_s(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],t,this.siteMeta,Ps)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",gs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),ys()}};function ys(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function gs(t=""){return t?``:""}function _s(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function Ps(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var xs=n(90),Ss={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(xs)()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=a.parentElement.offsetTop+10&&(!i||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},ws=n(91),Ts=n.n(ws),Cs={mounted(){Ts.a.polyfill()}},ks=n(23),Os=n.n(ks),Es=[bs,Ss,Cs,{mounted(){Os.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Vn.component(t.name)||Os.a.start(),n()}),this.$router.afterEach(()=>{Os.a.done(),this.isSidebarOpen=!1})}}],Ms={name:"GlobalLayout",computed:{layout(){const t=this.getLayout();return ps("layout",t),Vn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},$s=n(14),Us=Object($s.a)(Ms,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Us,"mixins",Es);const js=[{name:"v-bd76cbca",path:"/devices/ABN03.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bd76cbca").then(n)}},{name:"v-5e433cca",path:"/devices/ABN07.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5e433cca").then(n)}},{name:"v-cb67a10e",path:"/devices/ABTemp.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-cb67a10e").then(n)}},{name:"v-590a8cca",path:"/devices/Amazfit.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-590a8cca").then(n)}},{name:"v-66cd695b",path:"/devices/Amphiro.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-66cd695b").then(n)}},{name:"v-62a567ca",path:"/devices/AppleDevice.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-62a567ca").then(n)}},{name:"v-cd7fa48e",path:"/devices/AppleWatch.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-cd7fa48e").then(n)}},{name:"v-7be1050a",path:"/devices/Aranet4.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-7be1050a").then(n)}},{name:"v-05508cd7",path:"/devices/BM1in1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-05508cd7").then(n)}},{name:"v-df3fa35e",path:"/devices/BC08.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-df3fa35e").then(n)}},{name:"v-e44b2e0a",path:"/devices/BM2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-e44b2e0a").then(n)}},{name:"v-bf08e74a",path:"/devices/BM3in1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bf08e74a").then(n)}},{name:"v-6e110c1d",path:"/devices/BM4in1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6e110c1d").then(n)}},{name:"v-71dcbd0a",path:"/devices/BM6.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-71dcbd0a").then(n)}},{name:"v-30fce24a",path:"/devices/BWBSDOO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-30fce24a").then(n)}},{name:"v-24eacf82",path:"/devices/CGC1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-24eacf82").then(n)}},{name:"v-0cb1307b",path:"/devices/BPARASITE.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0cb1307b").then(n)}},{name:"v-6ca26cc1",path:"/devices/CGD1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6ca26cc1").then(n)}},{name:"v-e228f58a",path:"/devices/CGDK2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-e228f58a").then(n)}},{name:"v-54871c8a",path:"/devices/CGDN1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-54871c8a").then(n)}},{name:"v-6901bec9",path:"/devices/CGH1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6901bec9").then(n)}},{name:"v-92347580",path:"/",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-92347580").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-d85d80e2",path:"/devices/CGP23W.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-d85d80e2").then(n)}},{name:"v-aba55e8a",path:"/devices/CGPR1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-aba55e8a").then(n)}},{name:"v-2c2c2b72",path:"/devices/CGG1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2c2c2b72").then(n)}},{name:"v-befdac4a",path:"/devices/CGP1W.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-befdac4a").then(n)}},{name:"v-2342d9bb",path:"/devices/H5055.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2342d9bb").then(n)}},{name:"v-392bfc1b",path:"/devices/H5074.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-392bfc1b").then(n)}},{name:"v-f5db240a",path:"/devices/H5075.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-f5db240a").then(n)}},{name:"v-c165b0ca",path:"/devices/H5100.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-c165b0ca").then(n)}},{name:"v-2998cd0a",path:"/devices/H5101.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2998cd0a").then(n)}},{name:"v-371a0b5b",path:"/devices/H5102.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-371a0b5b").then(n)}},{name:"v-1acd60fb",path:"/devices/H5105.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1acd60fb").then(n)}},{name:"v-623221ca",path:"/devices/H5104.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-623221ca").then(n)}},{name:"v-66b3d2db",path:"/devices/H5106.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-66b3d2db").then(n)}},{name:"v-08f0cb9b",path:"/devices/H5177.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-08f0cb9b").then(n)}},{name:"v-253d75fb",path:"/devices/H5174.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-253d75fb").then(n)}},{name:"v-be84a14a",path:"/devices/H5179.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-be84a14a").then(n)}},{name:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-7871bcfb").then(n)}},{name:"v-5c18628a",path:"/devices/HHCCJCY10.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5c18628a").then(n)}},{name:"v-65614ea9",path:"/devices/HHCCPOT002.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-65614ea9").then(n)}},{name:"v-fbeacdca",path:"/devices/IBS_TH1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-fbeacdca").then(n)}},{name:"v-757f164a",path:"/devices/IBS-P01B.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-757f164a").then(n)}},{name:"v-07efbebb",path:"/devices/IBS_TH2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-07efbebb").then(n)}},{name:"v-a477c00a",path:"/devices/IBT_4XS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-a477c00a").then(n)}},{name:"v-1faec98a",path:"/devices/IBT_6XS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1faec98a").then(n)}},{name:"v-bf7262e2",path:"/devices/IBT_2X.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bf7262e2").then(n)}},{name:"v-6a7237ca",path:"/devices/ITH_12S.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6a7237ca").then(n)}},{name:"v-4693609f",path:"/devices/JAALEE.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-4693609f").then(n)}},{name:"v-18e9a14a",path:"/devices/JQJCY01YM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-18e9a14a").then(n)}},{name:"v-0371b60a",path:"/devices/KKM_K6P.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0371b60a").then(n)}},{name:"v-34b6fd3a",path:"/devices/KKM_K9.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-34b6fd3a").then(n)}},{name:"v-5bcdcd8a",path:"/devices/LYWSD02.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5bcdcd8a").then(n)}},{name:"v-af62874e",path:"/devices/LYWSD03MMC.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-af62874e").then(n)}},{name:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5bb593ff").then(n)}},{name:"v-562de0e2",path:"/devices/MBXPRO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-562de0e2").then(n)}},{name:"v-5c794abd",path:"/devices/MJWSD05MMC.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5c794abd").then(n)}},{name:"v-4659520d",path:"/devices/MHO-C401.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-4659520d").then(n)}},{name:"v-38795a5b",path:"/devices/MUE4094RT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-38795a5b").then(n)}},{name:"v-50cf667e",path:"/devices/Miband.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-50cf667e").then(n)}},{name:"v-1fcd57e2",path:"/devices/MokoBeacon.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1fcd57e2").then(n)}},{name:"v-123165ee",path:"/devices/Mopeka.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-123165ee").then(n)}},{name:"v-508b6d9b",path:"/devices/ORALB.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-508b6d9b").then(n)}},{name:"v-499a5933",path:"/devices/NODONNIU.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-499a5933").then(n)}},{name:"v-77595eb9",path:"/devices/ORAS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-77595eb9").then(n)}},{name:"v-36fdd4af",path:"/devices/OTOD.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-36fdd4af").then(n)}},{name:"v-17735bb5",path:"/devices/PH10.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-17735bb5").then(n)}},{name:"v-e185e69e",path:"/devices/RuuviTag_RAWv1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-e185e69e").then(n)}},{name:"v-2df958ba",path:"/devices/RDL52832.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2df958ba").then(n)}},{name:"v-1922252f",path:"/devices/RuuviTag_RAWv2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1922252f").then(n)}},{name:"v-fae7f80a",path:"/devices/SBBT-002C.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-fae7f80a").then(n)}},{name:"v-bb5a0abe",path:"/devices/SBBT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bb5a0abe").then(n)}},{name:"v-cd9f8836",path:"/devices/SBCS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-cd9f8836").then(n)}},{name:"v-acb53b3e",path:"/devices/SBCU.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-acb53b3e").then(n)}},{name:"v-2149b03b",path:"/devices/SBMO-003Z.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2149b03b").then(n)}},{name:"v-dfc2ee0e",path:"/devices/SBMS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-dfc2ee0e").then(n)}},{name:"v-18591c37",path:"/devices/SBMT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-18591c37").then(n)}},{name:"v-1688c53b",path:"/devices/SBOT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1688c53b").then(n)}},{name:"v-3644c2ca",path:"/devices/SBDW-002C.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3644c2ca").then(n)}},{name:"v-72e5f5c9",path:"/devices/SBS1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-72e5f5c9").then(n)}},{name:"v-21034dca",path:"/devices/SCD4X.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-21034dca").then(n)}},{name:"v-bcfe58b6",path:"/devices/SE_RHT_PRO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bcfe58b6").then(n)}},{name:"v-3ad2b88a",path:"/devices/SE_TEMP.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3ad2b88a").then(n)}},{name:"v-2328ba97",path:"/devices/SE_MAG.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2328ba97").then(n)}},{name:"v-4e67a81a",path:"/devices/SDLS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-4e67a81a").then(n)}},{name:"v-00f466fb",path:"/devices/SE_TEMP_PRO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-00f466fb").then(n)}},{name:"v-d34e370a",path:"/devices/SE_TPROBE.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-d34e370a").then(n)}},{name:"v-1bf8fdbb",path:"/devices/SHT4x.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1bf8fdbb").then(n)}},{name:"v-1ef034fb",path:"/devices/ServiceData.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef034fb").then(n)}},{name:"v-3e2f1c8a",path:"/devices/SOLIS_6.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3e2f1c8a").then(n)}},{name:"v-a0f1084a",path:"/devices/Skale.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-a0f1084a").then(n)}},{name:"v-26262fb6",path:"/devices/T201.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-26262fb6").then(n)}},{name:"v-77a5bafb",path:"/devices/TP357.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-77a5bafb").then(n)}},{name:"v-50cfa3e3",path:"/devices/T301.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-50cfa3e3").then(n)}},{name:"v-78e7a64a",path:"/devices/TP358.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-78e7a64a").then(n)}},{name:"v-6ce925e9",path:"/devices/TILT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6ce925e9").then(n)}},{name:"v-0f729ebb",path:"/devices/TP359.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0f729ebb").then(n)}},{name:"v-1ef9895f",path:"/devices/TPMS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef9895f").then(n)}},{name:"v-0bab1bfb",path:"/devices/TP393.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0bab1bfb").then(n)}},{name:"v-5261d156",path:"/devices/ThermoBeacon.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5261d156").then(n)}},{name:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-7b51fb7b").then(n)}},{name:"v-75a52741",path:"/devices/XOSSX2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-75a52741").then(n)}},{name:"v-0c830cdb",path:"/devices/XMTZC05HM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0c830cdb").then(n)}},{name:"v-588a4461",path:"/devices/devices_by_brand.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-588a4461").then(n)}},{name:"v-35f4f98a",path:"/devices/iBeacon.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-35f4f98a").then(n)}},{name:"v-b8fe1e0a",path:"/devices/iNodeEM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-b8fe1e0a").then(n)}},{name:"v-1350da9e",path:"/devices/rows.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1350da9e").then(n)}},{name:"v-43b9401b",path:"/participate/support.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-43b9401b").then(n)}},{name:"v-54537f3f",path:"/use/python.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-54537f3f").then(n)}},{name:"v-5e1da45b",path:"/use/include.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5e1da45b").then(n)}},{name:"v-bd41cf4a",path:"/devices/H5072.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bd41cf4a").then(n)}},{name:"v-0db7e63b",path:"/use/ESP32.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0db7e63b").then(n)}},{name:"v-3dbed0ca",path:"/participate/development.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3dbed0ca").then(n)}},{name:"v-3766ecca",path:"/participate/adding-decoders.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3766ecca").then(n)}},{path:"*",component:Us}],Ls={title:"Theengs Decoder: BLE message decoder",description:"Theengs: the open-source interoperability platform that bridges hundreds of sensors into one interface. Compatible with major IoT and home automation solutions like AWS, OpenHAB, Home Assistant, and Jeedom. It supports MQTT protocol, enabling efficient integration and automation.",base:"/",headTags:[["meta",{name:"viewport",content:"width=device-width, initial-scale=1"}],["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"}],["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"}],["link",{rel:"mask-icon",href:"/icons/safari-pinned-tab.svg",color:"#3eaf7c"}],["meta",{name:"msapplication-TileImage",content:"/favicon-144x144.png"}],["meta",{name:"msapplication-TileColor",content:"#000000"}]],pages:[{title:"April Brother N03",frontmatter:{},regularPath:"/devices/ABN03.html",relativePath:"devices/ABN03.md",key:"v-bd76cbca",path:"/devices/ABN03.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"April Brother N07",frontmatter:{},regularPath:"/devices/ABN07.html",relativePath:"devices/ABN07.md",key:"v-5e433cca",path:"/devices/ABN07.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"April Brother ABTemp",frontmatter:{},regularPath:"/devices/ABTemp.html",relativePath:"devices/ABTemp.md",key:"v-cb67a10e",path:"/devices/ABTemp.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Amazfit Smart Watch/Band",frontmatter:{},regularPath:"/devices/Amazfit.html",relativePath:"devices/Amazfit.md",key:"v-590a8cca",path:"/devices/Amazfit.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Amphiro/Oras/Hansa Hydractiva/Activejet Digital",frontmatter:{},regularPath:"/devices/Amphiro.html",relativePath:"devices/Amphiro.md",key:"v-66cd695b",path:"/devices/Amphiro.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Apple iPhone/iPad",frontmatter:{},regularPath:"/devices/AppleDevice.html",relativePath:"devices/AppleDevice.md",key:"v-62a567ca",path:"/devices/AppleDevice.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Apple Watch",frontmatter:{},regularPath:"/devices/AppleWatch.html",relativePath:"devices/AppleWatch.md",key:"v-cd7fa48e",path:"/devices/AppleWatch.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Aranet Aranet4 CO₂ Monitor",frontmatter:{},regularPath:"/devices/Aranet4.html",relativePath:"devices/Aranet4.md",key:"v-7be1050a",path:"/devices/Aranet4.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Blue Maestro Tempo Disc Temperature",frontmatter:{},regularPath:"/devices/BM1in1.html",relativePath:"devices/BM1in1.md",key:"v-05508cd7",path:"/devices/BM1in1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"BlueCharm Beacon 08/04P/021 - KKM K8/K4/K21",frontmatter:{},regularPath:"/devices/BC08.html",relativePath:"devices/BC08.md",key:"v-df3fa35e",path:"/devices/BC08.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"BM2 Battery Monitor",frontmatter:{},regularPath:"/devices/BM2.html",relativePath:"devices/BM2.md",key:"v-e44b2e0a",path:"/devices/BM2.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Blue Maestro Tempo Disc 3 in 1",frontmatter:{},regularPath:"/devices/BM3in1.html",relativePath:"devices/BM3in1.md",key:"v-bf08e74a",path:"/devices/BM3in1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Blue Maestro Tempo Disc 4 in 1",frontmatter:{},regularPath:"/devices/BM4in1.html",relativePath:"devices/BM4in1.md",key:"v-6e110c1d",path:"/devices/BM4in1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"BM6 Battery Monitor",frontmatter:{},regularPath:"/devices/BM6.html",relativePath:"devices/BM6.md",key:"v-71dcbd0a",path:"/devices/BM6.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Otio/BeeWi Smart Door & Window Sensor",frontmatter:{},regularPath:"/devices/BWBSDOO.html",relativePath:"devices/BWBSDOO.md",key:"v-30fce24a",path:"/devices/BWBSDOO.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ClearGrass/Qingping Alarm and Timer Clock CGC1",frontmatter:{},regularPath:"/devices/CGC1.html",relativePath:"devices/CGC1.md",key:"v-24eacf82",path:"/devices/CGC1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"rbaron b-parasite",frontmatter:{},regularPath:"/devices/BPARASITE.html",relativePath:"devices/BPARASITE.md",key:"v-0cb1307b",path:"/devices/BPARASITE.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ClearGrass/Qingping Alarm Clock CGD1",frontmatter:{},regularPath:"/devices/CGD1.html",relativePath:"devices/CGD1.md",key:"v-6ca26cc1",path:"/devices/CGD1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Qingping TH Lite CGDK2",frontmatter:{},regularPath:"/devices/CGDK2.html",relativePath:"devices/CGDK2.md",key:"v-e228f58a",path:"/devices/CGDK2.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Qingping Air Monitor Lite",frontmatter:{},regularPath:"/devices/CGDN1.html",relativePath:"devices/CGDN1.md",key:"v-54871c8a",path:"/devices/CGDN1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Qingping Contact Sensor CGH1",frontmatter:{},regularPath:"/devices/CGH1.html",relativePath:"devices/CGH1.md",key:"v-6901bec9",path:"/devices/CGH1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Theengs BLE decoder",frontmatter:{title:"Theengs BLE decoder"},regularPath:"/",relativePath:"README.md",key:"v-92347580",path:"/",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ClearGrass/Qingping Barometer Pro CGP23W",frontmatter:{},regularPath:"/devices/CGP23W.html",relativePath:"devices/CGP23W.md",key:"v-d85d80e2",path:"/devices/CGP23W.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Qingping Motion & Light CGPR1",frontmatter:{},regularPath:"/devices/CGPR1.html",relativePath:"devices/CGPR1.md",key:"v-aba55e8a",path:"/devices/CGPR1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ClearGrass/Qingping Hygro Thermometer CGG1",frontmatter:{},regularPath:"/devices/CGG1.html",relativePath:"devices/CGG1.md",key:"v-2c2c2b72",path:"/devices/CGG1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ClearGrass/Qingping Weather Station CGP1W",frontmatter:{},regularPath:"/devices/CGP1W.html",relativePath:"devices/CGP1W.md",key:"v-befdac4a",path:"/devices/CGP1W.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5055",frontmatter:{},regularPath:"/devices/H5055.html",relativePath:"devices/H5055.md",key:"v-2342d9bb",path:"/devices/H5055.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5074",frontmatter:{},regularPath:"/devices/H5074.html",relativePath:"devices/H5074.md",key:"v-392bfc1b",path:"/devices/H5074.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5075",frontmatter:{},regularPath:"/devices/H5075.html",relativePath:"devices/H5075.md",key:"v-f5db240a",path:"/devices/H5075.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5100",frontmatter:{},regularPath:"/devices/H5100.html",relativePath:"devices/H5100.md",key:"v-c165b0ca",path:"/devices/H5100.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5101",frontmatter:{},regularPath:"/devices/H5101.html",relativePath:"devices/H5101.md",key:"v-2998cd0a",path:"/devices/H5101.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5102",frontmatter:{},regularPath:"/devices/H5102.html",relativePath:"devices/H5102.md",key:"v-371a0b5b",path:"/devices/H5102.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5105",frontmatter:{},regularPath:"/devices/H5105.html",relativePath:"devices/H5105.md",key:"v-1acd60fb",path:"/devices/H5105.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5104",frontmatter:{},regularPath:"/devices/H5104.html",relativePath:"devices/H5104.md",key:"v-623221ca",path:"/devices/H5104.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5106",frontmatter:{},regularPath:"/devices/H5106.html",relativePath:"devices/H5106.md",key:"v-66b3d2db",path:"/devices/H5106.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5177",frontmatter:{},regularPath:"/devices/H5177.html",relativePath:"devices/H5177.md",key:"v-08f0cb9b",path:"/devices/H5177.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5174",frontmatter:{},regularPath:"/devices/H5174.html",relativePath:"devices/H5174.md",key:"v-253d75fb",path:"/devices/H5174.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5179",frontmatter:{},regularPath:"/devices/H5179.html",relativePath:"devices/H5179.md",key:"v-be84a14a",path:"/devices/H5179.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi/VegTrug Mi Flora",frontmatter:{},regularPath:"/devices/HHCCJCY01HHCC.html",relativePath:"devices/HHCCJCY01HHCC.md",key:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi Mi Flora (pink version)",frontmatter:{},regularPath:"/devices/HHCCJCY10.html",relativePath:"devices/HHCCJCY10.md",key:"v-5c18628a",path:"/devices/HHCCJCY10.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi RoPot",frontmatter:{},regularPath:"/devices/HHCCPOT002.html",relativePath:"devices/HHCCPOT002.md",key:"v-65614ea9",path:"/devices/HHCCPOT002.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird TH1",frontmatter:{},regularPath:"/devices/IBS_TH1.html",relativePath:"devices/IBS_TH1.md",key:"v-fbeacdca",path:"/devices/IBS_TH1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird P01B",frontmatter:{},regularPath:"/devices/IBS-P01B.html",relativePath:"devices/IBS-P01B.md",key:"v-757f164a",path:"/devices/IBS-P01B.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird TH2",frontmatter:{},regularPath:"/devices/IBS_TH2.html",relativePath:"devices/IBS_TH2.md",key:"v-07efbebb",path:"/devices/IBS_TH2.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird 4X(S/C) BBQ",frontmatter:{},regularPath:"/devices/IBT_4XS.html",relativePath:"devices/IBT_4XS.md",key:"v-a477c00a",path:"/devices/IBT_4XS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird 6X(S) BBQ",frontmatter:{},regularPath:"/devices/IBT_6XS.html",relativePath:"devices/IBT_6XS.md",key:"v-1faec98a",path:"/devices/IBT_6XS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird 2X(S) BBQ",frontmatter:{},regularPath:"/devices/IBT_2X.html",relativePath:"devices/IBT_2X.md",key:"v-bf7262e2",path:"/devices/IBT_2X.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Inkbird ITH-12S",frontmatter:{},regularPath:"/devices/ITH_12S.html",relativePath:"devices/ITH_12S.md",key:"v-6a7237ca",path:"/devices/ITH_12S.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Jaalee TH sensor F525/F51C",frontmatter:{},regularPath:"/devices/JAALEE.html",relativePath:"devices/JAALEE.md",key:"v-4693609f",path:"/devices/JAALEE.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi Formaldehyde detector",frontmatter:{},regularPath:"/devices/JQJCY01YM.html",relativePath:"devices/JQJCY01YM.md",key:"v-18e9a14a",path:"/devices/JQJCY01YM.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"KKM Long Range Beacon K6P",frontmatter:{},regularPath:"/devices/KKM_K6P.html",relativePath:"devices/KKM_K6P.md",key:"v-0371b60a",path:"/devices/KKM_K6P.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"KKM Tracking Beacon K9",frontmatter:{},regularPath:"/devices/KKM_K9.html",relativePath:"devices/KKM_K9.md",key:"v-34b6fd3a",path:"/devices/KKM_K9.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi/Mijia LYWSD02 e-ink Clock",frontmatter:{},regularPath:"/devices/LYWSD02.html",relativePath:"devices/LYWSD02.md",key:"v-5bcdcd8a",path:"/devices/LYWSD02.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi LYWSD03MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/LYWSD03MMC.html",relativePath:"devices/LYWSD03MMC.md",key:"v-af62874e",path:"/devices/LYWSD03MMC.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi LYWSDCGQ",frontmatter:{},regularPath:"/devices/LYWSDCGQ.html",relativePath:"devices/LYWSDCGQ.md",key:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"MokoSmart Pro",frontmatter:{},regularPath:"/devices/MBXPRO.html",relativePath:"devices/MBXPRO.md",key:"v-562de0e2",path:"/devices/MBXPRO.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi MJWSD05MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/MJWSD05MMC.html",relativePath:"devices/MJWSD05MMC.md",key:"v-5c794abd",path:"/devices/MJWSD05MMC.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi MHO-C401/MMC-C401 ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/MHO-C401.html",relativePath:"devices/MHO-C401.md",key:"v-4659520d",path:"/devices/MHO-C401.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi Motion sensor and light",frontmatter:{},regularPath:"/devices/MUE4094RT.html",relativePath:"devices/MUE4094RT.md",key:"v-38795a5b",path:"/devices/MUE4094RT.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi Mi Band",frontmatter:{},regularPath:"/devices/Miband.html",relativePath:"devices/Miband.md",key:"v-50cf667e",path:"/devices/Miband.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"MokoSmart Beacon",frontmatter:{},regularPath:"/devices/MokoBeacon.html",relativePath:"devices/MokoBeacon.md",key:"v-1fcd57e2",path:"/devices/MokoBeacon.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Mopeka/Lippert Pro Check (Universal)/BottleCheck Sensor",frontmatter:{},regularPath:"/devices/Mopeka.html",relativePath:"devices/Mopeka.md",key:"v-123165ee",path:"/devices/Mopeka.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Oral-B Bluetooth Toothbrush",frontmatter:{},regularPath:"/devices/ORALB.html",relativePath:"devices/ORALB.md",key:"v-508b6d9b",path:"/devices/ORALB.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"NodOn NIU smart button",frontmatter:{},regularPath:"/devices/NODONNIU.html",relativePath:"devices/NODONNIU.md",key:"v-499a5933",path:"/devices/NODONNIU.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Amphiro/Oras/Hansa Smart Faucet",frontmatter:{},regularPath:"/devices/ORAS.html",relativePath:"devices/ORAS.md",key:"v-77595eb9",path:"/devices/ORAS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Otodata RC1010 Rotarex-compatible Monitor",frontmatter:{},regularPath:"/devices/OTOD.html",relativePath:"devices/OTOD.md",key:"v-36fdd4af",path:"/devices/OTOD.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Polar H10 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/PH10.html",relativePath:"devices/PH10.md",key:"v-17735bb5",path:"/devices/PH10.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"RuuviTag (RAWv1 data format)",frontmatter:{},regularPath:"/devices/RuuviTag_RAWv1.html",relativePath:"devices/RuuviTag_RAWv1.md",key:"v-e185e69e",path:"/devices/RuuviTag_RAWv1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"RDL52832",frontmatter:{},regularPath:"/devices/RDL52832.html",relativePath:"devices/RDL52832.md",key:"v-2df958ba",path:"/devices/RDL52832.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"RuuviTag (RAWv2 data format)",frontmatter:{},regularPath:"/devices/RuuviTag_RAWv2.html",relativePath:"devices/RuuviTag_RAWv2.md",key:"v-1922252f",path:"/devices/RuuviTag_RAWv2.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ShellyBLU Button1",frontmatter:{},regularPath:"/devices/SBBT-002C.html",relativePath:"devices/SBBT-002C.md",key:"v-fae7f80a",path:"/devices/SBBT-002C.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Blind Tilt",frontmatter:{},regularPath:"/devices/SBBT.html",relativePath:"devices/SBBT.md",key:"v-bb5a0abe",path:"/devices/SBBT.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Contact Sensor",frontmatter:{},regularPath:"/devices/SBCS.html",relativePath:"devices/SBCS.md",key:"v-cd9f8836",path:"/devices/SBCS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Curtain",frontmatter:{},regularPath:"/devices/SBCU.html",relativePath:"devices/SBCU.md",key:"v-acb53b3e",path:"/devices/SBCU.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ShellyBLU Motion",frontmatter:{},regularPath:"/devices/SBMO-003Z.html",relativePath:"devices/SBMO-003Z.md",key:"v-2149b03b",path:"/devices/SBMO-003Z.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Motion Sensor",frontmatter:{},regularPath:"/devices/SBMS.html",relativePath:"devices/SBMS.md",key:"v-dfc2ee0e",path:"/devices/SBMS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Meter (Plus)",frontmatter:{},regularPath:"/devices/SBMT.html",relativePath:"devices/SBMT.md",key:"v-18591c37",path:"/devices/SBMT.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Outdoor Meter",frontmatter:{},regularPath:"/devices/SBOT.html",relativePath:"devices/SBOT.md",key:"v-1688c53b",path:"/devices/SBOT.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ShellyBLU Door/Window",frontmatter:{},regularPath:"/devices/SBDW-002C.html",relativePath:"devices/SBDW-002C.md",key:"v-3644c2ca",path:"/devices/SBDW-002C.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SwitchBot Bot",frontmatter:{},regularPath:"/devices/SBS1.html",relativePath:"devices/SBS1.md",key:"v-72e5f5c9",path:"/devices/SBS1.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensirion MyCO₂/CO₂ Gadget SCD4X",frontmatter:{},regularPath:"/devices/SCD4X.html",relativePath:"devices/SCD4X.md",key:"v-21034dca",path:"/devices/SCD4X.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensor Easy Thermometer and Hygrometer Pro",frontmatter:{},regularPath:"/devices/SE_RHT_PRO.html",relativePath:"devices/SE_RHT_PRO.md",key:"v-bcfe58b6",path:"/devices/SE_RHT_PRO.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensor Easy Thermometer",frontmatter:{},regularPath:"/devices/SE_TEMP.html",relativePath:"devices/SE_TEMP.md",key:"v-3ad2b88a",path:"/devices/SE_TEMP.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensor Easy Door/Window sensor",frontmatter:{},regularPath:"/devices/SE_MAG.html",relativePath:"devices/SE_MAG.md",key:"v-2328ba97",path:"/devices/SE_MAG.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SmartDry Laundry Sensor",frontmatter:{},regularPath:"/devices/SDLS.html",relativePath:"devices/SDLS.md",key:"v-4e67a81a",path:"/devices/SDLS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensor Easy Thermometer Pro",frontmatter:{},regularPath:"/devices/SE_TEMP_PRO.html",relativePath:"devices/SE_TEMP_PRO.md",key:"v-00f466fb",path:"/devices/SE_TEMP_PRO.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensor Easy Thermometer External Probe Pro",frontmatter:{},regularPath:"/devices/SE_TPROBE.html",relativePath:"devices/SE_TPROBE.md",key:"v-d34e370a",path:"/devices/SE_TPROBE.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Sensirion SHT4X Smart Gadget",frontmatter:{},regularPath:"/devices/SHT4x.html",relativePath:"devices/SHT4x.md",key:"v-1bf8fdbb",path:"/devices/SHT4x.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Service data",frontmatter:{},regularPath:"/devices/ServiceData.html",relativePath:"devices/ServiceData.md",key:"v-1ef034fb",path:"/devices/ServiceData.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Tenergy SOLIS 6 BBQ",frontmatter:{},regularPath:"/devices/SOLIS_6.html",relativePath:"devices/SOLIS_6.md",key:"v-3e2f1c8a",path:"/devices/SOLIS_6.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Atomax Skale I/II",frontmatter:{},regularPath:"/devices/Skale.html",relativePath:"devices/Skale.md",key:"v-a0f1084a",path:"/devices/Skale.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Oria/Brifit/SigmaWit/SensorPro T201",frontmatter:{},regularPath:"/devices/T201.html",relativePath:"devices/T201.md",key:"v-26262fb6",path:"/devices/T201.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ThermoPro TP357",frontmatter:{},regularPath:"/devices/TP357.html",relativePath:"devices/TP357.md",key:"v-77a5bafb",path:"/devices/TP357.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Oria/Brifit/SigmaWit/SensorPro T301",frontmatter:{},regularPath:"/devices/T301.html",relativePath:"devices/T301.md",key:"v-50cfa3e3",path:"/devices/T301.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ThermoPro TP358",frontmatter:{},regularPath:"/devices/TP358.html",relativePath:"devices/TP358.md",key:"v-78e7a64a",path:"/devices/TP358.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Tilt Brewing Hydro- Thermometer",frontmatter:{},regularPath:"/devices/TILT.html",relativePath:"devices/TILT.md",key:"v-6ce925e9",path:"/devices/TILT.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ThermoPro TP359",frontmatter:{},regularPath:"/devices/TP359.html",relativePath:"devices/TP359.md",key:"v-0f729ebb",path:"/devices/TP359.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"TPMS",frontmatter:{},regularPath:"/devices/TPMS.html",relativePath:"devices/TPMS.md",key:"v-1ef9895f",path:"/devices/TPMS.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"ThermoPro TP393",frontmatter:{},regularPath:"/devices/TP393.html",relativePath:"devices/TP393.md",key:"v-0bab1bfb",path:"/devices/TP393.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"SensorBlue/Oria/Brifit ThermoBeacon",frontmatter:{},regularPath:"/devices/ThermoBeacon.html",relativePath:"devices/ThermoBeacon.md",key:"v-5261d156",path:"/devices/ThermoBeacon.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi Mi Smart Scale",frontmatter:{},regularPath:"/devices/XMTZC04HM.html",relativePath:"devices/XMTZC04HM.md",key:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"XOSS X2 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/XOSSX2.html",relativePath:"devices/XOSSX2.md",key:"v-75a52741",path:"/devices/XOSSX2.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Xiaomi Mi Body Composition Scale",frontmatter:{},regularPath:"/devices/XMTZC05HM.html",relativePath:"devices/XMTZC05HM.md",key:"v-0c830cdb",path:"/devices/XMTZC05HM.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Redirecting...",frontmatter:{redirect:"./devices.html"},regularPath:"/devices/devices_by_brand.html",relativePath:"devices/devices_by_brand.md",key:"v-588a4461",path:"/devices/devices_by_brand.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"iBeacon",frontmatter:{},regularPath:"/devices/iBeacon.html",relativePath:"devices/iBeacon.md",key:"v-35f4f98a",path:"/devices/iBeacon.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"iNode Energy Meter",frontmatter:{},regularPath:"/devices/iNodeEM.html",relativePath:"devices/iNodeEM.md",key:"v-b8fe1e0a",path:"/devices/iNodeEM.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Rows",frontmatter:{},regularPath:"/devices/rows.html",relativePath:"devices/rows.md",key:"v-1350da9e",path:"/devices/rows.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Supporting the project",frontmatter:{},regularPath:"/participate/support.html",relativePath:"participate/support.md",key:"v-43b9401b",path:"/participate/support.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Using with Python",frontmatter:{},regularPath:"/use/python.html",relativePath:"use/python.md",key:"v-54537f3f",path:"/use/python.html",headers:[{level:2,title:"Installing from PyPI",slug:"installing-from-pypi"},{level:2,title:"Installing a development version",slug:"installing-a-development-version"},{level:2,title:"Using",slug:"using"},{level:2,title:"Methods",slug:"methods"}],lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Using the library in a project",frontmatter:{},regularPath:"/use/include.html",relativePath:"use/include.md",key:"v-5e1da45b",path:"/use/include.html",headers:[{level:3,title:"Example",slug:"example"},{level:3,title:"Encrypted data",slug:"encrypted-data"}],lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Govee H5072",frontmatter:{},regularPath:"/devices/H5072.html",relativePath:"devices/H5072.md",key:"v-bd41cf4a",path:"/devices/H5072.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Using with ESP32",frontmatter:{},regularPath:"/use/ESP32.html",relativePath:"use/ESP32.md",key:"v-0db7e63b",path:"/use/ESP32.html",lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Development contributions",frontmatter:{},regularPath:"/participate/development.html",relativePath:"participate/development.md",key:"v-3dbed0ca",path:"/participate/development.html",headers:[{level:2,title:"Developer Certificate Of Origin",slug:"developer-certificate-of-origin"}],lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3},{title:"Adding decoders",frontmatter:{},regularPath:"/participate/adding-decoders.html",relativePath:"participate/adding-decoders.md",key:"v-3766ecca",path:"/participate/adding-decoders.html",headers:[{level:3,title:"Tag property",slug:"tag-property"},{level:3,title:"Condition",slug:"condition"},{level:3,title:"Properties",slug:"properties"}],lastUpdated:"4/28/2024, 1:56:15 PM",lastUpdatedTimestamp:1714312575e3}],themeConfig:{repo:"theengs/decoder",smoothScroll:!0,search:!1,docsDir:"docs",docsBranch:"development",lastUpdated:"Last Updated",editLinks:!0,nav:[{text:"Home",link:"https://www.theengs.io",target:"_self",rel:""},{text:"Use cases",items:[{text:"Smart Home",link:"https://www.theengs.io/usecases/smarthome.html",target:"_self",rel:""},{text:"IoT",link:"https://www.theengs.io/usecases/iot.html",target:"_self",rel:""},{text:"Research",link:"https://www.theengs.io/usecases/research.html",target:"_self",rel:""}]},{text:"Solutions",items:[{text:"Hardware",items:[{text:"Theengs Plug",link:"https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption",target:"_self",rel:""},{text:"Theengs Bridge",link:"https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna",target:"_self",rel:""}]},{text:"Software",items:[{text:"Mobile App",link:"https://app.theengs.io",target:"_self",rel:""},{text:"OpenMQTTGateway",link:"https://docs.openmqttgateway.com",target:"_self",rel:""},{text:"Gateway",link:"https://gateway.theengs.io",target:"_self",rel:""}]},{text:"Core",items:[{text:"Decoder",link:"https://decoder.theengs.io",target:"_self",rel:""},{text:"Web Parser",link:"https://parser.theengs.io",target:"_self",rel:""}]}]},{text:"Compatible devices",link:"https://decoder.theengs.io/devices/devices.html",target:"_self",rel:""},{text:"Community",link:"https://community.openmqttgateway.com",target:"_self",rel:""},{text:"Shop",link:"https://shop.theengs.io/",target:"_self",rel:""},{text:"Sponsor 🤍",link:"https://github.com/sponsors/theengs",target:"_self",rel:""}],sidebar:[["/","0 - What is it for 🏠"],{title:"1 - Use ✈️",sidebarDepth:1,children:["use/include","use/ESP32","use/python"]},{title:"2 - Participate 💻",sidebarDepth:1,children:["participate/adding-decoders","participate/support","participate/development"]}]}};n(234);Vn.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,431))),Vn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,315))),Vn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,316)));n(235);function As(t){const e=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-e.left,y:n.top-e.top}}n(236);var Bs=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},({Vue:t,router:e})=>{e.options.scrollBehavior=(e,n,r)=>{if(r)return window.scrollTo({top:r.y,behavior:"smooth"});if(e.hash){if(t.$vuepress.$get("disableScrollBehavior"))return!1;const n=document.querySelector(e.hash);return!!n&&window.scrollTo({top:As(n).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},{}],Rs=[];class Hs extends class{constructor(){this.store=new Vn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Vn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Hs.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:ls,getVueComponent:us});var Ds={install(t){const e=new Hs;t.$vuepress=e,t.prototype.$vuepress=e}};function Is(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var Ns={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return ps("pageKey",e),Vn.component(e)||Vn.component(e,ss(e)),Vn.component(e)?t(e):t("")}},Ws={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},Gs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Fs=(n(237),n(238),Object($s.a)(Gs,(function(){var t=this._self._c;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{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"}},[t("path",{attrs:{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"}}),this._v(" "),t("polygon",{attrs:{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"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Xs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Vn.config.productionTip=!1,Vn.use(Xi),Vn.use(Ds),Vn.mixin(function(t,e,n=Vn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),a={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),a),{computed:a}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!Vn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Is(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Is(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Is(t,o)?r(o):Is(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Bs.filter(t=>"function"==typeof t).map(e=>e({Vue:Vn,options:r,router:n,siteData:Ls,isServer:t})))}catch(t){console.error(t)}return{app:new Vn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Rs.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file +var r=Object.freeze({}),o=Array.isArray;function a(t){return null==t}function i(t){return null!=t}function s(t){return!0===t}function c(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function l(t){return"function"==typeof t}function u(t){return null!==t&&"object"==typeof t}var f=Object.prototype.toString;function p(t){return"[object Object]"===f.call(t)}function d(t){return"[object RegExp]"===f.call(t)}function h(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===f?JSON.stringify(t,null,2):String(t)}function b(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var P=Object.prototype.hasOwnProperty;function x(t,e){return P.call(t,e)}function S(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,T=S((function(t){return t.replace(w,(function(t,e){return e?e.toUpperCase():""}))})),C=S((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,O=S((function(t){return t.replace(k,"-$1").toLowerCase()}));var E=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function M(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function $(t,e){for(var n in e)t[n]=e[n];return t}function U(t){for(var e={},n=0;n0,Q=q&&q.indexOf("edge/")>0;q&&q.indexOf("android");var Z=q&&/iphone|ipad|ipod|ios/.test(q);q&&/chrome\/\d+/.test(q),q&&/phantomjs/.test(q);var tt,et=q&&q.match(/firefox\/(\d+)/),nt={}.watch,rt=!1;if(K)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var at=function(){return void 0===tt&&(tt=!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),tt},it=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function st(t){return"function"==typeof t&&/native code/.test(t.toString())}var ct,lt="undefined"!=typeof Symbol&&st(Symbol)&&"undefined"!=typeof Reflect&&st(Reflect.ownKeys);ct="undefined"!=typeof Set&&st(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=null;function ft(t){void 0===t&&(t=null),t||ut&&ut._scope.off(),ut=t,t&&t._scope.on()}var pt=function(){function t(t,e,n,r,o,a,i,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=a,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=i,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function ht(t){return new pt(void 0,void 0,void 0,String(t))}function vt(t){var e=new pt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var mt=0,bt=[],yt=function(){function t(){this._pending=!1,this.id=mt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,bt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Yt((l=t(l,"".concat(n||"","_").concat(r)))[0])&&Yt(f)&&(p[u]=ht(f.text+l[0].text),l.shift()),p.push.apply(p,l)):c(l)?Yt(f)?p[u]=ht(f.text+l):""!==l&&p.push(ht(l)):Yt(l)&&Yt(f)?p[u]=ht(f.text+l.text):(s(e._isVList)&&i(l.tag)&&a(l.key)&&i(n)&&(l.key="__vlist".concat(n,"_").concat(r,"__")),p.push(l)));return p}(t):void 0}function Yt(t){return i(t)&&i(t.text)&&!1===t.isComment}function Jt(t,e){var n,r,a,s,c=null;if(o(t)||"string"==typeof t)for(c=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!i,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&c===o.$key&&!i&&!o.$hasNormal)return o;for(var l in a={},e)e[l]&&"$"!==l[0]&&(a[l]=me(t,n,l,e[l]))}else a={};for(var u in n)u in a||(a[u]=be(n,u));return e&&Object.isExtensible(e)&&(e._normalized=a),X(a,"$stable",s),X(a,"$key",c),X(a,"$hasNormal",i),a}function me(t,e,n,r){var a=function(){var e=ut;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),a=(n=n&&"object"==typeof n&&!o(n)?[n]:qt(n))&&n[0];return ft(e),n&&(!a||1===n.length&&a.isComment&&!he(a))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:a,enumerable:!0,configurable:!0}),a}function be(t,e){return function(){return t[e]}}function ye(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};X(e,"_v_attr_proxy",!0),ge(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||ge(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||Pe(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:E(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return It(t,e,n)}))}}}function ge(t,e,n,r,o){var a=!1;for(var i in e)i in t?e[i]!==n[i]&&(a=!0):(a=!0,_e(t,i,r,o));for(var i in t)i in e||(a=!0,delete t[i]);return a}function _e(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function Pe(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var xe=null;function Se(t,e){return(t.__esModule||lt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),u(t)?e.extend(t):t}function we(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(ln=function(){return un.now()})}var fn=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function pn(){var t,e;for(cn=ln(),an=!0,en.sort(fn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);on||(on=!0,De(pn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(a&&!x(o,"default"))i=!1;else if(""===i||i===O(t)){var c=Bn(String,o.type);(c<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Jn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var a in n){var i=n[a];if(i){var s=i.name;s&&!e(s)&&Qn(n,a,r,o)}}}function Qn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,_(n,e)}Vn.prototype._init=function(t){var e=this;e._uid=Xn++,e._isVue=!0,e.__v_skip=!0,e._scope=new Wt(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mn(zn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&qe(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Te(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Te(t,e,n,r,o,!0)};var a=n&&n.data;At(t,"$attrs",a&&a.attrs||r,null,!0),At(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&($t(!1),Object.keys(e).forEach((function(n){At(t,n,e[n])})),$t(!0))}(e),Dn(e),function(t){var e=t.$options.provide;if(e){var n=l(e)?e.call(t):e;if(!u(n))return;for(var r=Gt(t),o=lt?Reflect.ownKeys(n):Object.keys(n),a=0;a1?M(n):n;for(var r=M(arguments,1),o='event handler for "'.concat(t,'"'),a=0,i=n.length;aparseInt(this.max)&&Qn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Qn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Jn(t,(function(t){return Yn(e,t)}))})),this.$watch("exclude",(function(e){Jn(t,(function(t){return!Yn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=we(t),n=e&&e.componentOptions;if(n){var r=qn(n),o=this.include,a=this.exclude;if(o&&(!r||!Yn(o,r))||a&&r&&Yn(a,r))return e;var i=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;i[c]?(e.componentInstance=i[c].componentInstance,_(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return W}};Object.defineProperty(t,"config",e),t.util={warn:Sn,extend:$,mergeOptions:Mn,defineReactive:At},t.set=Bt,t.delete=Rt,t.nextTick=De,t.observable=function(t){return Lt(t),t},t.options=Object.create(null),I.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,$(t.options.components,tr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=M(arguments,1);return n.unshift(this),l(t.install)?t.install.apply(t,n):l(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mn(this.options,t),this}}(t),Kn(t),function(t){I.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&p(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&l(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Vn),Object.defineProperty(Vn.prototype,"$isServer",{get:at}),Object.defineProperty(Vn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Vn,"FunctionalRenderContext",{value:vn}),Vn.version="2.7.13";var er=y("style,class"),nr=y("input,textarea,option,select,progress"),rr=y("contenteditable,draggable,spellcheck"),or=y("events,caret,typing,plaintext-only"),ar=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ir="http://www.w3.org/1999/xlink",sr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},cr=function(t){return sr(t)?t.slice(6,t.length):""},lr=function(t){return null==t||!1===t};function ur(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=fr(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=fr(e,n.data));return function(t,e){if(i(t)||i(e))return pr(t,dr(e));return""}(e.staticClass,e.class)}function fr(t,e){return{staticClass:pr(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function pr(t,e){return t?e?t+" "+e:t:e||""}function dr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Rr(t,e,n):ar(e)?lr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):rr(e)?t.setAttribute(e,function(t,e){return lr(e)||"false"===e?"false":"contenteditable"===t&&or(e)?e:"true"}(e,n)):sr(e)?lr(n)?t.removeAttributeNS(ir,cr(e)):t.setAttributeNS(ir,e,n):Rr(t,e,n)}function Rr(t,e,n){if(lr(n))t.removeAttribute(e);else{if(Y&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Hr={create:Ar,update:Ar};function Dr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(a(r.staticClass)&&a(r.class)&&(a(o)||a(o.staticClass)&&a(o.class)))){var s=ur(e),c=n._transitionClasses;i(c)&&(s=pr(s,dr(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ir,Nr={create:Dr,update:Dr};function Wr(t,e,n){var r=Ir;return function o(){var a=e.apply(null,arguments);null!==a&&Xr(t,o,n,r)}}var Gr=$e&&!(et&&Number(et[1])<=53);function Fr(t,e,n,r){if(Gr){var o=cn,a=e;e=a._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return a.apply(this,arguments)}}Ir.addEventListener(t,e,rt?{capture:n,passive:r}:n)}function Xr(t,e,n,r){(r||Ir).removeEventListener(t,e._wrapper||e,n)}function zr(t,e){if(!a(t.data.on)||!a(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Ir=e.elm||t.elm,function(t){if(i(t.__r)){var e=Y?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}i(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),zt(n,r,Fr,Xr,Wr,e.context),Ir=void 0}}var Vr,Kr={create:zr,update:zr,destroy:function(t){return zr(t,wr)}};function qr(t,e){if(!a(t.data.domProps)||!a(e.data.domProps)){var n,r,o=e.elm,c=t.data.domProps||{},l=e.data.domProps||{};for(n in(i(l.__ob__)||s(l._v_attr_proxy))&&(l=e.data.domProps=$({},l)),c)n in l||(o[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===c[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var u=a(r)?"":String(r);Yr(o,u)&&(o.value=u)}else if("innerHTML"===n&&mr(o.tagName)&&a(o.innerHTML)){(Vr=Vr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Vr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==c[n])try{o[n]=r}catch(t){}}}}function Yr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return b(n)!==b(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Jr={create:qr,update:qr},Qr=S((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Zr(t){var e=to(t.style);return t.staticStyle?$(t.staticStyle,e):e}function to(t){return Array.isArray(t)?U(t):"string"==typeof t?Qr(t):t}var eo,no=/^--/,ro=/\s*!important$/,oo=function(t,e,n){if(no.test(e))t.style.setProperty(e,n);else if(ro.test(n))t.style.setProperty(O(e),n.replace(ro,""),"important");else{var r=io(e);if(Array.isArray(n))for(var o=0,a=n.length;o-1?e.split(lo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function fo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(lo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function po(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&$(e,ho(t.name||"v")),$(e,t),e}return"string"==typeof t?ho(t):void 0}}var ho=S((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),vo=K&&!J,mo="transition",bo="transitionend",yo="animation",go="animationend";vo&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(mo="WebkitTransition",bo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(yo="WebkitAnimation",go="webkitAnimationEnd"));var _o=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Po(t){_o((function(){_o(t)}))}function xo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),uo(t,e))}function So(t,e){t._transitionClasses&&_(t._transitionClasses,e),fo(t,e)}function wo(t,e,n){var r=Co(t,e),o=r.type,a=r.timeout,i=r.propCount;if(!o)return n();var s="transition"===o?bo:go,c=0,l=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++c>=i&&l()};setTimeout((function(){c0&&(n="transition",u=i,f=a.length):"animation"===e?l>0&&(n="animation",u=l,f=c.length):f=(n=(u=Math.max(i,l))>0?i>l?"transition":"animation":null)?"transition"===n?a.length:c.length:0,{type:n,timeout:u,propCount:f,hasTransform:"transition"===n&&To.test(r[mo+"Property"])}}function ko(t,e){for(;t.length1}function jo(t,e){!0!==e.data.show&&Eo(e)}var Lo=function(t){var e,n,r={},l=t.modules,u=t.nodeOps;for(e=0;eh?_(t,a(n[b+1])?null:n[b+1].elm,n,d,b,r):d>b&&x(e,f,h)}(f,v,b,n,l):i(b)?(i(t.text)&&u.setTextContent(f,""),_(f,null,b,0,b.length-1,n)):i(v)?x(v,0,v.length-1):i(t.text)&&u.setTextContent(f,""):t.text!==e.text&&u.setTextContent(f,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function C(t,e,n){if(s(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,i.selected!==a&&(i.selected=a);else if(B(Do(i),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Ho(t,e){return e.every((function(e){return!B(e,t)}))}function Do(t){return"_value"in t?t._value:t.value}function Io(t){t.target.composing=!0}function No(t){t.target.composing&&(t.target.composing=!1,Wo(t.target,"input"))}function Wo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Go(t){return!t.componentInstance||t.data&&t.data.transition?t:Go(t.componentInstance._vnode)}var Fo={model:Ao,show:{bind:function(t,e,n){var r=e.value,o=(n=Go(n)).data&&n.data.transition,a=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Eo(n,(function(){t.style.display=a}))):t.style.display=r?a:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Go(n)).data&&n.data.transition?(n.data.show=!0,r?Eo(n,(function(){t.style.display=t.__vOriginalDisplay})):Mo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Xo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function zo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?zo(we(e.children)):t}function Vo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[T(r)]=o[r];return e}function Ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var qo=function(t){return t.tag||he(t)},Yo=function(t){return"show"===t.name},Jo={name:"transition",props:Xo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(qo)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var a=zo(o);if(!a)return o;if(this._leaving)return Ko(t,o);var i="__transition-".concat(this._uid,"-");a.key=null==a.key?a.isComment?i+"comment":i+a.tag:c(a.key)?0===String(a.key).indexOf(i)?a.key:i+a.key:a.key;var s=(a.data||(a.data={})).transition=Vo(this),l=this._vnode,u=zo(l);if(a.data.directives&&a.data.directives.some(Yo)&&(a.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,u)&&!he(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=$({},s);if("out-in"===r)return this._leaving=!0,Vt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ko(t,o);if("in-out"===r){if(he(a))return l;var p,d=function(){p()};Vt(s,"afterEnter",d),Vt(s,"enterCancelled",d),Vt(f,"delayLeave",(function(t){p=t}))}}return o}}},Qo=$({tag:String,moveClass:String},Xo);function Zo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ta(t){t.data.newPos=t.elm.getBoundingClientRect()}function ea(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var a=t.elm.style;a.transform=a.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),a.transitionDuration="0s"}}delete Qo.mode;var na={Transition:Jo,TransitionGroup:{props:Qo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],a=this.children=[],i=Vo(this),s=0;s-1?yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:yr[t]=/HTMLUnknownElement/.test(e.toString())},$(Vn.options.directives,Fo),$(Vn.options.components,na),Vn.prototype.__patch__=K?Lo:j,Vn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=dt),tn(t,"beforeMount"),r=function(){t._update(t._render(),n)},new Xe(t,r,j,{before:function(){t._isMounted&&!t._isDestroyed&&tn(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var a=0;a=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),l=e&&e.path||"/",u=c.path?Sa(c.path,l,n||o.append):l,f=function(t,e,n){void 0===e&&(e={});var r,o=n||ua;try{r=o(t||"")}catch(t){r={}}for(var a in e){var i=e[a];r[a]=Array.isArray(i)?i.map(la):la(i)}return r}(c.query,o.query,r&&r.options.parseQuery),p=o.hash||c.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}var Fa,Xa=function(){},za={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),a=o.location,i=o.route,s=o.href,c={},l=n.options.linkActiveClass,u=n.options.linkExactActiveClass,f=null==l?"router-link-active":l,p=null==u?"router-link-exact-active":u,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=i.redirectedFrom?da(null,Ga(i.redirectedFrom),null,n):i;c[h]=ya(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(pa,"/").indexOf(e.path.replace(pa,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=c[h]?this.ariaCurrentValue:null,b=function(t){Va(t)&&(e.replace?n.replace(a,Xa):n.push(a,Xa))},y={click:Va};Array.isArray(this.event)?this.event.forEach((function(t){y[t]=b})):y[this.event]=b;var g={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:i,navigate:b,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)g.on=y,g.attrs={href:s,"aria-current":m};else{var P=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=Wa(u.path,s.params),c(u,s,i)}if(s.path){s.params={};for(var d=0;d-1}function wi(t,e){return Si(t)&&t._isRouter&&(null==e||t.type===e)}function Ti(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function Ci(t){return function(e,n,r){var o=!1,a=0,i=null;ki(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,a++;var c,l=Mi((function(e){var o;((o=e).__esModule||Ei&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Fa.extend(e),n.components[s]=e,--a<=0&&r()})),u=Mi((function(t){var e="Failed to resolve async component "+s+": "+t;i||(i=Si(t)?t:new Error(e),r(i))}));try{c=t(l,u)}catch(t){u(t)}if(c)if("function"==typeof c.then)c.then(l,u);else{var f=c.component;f&&"function"==typeof f.then&&f.then(l,u)}}})),o||r()}}function ki(t,e){return Oi(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function Oi(t){return Array.prototype.concat.apply([],t)}var Ei="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Mi(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var $i=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ka){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=va,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ui(t,e,n,r){var o=ki(t,(function(t,r,o,a){var i=function(t,e){"function"!=typeof t&&(t=Fa.extend(t));return t.options[e]}(t,e);if(i)return Array.isArray(i)?i.map((function(t){return n(t,r,o,a)})):n(i,r,o,a)}));return Oi(r?o.reverse():o)}function ji(t,e){if(e)return function(){return t.apply(e,arguments)}}$i.prototype.listen=function(t){this.cb=t},$i.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},$i.prototype.onError=function(t){this.errorCbs.push(t)},$i.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var a=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,a)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(wi(t,yi.redirected)&&a===va||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},$i.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var a,i,s=function(t){!wi(t)&&Si(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,l=o.matched.length-1;if(ya(t,o)&&c===l&&t.matched[c]===o.matched[l])return this.ensureURL(),t.hash&&ii(this.router,o,t,!1),s(((i=Pi(a=o,t,yi.duplicated,'Avoided redundant navigation to current location: "'+a.fullPath+'".')).name="NavigationDuplicated",i));var u=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=vi&&n;r&&this.listeners.push(ai());var o=function(){var n=t.current,o=Ai(t.base);t.current===va&&o===t._startLocation||t.transitionTo(o,(function(t){r&&ii(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){mi(wa(r.base+t.fullPath)),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){bi(wa(r.base+t.fullPath)),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ai(this.base)!==this.current.fullPath){var e=wa(this.base+this.current.fullPath);t?mi(e):bi(e)}},e.prototype.getCurrentLocation=function(){return Ai(this.base)},e}($i);function Ai(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(wa(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Bi=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ai(t);if(!/^\/#/.test(e))return window.location.replace(wa(t+"/#"+e)),!0}(this.base)||Ri()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=vi&&e;n&&this.listeners.push(ai());var r=function(){var e=t.current;Ri()&&t.transitionTo(Hi(),(function(r){n&&ii(t.router,r,e,!0),vi||Ni(r.fullPath)}))},o=vi?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ii(t.fullPath),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Ni(t.fullPath),ii(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Hi()!==e&&(t?Ii(e):Ni(e))},e.prototype.getCurrentLocation=function(){return Hi()},e}($i);function Ri(){var t=Hi();return"/"===t.charAt(0)||(Ni("/"+t),!1)}function Hi(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Di(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Ii(t){vi?mi(Di(t)):window.location.hash=t}function Ni(t){vi?bi(Di(t)):window.location.replace(Di(t))}var Wi=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){wi(t,yi.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}($i),Gi=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ja(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!vi&&!1!==t.fallback,this.fallback&&(e="hash"),Ka||(e="abstract"),this.mode=e,e){case"history":this.history=new Li(this,t.base);break;case"hash":this.history=new Bi(this,t.base,this.fallback);break;case"abstract":this.history=new Wi(this,t.base);break;default:0}},Fi={currentRoute:{configurable:!0}};Gi.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Fi.currentRoute.get=function(){return this.history&&this.history.current},Gi.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof Li||n instanceof Bi){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;vi&&o&&"fullPath"in t&&ii(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Gi.prototype.beforeEach=function(t){return zi(this.beforeHooks,t)},Gi.prototype.beforeResolve=function(t){return zi(this.resolveHooks,t)},Gi.prototype.afterEach=function(t){return zi(this.afterHooks,t)},Gi.prototype.onReady=function(t,e){this.history.onReady(t,e)},Gi.prototype.onError=function(t){this.history.onError(t)},Gi.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},Gi.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},Gi.prototype.go=function(t){this.history.go(t)},Gi.prototype.back=function(){this.go(-1)},Gi.prototype.forward=function(){this.go(1)},Gi.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Gi.prototype.resolve=function(t,e,n){var r=Ga(t,e=e||this.history.current,n,this),o=this.match(r,e),a=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?wa(t+"/"+r):r}(this.history.base,a,this.mode),normalizedTo:r,resolved:o}},Gi.prototype.getRoutes=function(){return this.matcher.getRoutes()},Gi.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==va&&this.history.transitionTo(this.history.getCurrentLocation())},Gi.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==va&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Gi.prototype,Fi);var Xi=Gi;function zi(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Gi.install=function t(e){if(!t.installed||Fa!==e){t.installed=!0,Fa=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Pa),e.component("RouterLink",za);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},Gi.version="3.6.5",Gi.isNavigationFailure=wi,Gi.NavigationFailureType=yi,Gi.START_LOCATION=va,Ka&&window.Vue&&window.Vue.use(Gi);n(96);n(92),n(128);var Vi={NotFound:()=>n.e(41).then(n.bind(null,314)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,313))},Ki={"v-5e433cca":()=>n.e(43).then(n.bind(null,317)),"v-92347580":()=>n.e(6).then(n.bind(null,318)),"v-bd76cbca":()=>n.e(42).then(n.bind(null,319)),"v-cb67a10e":()=>n.e(44).then(n.bind(null,320)),"v-590a8cca":()=>n.e(45).then(n.bind(null,321)),"v-62a567ca":()=>n.e(47).then(n.bind(null,322)),"v-66cd695b":()=>n.e(46).then(n.bind(null,323)),"v-cd7fa48e":()=>n.e(48).then(n.bind(null,324)),"v-7be1050a":()=>n.e(49).then(n.bind(null,325)),"v-df3fa35e":()=>n.e(7).then(n.bind(null,326)),"v-05508cd7":()=>n.e(50).then(n.bind(null,327)),"v-e44b2e0a":()=>n.e(8).then(n.bind(null,328)),"v-bf08e74a":()=>n.e(51).then(n.bind(null,329)),"v-0cb1307b":()=>n.e(9).then(n.bind(null,330)),"v-6e110c1d":()=>n.e(52).then(n.bind(null,331)),"v-71dcbd0a":()=>n.e(53).then(n.bind(null,332)),"v-24eacf82":()=>n.e(55).then(n.bind(null,333)),"v-30fce24a":()=>n.e(54).then(n.bind(null,334)),"v-6ca26cc1":()=>n.e(10).then(n.bind(null,335)),"v-e228f58a":()=>n.e(11).then(n.bind(null,336)),"v-2c2c2b72":()=>n.e(13).then(n.bind(null,337)),"v-54871c8a":()=>n.e(12).then(n.bind(null,338)),"v-6901bec9":()=>n.e(14).then(n.bind(null,339)),"v-befdac4a":()=>n.e(15).then(n.bind(null,340)),"v-aba55e8a":()=>n.e(16).then(n.bind(null,341)),"v-2342d9bb":()=>n.e(57).then(n.bind(null,342)),"v-392bfc1b":()=>n.e(17).then(n.bind(null,343)),"v-d85d80e2":()=>n.e(56).then(n.bind(null,344)),"v-bd41cf4a":()=>n.e(58).then(n.bind(null,345)),"v-f5db240a":()=>n.e(18).then(n.bind(null,346)),"v-c165b0ca":()=>n.e(59).then(n.bind(null,347)),"v-371a0b5b":()=>n.e(61).then(n.bind(null,348)),"v-623221ca":()=>n.e(62).then(n.bind(null,349)),"v-2998cd0a":()=>n.e(60).then(n.bind(null,350)),"v-1acd60fb":()=>n.e(63).then(n.bind(null,351)),"v-66b3d2db":()=>n.e(19).then(n.bind(null,352)),"v-08f0cb9b":()=>n.e(65).then(n.bind(null,353)),"v-7871bcfb":()=>n.e(20).then(n.bind(null,354)),"v-be84a14a":()=>n.e(66).then(n.bind(null,355)),"v-253d75fb":()=>n.e(64).then(n.bind(null,356)),"v-5c18628a":()=>n.e(67).then(n.bind(null,357)),"v-65614ea9":()=>n.e(68).then(n.bind(null,358)),"v-757f164a":()=>n.e(69).then(n.bind(null,359)),"v-fbeacdca":()=>n.e(21).then(n.bind(null,360)),"v-a477c00a":()=>n.e(24).then(n.bind(null,361)),"v-07efbebb":()=>n.e(22).then(n.bind(null,362)),"v-bf7262e2":()=>n.e(23).then(n.bind(null,363)),"v-1faec98a":()=>n.e(70).then(n.bind(null,364)),"v-4693609f":()=>n.e(72).then(n.bind(null,365)),"v-6a7237ca":()=>n.e(71).then(n.bind(null,366)),"v-18e9a14a":()=>n.e(25).then(n.bind(null,367)),"v-0371b60a":()=>n.e(73).then(n.bind(null,368)),"v-34b6fd3a":()=>n.e(74).then(n.bind(null,369)),"v-af62874e":()=>n.e(27).then(n.bind(null,370)),"v-5bb593ff":()=>n.e(28).then(n.bind(null,371)),"v-5bcdcd8a":()=>n.e(26).then(n.bind(null,372)),"v-4659520d":()=>n.e(30).then(n.bind(null,373)),"v-562de0e2":()=>n.e(29).then(n.bind(null,374)),"v-5c794abd":()=>n.e(75).then(n.bind(null,375)),"v-38795a5b":()=>n.e(76).then(n.bind(null,376)),"v-1fcd57e2":()=>n.e(32).then(n.bind(null,377)),"v-50cf667e":()=>n.e(31).then(n.bind(null,378)),"v-123165ee":()=>n.e(33).then(n.bind(null,379)),"v-499a5933":()=>n.e(77).then(n.bind(null,380)),"v-508b6d9b":()=>n.e(78).then(n.bind(null,381)),"v-77595eb9":()=>n.e(79).then(n.bind(null,382)),"v-36fdd4af":()=>n.e(80).then(n.bind(null,383)),"v-e185e69e":()=>n.e(83).then(n.bind(null,384)),"v-2df958ba":()=>n.e(82).then(n.bind(null,385)),"v-17735bb5":()=>n.e(81).then(n.bind(null,386)),"v-1922252f":()=>n.e(84).then(n.bind(null,387)),"v-fae7f80a":()=>n.e(85).then(n.bind(null,388)),"v-bb5a0abe":()=>n.e(86).then(n.bind(null,389)),"v-3644c2ca":()=>n.e(89).then(n.bind(null,390)),"v-acb53b3e":()=>n.e(88).then(n.bind(null,391)),"v-cd9f8836":()=>n.e(87).then(n.bind(null,392)),"v-2149b03b":()=>n.e(90).then(n.bind(null,393)),"v-18591c37":()=>n.e(35).then(n.bind(null,394)),"v-dfc2ee0e":()=>n.e(34).then(n.bind(null,395)),"v-72e5f5c9":()=>n.e(92).then(n.bind(null,396)),"v-1688c53b":()=>n.e(91).then(n.bind(null,397)),"v-2328ba97":()=>n.e(95).then(n.bind(null,398)),"v-21034dca":()=>n.e(93).then(n.bind(null,399)),"v-4e67a81a":()=>n.e(94).then(n.bind(null,400)),"v-bcfe58b6":()=>n.e(96).then(n.bind(null,401)),"v-3ad2b88a":()=>n.e(97).then(n.bind(null,402)),"v-d34e370a":()=>n.e(99).then(n.bind(null,403)),"v-00f466fb":()=>n.e(98).then(n.bind(null,404)),"v-1bf8fdbb":()=>n.e(100).then(n.bind(null,405)),"v-3e2f1c8a":()=>n.e(101).then(n.bind(null,406)),"v-1ef034fb":()=>n.e(102).then(n.bind(null,407)),"v-a0f1084a":()=>n.e(103).then(n.bind(null,408)),"v-50cfa3e3":()=>n.e(104).then(n.bind(null,409)),"v-26262fb6":()=>n.e(36).then(n.bind(null,410)),"v-77a5bafb":()=>n.e(37).then(n.bind(null,411)),"v-6ce925e9":()=>n.e(105).then(n.bind(null,412)),"v-78e7a64a":()=>n.e(38).then(n.bind(null,413)),"v-0bab1bfb":()=>n.e(107).then(n.bind(null,414)),"v-1ef9895f":()=>n.e(39).then(n.bind(null,415)),"v-0f729ebb":()=>n.e(106).then(n.bind(null,416)),"v-5261d156":()=>n.e(108).then(n.bind(null,417)),"v-7b51fb7b":()=>n.e(109).then(n.bind(null,418)),"v-0c830cdb":()=>n.e(40).then(n.bind(null,419)),"v-588a4461":()=>n.e(111).then(n.bind(null,420)),"v-75a52741":()=>n.e(110).then(n.bind(null,421)),"v-35f4f98a":()=>n.e(112).then(n.bind(null,422)),"v-b8fe1e0a":()=>n.e(113).then(n.bind(null,423)),"v-1350da9e":()=>n.e(114).then(n.bind(null,424)),"v-0db7e63b":()=>n.e(118).then(n.bind(null,425)),"v-43b9401b":()=>n.e(117).then(n.bind(null,426)),"v-5e1da45b":()=>n.e(119).then(n.bind(null,427)),"v-54537f3f":()=>n.e(120).then(n.bind(null,428)),"v-3766ecca":()=>n.e(115).then(n.bind(null,429)),"v-3dbed0ca":()=>n.e(116).then(n.bind(null,430))};function qi(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Yi=/-(\w)/g,Ji=qi(t=>t.replace(Yi,(t,e)=>e?e.toUpperCase():"")),Qi=/\B([A-Z])/g,Zi=qi(t=>t.replace(Qi,"-$1").toLowerCase()),ts=qi(t=>t.charAt(0).toUpperCase()+t.slice(1));function es(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ts(Ji(e))):t(ts(e))||t(Zi(e))}const ns=Object.assign({},Vi,Ki),rs=t=>ns[t],os=t=>Ki[t],as=t=>Vi[t],is=t=>Vn.component(t);function ss(t){return es(os,t)}function cs(t){return es(as,t)}function ls(t){return es(rs,t)}function us(t){return es(is,t)}function fs(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!us(t)&&ls(t)){const e=await ls(t)();Vn.component(t,e.default)}}))}function ps(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ds=n(88),hs=n.n(ds),vs=n(89),ms=n.n(vs),bs={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${ms()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=gs(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=_s(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return hs()([{name:"description",content:this.$description}],t,this.siteMeta,Ps)},updateCanonicalLink(){ys(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",gs(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){_s(null,this.currentMetaTags),ys()}};function ys(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function gs(t=""){return t?``:""}function _s(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function Ps(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var xs=n(90),Ss={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(xs)()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=a.parentElement.offsetTop+10&&(!i||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},ws=n(91),Ts=n.n(ws),Cs={mounted(){Ts.a.polyfill()}},ks=n(23),Os=n.n(ks),Es=[bs,Ss,Cs,{mounted(){Os.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Vn.component(t.name)||Os.a.start(),n()}),this.$router.afterEach(()=>{Os.a.done(),this.isSidebarOpen=!1})}}],Ms={name:"GlobalLayout",computed:{layout(){const t=this.getLayout();return ps("layout",t),Vn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},$s=n(14),Us=Object($s.a)(Ms,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Us,"mixins",Es);const js=[{name:"v-5e433cca",path:"/devices/ABN07.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5e433cca").then(n)}},{name:"v-92347580",path:"/",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-92347580").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-bd76cbca",path:"/devices/ABN03.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bd76cbca").then(n)}},{name:"v-cb67a10e",path:"/devices/ABTemp.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-cb67a10e").then(n)}},{name:"v-590a8cca",path:"/devices/Amazfit.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-590a8cca").then(n)}},{name:"v-62a567ca",path:"/devices/AppleDevice.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-62a567ca").then(n)}},{name:"v-66cd695b",path:"/devices/Amphiro.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-66cd695b").then(n)}},{name:"v-cd7fa48e",path:"/devices/AppleWatch.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-cd7fa48e").then(n)}},{name:"v-7be1050a",path:"/devices/Aranet4.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-7be1050a").then(n)}},{name:"v-df3fa35e",path:"/devices/BC08.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-df3fa35e").then(n)}},{name:"v-05508cd7",path:"/devices/BM1in1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-05508cd7").then(n)}},{name:"v-e44b2e0a",path:"/devices/BM2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-e44b2e0a").then(n)}},{name:"v-bf08e74a",path:"/devices/BM3in1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bf08e74a").then(n)}},{name:"v-0cb1307b",path:"/devices/BPARASITE.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0cb1307b").then(n)}},{name:"v-6e110c1d",path:"/devices/BM4in1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6e110c1d").then(n)}},{name:"v-71dcbd0a",path:"/devices/BM6.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-71dcbd0a").then(n)}},{name:"v-24eacf82",path:"/devices/CGC1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-24eacf82").then(n)}},{name:"v-30fce24a",path:"/devices/BWBSDOO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-30fce24a").then(n)}},{name:"v-6ca26cc1",path:"/devices/CGD1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6ca26cc1").then(n)}},{name:"v-e228f58a",path:"/devices/CGDK2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-e228f58a").then(n)}},{name:"v-2c2c2b72",path:"/devices/CGG1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2c2c2b72").then(n)}},{name:"v-54871c8a",path:"/devices/CGDN1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-54871c8a").then(n)}},{name:"v-6901bec9",path:"/devices/CGH1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6901bec9").then(n)}},{name:"v-befdac4a",path:"/devices/CGP1W.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-befdac4a").then(n)}},{name:"v-aba55e8a",path:"/devices/CGPR1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-aba55e8a").then(n)}},{name:"v-2342d9bb",path:"/devices/H5055.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2342d9bb").then(n)}},{name:"v-392bfc1b",path:"/devices/H5074.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-392bfc1b").then(n)}},{name:"v-d85d80e2",path:"/devices/CGP23W.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-d85d80e2").then(n)}},{name:"v-bd41cf4a",path:"/devices/H5072.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bd41cf4a").then(n)}},{name:"v-f5db240a",path:"/devices/H5075.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-f5db240a").then(n)}},{name:"v-c165b0ca",path:"/devices/H5100.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-c165b0ca").then(n)}},{name:"v-371a0b5b",path:"/devices/H5102.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-371a0b5b").then(n)}},{name:"v-623221ca",path:"/devices/H5104.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-623221ca").then(n)}},{name:"v-2998cd0a",path:"/devices/H5101.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2998cd0a").then(n)}},{name:"v-1acd60fb",path:"/devices/H5105.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1acd60fb").then(n)}},{name:"v-66b3d2db",path:"/devices/H5106.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-66b3d2db").then(n)}},{name:"v-08f0cb9b",path:"/devices/H5177.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-08f0cb9b").then(n)}},{name:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-7871bcfb").then(n)}},{name:"v-be84a14a",path:"/devices/H5179.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-be84a14a").then(n)}},{name:"v-253d75fb",path:"/devices/H5174.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-253d75fb").then(n)}},{name:"v-5c18628a",path:"/devices/HHCCJCY10.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5c18628a").then(n)}},{name:"v-65614ea9",path:"/devices/HHCCPOT002.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-65614ea9").then(n)}},{name:"v-757f164a",path:"/devices/IBS-P01B.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-757f164a").then(n)}},{name:"v-fbeacdca",path:"/devices/IBS_TH1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-fbeacdca").then(n)}},{name:"v-a477c00a",path:"/devices/IBT_4XS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-a477c00a").then(n)}},{name:"v-07efbebb",path:"/devices/IBS_TH2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-07efbebb").then(n)}},{name:"v-bf7262e2",path:"/devices/IBT_2X.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bf7262e2").then(n)}},{name:"v-1faec98a",path:"/devices/IBT_6XS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1faec98a").then(n)}},{name:"v-4693609f",path:"/devices/JAALEE.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-4693609f").then(n)}},{name:"v-6a7237ca",path:"/devices/ITH_12S.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6a7237ca").then(n)}},{name:"v-18e9a14a",path:"/devices/JQJCY01YM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-18e9a14a").then(n)}},{name:"v-0371b60a",path:"/devices/KKM_K6P.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0371b60a").then(n)}},{name:"v-34b6fd3a",path:"/devices/KKM_K9.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-34b6fd3a").then(n)}},{name:"v-af62874e",path:"/devices/LYWSD03MMC.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-af62874e").then(n)}},{name:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5bb593ff").then(n)}},{name:"v-5bcdcd8a",path:"/devices/LYWSD02.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5bcdcd8a").then(n)}},{name:"v-4659520d",path:"/devices/MHO-C401.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-4659520d").then(n)}},{name:"v-562de0e2",path:"/devices/MBXPRO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-562de0e2").then(n)}},{name:"v-5c794abd",path:"/devices/MJWSD05MMC.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5c794abd").then(n)}},{name:"v-38795a5b",path:"/devices/MUE4094RT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-38795a5b").then(n)}},{name:"v-1fcd57e2",path:"/devices/MokoBeacon.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1fcd57e2").then(n)}},{name:"v-50cf667e",path:"/devices/Miband.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-50cf667e").then(n)}},{name:"v-123165ee",path:"/devices/Mopeka.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-123165ee").then(n)}},{name:"v-499a5933",path:"/devices/NODONNIU.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-499a5933").then(n)}},{name:"v-508b6d9b",path:"/devices/ORALB.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-508b6d9b").then(n)}},{name:"v-77595eb9",path:"/devices/ORAS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-77595eb9").then(n)}},{name:"v-36fdd4af",path:"/devices/OTOD.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-36fdd4af").then(n)}},{name:"v-e185e69e",path:"/devices/RuuviTag_RAWv1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-e185e69e").then(n)}},{name:"v-2df958ba",path:"/devices/RDL52832.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2df958ba").then(n)}},{name:"v-17735bb5",path:"/devices/PH10.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-17735bb5").then(n)}},{name:"v-1922252f",path:"/devices/RuuviTag_RAWv2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1922252f").then(n)}},{name:"v-fae7f80a",path:"/devices/SBBT-002C.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-fae7f80a").then(n)}},{name:"v-bb5a0abe",path:"/devices/SBBT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bb5a0abe").then(n)}},{name:"v-3644c2ca",path:"/devices/SBDW-002C.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3644c2ca").then(n)}},{name:"v-acb53b3e",path:"/devices/SBCU.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-acb53b3e").then(n)}},{name:"v-cd9f8836",path:"/devices/SBCS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-cd9f8836").then(n)}},{name:"v-2149b03b",path:"/devices/SBMO-003Z.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2149b03b").then(n)}},{name:"v-18591c37",path:"/devices/SBMT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-18591c37").then(n)}},{name:"v-dfc2ee0e",path:"/devices/SBMS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-dfc2ee0e").then(n)}},{name:"v-72e5f5c9",path:"/devices/SBS1.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-72e5f5c9").then(n)}},{name:"v-1688c53b",path:"/devices/SBOT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1688c53b").then(n)}},{name:"v-2328ba97",path:"/devices/SE_MAG.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-2328ba97").then(n)}},{name:"v-21034dca",path:"/devices/SCD4X.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-21034dca").then(n)}},{name:"v-4e67a81a",path:"/devices/SDLS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-4e67a81a").then(n)}},{name:"v-bcfe58b6",path:"/devices/SE_RHT_PRO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-bcfe58b6").then(n)}},{name:"v-3ad2b88a",path:"/devices/SE_TEMP.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3ad2b88a").then(n)}},{name:"v-d34e370a",path:"/devices/SE_TPROBE.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-d34e370a").then(n)}},{name:"v-00f466fb",path:"/devices/SE_TEMP_PRO.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-00f466fb").then(n)}},{name:"v-1bf8fdbb",path:"/devices/SHT4x.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1bf8fdbb").then(n)}},{name:"v-3e2f1c8a",path:"/devices/SOLIS_6.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3e2f1c8a").then(n)}},{name:"v-1ef034fb",path:"/devices/ServiceData.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef034fb").then(n)}},{name:"v-a0f1084a",path:"/devices/Skale.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-a0f1084a").then(n)}},{name:"v-50cfa3e3",path:"/devices/T301.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-50cfa3e3").then(n)}},{name:"v-26262fb6",path:"/devices/T201.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-26262fb6").then(n)}},{name:"v-77a5bafb",path:"/devices/TP357.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-77a5bafb").then(n)}},{name:"v-6ce925e9",path:"/devices/TILT.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-6ce925e9").then(n)}},{name:"v-78e7a64a",path:"/devices/TP358.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-78e7a64a").then(n)}},{name:"v-0bab1bfb",path:"/devices/TP393.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0bab1bfb").then(n)}},{name:"v-1ef9895f",path:"/devices/TPMS.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef9895f").then(n)}},{name:"v-0f729ebb",path:"/devices/TP359.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0f729ebb").then(n)}},{name:"v-5261d156",path:"/devices/ThermoBeacon.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5261d156").then(n)}},{name:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-7b51fb7b").then(n)}},{name:"v-0c830cdb",path:"/devices/XMTZC05HM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0c830cdb").then(n)}},{name:"v-588a4461",path:"/devices/devices_by_brand.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-588a4461").then(n)}},{name:"v-75a52741",path:"/devices/XOSSX2.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-75a52741").then(n)}},{name:"v-35f4f98a",path:"/devices/iBeacon.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-35f4f98a").then(n)}},{name:"v-b8fe1e0a",path:"/devices/iNodeEM.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-b8fe1e0a").then(n)}},{name:"v-1350da9e",path:"/devices/rows.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-1350da9e").then(n)}},{name:"v-0db7e63b",path:"/use/ESP32.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-0db7e63b").then(n)}},{name:"v-43b9401b",path:"/participate/support.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-43b9401b").then(n)}},{name:"v-5e1da45b",path:"/use/include.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-5e1da45b").then(n)}},{name:"v-54537f3f",path:"/use/python.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-54537f3f").then(n)}},{name:"v-3766ecca",path:"/participate/adding-decoders.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3766ecca").then(n)}},{name:"v-3dbed0ca",path:"/participate/development.html",component:Us,beforeEnter:(t,e,n)=>{fs("Layout","v-3dbed0ca").then(n)}},{path:"*",component:Us}],Ls={title:"Theengs Decoder: BLE message decoder",description:"Theengs: the open-source interoperability platform that bridges hundreds of sensors into one interface. Compatible with major IoT and home automation solutions like AWS, OpenHAB, Home Assistant, and Jeedom. It supports MQTT protocol, enabling efficient integration and automation.",base:"/",headTags:[["meta",{name:"viewport",content:"width=device-width, initial-scale=1"}],["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"}],["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"}],["link",{rel:"mask-icon",href:"/icons/safari-pinned-tab.svg",color:"#3eaf7c"}],["meta",{name:"msapplication-TileImage",content:"/favicon-144x144.png"}],["meta",{name:"msapplication-TileColor",content:"#000000"}]],pages:[{title:"April Brother N07",frontmatter:{},regularPath:"/devices/ABN07.html",relativePath:"devices/ABN07.md",key:"v-5e433cca",path:"/devices/ABN07.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Theengs BLE decoder",frontmatter:{title:"Theengs BLE decoder"},regularPath:"/",relativePath:"README.md",key:"v-92347580",path:"/",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"April Brother N03",frontmatter:{},regularPath:"/devices/ABN03.html",relativePath:"devices/ABN03.md",key:"v-bd76cbca",path:"/devices/ABN03.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"April Brother ABTemp",frontmatter:{},regularPath:"/devices/ABTemp.html",relativePath:"devices/ABTemp.md",key:"v-cb67a10e",path:"/devices/ABTemp.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Amazfit Smart Watch/Band",frontmatter:{},regularPath:"/devices/Amazfit.html",relativePath:"devices/Amazfit.md",key:"v-590a8cca",path:"/devices/Amazfit.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Apple iPhone/iPad",frontmatter:{},regularPath:"/devices/AppleDevice.html",relativePath:"devices/AppleDevice.md",key:"v-62a567ca",path:"/devices/AppleDevice.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Amphiro/Oras/Hansa Hydractiva/Activejet Digital",frontmatter:{},regularPath:"/devices/Amphiro.html",relativePath:"devices/Amphiro.md",key:"v-66cd695b",path:"/devices/Amphiro.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Apple Watch",frontmatter:{},regularPath:"/devices/AppleWatch.html",relativePath:"devices/AppleWatch.md",key:"v-cd7fa48e",path:"/devices/AppleWatch.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Aranet Aranet4 CO₂ Monitor",frontmatter:{},regularPath:"/devices/Aranet4.html",relativePath:"devices/Aranet4.md",key:"v-7be1050a",path:"/devices/Aranet4.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"BlueCharm Beacon 08/04P/021 - KKM K8/K4/K21",frontmatter:{},regularPath:"/devices/BC08.html",relativePath:"devices/BC08.md",key:"v-df3fa35e",path:"/devices/BC08.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Blue Maestro Tempo Disc Temperature",frontmatter:{},regularPath:"/devices/BM1in1.html",relativePath:"devices/BM1in1.md",key:"v-05508cd7",path:"/devices/BM1in1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"BM2 Battery Monitor",frontmatter:{},regularPath:"/devices/BM2.html",relativePath:"devices/BM2.md",key:"v-e44b2e0a",path:"/devices/BM2.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Blue Maestro Tempo Disc 3 in 1",frontmatter:{},regularPath:"/devices/BM3in1.html",relativePath:"devices/BM3in1.md",key:"v-bf08e74a",path:"/devices/BM3in1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"rbaron b-parasite",frontmatter:{},regularPath:"/devices/BPARASITE.html",relativePath:"devices/BPARASITE.md",key:"v-0cb1307b",path:"/devices/BPARASITE.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Blue Maestro Tempo Disc 4 in 1",frontmatter:{},regularPath:"/devices/BM4in1.html",relativePath:"devices/BM4in1.md",key:"v-6e110c1d",path:"/devices/BM4in1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"BM6 Battery Monitor",frontmatter:{},regularPath:"/devices/BM6.html",relativePath:"devices/BM6.md",key:"v-71dcbd0a",path:"/devices/BM6.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ClearGrass/Qingping Alarm and Timer Clock CGC1",frontmatter:{},regularPath:"/devices/CGC1.html",relativePath:"devices/CGC1.md",key:"v-24eacf82",path:"/devices/CGC1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Otio/BeeWi Smart Door & Window Sensor",frontmatter:{},regularPath:"/devices/BWBSDOO.html",relativePath:"devices/BWBSDOO.md",key:"v-30fce24a",path:"/devices/BWBSDOO.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ClearGrass/Qingping Alarm Clock CGD1",frontmatter:{},regularPath:"/devices/CGD1.html",relativePath:"devices/CGD1.md",key:"v-6ca26cc1",path:"/devices/CGD1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Qingping TH Lite CGDK2",frontmatter:{},regularPath:"/devices/CGDK2.html",relativePath:"devices/CGDK2.md",key:"v-e228f58a",path:"/devices/CGDK2.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ClearGrass/Qingping Hygro Thermometer CGG1",frontmatter:{},regularPath:"/devices/CGG1.html",relativePath:"devices/CGG1.md",key:"v-2c2c2b72",path:"/devices/CGG1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Qingping Air Monitor Lite",frontmatter:{},regularPath:"/devices/CGDN1.html",relativePath:"devices/CGDN1.md",key:"v-54871c8a",path:"/devices/CGDN1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Qingping Contact Sensor CGH1",frontmatter:{},regularPath:"/devices/CGH1.html",relativePath:"devices/CGH1.md",key:"v-6901bec9",path:"/devices/CGH1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ClearGrass/Qingping Weather Station CGP1W",frontmatter:{},regularPath:"/devices/CGP1W.html",relativePath:"devices/CGP1W.md",key:"v-befdac4a",path:"/devices/CGP1W.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Qingping Motion & Light CGPR1",frontmatter:{},regularPath:"/devices/CGPR1.html",relativePath:"devices/CGPR1.md",key:"v-aba55e8a",path:"/devices/CGPR1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5055",frontmatter:{},regularPath:"/devices/H5055.html",relativePath:"devices/H5055.md",key:"v-2342d9bb",path:"/devices/H5055.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5074",frontmatter:{},regularPath:"/devices/H5074.html",relativePath:"devices/H5074.md",key:"v-392bfc1b",path:"/devices/H5074.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ClearGrass/Qingping Barometer Pro CGP23W",frontmatter:{},regularPath:"/devices/CGP23W.html",relativePath:"devices/CGP23W.md",key:"v-d85d80e2",path:"/devices/CGP23W.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5072",frontmatter:{},regularPath:"/devices/H5072.html",relativePath:"devices/H5072.md",key:"v-bd41cf4a",path:"/devices/H5072.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5075",frontmatter:{},regularPath:"/devices/H5075.html",relativePath:"devices/H5075.md",key:"v-f5db240a",path:"/devices/H5075.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5100",frontmatter:{},regularPath:"/devices/H5100.html",relativePath:"devices/H5100.md",key:"v-c165b0ca",path:"/devices/H5100.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5102",frontmatter:{},regularPath:"/devices/H5102.html",relativePath:"devices/H5102.md",key:"v-371a0b5b",path:"/devices/H5102.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5104",frontmatter:{},regularPath:"/devices/H5104.html",relativePath:"devices/H5104.md",key:"v-623221ca",path:"/devices/H5104.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5101",frontmatter:{},regularPath:"/devices/H5101.html",relativePath:"devices/H5101.md",key:"v-2998cd0a",path:"/devices/H5101.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5105",frontmatter:{},regularPath:"/devices/H5105.html",relativePath:"devices/H5105.md",key:"v-1acd60fb",path:"/devices/H5105.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5106",frontmatter:{},regularPath:"/devices/H5106.html",relativePath:"devices/H5106.md",key:"v-66b3d2db",path:"/devices/H5106.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5177",frontmatter:{},regularPath:"/devices/H5177.html",relativePath:"devices/H5177.md",key:"v-08f0cb9b",path:"/devices/H5177.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi/VegTrug Mi Flora",frontmatter:{},regularPath:"/devices/HHCCJCY01HHCC.html",relativePath:"devices/HHCCJCY01HHCC.md",key:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5179",frontmatter:{},regularPath:"/devices/H5179.html",relativePath:"devices/H5179.md",key:"v-be84a14a",path:"/devices/H5179.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Govee H5174",frontmatter:{},regularPath:"/devices/H5174.html",relativePath:"devices/H5174.md",key:"v-253d75fb",path:"/devices/H5174.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi Mi Flora (pink version)",frontmatter:{},regularPath:"/devices/HHCCJCY10.html",relativePath:"devices/HHCCJCY10.md",key:"v-5c18628a",path:"/devices/HHCCJCY10.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi RoPot",frontmatter:{},regularPath:"/devices/HHCCPOT002.html",relativePath:"devices/HHCCPOT002.md",key:"v-65614ea9",path:"/devices/HHCCPOT002.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird P01B",frontmatter:{},regularPath:"/devices/IBS-P01B.html",relativePath:"devices/IBS-P01B.md",key:"v-757f164a",path:"/devices/IBS-P01B.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird TH1",frontmatter:{},regularPath:"/devices/IBS_TH1.html",relativePath:"devices/IBS_TH1.md",key:"v-fbeacdca",path:"/devices/IBS_TH1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird 4X(S/C) BBQ",frontmatter:{},regularPath:"/devices/IBT_4XS.html",relativePath:"devices/IBT_4XS.md",key:"v-a477c00a",path:"/devices/IBT_4XS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird TH2",frontmatter:{},regularPath:"/devices/IBS_TH2.html",relativePath:"devices/IBS_TH2.md",key:"v-07efbebb",path:"/devices/IBS_TH2.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird 2X(S) BBQ",frontmatter:{},regularPath:"/devices/IBT_2X.html",relativePath:"devices/IBT_2X.md",key:"v-bf7262e2",path:"/devices/IBT_2X.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird 6X(S) BBQ",frontmatter:{},regularPath:"/devices/IBT_6XS.html",relativePath:"devices/IBT_6XS.md",key:"v-1faec98a",path:"/devices/IBT_6XS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Jaalee TH sensor F525/F51C",frontmatter:{},regularPath:"/devices/JAALEE.html",relativePath:"devices/JAALEE.md",key:"v-4693609f",path:"/devices/JAALEE.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Inkbird ITH-12S",frontmatter:{},regularPath:"/devices/ITH_12S.html",relativePath:"devices/ITH_12S.md",key:"v-6a7237ca",path:"/devices/ITH_12S.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi Formaldehyde detector",frontmatter:{},regularPath:"/devices/JQJCY01YM.html",relativePath:"devices/JQJCY01YM.md",key:"v-18e9a14a",path:"/devices/JQJCY01YM.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"KKM Long Range Beacon K6P",frontmatter:{},regularPath:"/devices/KKM_K6P.html",relativePath:"devices/KKM_K6P.md",key:"v-0371b60a",path:"/devices/KKM_K6P.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"KKM Tracking Beacon K9",frontmatter:{},regularPath:"/devices/KKM_K9.html",relativePath:"devices/KKM_K9.md",key:"v-34b6fd3a",path:"/devices/KKM_K9.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi LYWSD03MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/LYWSD03MMC.html",relativePath:"devices/LYWSD03MMC.md",key:"v-af62874e",path:"/devices/LYWSD03MMC.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi LYWSDCGQ",frontmatter:{},regularPath:"/devices/LYWSDCGQ.html",relativePath:"devices/LYWSDCGQ.md",key:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi/Mijia LYWSD02 e-ink Clock",frontmatter:{},regularPath:"/devices/LYWSD02.html",relativePath:"devices/LYWSD02.md",key:"v-5bcdcd8a",path:"/devices/LYWSD02.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi MHO-C401/MMC-C401 ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/MHO-C401.html",relativePath:"devices/MHO-C401.md",key:"v-4659520d",path:"/devices/MHO-C401.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"MokoSmart Pro",frontmatter:{},regularPath:"/devices/MBXPRO.html",relativePath:"devices/MBXPRO.md",key:"v-562de0e2",path:"/devices/MBXPRO.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi MJWSD05MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/MJWSD05MMC.html",relativePath:"devices/MJWSD05MMC.md",key:"v-5c794abd",path:"/devices/MJWSD05MMC.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi Motion sensor and light",frontmatter:{},regularPath:"/devices/MUE4094RT.html",relativePath:"devices/MUE4094RT.md",key:"v-38795a5b",path:"/devices/MUE4094RT.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"MokoSmart Beacon",frontmatter:{},regularPath:"/devices/MokoBeacon.html",relativePath:"devices/MokoBeacon.md",key:"v-1fcd57e2",path:"/devices/MokoBeacon.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi Mi Band",frontmatter:{},regularPath:"/devices/Miband.html",relativePath:"devices/Miband.md",key:"v-50cf667e",path:"/devices/Miband.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Mopeka/Lippert Pro Check (Universal)/BottleCheck Sensor",frontmatter:{},regularPath:"/devices/Mopeka.html",relativePath:"devices/Mopeka.md",key:"v-123165ee",path:"/devices/Mopeka.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"NodOn NIU smart button",frontmatter:{},regularPath:"/devices/NODONNIU.html",relativePath:"devices/NODONNIU.md",key:"v-499a5933",path:"/devices/NODONNIU.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Oral-B Bluetooth Toothbrush",frontmatter:{},regularPath:"/devices/ORALB.html",relativePath:"devices/ORALB.md",key:"v-508b6d9b",path:"/devices/ORALB.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Amphiro/Oras/Hansa Smart Faucet",frontmatter:{},regularPath:"/devices/ORAS.html",relativePath:"devices/ORAS.md",key:"v-77595eb9",path:"/devices/ORAS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Otodata RC1010 Rotarex-compatible Monitor",frontmatter:{},regularPath:"/devices/OTOD.html",relativePath:"devices/OTOD.md",key:"v-36fdd4af",path:"/devices/OTOD.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"RuuviTag (RAWv1 data format)",frontmatter:{},regularPath:"/devices/RuuviTag_RAWv1.html",relativePath:"devices/RuuviTag_RAWv1.md",key:"v-e185e69e",path:"/devices/RuuviTag_RAWv1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"RDL52832",frontmatter:{},regularPath:"/devices/RDL52832.html",relativePath:"devices/RDL52832.md",key:"v-2df958ba",path:"/devices/RDL52832.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Polar H10 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/PH10.html",relativePath:"devices/PH10.md",key:"v-17735bb5",path:"/devices/PH10.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"RuuviTag (RAWv2 data format)",frontmatter:{},regularPath:"/devices/RuuviTag_RAWv2.html",relativePath:"devices/RuuviTag_RAWv2.md",key:"v-1922252f",path:"/devices/RuuviTag_RAWv2.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ShellyBLU Button1",frontmatter:{},regularPath:"/devices/SBBT-002C.html",relativePath:"devices/SBBT-002C.md",key:"v-fae7f80a",path:"/devices/SBBT-002C.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Blind Tilt",frontmatter:{},regularPath:"/devices/SBBT.html",relativePath:"devices/SBBT.md",key:"v-bb5a0abe",path:"/devices/SBBT.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ShellyBLU Door/Window",frontmatter:{},regularPath:"/devices/SBDW-002C.html",relativePath:"devices/SBDW-002C.md",key:"v-3644c2ca",path:"/devices/SBDW-002C.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Curtain",frontmatter:{},regularPath:"/devices/SBCU.html",relativePath:"devices/SBCU.md",key:"v-acb53b3e",path:"/devices/SBCU.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Contact Sensor",frontmatter:{},regularPath:"/devices/SBCS.html",relativePath:"devices/SBCS.md",key:"v-cd9f8836",path:"/devices/SBCS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ShellyBLU Motion",frontmatter:{},regularPath:"/devices/SBMO-003Z.html",relativePath:"devices/SBMO-003Z.md",key:"v-2149b03b",path:"/devices/SBMO-003Z.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Meter (Plus)",frontmatter:{},regularPath:"/devices/SBMT.html",relativePath:"devices/SBMT.md",key:"v-18591c37",path:"/devices/SBMT.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Motion Sensor",frontmatter:{},regularPath:"/devices/SBMS.html",relativePath:"devices/SBMS.md",key:"v-dfc2ee0e",path:"/devices/SBMS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Bot",frontmatter:{},regularPath:"/devices/SBS1.html",relativePath:"devices/SBS1.md",key:"v-72e5f5c9",path:"/devices/SBS1.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SwitchBot Outdoor Meter",frontmatter:{},regularPath:"/devices/SBOT.html",relativePath:"devices/SBOT.md",key:"v-1688c53b",path:"/devices/SBOT.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensor Easy Door/Window sensor",frontmatter:{},regularPath:"/devices/SE_MAG.html",relativePath:"devices/SE_MAG.md",key:"v-2328ba97",path:"/devices/SE_MAG.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensirion MyCO₂/CO₂ Gadget SCD4X",frontmatter:{},regularPath:"/devices/SCD4X.html",relativePath:"devices/SCD4X.md",key:"v-21034dca",path:"/devices/SCD4X.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SmartDry Laundry Sensor",frontmatter:{},regularPath:"/devices/SDLS.html",relativePath:"devices/SDLS.md",key:"v-4e67a81a",path:"/devices/SDLS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensor Easy Thermometer and Hygrometer Pro",frontmatter:{},regularPath:"/devices/SE_RHT_PRO.html",relativePath:"devices/SE_RHT_PRO.md",key:"v-bcfe58b6",path:"/devices/SE_RHT_PRO.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensor Easy Thermometer",frontmatter:{},regularPath:"/devices/SE_TEMP.html",relativePath:"devices/SE_TEMP.md",key:"v-3ad2b88a",path:"/devices/SE_TEMP.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensor Easy Thermometer External Probe Pro",frontmatter:{},regularPath:"/devices/SE_TPROBE.html",relativePath:"devices/SE_TPROBE.md",key:"v-d34e370a",path:"/devices/SE_TPROBE.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensor Easy Thermometer Pro",frontmatter:{},regularPath:"/devices/SE_TEMP_PRO.html",relativePath:"devices/SE_TEMP_PRO.md",key:"v-00f466fb",path:"/devices/SE_TEMP_PRO.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Sensirion SHT4X Smart Gadget",frontmatter:{},regularPath:"/devices/SHT4x.html",relativePath:"devices/SHT4x.md",key:"v-1bf8fdbb",path:"/devices/SHT4x.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Tenergy SOLIS 6 BBQ",frontmatter:{},regularPath:"/devices/SOLIS_6.html",relativePath:"devices/SOLIS_6.md",key:"v-3e2f1c8a",path:"/devices/SOLIS_6.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Service data",frontmatter:{},regularPath:"/devices/ServiceData.html",relativePath:"devices/ServiceData.md",key:"v-1ef034fb",path:"/devices/ServiceData.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Atomax Skale I/II",frontmatter:{},regularPath:"/devices/Skale.html",relativePath:"devices/Skale.md",key:"v-a0f1084a",path:"/devices/Skale.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Oria/Brifit/SigmaWit/SensorPro T301",frontmatter:{},regularPath:"/devices/T301.html",relativePath:"devices/T301.md",key:"v-50cfa3e3",path:"/devices/T301.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Oria/Brifit/SigmaWit/SensorPro T201",frontmatter:{},regularPath:"/devices/T201.html",relativePath:"devices/T201.md",key:"v-26262fb6",path:"/devices/T201.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ThermoPro TP357",frontmatter:{},regularPath:"/devices/TP357.html",relativePath:"devices/TP357.md",key:"v-77a5bafb",path:"/devices/TP357.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Tilt Brewing Hydro- Thermometer",frontmatter:{},regularPath:"/devices/TILT.html",relativePath:"devices/TILT.md",key:"v-6ce925e9",path:"/devices/TILT.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ThermoPro TP358",frontmatter:{},regularPath:"/devices/TP358.html",relativePath:"devices/TP358.md",key:"v-78e7a64a",path:"/devices/TP358.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ThermoPro TP393",frontmatter:{},regularPath:"/devices/TP393.html",relativePath:"devices/TP393.md",key:"v-0bab1bfb",path:"/devices/TP393.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"TPMS",frontmatter:{},regularPath:"/devices/TPMS.html",relativePath:"devices/TPMS.md",key:"v-1ef9895f",path:"/devices/TPMS.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"ThermoPro TP359",frontmatter:{},regularPath:"/devices/TP359.html",relativePath:"devices/TP359.md",key:"v-0f729ebb",path:"/devices/TP359.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"SensorBlue/Oria/Brifit ThermoBeacon",frontmatter:{},regularPath:"/devices/ThermoBeacon.html",relativePath:"devices/ThermoBeacon.md",key:"v-5261d156",path:"/devices/ThermoBeacon.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi Mi Smart Scale",frontmatter:{},regularPath:"/devices/XMTZC04HM.html",relativePath:"devices/XMTZC04HM.md",key:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Xiaomi Mi Body Composition Scale",frontmatter:{},regularPath:"/devices/XMTZC05HM.html",relativePath:"devices/XMTZC05HM.md",key:"v-0c830cdb",path:"/devices/XMTZC05HM.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Redirecting...",frontmatter:{redirect:"./devices.html"},regularPath:"/devices/devices_by_brand.html",relativePath:"devices/devices_by_brand.md",key:"v-588a4461",path:"/devices/devices_by_brand.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"XOSS X2 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/XOSSX2.html",relativePath:"devices/XOSSX2.md",key:"v-75a52741",path:"/devices/XOSSX2.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"iBeacon",frontmatter:{},regularPath:"/devices/iBeacon.html",relativePath:"devices/iBeacon.md",key:"v-35f4f98a",path:"/devices/iBeacon.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"iNode Energy Meter",frontmatter:{},regularPath:"/devices/iNodeEM.html",relativePath:"devices/iNodeEM.md",key:"v-b8fe1e0a",path:"/devices/iNodeEM.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Rows",frontmatter:{},regularPath:"/devices/rows.html",relativePath:"devices/rows.md",key:"v-1350da9e",path:"/devices/rows.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Using with ESP32",frontmatter:{},regularPath:"/use/ESP32.html",relativePath:"use/ESP32.md",key:"v-0db7e63b",path:"/use/ESP32.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Supporting the project",frontmatter:{},regularPath:"/participate/support.html",relativePath:"participate/support.md",key:"v-43b9401b",path:"/participate/support.html",lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Using the library in a project",frontmatter:{},regularPath:"/use/include.html",relativePath:"use/include.md",key:"v-5e1da45b",path:"/use/include.html",headers:[{level:3,title:"Example",slug:"example"},{level:3,title:"Encrypted data",slug:"encrypted-data"}],lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Using with Python",frontmatter:{},regularPath:"/use/python.html",relativePath:"use/python.md",key:"v-54537f3f",path:"/use/python.html",headers:[{level:2,title:"Installing from PyPI",slug:"installing-from-pypi"},{level:2,title:"Installing a development version",slug:"installing-a-development-version"},{level:2,title:"Using",slug:"using"},{level:2,title:"Methods",slug:"methods"}],lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Adding decoders",frontmatter:{},regularPath:"/participate/adding-decoders.html",relativePath:"participate/adding-decoders.md",key:"v-3766ecca",path:"/participate/adding-decoders.html",headers:[{level:3,title:"Tag property",slug:"tag-property"},{level:3,title:"Condition",slug:"condition"},{level:3,title:"Properties",slug:"properties"}],lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3},{title:"Development contributions",frontmatter:{},regularPath:"/participate/development.html",relativePath:"participate/development.md",key:"v-3dbed0ca",path:"/participate/development.html",headers:[{level:2,title:"Developer Certificate Of Origin",slug:"developer-certificate-of-origin"}],lastUpdated:"5/20/2024, 4:52:44 PM",lastUpdatedTimestamp:1716223964e3}],themeConfig:{repo:"theengs/decoder",smoothScroll:!0,search:!1,docsDir:"docs",docsBranch:"development",lastUpdated:"Last Updated",editLinks:!0,nav:[{text:"Home",link:"https://www.theengs.io",target:"_self",rel:""},{text:"Use cases",items:[{text:"Smart Home",link:"https://www.theengs.io/usecases/smarthome.html",target:"_self",rel:""},{text:"IoT",link:"https://www.theengs.io/usecases/iot.html",target:"_self",rel:""},{text:"Research",link:"https://www.theengs.io/usecases/research.html",target:"_self",rel:""}]},{text:"Solutions",items:[{text:"Hardware",items:[{text:"Theengs Plug",link:"https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption",target:"_self",rel:""},{text:"Theengs Bridge",link:"https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna",target:"_self",rel:""}]},{text:"Software",items:[{text:"Mobile App",link:"https://app.theengs.io",target:"_self",rel:""},{text:"OpenMQTTGateway",link:"https://docs.openmqttgateway.com",target:"_self",rel:""},{text:"Gateway",link:"https://gateway.theengs.io",target:"_self",rel:""}]},{text:"Core",items:[{text:"Decoder",link:"https://decoder.theengs.io",target:"_self",rel:""},{text:"Web Parser",link:"https://parser.theengs.io",target:"_self",rel:""}]}]},{text:"Compatible devices",link:"https://decoder.theengs.io/devices/devices.html",target:"_self",rel:""},{text:"Community",link:"https://community.openmqttgateway.com",target:"_self",rel:""},{text:"Shop",link:"https://shop.theengs.io/",target:"_self",rel:""},{text:"Sponsor 🤍",link:"https://github.com/sponsors/theengs",target:"_self",rel:""}],sidebar:[["/","0 - What is it for 🏠"],{title:"1 - Use ✈️",sidebarDepth:1,children:["use/include","use/ESP32","use/python"]},{title:"2 - Participate 💻",sidebarDepth:1,children:["participate/adding-decoders","participate/support","participate/development"]}]}};n(234);Vn.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,431))),Vn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,315))),Vn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,316)));n(235);function As(t){const e=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-e.left,y:n.top-e.top}}n(236);var Bs=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},({Vue:t,router:e})=>{e.options.scrollBehavior=(e,n,r)=>{if(r)return window.scrollTo({top:r.y,behavior:"smooth"});if(e.hash){if(t.$vuepress.$get("disableScrollBehavior"))return!1;const n=document.querySelector(e.hash);return!!n&&window.scrollTo({top:As(n).y,behavior:"smooth"})}return window.scrollTo({top:0,behavior:"smooth"})}},{}],Rs=[];class Hs extends class{constructor(){this.store=new Vn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Vn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Hs.prototype,{getPageAsyncComponent:ss,getLayoutAsyncComponent:cs,getAsyncComponent:ls,getVueComponent:us});var Ds={install(t){const e=new Hs;t.$vuepress=e,t.prototype.$vuepress=e}};function Is(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var Ns={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return ps("pageKey",e),Vn.component(e)||Vn.component(e,ss(e)),Vn.component(e)?t(e):t("")}},Ws={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},Gs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Fs=(n(237),n(238),Object($s.a)(Gs,(function(){var t=this._self._c;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{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"}},[t("path",{attrs:{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"}}),this._v(" "),t("polygon",{attrs:{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"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Xs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Vn.config.productionTip=!1,Vn.use(Xi),Vn.use(Ds),Vn.mixin(function(t,e,n=Vn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),a={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),a),{computed:a}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!Vn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Is(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Is(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Is(t,o)?r(o):Is(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Bs.filter(t=>"function"==typeof t).map(e=>e({Vue:Vn,options:r,router:n,siteData:Ls,isServer:t})))}catch(t){console.error(t)}return{app:new Vn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Rs.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file diff --git a/devices/ABN03.html b/devices/ABN03.html index 4e0513f6..43aaa42b 100644 --- a/devices/ABN03.html +++ b/devices/ABN03.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍
GitHub - (opens new window)

# April Brother N03

Model Id ABN03 (opens new window)
Brand April Brother
Model Sensor N03
Short Description Temperature, humidity and light sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, luminance, battery
Encrypted No
Device Tracker
- + (opens new window)

# April Brother N03

Model Id ABN03 (opens new window)
Brand April Brother
Model Sensor N03
Short Description Temperature, humidity and light sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, luminance, battery
Encrypted No
Device Tracker
+ diff --git a/devices/ABN07.html b/devices/ABN07.html index e29ca998..817f7b93 100644 --- a/devices/ABN07.html +++ b/devices/ABN07.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# April Brother N07

Model Id ABN07 (opens new window)
Brand April Brother
Model Sensor N07
Short Description Temperature/humidity sensor
Communication BLE broadcast
Frequency 2.4GHz
Power Source CR2450
Exchanged Data temperature, humidity, battery, packet ID
Encrypted No
Device Tracker

Theengs Decoder supports firmware 4.0.1 and higher on the device.

- + (opens new window)

# April Brother N07

Model Id ABN07 (opens new window)
Brand April Brother
Model Sensor N07
Short Description Temperature/humidity sensor
Communication BLE broadcast
Frequency 2.4GHz
Power Source CR2450
Exchanged Data temperature, humidity, battery, packet ID
Encrypted No
Device Tracker

Theengs Decoder supports firmware 4.0.1 and higher on the device.

+ diff --git a/devices/ABTemp.html b/devices/ABTemp.html index 8704b329..331a0934 100644 --- a/devices/ABTemp.html +++ b/devices/ABTemp.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# April Brother ABTemp

Model Id ABTemp (opens new window)
Brand April Brother
Model ABTemp
Short Description iBeacon with temperature sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data mfid, uuid, major, battery, temperature, txpower @ 1 m
Encrypted No
Device Tracker
- + (opens new window)

# April Brother ABTemp

Model Id ABTemp (opens new window)
Brand April Brother
Model ABTemp
Short Description iBeacon with temperature sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data mfid, uuid, major, battery, temperature, txpower @ 1 m
Encrypted No
Device Tracker
+ diff --git a/devices/Amazfit.html b/devices/Amazfit.html index a26b8eb4..9e67d63c 100644 --- a/devices/Amazfit.html +++ b/devices/Amazfit.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Amazfit Smart Watch/Band

Model Id Amazfit (opens new window)
Brand Amazfit
Model Smart Watch/Band
Short Description Various Amazfit Smart Watch/Band models with step count and activity heart rate monitoring
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data steps, activity heart rate (when activated in the Zepp Life settings)
Encrypted No
Device Tracker
- + (opens new window)

# Amazfit Smart Watch/Band

Model Id Amazfit (opens new window)
Brand Amazfit
Model Smart Watch/Band
Short Description Various Amazfit Smart Watch/Band models with step count and activity heart rate monitoring
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data steps, activity heart rate (when activated in the Zepp Life settings)
Encrypted No
Device Tracker
+ diff --git a/devices/Amphiro.html b/devices/Amphiro.html index 971154ea..3f4b0207 100644 --- a/devices/Amphiro.html +++ b/devices/Amphiro.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Amphiro/Oras/Hansa Hydractiva/Activejet Digital

Model Id ADHS (opens new window)
Brand Amphiro/Oras/Hansa
Model Hydractiva/Activejet Digital
Short Description Digital hand shower giving real-time feedback and statistics
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Powered by the water flow
Exchanged Data session, duration, volume, temperature, energy
Encrypted No
- + (opens new window)

# Amphiro/Oras/Hansa Hydractiva/Activejet Digital

Model Id ADHS (opens new window)
Brand Amphiro/Oras/Hansa
Model Hydractiva/Activejet Digital
Short Description Digital hand shower giving real-time feedback and statistics
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Powered by the water flow
Exchanged Data session, duration, volume, temperature, energy
Encrypted No
+ diff --git a/devices/AppleDevice.html b/devices/AppleDevice.html index e1f7c52f..d573bd77 100644 --- a/devices/AppleDevice.html +++ b/devices/AppleDevice.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Apple iPhone/iPad

Model Id APPLEDEVICE (opens new window)
Brand Apple
Model Apple iPhone/iPad
Short Description Various Apple iPhone/iPad models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data unlocked
Encrypted No
Device Tracker

Currently only usefully working with the Theengs Gateway (opens new window) Identity Address and IRK functionality, to be able to decrypt the randomly changing Bluetooth MAC address to the static identity MAC address.

Instructions on how to get the Identity Address and IRK for an Apple Watch, iPhone or iPad (opens new window)

- + (opens new window)

# Apple iPhone/iPad

Model Id APPLEDEVICE (opens new window)
Brand Apple
Model Apple iPhone/iPad
Short Description Various Apple iPhone/iPad models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data unlocked
Encrypted No
Device Tracker

Currently only usefully working with the Theengs Gateway (opens new window) Identity Address and IRK functionality, to be able to decrypt the randomly changing Bluetooth MAC address to the static identity MAC address.

Instructions on how to get the Identity Address and IRK for an Apple Watch, iPhone or iPad (opens new window)

+ diff --git a/devices/AppleWatch.html b/devices/AppleWatch.html index f8318ea4..a6a17668 100644 --- a/devices/AppleWatch.html +++ b/devices/AppleWatch.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Apple Watch

Model Id APPLEWATCH (opens new window)
Brand Apple
Model Apple Watch
Short Description Various Apple Watch models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data unlocked
Encrypted No
Device Tracker

Currently only usefully working with the Theengs Gateway (opens new window) Identity Address and IRK functionality, to be able to decrypt the randomly changing Bluetooth MAC address to the static identity MAC address.

Instructions on how to get the Identity Address and IRK for an Apple Watch, iPhone or iPad (opens new window)

- + (opens new window)

# Apple Watch

Model Id APPLEWATCH (opens new window)
Brand Apple
Model Apple Watch
Short Description Various Apple Watch models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data unlocked
Encrypted No
Device Tracker

Currently only usefully working with the Theengs Gateway (opens new window) Identity Address and IRK functionality, to be able to decrypt the randomly changing Bluetooth MAC address to the static identity MAC address.

Instructions on how to get the Identity Address and IRK for an Apple Watch, iPhone or iPad (opens new window)

+ diff --git a/devices/Aranet4.html b/devices/Aranet4.html index 5cb0654e..3c796785 100644 --- a/devices/Aranet4.html +++ b/devices/Aranet4.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Aranet Aranet4 CO₂ Monitor

Model Id ARANET4 (opens new window)
Brand Aranet
Model Aranet4 CO₂ Monitor
Short Description Air quality monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, humidity, pressure, carbon dioxide, battery
Encrypted No - BLE broadcast only working when Bluetooth dip switch set to ON
- + (opens new window)

# Aranet Aranet4 CO₂ Monitor

Model Id ARANET4 (opens new window)
Brand Aranet
Model Aranet4 CO₂ Monitor
Short Description Air quality monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, humidity, pressure, carbon dioxide, battery
Encrypted No - BLE broadcast only working when Bluetooth dip switch set to ON
+ diff --git a/devices/BC08.html b/devices/BC08.html index 0ff21628..3197f001 100644 --- a/devices/BC08.html +++ b/devices/BC08.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# BlueCharm Beacon 08/04P/021 - KKM K8/K4/K21

Model Id KSensor (opens new window)
Brand BlueCharm/KKM
Model Beacon 08/04P/021 - K8/K4/K21
Short Description Water-Resistant (not the BC021/K21) MultiBeacon (KBeacon and iBeacon protocols supported)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, acceleration x/y/z-axis, voltage
Encrypted No
Device Tracker
Image BC021
- + (opens new window)

# BlueCharm Beacon 08/04P/021 - KKM K8/K4/K21

Model Id KSensor (opens new window)
Brand BlueCharm/KKM
Model Beacon 08/04P/021 - K8/K4/K21
Short Description Water-Resistant (not the BC021/K21) MultiBeacon (KBeacon and iBeacon protocols supported)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, acceleration x/y/z-axis, voltage
Encrypted No
Device Tracker
Image BC021
+ diff --git a/devices/BM1in1.html b/devices/BM1in1.html index 2a344a1b..b15ef101 100644 --- a/devices/BM1in1.html +++ b/devices/BM1in1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Blue Maestro Tempo Disc Temperature

Model Id TD1in1 (opens new window)
Brand BlueMaestro
Model Tempo Disc
Short Description Red temperature sensor, also available as IP67 waterproof
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032 (IP67 model non-changeable)
Exchanged Data temperature, battery
Encrypted No
Device Tracker
- + (opens new window)

# Blue Maestro Tempo Disc Temperature

Model Id TD1in1 (opens new window)
Brand BlueMaestro
Model Tempo Disc
Short Description Red temperature sensor, also available as IP67 waterproof
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032 (IP67 model non-changeable)
Exchanged Data temperature, battery
Encrypted No
Device Tracker
+ diff --git a/devices/BM2.html b/devices/BM2.html index 5c21a503..d3296624 100644 --- a/devices/BM2.html +++ b/devices/BM2.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# BM2 Battery Monitor

Model Id BM2 (opens new window)
Brand GENERIC
Model BM2 Battery Monitor
Short Description Battery capacity
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 8V-16V or 6V-20V (depending on model)
Exchanged Data battery
Encrypted No
Device Tracker
Image BM2
- + (opens new window)

# BM2 Battery Monitor

Model Id BM2 (opens new window)
Brand GENERIC
Model BM2 Battery Monitor
Short Description Battery capacity
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 8V-16V or 6V-20V (depending on model)
Exchanged Data battery
Encrypted No
Device Tracker
Image BM2
+ diff --git a/devices/BM3in1.html b/devices/BM3in1.html index 39992c38..87d3beaf 100644 --- a/devices/BM3in1.html +++ b/devices/BM3in1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Blue Maestro Tempo Disc 3 in 1

Model Id TD3in1 (opens new window)
Brand BlueMaestro
Model Tempo Disc
Short Description Blue temperature, humidity and dew point sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, dew point, battery
Encrypted No
Device Tracker
- + (opens new window)

# Blue Maestro Tempo Disc 3 in 1

Model Id TD3in1 (opens new window)
Brand BlueMaestro
Model Tempo Disc
Short Description Blue temperature, humidity and dew point sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, dew point, battery
Encrypted No
Device Tracker
+ diff --git a/devices/BM4in1.html b/devices/BM4in1.html index 4aa193ac..8a622faf 100644 --- a/devices/BM4in1.html +++ b/devices/BM4in1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Blue Maestro Tempo Disc 4 in 1

Model Id TD4in1 (opens new window)
Brand BlueMaestro
Model Tempo Disc
Short Description Purple temperature, humidity, dew point and pressure sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, pressure, battery
Encrypted No
Device Tracker
- + (opens new window)

# Blue Maestro Tempo Disc 4 in 1

Model Id TD4in1 (opens new window)
Brand BlueMaestro
Model Tempo Disc
Short Description Purple temperature, humidity, dew point and pressure sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, pressure, battery
Encrypted No
Device Tracker
+ diff --git a/devices/BM6.html b/devices/BM6.html index 1f90f61e..18a7475f 100644 --- a/devices/BM6.html +++ b/devices/BM6.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# BM6 Battery Monitor

Model Id BM6 (opens new window)
Brand GENERIC
Model BM6 Battery Monitor
Short Description Battery capacity
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 6V-20V
Exchanged Data battery
Encrypted No
Device Tracker
- + (opens new window)

# BM6 Battery Monitor

Model Id BM6 (opens new window)
Brand GENERIC
Model BM6 Battery Monitor
Short Description Battery capacity
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 6V-20V
Exchanged Data battery
Encrypted No
Device Tracker
+ diff --git a/devices/BPARASITE.html b/devices/BPARASITE.html index 1baabc69..e811d243 100644 --- a/devices/BPARASITE.html +++ b/devices/BPARASITE.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# rbaron b-parasite

Model Id BPv1.0-1.2 (opens new window)
Brand rbaron
Model b-parasite
Short Description Open hardware and open source soil moisture and ambient temperature/humidity/light sensor https://github.com/rbaron/b-parasite
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data moisture, temperature, humidity, luminance (v1.1.0+), voltage
Encrypted No
Image BPARASITE
- + (opens new window)

# rbaron b-parasite

Model Id BPv1.0-1.2 (opens new window)
Brand rbaron
Model b-parasite
Short Description Open hardware and open source soil moisture and ambient temperature/humidity/light sensor https://github.com/rbaron/b-parasite
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data moisture, temperature, humidity, luminance (v1.1.0+), voltage
Encrypted No
Image BPARASITE
+ diff --git a/devices/BWBSDOO.html b/devices/BWBSDOO.html index f80307a4..b155dd24 100644 --- a/devices/BWBSDOO.html +++ b/devices/BWBSDOO.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Otio/BeeWi Smart Door & Window Sensor

Model Id BSDOO (opens new window)
Brand Otio/BeeWi
Model Door & Window Sensor
Short Description Contact sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data open, battery
Encrypted No
- + (opens new window)

# Otio/BeeWi Smart Door & Window Sensor

Model Id BSDOO (opens new window)
Brand Otio/BeeWi
Model Door & Window Sensor
Short Description Contact sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data open, battery
Encrypted No
+ diff --git a/devices/CGC1.html b/devices/CGC1.html index 485cc0d1..b50c368e 100644 --- a/devices/CGC1.html +++ b/devices/CGC1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ClearGrass/Qingping Alarm and Timer Clock CGC1

Model Id CGC1 (opens new window)
Brand ClearGrass/Qingping
Model Alarm Clock
Short Description Pink or beige alarm and timer clock with temperature and humidity sensors (device needs to be provisioned through the Qingping+ app)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2430
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# ClearGrass/Qingping Alarm and Timer Clock CGC1

Model Id CGC1 (opens new window)
Brand ClearGrass/Qingping
Model Alarm Clock
Short Description Pink or beige alarm and timer clock with temperature and humidity sensors (device needs to be provisioned through the Qingping+ app)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2430
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/CGD1.html b/devices/CGD1.html index c76bc099..1574fb22 100644 --- a/devices/CGD1.html +++ b/devices/CGD1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ClearGrass/Qingping Alarm Clock CGD1

Model Id CGD1 (opens new window)
Brand ClearGrass/Qingping
Model Alarm Clock
Short Description Blue, green or white alarm clock with temperature and humidity sensors. Triggers a blue backlight when pressed (device needs to be provisioned through the Qingping+ app)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, humidity, battery
Encrypted No
Image CGD1
- + (opens new window)

# ClearGrass/Qingping Alarm Clock CGD1

Model Id CGD1 (opens new window)
Brand ClearGrass/Qingping
Model Alarm Clock
Short Description Blue, green or white alarm clock with temperature and humidity sensors. Triggers a blue backlight when pressed (device needs to be provisioned through the Qingping+ app)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, humidity, battery
Encrypted No
Image CGD1
+ diff --git a/devices/CGDK2.html b/devices/CGDK2.html index 5d2e481c..c9b09b76 100644 --- a/devices/CGDK2.html +++ b/devices/CGDK2.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Qingping TH Lite CGDK2

Model Id CGDK2 (opens new window)
Brand Qingping
Model TH Lite
Short Description Simple temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2430
Exchanged Data temperature, humidity, battery, voltage (depending on which CGDK2 firmware is installed)
Encrypted No
Image CGDK2
- + (opens new window)

# Qingping TH Lite CGDK2

Model Id CGDK2 (opens new window)
Brand Qingping
Model TH Lite
Short Description Simple temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2430
Exchanged Data temperature, humidity, battery, voltage (depending on which CGDK2 firmware is installed)
Encrypted No
Image CGDK2
+ diff --git a/devices/CGDN1.html b/devices/CGDN1.html index adb7bf70..55ea0db1 100644 --- a/devices/CGDN1.html +++ b/devices/CGDN1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Qingping Air Monitor Lite

Model Id CGDN1 (opens new window)
Brand Qingping
Model Air Monitor Lite
Short Description Air quality monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB-C
Exchanged Data temperature, humidity, PM2.5, PM10, carbon dioxide
Encrypted No - BLE broadcast only working after being paired with a companion app
Image CGDN1
- + (opens new window)

# Qingping Air Monitor Lite

Model Id CGDN1 (opens new window)
Brand Qingping
Model Air Monitor Lite
Short Description Air quality monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB-C
Exchanged Data temperature, humidity, PM2.5, PM10, carbon dioxide
Encrypted No - BLE broadcast only working after being paired with a companion app
Image CGDN1
+ diff --git a/devices/CGG1.html b/devices/CGG1.html index f95f5eec..61b7ef24 100644 --- a/devices/CGG1.html +++ b/devices/CGG1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ClearGrass/Qingping Hygro Thermometer CGG1

Model Id CGG1 (opens new window)
Brand ClearGrass/Qingping
Model Round Hygro Thermometer
Short Description Simple temperature and humidity sensor with e-ink display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2430
Exchanged Data temperature, humidity, battery, voltage (depending on which CGG1 firmware is installed)
Encrypted No
Image CGG1
- + (opens new window)

# ClearGrass/Qingping Hygro Thermometer CGG1

Model Id CGG1 (opens new window)
Brand ClearGrass/Qingping
Model Round Hygro Thermometer
Short Description Simple temperature and humidity sensor with e-ink display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2430
Exchanged Data temperature, humidity, battery, voltage (depending on which CGG1 firmware is installed)
Encrypted No
Image CGG1
+ diff --git a/devices/CGH1.html b/devices/CGH1.html index 8a406696..2887228d 100644 --- a/devices/CGH1.html +++ b/devices/CGH1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Qingping Contact Sensor CGH1

Model Id CGH1 (opens new window)
Brand Qingping
Model Contact sensor
Short Description Door/Window contact sensor with Open-Close status
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR1632
Exchanged Data open
Encrypted No
Image CGH1
- + (opens new window)

# Qingping Contact Sensor CGH1

Model Id CGH1 (opens new window)
Brand Qingping
Model Contact sensor
Short Description Door/Window contact sensor with Open-Close status
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR1632
Exchanged Data open
Encrypted No
Image CGH1
+ diff --git a/devices/CGP1W.html b/devices/CGP1W.html index f2324b78..6d1419b2 100644 --- a/devices/CGP1W.html +++ b/devices/CGP1W.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ClearGrass/Qingping Weather Station CGP1W

Model Id CGP1W (opens new window)
Brand ClearGrass/Qingping
Model Weather Station
Short Description Rechargeable temperature, humidity and atmospheric pressure sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Internal battery/USB
Exchanged Data temperature, humidity, atmospheric pressure, battery
Encrypted No
Image CGP1W
- + (opens new window)

# ClearGrass/Qingping Weather Station CGP1W

Model Id CGP1W (opens new window)
Brand ClearGrass/Qingping
Model Weather Station
Short Description Rechargeable temperature, humidity and atmospheric pressure sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Internal battery/USB
Exchanged Data temperature, humidity, atmospheric pressure, battery
Encrypted No
Image CGP1W
+ diff --git a/devices/CGP23W.html b/devices/CGP23W.html index b2e661d6..5ca56b14 100644 --- a/devices/CGP23W.html +++ b/devices/CGP23W.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ClearGrass/Qingping Barometer Pro CGP23W

Model Id CGP1W (opens new window)
Brand ClearGrass/Qingping
Model Barometer Pro
Short Description Rechargeable temperature, humidity and atmospheric pressure sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Internal battery/USB-C
Exchanged Data temperature, humidity, atmospheric pressure, battery
Encrypted No
- + (opens new window)

# ClearGrass/Qingping Barometer Pro CGP23W

Model Id CGP1W (opens new window)
Brand ClearGrass/Qingping
Model Barometer Pro
Short Description Rechargeable temperature, humidity and atmospheric pressure sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Internal battery/USB-C
Exchanged Data temperature, humidity, atmospheric pressure, battery
Encrypted No
+ diff --git a/devices/CGPR1.html b/devices/CGPR1.html index 12de2fe4..cbc2b76e 100644 --- a/devices/CGPR1.html +++ b/devices/CGPR1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Qingping Motion & Light CGPR1

Model Id CGPR1 (opens new window)
Brand Qingping
Model Motion & Light
Short Description Motion and ambient light sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2450
Exchanged Data luminance, motion, battery
Encrypted No
Image CGPR1
- + (opens new window)

# Qingping Motion & Light CGPR1

Model Id CGPR1 (opens new window)
Brand Qingping
Model Motion & Light
Short Description Motion and ambient light sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2450
Exchanged Data luminance, motion, battery
Encrypted No
Image CGPR1
+ diff --git a/devices/H5055.html b/devices/H5055.html index a6f8cf55..66c2672c 100644 --- a/devices/H5055.html +++ b/devices/H5055.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5055

Model Id H5055 (opens new window)
Brand Govee
Model Bluetooth BBQ Thermometer
Short Description Bluetooth BBQ Thermometer with 6 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, battery
Encrypted No
- + (opens new window)

# Govee H5055

Model Id H5055 (opens new window)
Brand Govee
Model Bluetooth BBQ Thermometer
Short Description Bluetooth BBQ Thermometer with 6 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, battery
Encrypted No
+ diff --git a/devices/H5072.html b/devices/H5072.html index 44ceb187..ee45e1dc 100644 --- a/devices/H5072.html +++ b/devices/H5072.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5072

Model Id H5072 (opens new window)
Brand Govee
Model Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5072

Model Id H5072 (opens new window)
Brand Govee
Model Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5074.html b/devices/H5074.html index 4637a258..440d26f0 100644 --- a/devices/H5074.html +++ b/devices/H5074.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5074

Model Id H5074 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with large LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2477
Exchanged Data temperature, humidity, battery
Encrypted No
Image H5074
- + (opens new window)

# Govee H5074

Model Id H5074 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with large LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2477
Exchanged Data temperature, humidity, battery
Encrypted No
Image H5074
+ diff --git a/devices/H5075.html b/devices/H5075.html index 9bbcfc49..caebe210 100644 --- a/devices/H5075.html +++ b/devices/H5075.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5075

Model Id H5075 (opens new window)
Brand Govee
Model Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with large LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image H5075
- + (opens new window)

# Govee H5075

Model Id H5075 (opens new window)
Brand Govee
Model Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with large LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image H5075
+ diff --git a/devices/H5100.html b/devices/H5100.html index a6e84da8..36084ce4 100644 --- a/devices/H5100.html +++ b/devices/H5100.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5100

Model Id H5100 (opens new window)
Brand Govee
Model Smart Thermo Hygrometer
Short Description Mini Indoor Digital Humidity and Temperature monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5100

Model Id H5100 (opens new window)
Brand Govee
Model Smart Thermo Hygrometer
Short Description Mini Indoor Digital Humidity and Temperature monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5101.html b/devices/H5101.html index 79a056b0..3a2e3c22 100644 --- a/devices/H5101.html +++ b/devices/H5101.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5101

Model Id H5101 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5101

Model Id H5101 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5102.html b/devices/H5102.html index f470932a..c945defd 100644 --- a/devices/H5102.html +++ b/devices/H5102.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5102

Model Id H5102 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5102

Model Id H5102 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5104.html b/devices/H5104.html index 73a1b626..462720df 100644 --- a/devices/H5104.html +++ b/devices/H5104.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5104

Model Id H5104 (opens new window)
Brand Govee
Model Smart Thermo Hygrometer
Short Description Indoor Digital Humidity and Temperature monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5104

Model Id H5104 (opens new window)
Brand Govee
Model Smart Thermo Hygrometer
Short Description Indoor Digital Humidity and Temperature monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5105.html b/devices/H5105.html index 7afdcf4d..ee63429f 100644 --- a/devices/H5105.html +++ b/devices/H5105.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5105

Model Id H5105 (opens new window)
Brand Govee
Model Smart Thermo Hygrometer
Short Description Indoor Digital Humidity and Temperature monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5105

Model Id H5105 (opens new window)
Brand Govee
Model Smart Thermo Hygrometer
Short Description Indoor Digital Humidity and Temperature monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5106.html b/devices/H5106.html index 2d2a944c..f8c74c1b 100644 --- a/devices/H5106.html +++ b/devices/H5106.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5106

Model Id H5106 (opens new window)
Brand Govee
Model Smart Air Quality Monitor
Short Description Air quality monitor with temperature, humidity and PM2.5
Communication BLE broadcast
Frequency 2.4Ghz
Power Source USB-C
Exchanged Data temperature, humidity, PM2.5
Encrypted No
Image H5106
- + (opens new window)

# Govee H5106

Model Id H5106 (opens new window)
Brand Govee
Model Smart Air Quality Monitor
Short Description Air quality monitor with temperature, humidity and PM2.5
Communication BLE broadcast
Frequency 2.4Ghz
Power Source USB-C
Exchanged Data temperature, humidity, PM2.5
Encrypted No
Image H5106
+ diff --git a/devices/H5174.html b/devices/H5174.html index 859eb1d8..d814c711 100644 --- a/devices/H5174.html +++ b/devices/H5174.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5174

Model Id H5174 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5174

Model Id H5174 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Indoor digital temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5177.html b/devices/H5177.html index fc449c5c..16c4c201 100644 --- a/devices/H5177.html +++ b/devices/H5177.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5177

Model Id H5177 (opens new window)
Brand Govee
Model Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5177

Model Id H5177 (opens new window)
Brand Govee
Model Thermo-Hygrometer
Short Description Indoor digital temperature and humidity monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/H5179.html b/devices/H5179.html index 40ce8638..ccd901b7 100644 --- a/devices/H5179.html +++ b/devices/H5179.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5179

Model Id H5179 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Govee H5179

Model Id H5179 (opens new window)
Brand Govee
Model Smart Thermo-Hygrometer
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 3 AA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/HHCCJCY01HHCC.html b/devices/HHCCJCY01HHCC.html index 312f115f..53f0c3d2 100644 --- a/devices/HHCCJCY01HHCC.html +++ b/devices/HHCCJCY01HHCC.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi/VegTrug Mi Flora

Model Id HHCCJCY01HHCC (opens new window)
Brand Xiaomi/VegTrug
Model MiFlora
Short Description Moisture, light, temperature and fertility sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, moisture, fertility, luminance
Encrypted No
Image HHCCJCY01HHCC
- + (opens new window)

# Xiaomi/VegTrug Mi Flora

Model Id HHCCJCY01HHCC (opens new window)
Brand Xiaomi/VegTrug
Model MiFlora
Short Description Moisture, light, temperature and fertility sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, moisture, fertility, luminance
Encrypted No
Image HHCCJCY01HHCC
+ diff --git a/devices/HHCCJCY10.html b/devices/HHCCJCY10.html index 307cbcba..832612ee 100644 --- a/devices/HHCCJCY10.html +++ b/devices/HHCCJCY10.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi Mi Flora (pink version)

Model Id HHCCJCY10 (opens new window)
Brand Xiaomi
Model MiFlora
Short Description Temperature, moisture, light and fertility sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, moisture, luminance, fertility, battery
Encrypted No
- + (opens new window)

# Xiaomi Mi Flora (pink version)

Model Id HHCCJCY10 (opens new window)
Brand Xiaomi
Model MiFlora
Short Description Temperature, moisture, light and fertility sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, moisture, luminance, fertility, battery
Encrypted No
+ diff --git a/devices/HHCCPOT002.html b/devices/HHCCPOT002.html index a1407060..f297a3a3 100644 --- a/devices/HHCCPOT002.html +++ b/devices/HHCCPOT002.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi RoPot

Model Id HHCCPOT002 (opens new window)
Brand Xiaomi
Model RoPot
Short Description Moisture, temperature and fertility sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB
Exchanged Data moisture, fertility
Encrypted No
- + (opens new window)

# Xiaomi RoPot

Model Id HHCCPOT002 (opens new window)
Brand Xiaomi
Model RoPot
Short Description Moisture, temperature and fertility sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB
Exchanged Data moisture, fertility
Encrypted No
+ diff --git a/devices/IBS-P01B.html b/devices/IBS-P01B.html index 12d6d1f5..e29f8394 100644 --- a/devices/IBS-P01B.html +++ b/devices/IBS-P01B.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird P01B

Model Id IBS-P01B (opens new window)
Brand Inkbird
Model Pool Thermometer
Short Description Pool temperature sensor IPX7
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, battery
Encrypted No
- + (opens new window)

# Inkbird P01B

Model Id IBS-P01B (opens new window)
Brand Inkbird
Model Pool Thermometer
Short Description Pool temperature sensor IPX7
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, battery
Encrypted No
+ diff --git a/devices/IBS_TH1.html b/devices/IBS_TH1.html index 68f392ff..e9836436 100644 --- a/devices/IBS_TH1.html +++ b/devices/IBS_TH1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird TH1

Model Id IBS-TH1 (opens new window)
Brand Inkbird
Model Thermometer Hygrometer
Short Description Temperature and humidity sensor (also mini and Plus models) with external probe (not mini)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image IBS-TH1
- + (opens new window)

# Inkbird TH1

Model Id IBS-TH1 (opens new window)
Brand Inkbird
Model Thermometer Hygrometer
Short Description Temperature and humidity sensor (also mini and Plus models) with external probe (not mini)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image IBS-TH1
+ diff --git a/devices/IBS_TH2.html b/devices/IBS_TH2.html index b401e70b..4c4c3a6e 100644 --- a/devices/IBS_TH2.html +++ b/devices/IBS_TH2.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird TH2

Model Id IBS-TH2 (opens new window)
Brand Inkbird
Model Thermometer Hygrometer
Short Description Temperature and humidity (not for all models) sensor (also Plus model with external probe)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA/AA
Exchanged Data temperature, humidity, battery
Encrypted No
Image IBS-TH2
- + (opens new window)

# Inkbird TH2

Model Id IBS-TH2 (opens new window)
Brand Inkbird
Model Thermometer Hygrometer
Short Description Temperature and humidity (not for all models) sensor (also Plus model with external probe)
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA/AA
Exchanged Data temperature, humidity, battery
Encrypted No
Image IBS-TH2
+ diff --git a/devices/IBT_2X.html b/devices/IBT_2X.html index ab1fbedd..be56784c 100644 --- a/devices/IBT_2X.html +++ b/devices/IBT_2X.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird 2X(S) BBQ

Model Id IBT_2X(S) (opens new window)
Brand Inkbird
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 2 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA (Rechargeable battery, USB)
Exchanged Data temperature, temperature2
Encrypted No
Image IBT_2X(S)
- + (opens new window)

# Inkbird 2X(S) BBQ

Model Id IBT_2X(S) (opens new window)
Brand Inkbird
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 2 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA (Rechargeable battery, USB)
Exchanged Data temperature, temperature2
Encrypted No
Image IBT_2X(S)
+ diff --git a/devices/IBT_4XS.html b/devices/IBT_4XS.html index 3d4711c8..f0bdb466 100644 --- a/devices/IBT_4XS.html +++ b/devices/IBT_4XS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird 4X(S/C) BBQ

Model Id IBT_4X(S/C) (opens new window)
Brand Inkbird
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 4 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB
Exchanged Data temperature, temperature2, temperature3, temperature4
Encrypted No
Image IBT_4X
- + (opens new window)

# Inkbird 4X(S/C) BBQ

Model Id IBT_4X(S/C) (opens new window)
Brand Inkbird
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 4 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB
Exchanged Data temperature, temperature2, temperature3, temperature4
Encrypted No
Image IBT_4X
+ diff --git a/devices/IBT_6XS.html b/devices/IBT_6XS.html index 6992d20a..a1365119 100644 --- a/devices/IBT_6XS.html +++ b/devices/IBT_6XS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird 6X(S) BBQ

Model Id IBT_6X(S) (opens new window)
Brand Inkbird
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 6 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA (Rechargeable battery, USB)
Exchanged Data temperature, temperature2, temperature3, temperature4, temperature5, temperature6
Encrypted No
- + (opens new window)

# Inkbird 6X(S) BBQ

Model Id IBT_6X(S) (opens new window)
Brand Inkbird
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 6 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA (Rechargeable battery, USB)
Exchanged Data temperature, temperature2, temperature3, temperature4, temperature5, temperature6
Encrypted No
+ diff --git a/devices/ITH_12S.html b/devices/ITH_12S.html index 1f2084b2..bf35937e 100644 --- a/devices/ITH_12S.html +++ b/devices/ITH_12S.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Inkbird ITH-12S

Model Id ITH-12S (opens new window)
Brand Inkbird
Model Thermometer Hygrometer
Short Description Temperature and humidity sensor with display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Inkbird ITH-12S

Model Id ITH-12S (opens new window)
Brand Inkbird
Model Thermometer Hygrometer
Short Description Temperature and humidity sensor with display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/JAALEE.html b/devices/JAALEE.html index 1802ba5c..1ec4fdac 100644 --- a/devices/JAALEE.html +++ b/devices/JAALEE.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Jaalee TH sensor F525/F51C

Model Id F525/F51C (opens new window)
Brand Jaalee
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Jaalee TH sensor F525/F51C

Model Id F525/F51C (opens new window)
Brand Jaalee
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/JQJCY01YM.html b/devices/JQJCY01YM.html index 9ab2314f..4eed6c24 100644 --- a/devices/JQJCY01YM.html +++ b/devices/JQJCY01YM.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi Formaldehyde detector

Model Id JQJCY01YM (opens new window)
Brand Xiaomi
Model Formaldehyde detector
Short Description Honeywell formaldehyde monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data formaldehyde, temperature, humidity, battery
Encrypted No
Image JQJCY01YM
- + (opens new window)

# Xiaomi Formaldehyde detector

Model Id JQJCY01YM (opens new window)
Brand Xiaomi
Model Formaldehyde detector
Short Description Honeywell formaldehyde monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data formaldehyde, temperature, humidity, battery
Encrypted No
Image JQJCY01YM
+ diff --git a/devices/KKM_K6P.html b/devices/KKM_K6P.html index 144dadc4..32e63929 100644 --- a/devices/KKM_K6P.html +++ b/devices/KKM_K6P.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# KKM Long Range Beacon K6P

Model Id K6P (opens new window)
Brand KKM
Model Long Range K6P
Short Description Long Range Sensor Beacon
Communication BLE broadcast
Frequency 2.4Ghz
Power Source ER14505
Exchanged Data temperature, humidity, voltage
Encrypted No
- + (opens new window)

# KKM Long Range Beacon K6P

Model Id K6P (opens new window)
Brand KKM
Model Long Range K6P
Short Description Long Range Sensor Beacon
Communication BLE broadcast
Frequency 2.4Ghz
Power Source ER14505
Exchanged Data temperature, humidity, voltage
Encrypted No
+ diff --git a/devices/KKM_K9.html b/devices/KKM_K9.html index 22b1bbe2..49ee8c1e 100644 --- a/devices/KKM_K9.html +++ b/devices/KKM_K9.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# KKM Tracking Beacon K9

Model Id K9 (opens new window)
Brand KKM
Model Tracking K9
Short Description Pallet Tracking Beacon
Communication BLE broadcast
Frequency 2.4Ghz
Power Source ER14505
Exchanged Data temperature, humidity, voltage, acceleration x/y/z-axis (optional - without recognised as K6P)
Encrypted No
Device Tracker
- + (opens new window)

# KKM Tracking Beacon K9

Model Id K9 (opens new window)
Brand KKM
Model Tracking K9
Short Description Pallet Tracking Beacon
Communication BLE broadcast
Frequency 2.4Ghz
Power Source ER14505
Exchanged Data temperature, humidity, voltage, acceleration x/y/z-axis (optional - without recognised as K6P)
Encrypted No
Device Tracker
+ diff --git a/devices/LYWSD02.html b/devices/LYWSD02.html index 21590f9a..5e8ecdf9 100644 --- a/devices/LYWSD02.html +++ b/devices/LYWSD02.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi/Mijia LYWSD02 e-ink Clock

Model Id LYWSD02 (opens new window)
Brand Xiaomi/Mijia
Model e-ink Clock
Short Description Rectangular clock with e-ink display and temperature/humidity measurement
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2032
Exchanged Data temperature, humidity, battery
Encrypted No
Image LYWSD02MMC
- + (opens new window)

# Xiaomi/Mijia LYWSD02 e-ink Clock

Model Id LYWSD02 (opens new window)
Brand Xiaomi/Mijia
Model e-ink Clock
Short Description Rectangular clock with e-ink display and temperature/humidity measurement
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2032
Exchanged Data temperature, humidity, battery
Encrypted No
Image LYWSD02MMC
+ diff --git a/devices/LYWSD03MMC.html b/devices/LYWSD03MMC.html index dc9b5590..51fd46b5 100644 --- a/devices/LYWSD03MMC.html +++ b/devices/LYWSD03MMC.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi LYWSD03MMC ATC or PVVX firmware

Model Id LYWSD03MMC_ATC/PVVX (opens new window)
Brand Xiaomi
Model Compact Temperature sensor
Short Description Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, battery, voltage (depending on which LYWSD03MMC firmware is installed)
Encrypted Yes/No - Optional
Image LYWSD03MMC
- + (opens new window)

# Xiaomi LYWSD03MMC ATC or PVVX firmware

Model Id LYWSD03MMC_ATC/PVVX (opens new window)
Brand Xiaomi
Model Compact Temperature sensor
Short Description Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, battery, voltage (depending on which LYWSD03MMC firmware is installed)
Encrypted Yes/No - Optional
Image LYWSD03MMC
+ diff --git a/devices/LYWSDCGQ.html b/devices/LYWSDCGQ.html index 7c3ce6a6..39ed50a8 100644 --- a/devices/LYWSDCGQ.html +++ b/devices/LYWSDCGQ.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi LYWSDCGQ

Model Id LYWSDCGQ (opens new window)
Brand Xiaomi
Model Mi Jia
Short Description Round Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image LYWSDCGQ
- + (opens new window)

# Xiaomi LYWSDCGQ

Model Id LYWSDCGQ (opens new window)
Brand Xiaomi
Model Mi Jia
Short Description Round Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image LYWSDCGQ
+ diff --git a/devices/MBXPRO.html b/devices/MBXPRO.html index 9fdf09ed..4e0cf051 100644 --- a/devices/MBXPRO.html +++ b/devices/MBXPRO.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# MokoSmart Pro

Model Id MBXPRO (opens new window)
Brand MOKOSMART
Model H4
Short Description IP66 Waterproof temperature and humidity sensor with accelerometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, acceleration x/y/z-axis, volt
Encrypted No
Device Tracker
Image H4
- + (opens new window)

# MokoSmart Pro

Model Id MBXPRO (opens new window)
Brand MOKOSMART
Model H4
Short Description IP66 Waterproof temperature and humidity sensor with accelerometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, acceleration x/y/z-axis, volt
Encrypted No
Device Tracker
Image H4
+ diff --git a/devices/MHO-C401.html b/devices/MHO-C401.html index 1ed35ba3..24174104 100644 --- a/devices/MHO-C401.html +++ b/devices/MHO-C401.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi MHO-C401/MMC-C401 ATC or PVVX firmware

Model Id MHO/MMC-C401_ATC/PVVX (opens new window)
Brand Xiaomi
Model Compact Temperature sensor
Short Description Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, battery, volt
Encrypted No
Image MHO-C401
- + (opens new window)

# Xiaomi MHO-C401/MMC-C401 ATC or PVVX firmware

Model Id MHO/MMC-C401_ATC/PVVX (opens new window)
Brand Xiaomi
Model Compact Temperature sensor
Short Description Temperature and humidity sensor compact and cost effective with ATC or PVVX firmware
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, battery, volt
Encrypted No
Image MHO-C401
+ diff --git a/devices/MJWSD05MMC.html b/devices/MJWSD05MMC.html index 892377c4..43be9c57 100644 --- a/devices/MJWSD05MMC.html +++ b/devices/MJWSD05MMC.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi MJWSD05MMC ATC or PVVX firmware

Model Id MJWSD05MMC_ATC/PVVX (opens new window)
Brand Xiaomi
Model Compact Temperature sensor
Short Description Temperature and humidity sensor also showing date and time with ATC or PVVX firmware
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery, volt
Encrypted No
- + (opens new window)

# Xiaomi MJWSD05MMC ATC or PVVX firmware

Model Id MJWSD05MMC_ATC/PVVX (opens new window)
Brand Xiaomi
Model Compact Temperature sensor
Short Description Temperature and humidity sensor also showing date and time with ATC or PVVX firmware
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery, volt
Encrypted No
+ diff --git a/devices/MUE4094RT.html b/devices/MUE4094RT.html index 800b1099..96af0494 100644 --- a/devices/MUE4094RT.html +++ b/devices/MUE4094RT.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi Motion sensor and light

Model Id MUE4094RT (opens new window)
Brand Xiaomi
Model Motion and Light
Short Description Motion sensor and ambient light
Communication BLE broadcast
Frequency 2.4Ghz
Power Source AA
Exchanged Data darkness, motion
Encrypted No
- + (opens new window)

# Xiaomi Motion sensor and light

Model Id MUE4094RT (opens new window)
Brand Xiaomi
Model Motion and Light
Short Description Motion sensor and ambient light
Communication BLE broadcast
Frequency 2.4Ghz
Power Source AA
Exchanged Data darkness, motion
Encrypted No
+ diff --git a/devices/Miband.html b/devices/Miband.html index fa905776..282f4ae4 100644 --- a/devices/Miband.html +++ b/devices/Miband.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi Mi Band

Model Id MiBand (opens new window)
Brand Xiaomi
Model Mi Band
Short Description Fitness band with step count and activity heart rate monitoring
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data steps (*), activity heart rate (when activated in the Zepp Life settings)
Encrypted No
Device Tracker
Image MiBand

(*) Starting with Mi Band 7 the steps don't seem to be freely broadcast any longer so that only the activity heart rate is available.

- + (opens new window)

# Xiaomi Mi Band

Model Id MiBand (opens new window)
Brand Xiaomi
Model Mi Band
Short Description Fitness band with step count and activity heart rate monitoring
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data steps (*), activity heart rate (when activated in the Zepp Life settings)
Encrypted No
Device Tracker
Image MiBand

(*) Starting with Mi Band 7 the steps don't seem to be freely broadcast any longer so that only the activity heart rate is available.

+ diff --git a/devices/MokoBeacon.html b/devices/MokoBeacon.html index 44aef65c..95be1141 100644 --- a/devices/MokoBeacon.html +++ b/devices/MokoBeacon.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# MokoSmart Beacon

Model Id MokoBeacon (opens new window)
Brand MOKOSMART
Model Beacon
Short Description MokoBeacon protocol
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data acceleration x/y/z-axis, battery
Encrypted No
Device Tracker
Image M2
- + (opens new window)

# MokoSmart Beacon

Model Id MokoBeacon (opens new window)
Brand MOKOSMART
Model Beacon
Short Description MokoBeacon protocol
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data acceleration x/y/z-axis, battery
Encrypted No
Device Tracker
Image M2
+ diff --git a/devices/Mopeka.html b/devices/Mopeka.html index 18ba71a5..e21b476c 100644 --- a/devices/Mopeka.html +++ b/devices/Mopeka.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Mopeka/Lippert Pro Check (Universal)/BottleCheck Sensor

Model Id M1017 (opens new window)
Brand Mopeka/Lippert
Model Pro Check (Universal)/BottleCheck Sensor
Short Description Ultrasonic LPG Tank level sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, level, sync status, voltage, battery, reading quality, acceleration x/y-axis
Encrypted No
Image M1017
- + (opens new window)

# Mopeka/Lippert Pro Check (Universal)/BottleCheck Sensor

Model Id M1017 (opens new window)
Brand Mopeka/Lippert
Model Pro Check (Universal)/BottleCheck Sensor
Short Description Ultrasonic LPG Tank level sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, level, sync status, voltage, battery, reading quality, acceleration x/y-axis
Encrypted No
Image M1017
+ diff --git a/devices/NODONNIU.html b/devices/NODONNIU.html index 99015a97..9a983a1c 100644 --- a/devices/NODONNIU.html +++ b/devices/NODONNIU.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# NodOn NIU smart button

Model Id NODONNIU (opens new window)
Brand NodOn
Model NIU smart button
Short Description Bluetooth smart button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type, color, battery
Encrypted No
Device Tracker

The button press type is encoded as:

  • 1 - Single short click
  • 2 - Double click
  • 3 - Triple click
  • 4 - Quadruple click
  • 5 - Quintuple click
  • 9 - Long press
  • 10 - Button release
- + (opens new window)

# NodOn NIU smart button

Model Id NODONNIU (opens new window)
Brand NodOn
Model NIU smart button
Short Description Bluetooth smart button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type, color, battery
Encrypted No
Device Tracker

The button press type is encoded as:

  • 1 - Single short click
  • 2 - Double click
  • 3 - Triple click
  • 4 - Quadruple click
  • 5 - Quintuple click
  • 9 - Long press
  • 10 - Button release
+ diff --git a/devices/ORALB.html b/devices/ORALB.html index 64aa1629..08e5611d 100644 --- a/devices/ORALB.html +++ b/devices/ORALB.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Oral-B Bluetooth Toothbrush

Model Id ORALB_BT (opens new window)
Brand Oral-B
Model BT Toothbrush
Short Description Various Bluetooth connected toothbrush models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data state, mode, sector, pressure, duration
Encrypted No
- + (opens new window)

# Oral-B Bluetooth Toothbrush

Model Id ORALB_BT (opens new window)
Brand Oral-B
Model BT Toothbrush
Short Description Various Bluetooth connected toothbrush models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data state, mode, sector, pressure, duration
Encrypted No
+ diff --git a/devices/ORAS.html b/devices/ORAS.html index 7debb7c5..1f8a0d74 100644 --- a/devices/ORAS.html +++ b/devices/ORAS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Amphiro/Oras/Hansa Smart Faucet

Model Id ORAS (opens new window)
Brand Amphiro/Oras/Hansa
Model Smart Faucet
Short Description Bluetooth Faucet
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Battery or mains
Exchanged Data serial number, battery
Encrypted No
- + (opens new window)

# Amphiro/Oras/Hansa Smart Faucet

Model Id ORAS (opens new window)
Brand Amphiro/Oras/Hansa
Model Smart Faucet
Short Description Bluetooth Faucet
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Battery or mains
Exchanged Data serial number, battery
Encrypted No
+ diff --git a/devices/OTOD.html b/devices/OTOD.html index b2d0fe38..5b61a1a3 100644 --- a/devices/OTOD.html +++ b/devices/OTOD.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Otodata RC1010 Rotarex-compatible Monitor

Model Id RC1010 (opens new window)
Brand Otodata
Model RC1010 Rotarex-compatible Monitor
Short Description BLE monitor for Rotarex Level Gauges
Communication BLE broadcast
Frequency 2.4Ghz
Power Source sealed in non-changeable
Exchanged Data level, status, serial, model type
Encrypted No
- + (opens new window)

# Otodata RC1010 Rotarex-compatible Monitor

Model Id RC1010 (opens new window)
Brand Otodata
Model RC1010 Rotarex-compatible Monitor
Short Description BLE monitor for Rotarex Level Gauges
Communication BLE broadcast
Frequency 2.4Ghz
Power Source sealed in non-changeable
Exchanged Data level, status, serial, model type
Encrypted No
+ diff --git a/devices/PH10.html b/devices/PH10.html index 785e3e7e..5ebf2779 100644 --- a/devices/PH10.html +++ b/devices/PH10.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Polar H10 Heart Rate Sensor

Model Id H10 (opens new window)
Brand Polar
Model Heart Rate Sensor
Short Description Chest strap heart rate sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2025
Exchanged Data heart rate
Encrypted No
- + (opens new window)

# Polar H10 Heart Rate Sensor

Model Id H10 (opens new window)
Brand Polar
Model Heart Rate Sensor
Short Description Chest strap heart rate sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2025
Exchanged Data heart rate
Encrypted No
+ diff --git a/devices/RDL52832.html b/devices/RDL52832.html index d4d379f4..05f55b08 100644 --- a/devices/RDL52832.html +++ b/devices/RDL52832.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# RDL52832

Model Id RDL52832 (opens new window)
Brand Radioland
Model RDL52832
Short Description iBeacon with sensors
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data mfid, uuid, minor, major, txpower @ 1 m, temperature, humidity, acceleration x/y/z-axis
Encrypted No
Device Tracker
- + (opens new window)

# RDL52832

Model Id RDL52832 (opens new window)
Brand Radioland
Model RDL52832
Short Description iBeacon with sensors
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data mfid, uuid, minor, major, txpower @ 1 m, temperature, humidity, acceleration x/y/z-axis
Encrypted No
Device Tracker
+ diff --git a/devices/RuuviTag_RAWv1.html b/devices/RuuviTag_RAWv1.html index 282ee0bf..f7a9ab71 100644 --- a/devices/RuuviTag_RAWv1.html +++ b/devices/RuuviTag_RAWv1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# RuuviTag (RAWv1 data format)

Model Id RuuviTag_RAWv1 (opens new window)
Brand Ruuvi
Model RuuviTag
Short Description Open source environmental sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, humidity, pressure, acceleration x/y/z-axis, voltage
Encrypted No
Device Tracker
- + (opens new window)

# RuuviTag (RAWv1 data format)

Model Id RuuviTag_RAWv1 (opens new window)
Brand Ruuvi
Model RuuviTag
Short Description Open source environmental sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, humidity, pressure, acceleration x/y/z-axis, voltage
Encrypted No
Device Tracker
+ diff --git a/devices/RuuviTag_RAWv2.html b/devices/RuuviTag_RAWv2.html index 02373658..a44fbd79 100644 --- a/devices/RuuviTag_RAWv2.html +++ b/devices/RuuviTag_RAWv2.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# RuuviTag (RAWv2 data format)

Model Id RuuviTag_RAWv2 (opens new window)
Brand Ruuvi
Model RuuviTag
Short Description Open source environmental sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, humidity, pressure, acceleration x/y/z-axis, voltage, TX power, movement counter, measurement sequence number
Encrypted No
Device Tracker
- + (opens new window)

# RuuviTag (RAWv2 data format)

Model Id RuuviTag_RAWv2 (opens new window)
Brand Ruuvi
Model RuuviTag
Short Description Open source environmental sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data temperature, humidity, pressure, acceleration x/y/z-axis, voltage, TX power, movement counter, measurement sequence number
Encrypted No
Device Tracker
+ diff --git a/devices/SBBT-002C.html b/devices/SBBT-002C.html index 2d02690a..ad232d5e 100644 --- a/devices/SBBT-002C.html +++ b/devices/SBBT-002C.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ShellyBLU Button1

Model Id SBBT-002C (opens new window)
Brand Shelly
Model ShellyBLU Button1
Short Description Button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type, battery, packet ID
Encrypted Yes/No - Optional

The button press type is encoded as:

  • 0 - None (sent every 8 seconds if beacon mode is enabled)
  • 1 - Single short click
  • 2 - Double click
  • 3 - Triple click
  • 9 - Long press
- + (opens new window)

# ShellyBLU Button1

Model Id SBBT-002C (opens new window)
Brand Shelly
Model ShellyBLU Button1
Short Description Button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type, battery, packet ID
Encrypted Yes/No - Optional

The button press type is encoded as:

  • 0 - None (sent every 8 seconds if beacon mode is enabled)
  • 1 - Single short click
  • 2 - Double click
  • 3 - Triple click
  • 9 - Long press
+ diff --git a/devices/SBBT.html b/devices/SBBT.html index fcb00f44..78aa942b 100644 --- a/devices/SBBT.html +++ b/devices/SBBT.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Blind Tilt

Model Id W270160X (opens new window)
Brand SwitchBot
Model W270160X
Short Description Venetian blind tilting actor
Communication BLE broadcast
Frequency 2.4Ghz
Power source Solar panel
Exchanged data open, direction, motion, calibrated, light level, battery
Encrypted No
- + (opens new window)

# SwitchBot Blind Tilt

Model Id W270160X (opens new window)
Brand SwitchBot
Model W270160X
Short Description Venetian blind tilting actor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Solar panel
Exchanged Data open, direction, motion, calibrated, light level, battery
Encrypted No
+ diff --git a/devices/SBCS.html b/devices/SBCS.html index 40a5c41b..8d39680c 100644 --- a/devices/SBCS.html +++ b/devices/SBCS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Contact Sensor

Model Id W120150X (opens new window)
Brand SwitchBot
Model Contact Sensor
Short Description Contact sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data contact, motion, light level, scope tested, in count, out count, push count, battery
Encrypted No
- + (opens new window)

# SwitchBot Contact Sensor

Model Id W120150X (opens new window)
Brand SwitchBot
Model Contact Sensor
Short Description Contact sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data contact, motion, light level, scope tested, in count, out count, push count, battery
Encrypted No
+ diff --git a/devices/SBCU.html b/devices/SBCU.html index 3a8ef5f7..013d8b29 100644 --- a/devices/SBCU.html +++ b/devices/SBCU.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Curtain

Model Id W070160X (opens new window)
Brand SwitchBot
Model Curtain (2/3)
Short Description Curtain motor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data moving, position, light level, battery, calibration state
Encrypted No
- + (opens new window)

# SwitchBot Curtain

Model Id W070160X (opens new window)
Brand SwitchBot
Model Curtain (2/3)
Short Description Curtain motor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data moving, position, light level, battery, calibration state
Encrypted No
+ diff --git a/devices/SBDW-002C.html b/devices/SBDW-002C.html index f6e26d44..06a9b251 100644 --- a/devices/SBDW-002C.html +++ b/devices/SBDW-002C.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ShellyBLU Door/Window

Model Id SBDW-002C (opens new window)
Brand Shelly
Model ShellyBLU Door/Window
Short Description Door/window contact sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data open, rotation, battery, packet ID
Encrypted Yes/No - Optional
- + (opens new window)

# ShellyBLU Door/Window

Model Id SBDW-002C (opens new window)
Brand Shelly
Model ShellyBLU Door/Window
Short Description Door/window contact sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data open, rotation, battery, packet ID
Encrypted Yes/No - Optional
+ diff --git a/devices/SBMO-003Z.html b/devices/SBMO-003Z.html index cf4ec3df..0ed1ee21 100644 --- a/devices/SBMO-003Z.html +++ b/devices/SBMO-003Z.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ShellyBLU Motion

Model Id SBMO-003Z (opens new window)
Brand Shelly
Model ShellyBLU Motion
Short Description Motion sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data motion, illuminance, battery, packet ID
Encrypted Yes/No - Optional
- + (opens new window)

# ShellyBLU Motion

Model Id SBMO-003Z (opens new window)
Brand Shelly
Model ShellyBLU Motion
Short Description Motion sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2477
Exchanged Data motion, illuminance, battery, packet ID
Encrypted Yes/No - Optional
+ diff --git a/devices/SBMS.html b/devices/SBMS.html index e1ad1fe9..1c9d200b 100644 --- a/devices/SBMS.html +++ b/devices/SBMS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Motion Sensor

Model Id W110150X (opens new window)
Brand SwitchBot
Model Motion Sensor
Short Description PIR Motion Sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data motion, light level, sensing distance, led, scope tested, battery
Encrypted No
Image W110150X
- + (opens new window)

# SwitchBot Motion Sensor

Model Id W110150X (opens new window)
Brand SwitchBot
Model Motion Sensor
Short Description PIR Motion Sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data motion, light level, sensing distance, led, scope tested, battery
Encrypted No
Image W110150X
+ diff --git a/devices/SBMT.html b/devices/SBMT.html index a8149dfb..676ebaed 100644 --- a/devices/SBMT.html +++ b/devices/SBMT.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Meter (Plus)

Model Id THX1(W230150X) (opens new window)
Brand SwitchBot
Model Meter (Plus)
Short Description Thermometer and Hygrometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image THX1
- + (opens new window)

# SwitchBot Meter (Plus)

Model Id THX1(W230150X) (opens new window)
Brand SwitchBot
Model Meter (Plus)
Short Description Thermometer and Hygrometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
Image THX1
+ diff --git a/devices/SBOT.html b/devices/SBOT.html index 181d4f9a..7b478581 100644 --- a/devices/SBOT.html +++ b/devices/SBOT.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Outdoor Meter

Model Id W340001X (opens new window)
Brand SwitchBot
Model Outdoor Meter
Short Description Indoor/Outdoor Thermometer and Hygrometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# SwitchBot Outdoor Meter

Model Id W340001X (opens new window)
Brand SwitchBot
Model Outdoor Meter
Short Description Indoor/Outdoor Thermometer and Hygrometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/SBS1.html b/devices/SBS1.html index 887a3cbc..d07867d0 100644 --- a/devices/SBS1.html +++ b/devices/SBS1.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Bot

Model Id X1 (opens new window)
Brand SwitchBot
Model Bot
Short Description Switch Button Pusher
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 CR2
Exchanged Data mode, state, battery
Encrypted No
- + (opens new window)

# SwitchBot Bot

Model Id X1 (opens new window)
Brand SwitchBot
Model Bot
Short Description Switch Button Pusher
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 CR2
Exchanged Data mode, state, battery
Encrypted No
+ diff --git a/devices/SCD4X.html b/devices/SCD4X.html index 8dc1317a..2a0da9ce 100644 --- a/devices/SCD4X.html +++ b/devices/SCD4X.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensirion MyCO₂/CO₂ Gadget SCD4X

Model Id SCD4X (opens new window)
Brand Sensirion
Model MyCO₂/CO₂ Gadget
Short Description Temperature, humidity and CO₂ sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source USB
Exchanged Data temperature, humidity, carbon dioxide
Encrypted No
- + (opens new window)

# Sensirion MyCO₂/CO₂ Gadget SCD4X

Model Id SCD4X (opens new window)
Brand Sensirion
Model MyCO₂/CO₂ Gadget
Short Description Temperature, humidity and CO₂ sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source USB
Exchanged Data temperature, humidity, carbon dioxide
Encrypted No
+ diff --git a/devices/SDLS.html b/devices/SDLS.html index ab992811..9da884d6 100644 --- a/devices/SDLS.html +++ b/devices/SDLS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SmartDry Laundry Sensor

Model Id SDLS (opens new window)
Brand SmartDry
Model Laundry Sensor
Short Description Wireless Laundry Sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, shake, voltage, wake
Encrypted No
- + (opens new window)

# SmartDry Laundry Sensor

Model Id SDLS (opens new window)
Brand SmartDry
Model Laundry Sensor
Short Description Wireless Laundry Sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, shake, voltage, wake
Encrypted No
+ diff --git a/devices/SE_MAG.html b/devices/SE_MAG.html index dee0e610..37760f9c 100644 --- a/devices/SE_MAG.html +++ b/devices/SE_MAG.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensor Easy Door/Window sensor

Model Id SE_MAG (opens new window)
Brand Sensor Easy
Model Sensor Easy Door/Window Pro
Short Description Indoor/Outdoor Magnetic sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data open, battery, volt
Encrypted No
- + (opens new window)

# Sensor Easy Door/Window sensor

Model Id SE_MAG (opens new window)
Brand Sensor Easy
Model Sensor Easy Door/Window Pro
Short Description Indoor/Outdoor Magnetic sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data open, battery, volt
Encrypted No
+ diff --git a/devices/SE_RHT_PRO.html b/devices/SE_RHT_PRO.html index 98a69213..e337319b 100644 --- a/devices/SE_RHT_PRO.html +++ b/devices/SE_RHT_PRO.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensor Easy Thermometer and Hygrometer Pro

Model Id SE_RHT (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature and Humidity Pro
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, humidity, battery, volt
Encrypted No
- + (opens new window)

# Sensor Easy Thermometer and Hygrometer Pro

Model Id SE_RHT (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature and Humidity Pro
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, humidity, battery, volt
Encrypted No
+ diff --git a/devices/SE_TEMP.html b/devices/SE_TEMP.html index a2b363a1..3974ec72 100644 --- a/devices/SE_TEMP.html +++ b/devices/SE_TEMP.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensor Easy Thermometer

Model Id SE_TEMP (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, battery, volt
Encrypted No
- + (opens new window)

# Sensor Easy Thermometer

Model Id SE_TEMP (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, battery, volt
Encrypted No
+ diff --git a/devices/SE_TEMP_PRO.html b/devices/SE_TEMP_PRO.html index 91d2c842..fc2430e2 100644 --- a/devices/SE_TEMP_PRO.html +++ b/devices/SE_TEMP_PRO.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensor Easy Thermometer Pro

Model Id SE_TEMP (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature Pro
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, battery, volt
Encrypted No
- + (opens new window)

# Sensor Easy Thermometer Pro

Model Id SE_TEMP (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature Pro
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, battery, volt
Encrypted No
+ diff --git a/devices/SE_TPROBE.html b/devices/SE_TPROBE.html index b1bbeeb9..97932c9e 100644 --- a/devices/SE_TPROBE.html +++ b/devices/SE_TPROBE.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensor Easy Thermometer External Probe Pro

Model Id SE_TPROBE (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature External Probe Pro
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, battery, volt
Encrypted No
- + (opens new window)

# Sensor Easy Thermometer External Probe Pro

Model Id SE_TPROBE (opens new window)
Brand Sensor Easy
Model Sensor Easy Temperature External Probe Pro
Short Description Indoor/Outdoor Thermometer
Communication BLE broadcast
Frequency 2.4Ghz
Power Source embedded
Exchanged Data temperature, battery, volt
Encrypted No
+ diff --git a/devices/SHT4x.html b/devices/SHT4x.html index 02dc1b27..40dcd5ae 100644 --- a/devices/SHT4x.html +++ b/devices/SHT4x.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Sensirion SHT4X Smart Gadget

Model Id SHT4X (opens new window)
Brand Sensirion
Model TH Sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity
Encrypted No
- + (opens new window)

# Sensirion SHT4X Smart Gadget

Model Id SHT4X (opens new window)
Brand Sensirion
Model TH Sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity
Encrypted No
+ diff --git a/devices/SOLIS_6.html b/devices/SOLIS_6.html index c6963949..4281d6f6 100644 --- a/devices/SOLIS_6.html +++ b/devices/SOLIS_6.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Tenergy SOLIS 6 BBQ

Model Id SOLIS_6 (opens new window)
Brand Ternergy
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 6 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, temperature2, temperature3, temperature4, temperature5, temperature6
Encrypted No
- + (opens new window)

# Tenergy SOLIS 6 BBQ

Model Id SOLIS_6 (opens new window)
Brand Ternergy
Model BBQ Temperature sensor
Short Description BBQ Temperature sensor with 6 probes
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, temperature2, temperature3, temperature4, temperature5, temperature6
Encrypted No
+ diff --git a/devices/ServiceData.html b/devices/ServiceData.html index 3150aa50..b503bab8 100644 --- a/devices/ServiceData.html +++ b/devices/ServiceData.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Service data

Model Id ServiceData (opens new window)
Brand GENERIC
Model Service data
Short Description Various devices broadcasting service data for Bluetooth SIG service UUIDs
Communication BLE broadcast
Frequency 2.4Ghz
Power Source various
Exchanged Data battery
Encrypted No
- + (opens new window)

# Service data

Model Id ServiceData (opens new window)
Brand GENERIC
Model Service data
Short Description Various devices broadcasting service data for Bluetooth SIG service UUIDs
Communication BLE broadcast
Frequency 2.4Ghz
Power Source various
Exchanged Data battery
Encrypted No
+ diff --git a/devices/Skale.html b/devices/Skale.html index ec9a6674..ec2ffa3e 100644 --- a/devices/Skale.html +++ b/devices/Skale.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Atomax Skale I/II

Model Id SKALE (opens new window)
Brand Atomax
Model Skale I/II
Short Description Bluetooth kitchen scale
Communication BLE broadcast
Frequency 2.4Ghz
Power Source USB/4 AAA
Exchanged Data weight
Encrypted No
- + (opens new window)

# Atomax Skale I/II

Model Id SKALE (opens new window)
Brand Atomax
Model Skale I/II
Short Description Bluetooth kitchen scale
Communication BLE broadcast
Frequency 2.4Ghz
Power Source USB/4 AAA
Exchanged Data weight
Encrypted No
+ diff --git a/devices/T201.html b/devices/T201.html index eacba13e..f60bb763 100644 --- a/devices/T201.html +++ b/devices/T201.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Oria/Brifit/SigmaWit/SensorPro T201

Model Id T201 (opens new window)
Brand Oria/Brifit/SigmaWit/SensorPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery
Encrypted No
Image T201
- + (opens new window)

# Oria/Brifit/SigmaWit/SensorPro T201

Model Id T201 (opens new window)
Brand Oria/Brifit/SigmaWit/SensorPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2450
Exchanged Data temperature, humidity, battery
Encrypted No
Image T201
+ diff --git a/devices/T301.html b/devices/T301.html index 3e4347cd..5b361a85 100644 --- a/devices/T301.html +++ b/devices/T301.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Oria/Brifit/SigmaWit/SensorPro T301

Model Id T301 (opens new window)
Brand Oria/Brifit/SigmaWit/SensorPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2032
Exchanged Data temperature, humidity, battery
Encrypted No
- + (opens new window)

# Oria/Brifit/SigmaWit/SensorPro T301

Model Id T301 (opens new window)
Brand Oria/Brifit/SigmaWit/SensorPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 CR2032
Exchanged Data temperature, humidity, battery
Encrypted No
+ diff --git a/devices/TILT.html b/devices/TILT.html index 2692a702..0387e66d 100644 --- a/devices/TILT.html +++ b/devices/TILT.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Tilt Brewing Hydro- Thermometer

Model Id TILT (opens new window)
Brand Tilt
Model Brewing Hydro- Thermometer
Short Description Hydro- Thermometer for beer and cidre brewing
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR123A
Exchanged Data color, temperature, specific gravity, txpower @ 1 m
Encrypted No
- + (opens new window)

# Tilt Brewing Hydro- Thermometer

Model Id TILT (opens new window)
Brand Tilt
Model Brewing Hydro- Thermometer
Short Description Hydro- Thermometer for beer and cidre brewing
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR123A
Exchanged Data color, temperature, specific gravity, txpower @ 1 m
Encrypted No
+ diff --git a/devices/TP357.html b/devices/TP357.html index 07cd8830..de148e4b 100644 --- a/devices/TP357.html +++ b/devices/TP357.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ThermoPro TP357

Model Id TP357 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity
Encrypted No
Image TP357
- + (opens new window)

# ThermoPro TP357

Model Id TP357 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 1 AAA
Exchanged Data temperature, humidity
Encrypted No
Image TP357
+ diff --git a/devices/TP358.html b/devices/TP358.html index 651973a4..c17ac130 100644 --- a/devices/TP358.html +++ b/devices/TP358.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ThermoPro TP358

Model Id TP358 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity
Encrypted No
Image TP358
- + (opens new window)

# ThermoPro TP358

Model Id TP358 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity
Encrypted No
Image TP358
+ diff --git a/devices/TP359.html b/devices/TP359.html index 83a7e5c3..6c4ccee6 100644 --- a/devices/TP359.html +++ b/devices/TP359.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ThermoPro TP359

Model Id TP359 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity
Encrypted No
- + (opens new window)

# ThermoPro TP359

Model Id TP359 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, humidity
Encrypted No
+ diff --git a/devices/TP393.html b/devices/TP393.html index 46545efc..10fac71b 100644 --- a/devices/TP393.html +++ b/devices/TP393.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ThermoPro TP393

Model Id TP393 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB-C
Exchanged Data temperature, humidity
Encrypted No
- + (opens new window)

# ThermoPro TP393

Model Id TP393 (opens new window)
Brand ThermoPro
Model TH sensor
Short Description Temperature and humidity sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery, USB-C
Exchanged Data temperature, humidity
Encrypted No
+ diff --git a/devices/TPMS.html b/devices/TPMS.html index 3c5597b0..badba82e 100644 --- a/devices/TPMS.html +++ b/devices/TPMS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# TPMS

Model Id TPMS (opens new window)
Brand Generic
Model Tire pressure monitoring system
Short Description TPMS that can replace the valve cap
Communication BLE broadcast
Frequency 2.4Ghz
Power Source AA
Exchanged Data count, pressure, temperature, battery, alarm
Encrypted No
Image TPMS
- + (opens new window)

# TPMS

Model Id TPMS (opens new window)
Brand Generic
Model Tire pressure monitoring system
Short Description TPMS that can replace the valve cap
Communication BLE broadcast
Frequency 2.4Ghz
Power Source AA
Exchanged Data count, pressure, temperature, battery, alarm
Encrypted No
Image TPMS
+ diff --git a/devices/ThermoBeacon.html b/devices/ThermoBeacon.html index b1dbc834..b6cae85e 100644 --- a/devices/ThermoBeacon.html +++ b/devices/ThermoBeacon.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SensorBlue/Oria/Brifit ThermoBeacon

Model Id WS02/WS08 (opens new window)
Brand SensorBlue/Oria/Brifit
Model ThermoBeacon
Short Description Temperature and humidity sensor, various models sold under various brands
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032/CR2477
Exchanged Data temperature, humidity, voltage, timestamp, maximum temperature, maximum temperature timestamp, minimum temperature, minimum temperature timestamp
Encrypted No

All timestamps are the number of seconds since the device is powered on. The minimum and maximum temperatures are also the values since the device is powered on.

- + (opens new window)

# SensorBlue/Oria/Brifit ThermoBeacon

Model Id WS02/WS08 (opens new window)
Brand SensorBlue/Oria/Brifit
Model ThermoBeacon
Short Description Temperature and humidity sensor, various models sold under various brands
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032/CR2477
Exchanged Data temperature, humidity, voltage, timestamp, maximum temperature, maximum temperature timestamp, minimum temperature, minimum temperature timestamp
Encrypted No

All timestamps are the number of seconds since the device is powered on. The minimum and maximum temperatures are also the values since the device is powered on.

+ diff --git a/devices/XMTZC04HM.html b/devices/XMTZC04HM.html index e4771de3..95df3237 100644 --- a/devices/XMTZC04HM.html +++ b/devices/XMTZC04HM.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi Mi Smart Scale

Model Id XMTZC01HM/XMTZC04HM (opens new window)
Brand Xiaomi
Model Mi Smart Scale
Short Description First (MI_SCALE) and second (MI SCALE2) version of the Mi Smart Scale
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 4 AA/3 AAA
Exchanged Data weighing_mode, unit, weight
Encrypted No
- + (opens new window)

# Xiaomi Mi Smart Scale

Model Id XMTZC01HM/XMTZC04HM (opens new window)
Brand Xiaomi
Model Mi Smart Scale
Short Description First (MI_SCALE) and second (MI SCALE2) version of the Mi Smart Scale
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 4 AA/3 AAA
Exchanged Data weighing_mode, unit, weight
Encrypted No
+ diff --git a/devices/XMTZC05HM.html b/devices/XMTZC05HM.html index bae9f4a6..8f01a11d 100644 --- a/devices/XMTZC05HM.html +++ b/devices/XMTZC05HM.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Xiaomi Mi Body Composition Scale

Model Id XMTZC02HM/XMTZC05HM (opens new window)
Brand Xiaomi
Model Mi Body Composition Scale
Short Description First (MIBCS) and second (MIBFS) version of the Mi Body Composition Scale
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 4 AAA
Exchanged Data weighing_mode, unit, weight, impedance
Encrypted No
Image XMTZC05HM
- + (opens new window)

# Xiaomi Mi Body Composition Scale

Model Id XMTZC02HM/XMTZC05HM (opens new window)
Brand Xiaomi
Model Mi Body Composition Scale
Short Description First (MIBCS) and second (MIBFS) version of the Mi Body Composition Scale
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 4 AAA
Exchanged Data weighing_mode, unit, weight, impedance
Encrypted No
Image XMTZC05HM
+ diff --git a/devices/XOSSX2.html b/devices/XOSSX2.html index 6988e534..04d9e760 100644 --- a/devices/XOSSX2.html +++ b/devices/XOSSX2.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# XOSS X2 Heart Rate Sensor

Model Id XOSSX2 (opens new window)
Brand XOSS
Model X2 Heart Rate Sensor
Short Description Chest strap heart rate sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data heart rate, battery
Encrypted No
- + (opens new window)

# XOSS X2 Heart Rate Sensor

Model Id XOSSX2 (opens new window)
Brand XOSS
Model X2 Heart Rate Sensor
Short Description Chest strap heart rate sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data heart rate, battery
Encrypted No
+ diff --git a/devices/devices.html b/devices/devices.html index 774360ac..24f43103 100644 --- a/devices/devices.html +++ b/devices/devices.html @@ -425,10 +425,10 @@

19 - CGP1W - + CGP1W + ClearGrass/Qingping - Barometer Pro + Weather Station Rechargeable temperature, humidity and atmospheric pressure sensor temperature, humidity, atmospheric pressure, battery @@ -1299,7 +1299,7 @@

SwitchBot W270160X Venetian blind tilting actor - + open, direction, motion, calibrated, light level, battery diff --git a/devices/devices_by_brand.html b/devices/devices_by_brand.html index 1bf854f6..7c131331 100644 --- a/devices/devices_by_brand.html +++ b/devices/devices_by_brand.html @@ -18,7 +18,7 @@ - + @@ -100,7 +100,7 @@ GitHub (opens new window)

# Redirecting...

If you are not redirected automatically, follow this link to the compatible BT devices listing.

- +
+ diff --git a/devices/iBeacon.html b/devices/iBeacon.html index cdbd112e..7f0e57f6 100644 --- a/devices/iBeacon.html +++ b/devices/iBeacon.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# iBeacon

Model Id IBEACON (opens new window)
Brand Generic
Model iBeacon
Short Description iBeacon protocol
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Sensor dependent
Exchanged Data mfid, uuid, minor, major, txpower @ 1 m/voltage
Encrypted No
- + (opens new window)

# iBeacon

Model Id IBEACON (opens new window)
Brand Generic
Model iBeacon
Short Description iBeacon protocol
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Sensor dependent
Exchanged Data mfid, uuid, minor, major, txpower @ 1 m/voltage
Encrypted No
+ diff --git a/devices/iNodeEM.html b/devices/iNodeEM.html index fb568ba0..c2341a2b 100644 --- a/devices/iNodeEM.html +++ b/devices/iNodeEM.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# iNode Energy Meter

Model Id INEM (opens new window)
Brand iNode
Model Energy Meter
Short Description Sensors for electricity or water meters
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032/14250/CR2
Exchanged Data Current average and aggregate kW(h)/m³, battery
Encrypted No
- + (opens new window)

# iNode Energy Meter

Model Id INEM (opens new window)
Brand iNode
Model Energy Meter
Short Description Sensors for electricity or water meters
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032/14250/CR2
Exchanged Data Current average and aggregate kW(h)/m³, battery
Encrypted No
+ diff --git a/devices/rows.html b/devices/rows.html index fc46ac1c..ffaed595 100644 --- a/devices/rows.html +++ b/devices/rows.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Rows

Model Id
Image
Brand
Model
Short Description
Communication
Frequency
Power Source
Exchanged Data
Encrypted
Device Tracker
Filename
- + (opens new window)

# Rows

Model Id
Image
Brand
Model
Short Description
Communication
Frequency
Power Source
Exchanged Data
Encrypted
Device Tracker
Filename
+ diff --git a/index.html b/index.html index 10f3549c..ffe6ba72 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,7 @@ - + @@ -100,11 +100,11 @@ GitHub (opens new window)

# Theengs BLE decoder

Theengs Decoder project aims to provide an efficient, portable and lightweight library for BLE Internet of Things messages decoding.

Iot

Sensors and devices use chains of data to communicate to gateways, computers, servers. Enabling them to have lightweight and fast communication. On the other hand we have a huge diversity of communication methods, resulting in the sensors or devices being closed to one ecosystem or a few.

Theengs Decoder library translates these data chains into human readable data leveraging the well known data interchange format JSON. This format can easily be integrated into different systems or software.

Overview

It's also a simplified way of defining the thing properties and how to decode these.

Theengs Decoder supports the decoding of more than 100 Bluetooth devices (opens new window).

Theengs Decoder can be used on memory constraint environments like micro controllers (ESP32, ESP8266, Arduino), on a PC or on a Unix server. -Unit testing assures that the modification done on the library doesn't affect previous capabilities.

In a few words:

  • Light
  • Portable
  • Expandable
  • Interoperable

Projects using the Theengs Decoder library

Note

The material and information contained in this documentation is for general information purposes only. You should not rely upon the material or information on this documentation as a basis for making any business, legal or any other decisions. There is no warranty given on this documentation content. If you decide to follow the information and materials given it is at your own risk. I will not be liable for any false, inaccurate, inappropriate or incomplete information presented on this website.

- + diff --git a/participate/adding-decoders.html b/participate/adding-decoders.html index 22ee09bc..267780e4 100644 --- a/participate/adding-decoders.html +++ b/participate/adding-decoders.html @@ -18,7 +18,7 @@ - + @@ -210,7 +210,7 @@
1

You can also install pre-commit (opens new window) to run this check every time you commit a file change:

pip install pre-commit
 pre-commit install
 
1
2

The last command should be run in the root directory of the decoder repository.

If you're using Visual Studio Code (opens new window), you can install the pre-commit extension (opens new window). After this, when you have a decoder file open, just open the command palette with Ctrl+Shift+P and choose pre-commit run (current file) to check and fix its JSON strings.

Tip: if you just declare a JSON string with an empty string, such as:

const char* _SBBT_002C_json = "";
-
1

Then the script automatically copies the following raw string in the comment to fill the empty string in the previous line, with all double quotes escaped correctly.

Then the script automatically copies the following raw string in the comment to fill the empty string in the previous line, with all double quotes escaped correctly.

- + diff --git a/participate/development.html b/participate/development.html index a01399df..4b900b71 100644 --- a/participate/development.html +++ b/participate/development.html @@ -18,7 +18,7 @@ - + @@ -130,11 +130,11 @@ any claim against the project maintainers relating to the re-licensing of my contribution under a different license, including any claim for royalties or other compensation. -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

This Developer Certificate Of Origin (DCO) was adopted on September 24, 2021.

The text of this license is available under the Creative Commons Attribution-ShareAlike 3.0 Unported License (opens new window). It is based on the Linux Developer Certificate Of Origin (opens new window).

To accept the DCO it is required to put a x between [ ] on [ ] I accept the DCO in the PR template when submitting it. The [ ] is an opt-in box, so you have to manually accept it.

This Developer Certificate Of Origin (DCO) was adopted on September 24, 2021.

The text of this license is available under the Creative Commons Attribution-ShareAlike 3.0 Unported License (opens new window). It is based on the Linux Developer Certificate Of Origin (opens new window).

To accept the DCO it is required to put a x between [ ] on [ ] I accept the DCO in the PR template when submitting it. The [ ] is an opt-in box, so you have to manually accept it.

- + diff --git a/participate/support.html b/participate/support.html index b71bb856..e1af3472 100644 --- a/participate/support.html +++ b/participate/support.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Supporting the project

If you like the project and/or used it please consider supporting it! It can be done in different ways:

- + diff --git a/use/ESP32.html b/use/ESP32.html index 2ecccf02..644d1167 100644 --- a/use/ESP32.html +++ b/use/ESP32.html @@ -18,7 +18,7 @@ - + @@ -99,7 +99,7 @@ GitHub (opens new window)

# Using with ESP32

The library includes a BLE decoder example (opens new window) based on ESP32, you can open the folder ScanAndDecode (opens new window) with a platformio environment or directly ScanAndDecode.ino (opens new window) with an Arduino IDE.

If Theengs Decoder recognize a device, it will print in the serial output a message like the example below:

TheengsDecoder found device: {"id":"AA:BB:CC:DD:EE:FF","name":"ATC_800021","rssi":-90,"servicedatauuid":"0x181a","brand":"Xiaomi","model":"LYWSD03MMC","model_id":"LYWSD03MMC_ATC","tempc":26.3,"tempf":79.34,"hum":49,"batt":29,"volt":2.487}
-
1
- + diff --git a/use/include.html b/use/include.html index 3a66a63b..21affe7d 100644 --- a/use/include.html +++ b/use/include.html @@ -18,7 +18,7 @@ - + @@ -116,7 +116,7 @@ "mic":"5b573115", "mac":"AA:BB:CC:DD:EE:FF" } -
1
2
3
4
5
6
7

With a correct bindkey this encrypted data can be decrypted and sent back to Decoder for properties decoding.

With a correct bindkey this encrypted data can be decrypted and sent back to Decoder for properties decoding.

- + diff --git a/use/python.html b/use/python.html index f40a1654..1a2192d6 100644 --- a/use/python.html +++ b/use/python.html @@ -18,7 +18,7 @@ - + @@ -112,7 +112,7 @@
1

Additionally the example will print the properties of the device as well as the brand and model using the getProperties and getAttributes methods. The output of these looks like:

{"properties":{"volt":{"unit":"V","name":"voltage"},"x_axis":{"unit":"int","name":"x_axis"},"y_axis":{"unit":"int","name":"y_axis"},"z_axis":{"unit":"int","name":"z_axis"},"tempc":{"unit":"°C","name":"temperature"},"hum":{"unit":"%","name":"humidity"}}}
 
 brand: Mokosmart , model: BeaconX Pro
-
1
2
3

These functions are useful for passing the data to HomeAssistant or other home automation/monitoring services.

# Methods

  • decodeBLE(string) Returns a string with the decoded data in JSON format or None.
  • getProperties('model_id string') Returns the properties (string) of the given model ID or None
  • getAttribute('model_id string', 'attribute string') Return the value (string) of named attribute of the model ID or None.

These functions are useful for passing the data to HomeAssistant or other home automation/monitoring services.

# Methods

  • decodeBLE(string) Returns a string with the decoded data in JSON format or None.
  • getProperties('model_id string') Returns the properties (string) of the given model ID or None
  • getAttribute('model_id string', 'attribute string') Return the value (string) of named attribute of the model ID or None.
- +