diff --git a/404.html b/404.html index 9061a7e57..989e98653 100644 --- a/404.html +++ b/404.html @@ -18,13 +18,13 @@ - +

404

There's nothing here.
Take me home.
- + diff --git a/assets/js/10.a61535c9.js b/assets/js/10.ef8f8295.js similarity index 96% rename from assets/js/10.a61535c9.js rename to assets/js/10.ef8f8295.js index 8f5d0c39a..dbea16872 100644 --- a/assets/js/10.a61535c9.js +++ b/assets/js/10.ef8f8295.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{279:function(t,e,r){t.exports=r.p+"assets/img/CGD1.f3a9c70c.png"},336: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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{279:function(t,e,r){t.exports=r.p+"assets/img/CGD1.f3a9c70c.png"},337: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.22215ffc.js b/assets/js/100.d680f6d9.js similarity index 95% rename from assets/js/100.22215ffc.js rename to assets/js/100.d680f6d9.js index 8cc94e4c1..33a49ee58 100644 --- a/assets/js/100.22215ffc.js +++ b/assets/js/100.d680f6d9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[100],{405: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([[100],{403: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/101.2f39d75e.js b/assets/js/101.c52d1dc9.js similarity index 95% rename from assets/js/101.2f39d75e.js rename to assets/js/101.c52d1dc9.js index 7f2cd8909..8f4321001 100644 --- a/assets/js/101.2f39d75e.js +++ b/assets/js/101.c52d1dc9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{407: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:"switchbot-bot"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-bot"}},[t._v("#")]),t._v(" SwitchBot Bot")]),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/SBS1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("X1"),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("Bot")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Switch Button Pusher")])]),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 CR2")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("mode, state, 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([[101],{404: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:"switchbot-bot"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-bot"}},[t._v("#")]),t._v(" SwitchBot Bot")]),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/SBS1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("X1"),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("Bot")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Switch Button Pusher")])]),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 CR2")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("mode, state, 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/102.afe3a0aa.js b/assets/js/102.8e66122e.js similarity index 95% rename from assets/js/102.afe3a0aa.js rename to assets/js/102.8e66122e.js index 6aeb95ef1..7b4db6b1f 100644 --- a/assets/js/102.afe3a0aa.js +++ b/assets/js/102.8e66122e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{406: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([[102],{407: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/103.c3eced5a.js b/assets/js/103.57bdd03a.js similarity index 95% rename from assets/js/103.c3eced5a.js rename to assets/js/103.57bdd03a.js index e2d04b368..2f17d406a 100644 --- a/assets/js/103.c3eced5a.js +++ b/assets/js/103.57bdd03a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[103],{408: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([[103],{409: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/104.04325bc3.js b/assets/js/104.c930fadb.js similarity index 95% rename from assets/js/104.04325bc3.js rename to assets/js/104.c930fadb.js index acb58edcd..d2d2c9c0c 100644 --- a/assets/js/104.04325bc3.js +++ b/assets/js/104.c930fadb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{409: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([[104],{408: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/106.8b062809.js b/assets/js/106.1823751c.js similarity index 95% rename from assets/js/106.8b062809.js rename to assets/js/106.1823751c.js index 72a26a17d..0ca75cd20 100644 --- a/assets/js/106.8b062809.js +++ b/assets/js/106.1823751c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{411: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([[106],{412: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/107.df300a47.js b/assets/js/107.c877d6d1.js similarity index 95% rename from assets/js/107.df300a47.js rename to assets/js/107.c877d6d1.js index 2e3ce3fc4..342f5b758 100644 --- a/assets/js/107.df300a47.js +++ b/assets/js/107.c877d6d1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[107],{412: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_PRO"),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([[107],{411: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_PRO"),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/11.56534970.js b/assets/js/11.1062d7f4.js similarity index 88% rename from assets/js/11.56534970.js rename to assets/js/11.1062d7f4.js index 921e0784c..929fcddd8 100644 --- a/assets/js/11.56534970.js +++ b/assets/js/11.1062d7f4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{281:function(t,e,r){t.exports=r.p+"assets/img/CGDK2.f1bfeeb4.png"},339: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(281),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"},338: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.baac824a.js b/assets/js/110.7578778e.js similarity index 95% rename from assets/js/110.baac824a.js rename to assets/js/110.7578778e.js index fc12494d6..86497bc9c 100644 --- a/assets/js/110.baac824a.js +++ b/assets/js/110.7578778e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[110],{416: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:"tenergy-solis-6-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tenergy-solis-6-bbq"}},[t._v("#")]),t._v(" Tenergy SOLIS 6 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("SOLIS_6"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Ternergy")])]),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 AA")])]),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([[110],{415: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:"tenergy-solis-6-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#tenergy-solis-6-bbq"}},[t._v("#")]),t._v(" Tenergy SOLIS 6 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("SOLIS_6"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Ternergy")])]),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 AA")])]),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/111.dd654ccc.js b/assets/js/111.02e03cc8.js similarity index 95% rename from assets/js/111.dd654ccc.js rename to assets/js/111.02e03cc8.js index 67d92665d..a480eb2c4 100644 --- a/assets/js/111.dd654ccc.js +++ b/assets/js/111.02e03cc8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[111],{415: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([[111],{416: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/117.d9328fa7.js b/assets/js/117.b105d14b.js similarity index 96% rename from assets/js/117.d9328fa7.js rename to assets/js/117.b105d14b.js index 026863520..c726826d1 100644 --- a/assets/js/117.d9328fa7.js +++ b/assets/js/117.b105d14b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[117],{425: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([[117],{429: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/118.765dee8e.js b/assets/js/118.e4c4079f.js similarity index 95% rename from assets/js/118.765dee8e.js rename to assets/js/118.e4c4079f.js index f6de43774..b46b9f4a6 100644 --- a/assets/js/118.765dee8e.js +++ b/assets/js/118.e4c4079f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[118],{428: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([[118],{426: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/119.a78a4dea.js b/assets/js/119.02cfe699.js similarity index 95% rename from assets/js/119.a78a4dea.js rename to assets/js/119.02cfe699.js index 78fb5bf6f..db44e6af5 100644 --- a/assets/js/119.a78a4dea.js +++ b/assets/js/119.02cfe699.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[119],{429: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([[119],{430: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/12.66150940.js b/assets/js/12.6d8aee82.js similarity index 89% rename from assets/js/12.66150940.js rename to assets/js/12.6d8aee82.js index aab737a02..1c37f46bf 100644 --- a/assets/js/12.66150940.js +++ b/assets/js/12.6d8aee82.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{280: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(280),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"},340: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.e6b6561f.js b/assets/js/120.ac8b5442.js similarity index 92% rename from assets/js/120.e6b6561f.js rename to assets/js/120.ac8b5442.js index 1cdafd16b..86b884441 100644 --- a/assets/js/120.e6b6561f.js +++ b/assets/js/120.ac8b5442.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{431:function(t,e,i){"use strict";i.r(e);var r=i(14),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"redirecting"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#redirecting"}},[t._v("#")]),t._v(" Redirecting...")]),t._v(" "),e("p",[t._v("If you are not redirected automatically, follow this "),e("a",{attrs:{href:"https://decoder.theengs.io/devices/devices.html"}},[t._v("link to the compatible BT devices listing")]),t._v(".")]),t._v(" "),e("meta",{attrs:{"http-equiv":"refresh",content:"0; url=./devices.html"}}),t._v(" "),e("script",{attrs:{type:"text/javascript"}},[t._v('\n window.location.href = "https://decoder.theengs.io/devices/devices.html"\n')])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{428:function(t,e,i){"use strict";i.r(e);var r=i(14),s=Object(r.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"redirecting"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#redirecting"}},[t._v("#")]),t._v(" Redirecting...")]),t._v(" "),e("p",[t._v("If you are not redirected automatically, follow this "),e("a",{attrs:{href:"https://decoder.theengs.io/devices/devices.html"}},[t._v("link to the compatible BT devices listing")]),t._v(".")]),t._v(" "),e("meta",{attrs:{"http-equiv":"refresh",content:"0; url=./devices.html"}}),t._v(" "),e("script",{attrs:{type:"text/javascript"}},[t._v('\n window.location.href = "https://decoder.theengs.io/devices/devices.html"\n')])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/121.5c435df7.js b/assets/js/121.387b0028.js similarity index 95% rename from assets/js/121.5c435df7.js rename to assets/js/121.387b0028.js index bfbdfca8f..d4997dab6 100644 --- a/assets/js/121.5c435df7.js +++ b/assets/js/121.387b0028.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[121],{430: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([[121],{432: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/122.7c93d0c5.js b/assets/js/122.97c4983c.js similarity index 95% rename from assets/js/122.7c93d0c5.js rename to assets/js/122.97c4983c.js index 54500a95f..1c66dd448 100644 --- a/assets/js/122.7c93d0c5.js +++ b/assets/js/122.97c4983c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[122],{432: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([[122],{433: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/123.15c77481.js b/assets/js/123.856fd581.js similarity index 93% rename from assets/js/123.15c77481.js rename to assets/js/123.856fd581.js index 3b8e7ff85..a820ddeff 100644 --- a/assets/js/123.15c77481.js +++ b/assets/js/123.856fd581.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[123],{433: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([[123],{431: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/124.e5015f1d.js b/assets/js/124.7c0aa3f6.js similarity index 99% rename from assets/js/124.e5015f1d.js rename to assets/js/124.7c0aa3f6.js index 42121deb3..1fb6f4a03 100644 --- a/assets/js/124.e5015f1d.js +++ b/assets/js/124.7c0aa3f6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[124],{434: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:"22"}},[e._v("Byte[0]")]),e._v(" "),t("td",{attrs:{rowspan:"22"}},[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 - AUDIO - audio devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("19-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:"8"}},[e._v("Byte[1]")]),e._v(" "),t("td",{attrs:{rowspan:"8"}},[e._v("Additional properties")]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("Bits[7-6] - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[5] Devices/actuators which are controllable > "ctrl":')])]),e._v(" "),t("tr"),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("li",[e._v('"name"')])]),e._v(" "),t("p",[e._v("The second parameter is the index of the data source to look for the value. For a "),t("code",[e._v('"name"')]),e._v(" comparison the second parameter is either "),t("code",[e._v('"contain"')]),e._v(" or "),t("code",[e._v('"not_contain"')]),e._v(".")]),e._v(" "),t("p",[e._v("Then the third parameter is the value to test for, or in case of the "),t("code",[e._v('"name"')]),e._v(" comparison the string to compare the device name to.")]),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":["name", "not_contain", "GV5108"],\n "decoder":["value_from_hex_data", "manufacturerdata", 8, 6, false, false],\n "post_proc":["&", 8388607, "%", 1000, "/", 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("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([[124],{435: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:"22"}},[e._v("Byte[0]")]),e._v(" "),t("td",{attrs:{rowspan:"22"}},[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 - AUDIO - audio devices")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v("19-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:"8"}},[e._v("Byte[1]")]),e._v(" "),t("td",{attrs:{rowspan:"8"}},[e._v("Additional properties")]),e._v(" "),t("td",{attrs:{rowspan:"1"}},[e._v("Bits[7-6] - Reserved")])]),e._v(" "),t("tr",[t("td",{attrs:{rowspan:"1"}},[e._v('Bit[5] Devices/actuators which are controllable > "ctrl":')])]),e._v(" "),t("tr"),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("li",[e._v('"name"')])]),e._v(" "),t("p",[e._v("The second parameter is the index of the data source to look for the value. For a "),t("code",[e._v('"name"')]),e._v(" comparison the second parameter is either "),t("code",[e._v('"contain"')]),e._v(" or "),t("code",[e._v('"not_contain"')]),e._v(".")]),e._v(" "),t("p",[e._v("Then the third parameter is the value to test for, or in case of the "),t("code",[e._v('"name"')]),e._v(" comparison the string to compare the device name to.")]),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":["name", "not_contain", "GV5108"],\n "decoder":["value_from_hex_data", "manufacturerdata", 8, 6, false, false],\n "post_proc":["&", 8388607, "%", 1000, "/", 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("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/125.7d21e0e6.js b/assets/js/125.fa375e57.js similarity index 99% rename from assets/js/125.7d21e0e6.js rename to assets/js/125.fa375e57.js index f27a5b7a1..513dee33a 100644 --- a/assets/js/125.7d21e0e6.js +++ b/assets/js/125.fa375e57.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[125],{435: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([[125],{434: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/126.8e045787.js b/assets/js/126.f76b30ff.js similarity index 96% rename from assets/js/126.8e045787.js rename to assets/js/126.f76b30ff.js index 35256d086..d1246125c 100644 --- a/assets/js/126.8e045787.js +++ b/assets/js/126.f76b30ff.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[126],{437: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([[126],{436: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/127.2195d0dd.js b/assets/js/127.68b4b4a5.js similarity index 96% rename from assets/js/127.2195d0dd.js rename to assets/js/127.68b4b4a5.js index 982680464..ee1ff36a0 100644 --- a/assets/js/127.2195d0dd.js +++ b/assets/js/127.68b4b4a5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[127],{436: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([[127],{438: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/128.266db8a8.js b/assets/js/128.a37cc8bb.js similarity index 98% rename from assets/js/128.266db8a8.js rename to assets/js/128.a37cc8bb.js index 49f6261a9..370e91b20 100644 --- a/assets/js/128.266db8a8.js +++ b/assets/js/128.a37cc8bb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{439: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([[128],{437: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/129.9a2018c3.js b/assets/js/129.86d6a622.js similarity index 98% rename from assets/js/129.9a2018c3.js rename to assets/js/129.86d6a622.js index 0b2ebb431..4911a6cfd 100644 --- a/assets/js/129.9a2018c3.js +++ b/assets/js/129.86d6a622.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{438: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([[129],{439: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.1d62b258.js b/assets/js/13.b8d5d823.js similarity index 89% rename from assets/js/13.1d62b258.js rename to assets/js/13.b8d5d823.js index 44253feb6..9eb276c0d 100644 --- a/assets/js/13.1d62b258.js +++ b/assets/js/13.b8d5d823.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{283: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(283),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"},339: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.74c1110b.js b/assets/js/14.d2c4c11a.js similarity index 88% rename from assets/js/14.74c1110b.js rename to assets/js/14.d2c4c11a.js index df905fc00..9eef02488 100644 --- a/assets/js/14.74c1110b.js +++ b/assets/js/14.d2c4c11a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{282:function(t,n,e){t.exports=e.p+"assets/img/CGH1.6716ff1c.png"},340: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(282),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"},341: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.2cd513c5.js b/assets/js/15.b28fbf18.js similarity index 89% rename from assets/js/15.2cd513c5.js rename to assets/js/15.b28fbf18.js index ab1299bd2..b369aaaab 100644 --- a/assets/js/15.2cd513c5.js +++ b/assets/js/15.b28fbf18.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{285:function(t,e,r){t.exports=r.p+"assets/img/CGP1W.1fff3afe.png"},345: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"},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(284),alt:"CGP1W"}})])])])])])}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/16.9db6f29e.js b/assets/js/16.9ccbc990.js similarity index 88% rename from assets/js/16.9db6f29e.js rename to assets/js/16.9ccbc990.js index 893443edc..5edc2005e 100644 --- a/assets/js/16.9db6f29e.js +++ b/assets/js/16.9ccbc990.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{284:function(t,n,r){t.exports=r.p+"assets/img/CGPR1.e38aaa79.png"},342: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(284),alt:"CGPR1"}})])])])])])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{287:function(t,n,r){t.exports=r.p+"assets/img/CGPR1.e38aaa79.png"},348: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(287),alt:"CGPR1"}})])])])])])}),[],!1,null,null,null);n.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/17.158ad131.js b/assets/js/17.52ec9eb1.js similarity index 88% rename from assets/js/17.158ad131.js rename to assets/js/17.52ec9eb1.js index 7b778dcb3..8e53067c2 100644 --- a/assets/js/17.158ad131.js +++ b/assets/js/17.52ec9eb1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{286:function(t,e,r){t.exports=r.p+"assets/img/H5074.b670acdc.png"},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-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],{285:function(t,e,r){t.exports=r.p+"assets/img/H5074.b670acdc.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-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(285),alt:"H5074"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/18.af3c175a.js b/assets/js/18.7807e144.js similarity index 88% rename from assets/js/18.af3c175a.js rename to assets/js/18.7807e144.js index 6ff1390dd..3d2fb9a67 100644 --- a/assets/js/18.af3c175a.js +++ b/assets/js/18.7807e144.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{287:function(t,e,r){t.exports=r.p+"assets/img/H5075.e5980c19.png"},348: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],{286:function(t,e,r){t.exports=r.p+"assets/img/H5075.e5980c19.png"},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-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(286),alt:"H5075"}})])])])])])}),[],!1,null,null,null);e.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/19.96f5ce5c.js b/assets/js/19.32ed76af.js similarity index 96% rename from assets/js/19.96f5ce5c.js rename to assets/js/19.32ed76af.js index 224969e57..6a75ce6de 100644 --- a/assets/js/19.96f5ce5c.js +++ b/assets/js/19.32ed76af.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{288:function(t,e,r){t.exports=r.p+"assets/img/H5106.4a279ee8.png"},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-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"},356: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.8c8809f7.js b/assets/js/20.1b8824fb.js similarity index 96% rename from assets/js/20.8c8809f7.js rename to assets/js/20.1b8824fb.js index 30bd1a690..570917b39 100644 --- a/assets/js/20.8c8809f7.js +++ b/assets/js/20.1b8824fb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{289:function(t,r,e){t.exports=e.p+"assets/img/HHCCJCY01HHCC.7aa7491b.png"},358: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"},359: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/22.70222832.js b/assets/js/22.bd680bb8.js similarity index 88% rename from assets/js/22.70222832.js rename to assets/js/22.bd680bb8.js index e005fd6a1..514026df5 100644 --- a/assets/js/22.70222832.js +++ b/assets/js/22.bd680bb8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{291:function(t,r,e){t.exports=e.p+"assets/img/IBS-TH2.f46f6610.png"},365: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"},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-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/23.2bc9b6ad.js b/assets/js/23.716461f7.js similarity index 88% rename from assets/js/23.2bc9b6ad.js rename to assets/js/23.716461f7.js index ef15a96f8..46c72bc7c 100644 --- a/assets/js/23.2bc9b6ad.js +++ b/assets/js/23.716461f7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{292:function(t,e,r){t.exports=r.p+"assets/img/IBT_2X.37b60bc5.png"},366: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-2x-s-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-2x-s-bbq"}},[t._v("#")]),t._v(" Inkbird 2X(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_2X_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBT_2X(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 2 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")])]),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_2X(S)"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{291:function(t,e,r){t.exports=r.p+"assets/img/IBT_2X.37b60bc5.png"},365: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-2x-s-bbq"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-2x-s-bbq"}},[t._v("#")]),t._v(" Inkbird 2X(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_2X_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("IBT_2X(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 2 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")])]),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_2X(S)"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/24.8fda8079.js b/assets/js/24.433be108.js similarity index 96% rename from assets/js/24.8fda8079.js rename to assets/js/24.433be108.js index fbecfa12d..de26979d4 100644 --- a/assets/js/24.8fda8079.js +++ b/assets/js/24.433be108.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{293:function(t,e,r){t.exports=r.p+"assets/img/IBT_4X.4c063ab7.png"},368: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(293),alt:"IBT_4X"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{293:function(t,e,r){t.exports=r.p+"assets/img/IBT_4X.4c063ab7.png"},367: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(293),alt:"IBT_4X"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/27.1345a1df.js b/assets/js/27.947fad81.js similarity index 96% rename from assets/js/27.1345a1df.js rename to assets/js/27.947fad81.js index d6df696c1..22b19327e 100644 --- a/assets/js/27.1345a1df.js +++ b/assets/js/27.947fad81.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{296:function(t,e,r){t.exports=r.p+"assets/img/LYWSD03MMC.f6b2cd08.png"},375: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],{296:function(t,e,r){t.exports=r.p+"assets/img/LYWSD03MMC.f6b2cd08.png"},374: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 diff --git a/assets/js/28.5c3be363.js b/assets/js/28.d6d02161.js similarity index 96% rename from assets/js/28.5c3be363.js rename to assets/js/28.d6d02161.js index 5651500d7..953440057 100644 --- a/assets/js/28.5c3be363.js +++ b/assets/js/28.d6d02161.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[28],{297:function(t,e,r){t.exports=r.p+"assets/img/LYWSDCGQ.6739d850.png"},376: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],{297:function(t,e,r){t.exports=r.p+"assets/img/LYWSDCGQ.6739d850.png"},375: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 diff --git a/assets/js/29.1aa1d029.js b/assets/js/29.ad59c697.js similarity index 96% rename from assets/js/29.1aa1d029.js rename to assets/js/29.ad59c697.js index 2bfe998fb..31f8bc39e 100644 --- a/assets/js/29.1aa1d029.js +++ b/assets/js/29.ad59c697.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{298:function(t,r,e){t.exports=e.p+"assets/img/H4.ab827f20.png"},377: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],{298:function(t,r,e){t.exports=e.p+"assets/img/H4.ab827f20.png"},376: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 diff --git a/assets/js/32.8835b33d.js b/assets/js/32.21e0c0fb.js similarity index 88% rename from assets/js/32.8835b33d.js rename to assets/js/32.21e0c0fb.js index bf65ee986..30bc96992 100644 --- a/assets/js/32.8835b33d.js +++ b/assets/js/32.21e0c0fb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[32],{301:function(t,e,o){t.exports=o.p+"assets/img/M2.5ff17b93.png"},382: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],{302:function(t,e,o){t.exports=o.p+"assets/img/M2.5ff17b93.png"},385: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(302),alt:"M2"}})])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/33.52d7ae94.js b/assets/js/33.cf49ba1a.js similarity index 93% rename from assets/js/33.52d7ae94.js rename to assets/js/33.cf49ba1a.js index 195181d1c..e229c713e 100644 --- a/assets/js/33.52d7ae94.js +++ b/assets/js/33.cf49ba1a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[33],{302:function(t,e,r){t.exports=r.p+"assets/img/M1017.c709cdeb.png"},384: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],{301:function(t,e,r){t.exports=r.p+"assets/img/M1017.c709cdeb.png"},384: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(301),alt:"M1017"}})])])])])])}),[],!1,null,null,null);e.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/34.055a565a.js b/assets/js/34.6c16a994.js similarity index 96% rename from assets/js/34.055a565a.js rename to assets/js/34.6c16a994.js index b445bb4c1..354361969 100644 --- a/assets/js/34.055a565a.js +++ b/assets/js/34.6c16a994.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[34],{303:function(t,e,o){t.exports=o.p+"assets/img/W110150X.f306ade6.png"},403: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],{303:function(t,e,o){t.exports=o.p+"assets/img/W110150X.f306ade6.png"},402: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 diff --git a/assets/js/35.65d5fcb0.js b/assets/js/35.6cd424ad.js similarity index 96% rename from assets/js/35.65d5fcb0.js rename to assets/js/35.6cd424ad.js index ada8612a5..626d3be0e 100644 --- a/assets/js/35.65d5fcb0.js +++ b/assets/js/35.6cd424ad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[35],{304:function(t,e,r){t.exports=r.p+"assets/img/THX1.1d2a5e73.png"},404: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],{304:function(t,e,r){t.exports=r.p+"assets/img/THX1.1d2a5e73.png"},406: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 diff --git a/assets/js/39.cbfa09a4.js b/assets/js/39.e11a55fe.js similarity index 96% rename from assets/js/39.cbfa09a4.js rename to assets/js/39.e11a55fe.js index e78a23097..1537d9ea3 100644 --- a/assets/js/39.cbfa09a4.js +++ b/assets/js/39.e11a55fe.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{308:function(t,e,r){t.exports=r.p+"assets/img/TPMS.5b33df43.png"},426: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"},425: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/44.245cd86f.js b/assets/js/44.9821d563.js similarity index 95% rename from assets/js/44.245cd86f.js rename to assets/js/44.9821d563.js index 472369542..8f86861c8 100644 --- a/assets/js/44.245cd86f.js +++ b/assets/js/44.9821d563.js @@ -1 +1 @@ -(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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{321: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.18156264.js b/assets/js/45.97754c06.js similarity index 96% rename from assets/js/45.18156264.js rename to assets/js/45.97754c06.js index e536cc3ad..4008da79a 100644 --- a/assets/js/45.18156264.js +++ b/assets/js/45.97754c06.js @@ -1 +1 @@ -(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 +(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 diff --git a/assets/js/50.76b1abe1.js b/assets/js/50.020fb63d.js similarity index 95% rename from assets/js/50.76b1abe1.js rename to assets/js/50.020fb63d.js index 6d1c1a6f8..988cba94d 100644 --- a/assets/js/50.76b1abe1.js +++ b/assets/js/50.020fb63d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{326: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([[50],{329: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/51.75d21cce.js b/assets/js/51.e4ec01f1.js similarity index 96% rename from assets/js/51.75d21cce.js rename to assets/js/51.e4ec01f1.js index 8d59b115a..a5a39312f 100644 --- a/assets/js/51.75d21cce.js +++ b/assets/js/51.e4ec01f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[51],{328: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([[51],{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/53.d17c33f9.js b/assets/js/53.07ab7ce2.js similarity index 96% rename from assets/js/53.d17c33f9.js rename to assets/js/53.07ab7ce2.js index ec41fd807..5280a3f37 100644 --- a/assets/js/53.d17c33f9.js +++ b/assets/js/53.07ab7ce2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{332: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/54.bbaefd76.js b/assets/js/54.ef9f896f.js similarity index 95% rename from assets/js/54.bbaefd76.js rename to assets/js/54.ef9f896f.js index febf73ff0..34f9c3520 100644 --- a/assets/js/54.bbaefd76.js +++ b/assets/js/54.ef9f896f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{331: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/55.681cafb5.js b/assets/js/55.64dc4c3e.js similarity index 95% rename from assets/js/55.681cafb5.js rename to assets/js/55.64dc4c3e.js index 222929a57..75c27b765 100644 --- a/assets/js/55.681cafb5.js +++ b/assets/js/55.64dc4c3e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{336: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/56.70548eee.js b/assets/js/56.0f9ac603.js similarity index 97% rename from assets/js/56.70548eee.js rename to assets/js/56.0f9ac603.js index 4efa35e14..f6000ad29 100644 --- a/assets/js/56.70548eee.js +++ b/assets/js/56.0f9ac603.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{335:function(t,e,r){"use strict";r.r(e);var o=r(14),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"beats-solo-studio-buds"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#beats-solo-studio-buds"}},[t._v("#")]),t._v(" Beats Solo/Studio Buds")]),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/APPLEAIRPODS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BEATSBUDS"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Beats")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Solo/Studio Buds")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Various Beats Solo/Studio Buds 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("model version, color, status, (left, right, case) battery level*, (left, right, case) charging state")])]),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-ipad-and-airpods",target:"_blank",rel:"noopener noreferrer"}},[t._v("Identity Address and IRK for an Apple Watch, iPhone, iPad or Beats Buds"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("* battery levels are only reported in 10% steps by the BLE broadcasts.")]),t._v(" "),e("p",[t._v("Some model versions, colors and statuses are not decoded correctly yet, due to the various models, colors and generations. In such a case please report your device's MQTT message with the "),e("a",{attrs:{href:"https://gateway.theengs.io/use/use.html#details-options",target:"_blank",rel:"noopener noreferrer"}},[t._v("PUBLISH_ADVDATA option"),e("OutboundLink")],1),t._v(" set to "),e("strong",[t._v("true")]),t._v(".")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{334:function(t,e,r){"use strict";r.r(e);var o=r(14),s=Object(o.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"beats-solo-studio-buds"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#beats-solo-studio-buds"}},[t._v("#")]),t._v(" Beats Solo/Studio Buds")]),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/APPLEAIRPODS_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("BEATSBUDS"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Beats")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Solo/Studio Buds")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Various Beats Solo/Studio Buds 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("model version, color, status, (left, right, case) battery level*, (left, right, case) charging state")])]),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-ipad-and-airpods",target:"_blank",rel:"noopener noreferrer"}},[t._v("Identity Address and IRK for an Apple Watch, iPhone, iPad or Beats Buds"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("* battery levels are only reported in 10% steps by the BLE broadcasts.")]),t._v(" "),e("p",[t._v("Some model versions, colors and statuses are not decoded correctly yet, due to the various models, colors and generations. In such a case please report your device's MQTT message with the "),e("a",{attrs:{href:"https://gateway.theengs.io/use/use.html#details-options",target:"_blank",rel:"noopener noreferrer"}},[t._v("PUBLISH_ADVDATA option"),e("OutboundLink")],1),t._v(" set to "),e("strong",[t._v("true")]),t._v(".")])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/57.530fb90c.js b/assets/js/57.0c60402f.js similarity index 96% rename from assets/js/57.530fb90c.js rename to assets/js/57.0c60402f.js index 268112cb4..87d63e25f 100644 --- a/assets/js/57.530fb90c.js +++ b/assets/js/57.0c60402f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{337: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([[57],{335: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/58.6593be1b.js b/assets/js/58.b58b3935.js similarity index 96% rename from assets/js/58.6593be1b.js rename to assets/js/58.b58b3935.js index 5de1db122..43c0856be 100644 --- a/assets/js/58.6593be1b.js +++ b/assets/js/58.b58b3935.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{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/CGP23W_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGP23W"),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([[58],{343: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/CGP23W_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("CGP23W"),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/59.ad1a2cb0.js b/assets/js/59.9f5bbce9.js similarity index 95% rename from assets/js/59.ad1a2cb0.js rename to assets/js/59.9f5bbce9.js index 43bbb9a20..4708983bb 100644 --- a/assets/js/59.ad1a2cb0.js +++ b/assets/js/59.9f5bbce9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{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([[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-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/60.4ca1a171.js b/assets/js/60.1935142f.js similarity index 95% rename from assets/js/60.4ca1a171.js rename to assets/js/60.1935142f.js index e28270c0c..a09032b55 100644 --- a/assets/js/60.4ca1a171.js +++ b/assets/js/60.1935142f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{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-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([[60],{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-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/64.be132d31.js b/assets/js/64.a211281e.js similarity index 95% rename from assets/js/64.be132d31.js rename to assets/js/64.a211281e.js index 4250e0d62..ebca3ddc1 100644 --- a/assets/js/64.be132d31.js +++ b/assets/js/64.a211281e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[64],{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-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([[64],{354: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/65.5bf05149.js b/assets/js/65.e8a1d72f.js similarity index 95% rename from assets/js/65.5bf05149.js rename to assets/js/65.e8a1d72f.js index bd26d50a2..481d962d9 100644 --- a/assets/js/65.5bf05149.js +++ b/assets/js/65.e8a1d72f.js @@ -1 +1 @@ -(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-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([[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-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/66.eea1b874.js b/assets/js/66.2a72c007.js similarity index 95% rename from assets/js/66.eea1b874.js rename to assets/js/66.2a72c007.js index 9e1b47994..dc0c8c966 100644 --- a/assets/js/66.eea1b874.js +++ b/assets/js/66.2a72c007.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{355: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-h5108"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5108"}},[t._v("#")]),t._v(" Govee H5108")]),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("H5108"),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 Probe Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Smart Probe 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, 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([[66],{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-h5108"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#govee-h5108"}},[t._v("#")]),t._v(" Govee H5108")]),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("H5108"),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 Probe Thermometer")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Smart Probe 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, 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/67.df9a23a6.js b/assets/js/67.28c5464a.js similarity index 95% rename from assets/js/67.df9a23a6.js rename to assets/js/67.28c5464a.js index 6790ce981..a2376cc9e 100644 --- a/assets/js/67.df9a23a6.js +++ b/assets/js/67.28c5464a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{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 +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{355: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/68.ddc9be57.js b/assets/js/68.e81be9dc.js similarity index 95% rename from assets/js/68.ddc9be57.js rename to assets/js/68.e81be9dc.js index 12d5c1b09..2564d1b82 100644 --- a/assets/js/68.ddc9be57.js +++ b/assets/js/68.e81be9dc.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{359: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([[68],{357: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/69.f0fe5f98.js b/assets/js/69.c98ceb8c.js similarity index 95% rename from assets/js/69.f0fe5f98.js rename to assets/js/69.c98ceb8c.js index cabca1e56..a9a298f6b 100644 --- a/assets/js/69.f0fe5f98.js +++ b/assets/js/69.c98ceb8c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{357: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([[69],{358: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/7.723548fa.js b/assets/js/7.a04ca7f1.js similarity index 96% rename from assets/js/7.723548fa.js rename to assets/js/7.a04ca7f1.js index 6b60bc501..923e83fdc 100644 --- a/assets/js/7.723548fa.js +++ b/assets/js/7.a04ca7f1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{276:function(t,e,r){t.exports=r.p+"assets/img/BC021.2533d654.png"},327: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 +(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/72.560d8f9c.js b/assets/js/72.cd73226a.js similarity index 95% rename from assets/js/72.560d8f9c.js rename to assets/js/72.cd73226a.js index a15559ad0..35a17f894 100644 --- a/assets/js/72.560d8f9c.js +++ b/assets/js/72.cd73226a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[72],{362: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:"onset-hobo-water-level-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#onset-hobo-water-level-sensor"}},[t._v("#")]),t._v(" Onset Hobo Water Level 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/HOBOMX2001_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MX2001"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Onset")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Hobo Water Level Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Water 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("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("level")])]),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([[72],{363: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:"onset-hobo-water-level-sensor"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#onset-hobo-water-level-sensor"}},[t._v("#")]),t._v(" Onset Hobo Water Level 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/HOBOMX2001_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("MX2001"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("Onset")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("Hobo Water Level Sensor")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Water 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("2 AA")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("level")])]),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/73.589de9dc.js b/assets/js/73.dc13d519.js similarity index 95% rename from assets/js/73.589de9dc.js rename to assets/js/73.dc13d519.js index 72171b60d..46de8b618 100644 --- a/assets/js/73.589de9dc.js +++ b/assets/js/73.dc13d519.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{363:function(t,r,e){"use strict";e.r(r);var _=e(14),v=Object(_.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-p01b"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-p01b"}},[t._v("#")]),t._v(" Inkbird P01B")]),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-P01B"),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("Pool Thermometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Pool temperature sensor IPX7")])]),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, 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([[73],{362:function(t,r,e){"use strict";e.r(r);var _=e(14),v=Object(_.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"inkbird-p01b"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#inkbird-p01b"}},[t._v("#")]),t._v(" Inkbird P01B")]),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-P01B"),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("Pool Thermometer")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Pool temperature sensor IPX7")])]),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, 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/74.02d9341a.js b/assets/js/74.f2597c75.js similarity index 95% rename from assets/js/74.02d9341a.js rename to assets/js/74.f2597c75.js index 512c4ec9c..4e92af403 100644 --- a/assets/js/74.02d9341a.js +++ b/assets/js/74.f2597c75.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{367: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([[74],{368: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/77.b2555d37.js b/assets/js/77.cca59719.js similarity index 95% rename from assets/js/77.b2555d37.js rename to assets/js/77.cca59719.js index 4978a9c56..01cf59fec 100644 --- a/assets/js/77.b2555d37.js +++ b/assets/js/77.cca59719.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{374: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([[77],{372: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/78.4a23bdd7.js b/assets/js/78.7bd4dee8.js similarity index 96% rename from assets/js/78.4a23bdd7.js rename to assets/js/78.7bd4dee8.js index ef0fb1c3f..37dbba5a9 100644 --- a/assets/js/78.4a23bdd7.js +++ b/assets/js/78.7bd4dee8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{372: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([[78],{377: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/8.7675eeca.js b/assets/js/8.82c1d730.js similarity index 96% rename from assets/js/8.7675eeca.js rename to assets/js/8.82c1d730.js index 7d224de6d..38514b08d 100644 --- a/assets/js/8.7675eeca.js +++ b/assets/js/8.82c1d730.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{277:function(t,r,e){t.exports=e.p+"assets/img/BM2.5ba6bbcc.png"},329: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 +(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/81.3b469754.js b/assets/js/81.ba854dad.js similarity index 96% rename from assets/js/81.3b469754.js rename to assets/js/81.ba854dad.js index fa8b80127..ec96aa8f0 100644 --- a/assets/js/81.3b469754.js +++ b/assets/js/81.ba854dad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{383: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:"mikrotik-tg-bt5-in-tg-bt5-out"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mikrotik-tg-bt5-in-tg-bt5-out"}},[t._v("#")]),t._v(" MikroTik TG-BT5-IN & TG-BT5-OUT")]),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/Mikrotik_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TG-BT5"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("MikroTik")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("TG-BT5-IN/-OUT")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor & Outdoor temperature and acceleration sensors")])]),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("built-in non-replaceable battery")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, acceleration x/y/z-axis, uptime, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No - Currently only unencrypted devices are supported")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[81],{382: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:"mikrotik-tg-bt5-in-tg-bt5-out"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#mikrotik-tg-bt5-in-tg-bt5-out"}},[t._v("#")]),t._v(" MikroTik TG-BT5-IN & TG-BT5-OUT")]),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/Mikrotik_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("TG-BT5"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("MikroTik")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("TG-BT5-IN/-OUT")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Indoor & Outdoor temperature and acceleration sensors")])]),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("built-in non-replaceable battery")])]),t._v(" "),e("tr",[e("td",[t._v("Exchanged Data")]),t._v(" "),e("td",[t._v("temperature, acceleration x/y/z-axis, uptime, battery")])]),t._v(" "),e("tr",[e("td",[t._v("Encrypted")]),t._v(" "),e("td",[t._v("No - Currently only unencrypted devices are supported")])]),t._v(" "),e("tr",[e("td",[t._v("Device Tracker")]),t._v(" "),e("td",[t._v("✅")])])])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/82.9a7dd710.js b/assets/js/82.ae87d135.js similarity index 96% rename from assets/js/82.9a7dd710.js rename to assets/js/82.ae87d135.js index 09fa40923..c6d4eb170 100644 --- a/assets/js/82.9a7dd710.js +++ b/assets/js/82.ae87d135.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{385: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:"nodon-niu-smart-button"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#nodon-niu-smart-button"}},[t._v("#")]),t._v(" NodOn NIU smart button")]),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/NODONNIU_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("NODONNIU"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("NodOn")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("NIU smart button")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Bluetooth smart 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, color, 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("p",[t._v("The button press type is encoded as:")]),t._v(" "),e("ul",[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("4 - Quadruple click")]),t._v(" "),e("li",[t._v("5 - Quintuple click")]),t._v(" "),e("li",[t._v("9 - Long press")]),t._v(" "),e("li",[t._v("10 - Button release")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[82],{383: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:"nodon-niu-smart-button"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#nodon-niu-smart-button"}},[t._v("#")]),t._v(" NodOn NIU smart button")]),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/NODONNIU_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("NODONNIU"),e("OutboundLink")],1)])])]),t._v(" "),e("tbody",[e("tr",[e("td",[t._v("Brand")]),t._v(" "),e("td",[t._v("NodOn")])]),t._v(" "),e("tr",[e("td",[t._v("Model")]),t._v(" "),e("td",[t._v("NIU smart button")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Bluetooth smart 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, color, 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("p",[t._v("The button press type is encoded as:")]),t._v(" "),e("ul",[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("4 - Quadruple click")]),t._v(" "),e("li",[t._v("5 - Quintuple click")]),t._v(" "),e("li",[t._v("9 - Long press")]),t._v(" "),e("li",[t._v("10 - Button release")])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/83.6a055075.js b/assets/js/83.03539ab7.js similarity index 95% rename from assets/js/83.6a055075.js rename to assets/js/83.03539ab7.js index e775d4536..ee0c3fac4 100644 --- a/assets/js/83.6a055075.js +++ b/assets/js/83.03539ab7.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[83],{388: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([[83],{386: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/84.d94b4ba5.js b/assets/js/84.36d35ec9.js similarity index 95% rename from assets/js/84.d94b4ba5.js rename to assets/js/84.36d35ec9.js index 5ee34bc6b..93a7fbbd0 100644 --- a/assets/js/84.d94b4ba5.js +++ b/assets/js/84.36d35ec9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[84],{386: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([[84],{387: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/85.9bf1dadf.js b/assets/js/85.bcac8195.js similarity index 95% rename from assets/js/85.9bf1dadf.js rename to assets/js/85.bcac8195.js index 123ef8f16..7bdea9f85 100644 --- a/assets/js/85.9bf1dadf.js +++ b/assets/js/85.bcac8195.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{387: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([[85],{388: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/88.6bd86a50.js b/assets/js/88.0d5f832a.js similarity index 96% rename from assets/js/88.6bd86a50.js rename to assets/js/88.0d5f832a.js index d3796f7d7..bbf76746c 100644 --- a/assets/js/88.6bd86a50.js +++ b/assets/js/88.0d5f832a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{391:function(t,r,v){"use strict";v.r(r);var e=v(14),a=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"ruuvitag-rawv1-data-format"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ruuvitag-rawv1-data-format"}},[t._v("#")]),t._v(" RuuviTag (RAWv1 data format)")]),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/RuuviTag_RAWv1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("RuuviTag_RAWv1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Ruuvi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("RuuviTag")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Open source environmental 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("CR2477")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, pressure, acceleration x/y/z-axis, 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("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{392:function(t,r,v){"use strict";v.r(r);var e=v(14),a=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"ruuvitag-rawv1-data-format"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#ruuvitag-rawv1-data-format"}},[t._v("#")]),t._v(" RuuviTag (RAWv1 data format)")]),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/RuuviTag_RAWv1_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("RuuviTag_RAWv1"),r("OutboundLink")],1)])])]),t._v(" "),r("tbody",[r("tr",[r("td",[t._v("Brand")]),t._v(" "),r("td",[t._v("Ruuvi")])]),t._v(" "),r("tr",[r("td",[t._v("Model")]),t._v(" "),r("td",[t._v("RuuviTag")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Open source environmental 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("CR2477")])]),t._v(" "),r("tr",[r("td",[t._v("Exchanged Data")]),t._v(" "),r("td",[t._v("temperature, humidity, pressure, acceleration x/y/z-axis, 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("Device Tracker")]),t._v(" "),r("td",[t._v("✅")])])])])])}),[],!1,null,null,null);r.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/89.ea36c501.js b/assets/js/89.d2145486.js similarity index 96% rename from assets/js/89.ea36c501.js rename to assets/js/89.d2145486.js index e5cfd0a40..1eaf06cfa 100644 --- a/assets/js/89.ea36c501.js +++ b/assets/js/89.d2145486.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[89],{392: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([[89],{391: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/94.5bf96b40.js b/assets/js/94.9fc29ceb.js similarity index 95% rename from assets/js/94.5bf96b40.js rename to assets/js/94.9fc29ceb.js index b73cdbca6..1ae90c756 100644 --- a/assets/js/94.5bf96b40.js +++ b/assets/js/94.9fc29ceb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{397: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([[94],{398: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/95.d63c6772.js b/assets/js/95.cb55795d.js similarity index 95% rename from assets/js/95.d63c6772.js rename to assets/js/95.cb55795d.js index 26d8aded1..e434e8f7e 100644 --- a/assets/js/95.d63c6772.js +++ b/assets/js/95.cb55795d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{398: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([[95],{397: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/96.2e172942.js b/assets/js/96.b0b4429b.js similarity index 95% rename from assets/js/96.2e172942.js rename to assets/js/96.b0b4429b.js index a4beedb05..ec197c7b0 100644 --- a/assets/js/96.2e172942.js +++ b/assets/js/96.b0b4429b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[96],{399: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([[96],{400: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/97.0e8be36c.js b/assets/js/97.337f7735.js similarity index 96% rename from assets/js/97.0e8be36c.js rename to assets/js/97.337f7735.js index bfd62b9af..6e907a87f 100644 --- a/assets/js/97.0e8be36c.js +++ b/assets/js/97.337f7735.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{400: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:"shellyblu-h-t"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-h-t"}},[t._v("#")]),t._v(" ShellyBLU H&T")]),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/SBHT_003C_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBHT-003C"),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 H&T")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Humidity and temperature 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, 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("1 - Single short click")]),t._v(" "),e("li",[t._v("11 - Button hold")])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[97],{399: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:"shellyblu-h-t"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#shellyblu-h-t"}},[t._v("#")]),t._v(" ShellyBLU H&T")]),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/SBHT_003C_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("SBHT-003C"),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 H&T")])]),t._v(" "),e("tr",[e("td",[t._v("Short Description")]),t._v(" "),e("td",[t._v("Humidity and temperature 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, 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("1 - Single short click")]),t._v(" "),e("li",[t._v("11 - Button hold")])])])}),[],!1,null,null,null);e.default=v.exports}}]); \ No newline at end of file diff --git a/assets/js/99.1e038e46.js b/assets/js/99.de0f8f16.js similarity index 95% rename from assets/js/99.1e038e46.js rename to assets/js/99.de0f8f16.js index 14214b7b9..e07295273 100644 --- a/assets/js/99.1e038e46.js +++ b/assets/js/99.de0f8f16.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{402: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:"switchbot-meter-pro-co2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-meter-pro-co2"}},[t._v("#")]),t._v(" SwitchBot Meter Pro (CO2)")]),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/SBMP_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W490001X"),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("Meter Pro (CO2)")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Thermo-Hygrometer and CO2 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, carbon dioxide, 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([[99],{405: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:"switchbot-meter-pro-co2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#switchbot-meter-pro-co2"}},[t._v("#")]),t._v(" SwitchBot Meter Pro (CO2)")]),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/SBMP_json.h",target:"_blank",rel:"noopener noreferrer"}},[t._v("W490001X"),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("Meter Pro (CO2)")])]),t._v(" "),r("tr",[r("td",[t._v("Short Description")]),t._v(" "),r("td",[t._v("Thermo-Hygrometer and CO2 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, carbon dioxide, 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/app.526f1dc7.js b/assets/js/app.c88adc33.js similarity index 81% rename from assets/js/app.526f1dc7.js rename to assets/js/app.c88adc33.js index 4ca399796..22be65921 100644 --- a/assets/js/app.526f1dc7.js +++ b/assets/js/app.c88adc33.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 a(t,e,n){return tn?n:t}function o(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=a(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 a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(t)+"%,0)"}:{"margin-left":o(t)+"%"}).transition="all "+e+"ms "+n,a}(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)*a(Math.random()*e,.1,.95)),e=a(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 a,i=e.querySelector(r.barSelector),c=t?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(a=e.querySelector(r.spinnerSelector))&&p(a),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,a=t.length,o=e.charAt(0).toUpperCase()+e.slice(1);a--;)if((r=t[a]+o)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,a,o=arguments;if(2==o.length)for(n in e)void 0!==(a=e[n])&&e.hasOwnProperty(n)&&r(t,n,a);else r(t,o[1],o[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=a)},function(t,e,n){var r=n(1),a=n(44).f,o=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=a(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)&&o(p,"sham",!0),i(n,u,p,t)}}},function(t,e,n){var r=n(26),a=Function.prototype.call;t.exports=r?a.bind(a):function(){return a.apply(a,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),a=n(47);t.exports=function(t){return r(a(t))}},function(t,e,n){var r=n(1),a=n(57),o=n(7),i=n(59),s=n(54),c=n(53),l=a("wks"),u=r.Symbol,f=u&&u.for,p=c?u:u&&u.withoutSetter||i;t.exports=function(t){if(!o(l,t)||!s&&"string"!=typeof l[t]){var e="Symbol."+t;s&&o(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),a=n(31),o=r["__core-js_shared__"]||a("__core-js_shared__",{});t.exports=o},function(t,e,n){var r=n(1),a=Object.defineProperty;t.exports=function(t,e){try{a(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e,n){var r=n(47),a=Object;t.exports=function(t){return a(r(t))}},function(t,e,n){var r=n(8),a=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(a(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),a=n(10),o=Object.prototype,i=o.hasOwnProperty,s=o.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return a(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),a=n(170),o=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),a=n(42),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\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&&!a(t))||(i.test(t)||!o.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(11),a=n(10);t.exports=function(t){return"symbol"==typeof t||a(t)&&"[object Symbol]"==r(t)}},function(t,e){t.exports=function(t){return t}},function(t,e,n){var r=n(4),a=n(25),o=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(!a(o.f,t,e),t[e])}},function(t,e,n){var r=n(5),a=n(2),o=n(12),i=Object,s=r("".split);t.exports=a((function(){return!i("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?s(t,""):i(t)}:i},function(t,e,n){var r=n(26),a=Function.prototype,o=a.call,i=r&&a.bind.bind(o,o);t.exports=r?i:function(t){return function(){return o.apply(t,arguments)}}},function(t,e,n){var r=n(48),a=TypeError;t.exports=function(t){if(r(t))throw a("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),a=n(51);t.exports=function(t){var e=r(t,"string");return a(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),a=n(0),o=n(52),i=n(53),s=Object;t.exports=i?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return a(e)&&o(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),a=n(2);t.exports=!!Object.getOwnPropertySymbols&&!a((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(t,e,n){var r,a,o=n(1),i=n(99),s=o.process,c=o.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(a=(r=u.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!a&&i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(a=+r[1]),t.exports=a},function(t,e,n){var r=n(0),a=n(101),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(a(t)+" is not a function")}},function(t,e,n){var r=n(58),a=n(30);(t.exports=function(t,e){return a[t]||(a[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),a=0,o=Math.random(),i=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+i(++a+o,36)}},function(t,e,n){var r=n(4),a=n(2),o=n(103);t.exports=!r&&!a((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},function(t,e){t.exports={}},function(t,e,n){var r=n(7),a=n(112),o=n(44),i=n(17);t.exports=function(t,e,n){for(var s=a(e),c=i.f,l=o.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(","),a=0;a-1)return t.splice(r,1)}}var P=Object.prototype.hasOwnProperty;function S(t,e){return P.call(t,e)}function x(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var T=/-(\w)/g,w=x((function(t){return t.replace(T,(function(t,e){return e?e.toUpperCase():""}))})),C=x((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,O=x((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 U(t,e){for(var n in e)t[n]=e[n];return t}function $(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 at={};Object.defineProperty(at,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,at)}catch(t){}var ot=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,a,o,i,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=a,this.ns=void 0,this.context=o,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)&&o(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,o,s,c=null;if(a(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&&a&&a!==r&&c===a.$key&&!i&&!a.$hasNormal)return a;for(var l in o={},e)e[l]&&"$"!==l[0]&&(o[l]=me(t,n,l,e[l]))}else o={};for(var u in n)u in o||(o[u]=be(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),X(o,"$stable",s),X(o,"$key",c),X(o,"$hasNormal",i),o}function me(t,e,n,r){var o=function(){var e=ut;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),o=(n=n&&"object"==typeof n&&!a(n)?[n]:qt(n))&&n[0];return ft(e),n&&(!o||1===n.length&&o.isComment&&!he(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}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,a){var o=!1;for(var i in e)i in t?e[i]!==n[i]&&(o=!0):(o=!0,_e(t,i,r,a));for(var i in t)i in e||(o=!0,delete t[i]);return o}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 Se=null;function xe(t,e){return(t.__esModule||lt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),u(t)?e.extend(t):t}function Te(t){if(a(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(),on=!0,en.sort(fn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);an||(an=!0,De(pn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),a=0;a-1)if(o&&!S(a,"default"))i=!1;else if(""===i||i===O(t)){var c=An(String,a.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,a=t._vnode;for(var o in n){var i=n[o];if(i){var s=i.name;s&&!e(s)&&Qn(n,o,r,a)}}}function Qn(t,e,n,r){var a=t[e];!a||r&&a.tag===r.tag||a.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 a=r.componentOptions;n.propsData=a.propsData,n._parentListeners=a.listeners,n._renderChildren=a.children,n._componentTag=a.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,a=n&&n.context;t.$slots=pe(e._renderChildren,a),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,a){return we(t,e,n,r,a,!1)},t.$createElement=function(e,n,r,a){return we(t,e,n,r,a,!0)};var o=n&&n.data;Lt(t,"$attrs",o&&o.attrs||r,null,!0),Lt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&(Ut(!1),Object.keys(e).forEach((function(n){Lt(t,n,e[n])})),Ut(!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),a=lt?Reflect.ownKeys(n):Object.keys(n),o=0;o1?M(n):n;for(var r=M(arguments,1),a='event handler for "'.concat(t,'"'),o=0,i=n.length;oparseInt(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=Te(t),n=e&&e.componentOptions;if(n){var r=qn(n),a=this.include,o=this.exclude;if(a&&(!r||!Yn(a,r))||o&&r&&Yn(o,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:xn,extend:U,mergeOptions:Mn,defineReactive:Lt},t.set=At,t.delete=Rt,t.nextTick=De,t.observable=function(t){return Bt(t),t},t.options=Object.create(null),I.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,U(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:ot}),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"),ar=y("events,caret,typing,plaintext-only"),or=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,a=t.length;r-1?Rr(t,e,n):or(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&&ar(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:Lr,update:Lr};function Dr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.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 a(){var o=e.apply(null,arguments);null!==o&&Xr(t,a,n,r)}}var Gr=Ue&&!(et&&Number(et[1])<=53);function Fr(t,e,n,r){if(Gr){var a=cn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=a||t.timeStamp<=0||t.target.ownerDocument!==document)return o.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(!o(t.data.on)||!o(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,Tr)}};function qr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=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=U({},l)),c)n in l||(a[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===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var u=o(r)?"":String(r);Yr(a,u)&&(a.value=u)}else if("innerHTML"===n&&mr(a.tagName)&&o(a.innerHTML)){(Vr=Vr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Vr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;f.firstChild;)a.appendChild(f.firstChild)}else if(r!==c[n])try{a[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=x((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=ta(t.style);return t.staticStyle?U(t.staticStyle,e):e}function ta(t){return Array.isArray(t)?$(t):"string"==typeof t?Qr(t):t}var ea,na=/^--/,ra=/\s*!important$/,aa=function(t,e,n){if(na.test(e))t.style.setProperty(e,n);else if(ra.test(n))t.style.setProperty(O(e),n.replace(ra,""),"important");else{var r=ia(e);if(Array.isArray(n))for(var a=0,o=n.length;a-1?e.split(la).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 fa(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(la).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 pa(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&U(e,da(t.name||"v")),U(e,t),e}return"string"==typeof t?da(t):void 0}}var da=x((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")}})),ha=K&&!J,va="transition",ma="transitionend",ba="animation",ya="animationend";ha&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(va="WebkitTransition",ma="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ba="WebkitAnimation",ya="webkitAnimationEnd"));var ga=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function _a(t){ga((function(){ga(t)}))}function Pa(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),ua(t,e))}function Sa(t,e){t._transitionClasses&&_(t._transitionClasses,e),fa(t,e)}function xa(t,e,n){var r=wa(t,e),a=r.type,o=r.timeout,i=r.propCount;if(!a)return n();var s="transition"===a?ma:ya,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=o.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?o.length:c.length:0,{type:n,timeout:u,propCount:f,hasTransform:"transition"===n&&Ta.test(r[va+"Property"])}}function Ca(t,e){for(;t.length1}function $a(t,e){!0!==e.data.show&&Oa(e)}var ja=function(t){var e,n,r={},l=t.modules,u=t.nodeOps;for(e=0;eh?_(t,o(n[b+1])?null:n[b+1].elm,n,d,b,r):d>b&&S(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)?S(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!==o&&(i.selected=o);else if(A(Ha(i),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));a||(t.selectedIndex=-1)}}function Ra(t,e){return e.every((function(e){return!A(e,t)}))}function Ha(t){return"_value"in t?t._value:t.value}function Da(t){t.target.composing=!0}function Ia(t){t.target.composing&&(t.target.composing=!1,Na(t.target,"input"))}function Na(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Wa(t){return!t.componentInstance||t.data&&t.data.transition?t:Wa(t.componentInstance._vnode)}var Ga={model:Ba,show:{bind:function(t,e,n){var r=e.value,a=(n=Wa(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&a?(n.data.show=!0,Oa(n,(function(){t.style.display=o}))):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Wa(n)).data&&n.data.transition?(n.data.show=!0,r?Oa(n,(function(){t.style.display=t.__vOriginalDisplay})):Ea(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,a){a||(t.style.display=t.__vOriginalDisplay)}}},Fa={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 Xa(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Xa(Te(e.children)):t}function za(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var a=n._parentListeners;for(var r in a)e[w(r)]=a[r];return e}function Va(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ka=function(t){return t.tag||he(t)},qa=function(t){return"show"===t.name},Ya={name:"transition",props:Fa,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Ka)).length){0;var r=this.mode;0;var a=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return a;var o=Xa(a);if(!o)return a;if(this._leaving)return Va(t,a);var i="__transition-".concat(this._uid,"-");o.key=null==o.key?o.isComment?i+"comment":i+o.tag:c(o.key)?0===String(o.key).indexOf(i)?o.key:i+o.key:o.key;var s=(o.data||(o.data={})).transition=za(this),l=this._vnode,u=Xa(l);if(o.data.directives&&o.data.directives.some(qa)&&(o.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,u)&&!he(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=U({},s);if("out-in"===r)return this._leaving=!0,Vt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Va(t,a);if("in-out"===r){if(he(o))return l;var p,d=function(){p()};Vt(s,"afterEnter",d),Vt(s,"enterCancelled",d),Vt(f,"delayLeave",(function(t){p=t}))}}return a}}},Ja=U({tag:String,moveClass:String},Fa);function Qa(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Za(t){t.data.newPos=t.elm.getBoundingClientRect()}function to(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,a=e.top-n.top;if(r||a){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate(".concat(r,"px,").concat(a,"px)"),o.transitionDuration="0s"}}delete Ja.mode;var eo={Transition:Ya,TransitionGroup:{props:Ja,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var a=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,a(),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,a=this.$slots.default||[],o=this.children=[],i=za(this),s=0;s-1?yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:yr[t]=/HTMLUnknownElement/.test(e.toString())},U(Vn.options.directives,Ga),U(Vn.options.components,eo),Vn.prototype.__patch__=K?ja: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 a=t._preWatchers;if(a)for(var o=0;o=0&&(e=t.slice(r),t=t.slice(0,r));var a=t.indexOf("?");return a>=0&&(n=t.slice(a+1),t=t.slice(0,a)),{path:t,query:n,hash:e}}(a.path||""),l=e&&e.path||"/",u=c.path?xo(c.path,l,n||a.append):l,f=function(t,e,n){void 0===e&&(e={});var r,a=n||lo;try{r=a(t||"")}catch(t){r={}}for(var o in e){var i=e[o];r[o]=Array.isArray(i)?i.map(co):co(i)}return r}(c.query,a.query,r&&r.options.parseQuery),p=a.hash||c.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}var Fo,Xo=function(){},zo={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,a=n.resolve(this.to,r,this.append),o=a.location,i=a.route,s=a.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?po(null,Go(i.redirectedFrom),null,n):i;c[h]=yo(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(fo,"/").indexOf(e.path.replace(fo,"/"))&&(!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){Vo(t)&&(e.replace?n.replace(o,Xo):n.push(o,Xo))},y={click:Vo};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=Wo(u.path,s.params),c(u,s,i)}if(s.path){s.params={};for(var d=0;d-1}function Ti(t,e){return xi(t)&&t._isRouter&&(null==e||t.type===e)}function wi(t,e,n){var r=function(a){a>=t.length?n():t[a]?e(t[a],(function(){r(a+1)})):r(a+1)};r(0)}function Ci(t){return function(e,n,r){var a=!1,o=0,i=null;ki(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){a=!0,o++;var c,l=Mi((function(e){var a;((a=e).__esModule||Ei&&"Module"===a[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Fo.extend(e),n.components[s]=e,--o<=0&&r()})),u=Mi((function(t){var e="Failed to resolve async component "+s+": "+t;i||(i=xi(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)}}})),a||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 Ui=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ko){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=vo,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function $i(t,e,n,r){var a=ki(t,(function(t,r,a,o){var i=function(t,e){"function"!=typeof t&&(t=Fo.extend(t));return t.options[e]}(t,e);if(i)return Array.isArray(i)?i.map((function(t){return n(t,r,a,o)})):n(i,r,a,o)}));return Oi(r?a.reverse():a)}function ji(t,e){if(e)return function(){return t.apply(e,arguments)}}Ui.prototype.listen=function(t){this.cb=t},Ui.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Ui.prototype.onError=function(t){this.errorCbs.push(t)},Ui.prototype.transitionTo=function(t,e,n){var r,a=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var o=this.current;this.confirmTransition(r,(function(){a.updateRoute(r),e&&e(r),a.ensureURL(),a.router.afterHooks.forEach((function(t){t&&t(r,o)})),a.ready||(a.ready=!0,a.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!a.ready&&(Ti(t,yi.redirected)&&o===vo||(a.ready=!0,a.readyErrorCbs.forEach((function(e){e(t)}))))}))},Ui.prototype.confirmTransition=function(t,e,n){var r=this,a=this.current;this.pending=t;var o,i,s=function(t){!Ti(t)&&xi(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,l=a.matched.length-1;if(yo(t,a)&&c===l&&t.matched[c]===a.matched[l])return this.ensureURL(),t.hash&&ii(this.router,a,t,!1),s(((i=Pi(o=a,t,yi.duplicated,'Avoided redundant navigation to current location: "'+o.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(oi());var a=function(){var n=t.current,a=Li(t.base);t.current===vo&&a===t._startLocation||t.transitionTo(a,(function(t){r&&ii(e,t,n,!0)}))};window.addEventListener("popstate",a),this.listeners.push((function(){window.removeEventListener("popstate",a)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){mi(To(r.base+t.fullPath)),ii(r.router,t,a,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){bi(To(r.base+t.fullPath)),ii(r.router,t,a,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Li(this.base)!==this.current.fullPath){var e=To(this.base+this.current.fullPath);t?mi(e):bi(e)}},e.prototype.getCurrentLocation=function(){return Li(this.base)},e}(Ui);function Li(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(To(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ai=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Li(t);if(!/^\/#/.test(e))return window.location.replace(To(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(oi());var r=function(){var e=t.current;Ri()&&t.transitionTo(Hi(),(function(r){n&&ii(t.router,r,e,!0),vi||Ni(r.fullPath)}))},a=vi?"popstate":"hashchange";window.addEventListener(a,r),this.listeners.push((function(){window.removeEventListener(a,r)}))}},e.prototype.push=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){Ii(t.fullPath),ii(r.router,t,a,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){Ni(t.fullPath),ii(r.router,t,a,!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}(Ui);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){Ti(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}(Ui),Gi=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Jo(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!vi&&!1!==t.fallback,this.fallback&&(e="hash"),Ko||(e="abstract"),this.mode=e,e){case"history":this.history=new Bi(this,t.base);break;case"hash":this.history=new Ai(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 Bi||n instanceof Ai){var r=function(t){n.setupListeners(),function(t){var r=n.current,a=e.options.scrollBehavior;vi&&a&&"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=Go(t,e=e||this.history.current,n,this),a=this.match(r,e),o=a.redirectedFrom||a.fullPath;return{location:r,route:a,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?To(t+"/"+r):r}(this.history.base,o,this.mode),normalizedTo:r,resolved:a}},Gi.prototype.getRoutes=function(){return this.matcher.getRoutes()},Gi.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==vo&&this.history.transitionTo(this.history.getCurrentLocation())},Gi.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==vo&&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||Fo!==e){t.installed=!0,Fo=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",Po),e.component("RouterLink",zo);var a=e.config.optionMergeStrategies;a.beforeRouteEnter=a.beforeRouteLeave=a.beforeRouteUpdate=a.created}},Gi.version="3.6.5",Gi.isNavigationFailure=Ti,Gi.NavigationFailureType=yi,Gi.START_LOCATION=vo,Ko&&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-92347580":()=>n.e(6).then(n.bind(null,317)),"v-bd76cbca":()=>n.e(42).then(n.bind(null,318)),"v-5e433cca":()=>n.e(43).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-66cd695b":()=>n.e(46).then(n.bind(null,322)),"v-e2a25132":()=>n.e(47).then(n.bind(null,323)),"v-62a567ca":()=>n.e(48).then(n.bind(null,324)),"v-cd7fa48e":()=>n.e(49).then(n.bind(null,325)),"v-7be1050a":()=>n.e(50).then(n.bind(null,326)),"v-df3fa35e":()=>n.e(7).then(n.bind(null,327)),"v-05508cd7":()=>n.e(51).then(n.bind(null,328)),"v-e44b2e0a":()=>n.e(8).then(n.bind(null,329)),"v-bf08e74a":()=>n.e(52).then(n.bind(null,330)),"v-6e110c1d":()=>n.e(53).then(n.bind(null,331)),"v-71dcbd0a":()=>n.e(54).then(n.bind(null,332)),"v-0cb1307b":()=>n.e(9).then(n.bind(null,333)),"v-30fce24a":()=>n.e(55).then(n.bind(null,334)),"v-01bfbabb":()=>n.e(56).then(n.bind(null,335)),"v-6ca26cc1":()=>n.e(10).then(n.bind(null,336)),"v-24eacf82":()=>n.e(57).then(n.bind(null,337)),"v-54871c8a":()=>n.e(12).then(n.bind(null,338)),"v-e228f58a":()=>n.e(11).then(n.bind(null,339)),"v-6901bec9":()=>n.e(14).then(n.bind(null,340)),"v-2c2c2b72":()=>n.e(13).then(n.bind(null,341)),"v-aba55e8a":()=>n.e(16).then(n.bind(null,342)),"v-2342d9bb":()=>n.e(59).then(n.bind(null,343)),"v-d85d80e2":()=>n.e(58).then(n.bind(null,344)),"v-befdac4a":()=>n.e(15).then(n.bind(null,345)),"v-bd41cf4a":()=>n.e(60).then(n.bind(null,346)),"v-392bfc1b":()=>n.e(17).then(n.bind(null,347)),"v-f5db240a":()=>n.e(18).then(n.bind(null,348)),"v-c165b0ca":()=>n.e(61).then(n.bind(null,349)),"v-2998cd0a":()=>n.e(62).then(n.bind(null,350)),"v-371a0b5b":()=>n.e(63).then(n.bind(null,351)),"v-623221ca":()=>n.e(64).then(n.bind(null,352)),"v-1acd60fb":()=>n.e(65).then(n.bind(null,353)),"v-66b3d2db":()=>n.e(19).then(n.bind(null,354)),"v-02fe92ca":()=>n.e(66).then(n.bind(null,355)),"v-253d75fb":()=>n.e(67).then(n.bind(null,356)),"v-be84a14a":()=>n.e(69).then(n.bind(null,357)),"v-7871bcfb":()=>n.e(20).then(n.bind(null,358)),"v-08f0cb9b":()=>n.e(68).then(n.bind(null,359)),"v-5c18628a":()=>n.e(70).then(n.bind(null,360)),"v-65614ea9":()=>n.e(71).then(n.bind(null,361)),"v-622c3e27":()=>n.e(72).then(n.bind(null,362)),"v-757f164a":()=>n.e(73).then(n.bind(null,363)),"v-fbeacdca":()=>n.e(21).then(n.bind(null,364)),"v-07efbebb":()=>n.e(22).then(n.bind(null,365)),"v-bf7262e2":()=>n.e(23).then(n.bind(null,366)),"v-1faec98a":()=>n.e(74).then(n.bind(null,367)),"v-a477c00a":()=>n.e(24).then(n.bind(null,368)),"v-6a7237ca":()=>n.e(75).then(n.bind(null,369)),"v-4693609f":()=>n.e(76).then(n.bind(null,370)),"v-18e9a14a":()=>n.e(25).then(n.bind(null,371)),"v-34b6fd3a":()=>n.e(78).then(n.bind(null,372)),"v-5bcdcd8a":()=>n.e(26).then(n.bind(null,373)),"v-0371b60a":()=>n.e(77).then(n.bind(null,374)),"v-af62874e":()=>n.e(27).then(n.bind(null,375)),"v-5bb593ff":()=>n.e(28).then(n.bind(null,376)),"v-562de0e2":()=>n.e(29).then(n.bind(null,377)),"v-4659520d":()=>n.e(30).then(n.bind(null,378)),"v-5c794abd":()=>n.e(79).then(n.bind(null,379)),"v-38795a5b":()=>n.e(80).then(n.bind(null,380)),"v-50cf667e":()=>n.e(31).then(n.bind(null,381)),"v-1fcd57e2":()=>n.e(32).then(n.bind(null,382)),"v-f44f5c62":()=>n.e(81).then(n.bind(null,383)),"v-123165ee":()=>n.e(33).then(n.bind(null,384)),"v-499a5933":()=>n.e(82).then(n.bind(null,385)),"v-77595eb9":()=>n.e(84).then(n.bind(null,386)),"v-36fdd4af":()=>n.e(85).then(n.bind(null,387)),"v-508b6d9b":()=>n.e(83).then(n.bind(null,388)),"v-2df958ba":()=>n.e(87).then(n.bind(null,389)),"v-17735bb5":()=>n.e(86).then(n.bind(null,390)),"v-e185e69e":()=>n.e(88).then(n.bind(null,391)),"v-1922252f":()=>n.e(89).then(n.bind(null,392)),"v-fae7f80a":()=>n.e(90).then(n.bind(null,393)),"v-811a5b0a":()=>n.e(91).then(n.bind(null,394)),"v-7ad0738a":()=>n.e(92).then(n.bind(null,395)),"v-bb5a0abe":()=>n.e(93).then(n.bind(null,396)),"v-cd9f8836":()=>n.e(94).then(n.bind(null,397)),"v-acb53b3e":()=>n.e(95).then(n.bind(null,398)),"v-3644c2ca":()=>n.e(96).then(n.bind(null,399)),"v-6d08e24a":()=>n.e(97).then(n.bind(null,400)),"v-2149b03b":()=>n.e(98).then(n.bind(null,401)),"v-11226182":()=>n.e(99).then(n.bind(null,402)),"v-dfc2ee0e":()=>n.e(34).then(n.bind(null,403)),"v-18591c37":()=>n.e(35).then(n.bind(null,404)),"v-1688c53b":()=>n.e(100).then(n.bind(null,405)),"v-21034dca":()=>n.e(102).then(n.bind(null,406)),"v-72e5f5c9":()=>n.e(101).then(n.bind(null,407)),"v-4e67a81a":()=>n.e(103).then(n.bind(null,408)),"v-2328ba97":()=>n.e(104).then(n.bind(null,409)),"v-bcfe58b6":()=>n.e(105).then(n.bind(null,410)),"v-3ad2b88a":()=>n.e(106).then(n.bind(null,411)),"v-00f466fb":()=>n.e(107).then(n.bind(null,412)),"v-d34e370a":()=>n.e(108).then(n.bind(null,413)),"v-1bf8fdbb":()=>n.e(109).then(n.bind(null,414)),"v-1ef034fb":()=>n.e(111).then(n.bind(null,415)),"v-3e2f1c8a":()=>n.e(110).then(n.bind(null,416)),"v-a0f1084a":()=>n.e(112).then(n.bind(null,417)),"v-26262fb6":()=>n.e(36).then(n.bind(null,418)),"v-50cfa3e3":()=>n.e(113).then(n.bind(null,419)),"v-6ce925e9":()=>n.e(114).then(n.bind(null,420)),"v-77a5bafb":()=>n.e(37).then(n.bind(null,421)),"v-78e7a64a":()=>n.e(38).then(n.bind(null,422)),"v-0f729ebb":()=>n.e(115).then(n.bind(null,423)),"v-0bab1bfb":()=>n.e(116).then(n.bind(null,424)),"v-5261d156":()=>n.e(117).then(n.bind(null,425)),"v-1ef9895f":()=>n.e(39).then(n.bind(null,426)),"v-0c830cdb":()=>n.e(40).then(n.bind(null,427)),"v-7b51fb7b":()=>n.e(118).then(n.bind(null,428)),"v-75a52741":()=>n.e(119).then(n.bind(null,429)),"v-35f4f98a":()=>n.e(121).then(n.bind(null,430)),"v-588a4461":()=>n.e(120).then(n.bind(null,431)),"v-b8fe1e0a":()=>n.e(122).then(n.bind(null,432)),"v-1350da9e":()=>n.e(123).then(n.bind(null,433)),"v-3766ecca":()=>n.e(124).then(n.bind(null,434)),"v-3dbed0ca":()=>n.e(125).then(n.bind(null,435)),"v-0db7e63b":()=>n.e(127).then(n.bind(null,436)),"v-43b9401b":()=>n.e(126).then(n.bind(null,437)),"v-54537f3f":()=>n.e(129).then(n.bind(null,438)),"v-5e1da45b":()=>n.e(128).then(n.bind(null,439))};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],as=t=>Ki[t],os=t=>Vi[t],is=t=>Vn.component(t);function ss(t){return es(as,t)}function cs(t){return es(os,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 Ss=n(90),xs={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(Ss)()((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),a=window.innerHeight+n;for(let t=0;t=o.parentElement.offsetTop+10&&(!i||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Ts=n(91),ws=n.n(Ts),Cs={mounted(){ws.a.polyfill()}},ks=n(23),Os=n.n(ks),Es=[bs,xs,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"}}},Us=n(14),$s=Object(Us.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.")}}($s,"mixins",Es);const js=[{name:"v-92347580",path:"/",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-92347580").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-bd76cbca",path:"/devices/ABN03.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bd76cbca").then(n)}},{name:"v-5e433cca",path:"/devices/ABN07.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5e433cca").then(n)}},{name:"v-cb67a10e",path:"/devices/ABTemp.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-cb67a10e").then(n)}},{name:"v-590a8cca",path:"/devices/Amazfit.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-590a8cca").then(n)}},{name:"v-66cd695b",path:"/devices/Amphiro.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-66cd695b").then(n)}},{name:"v-e2a25132",path:"/devices/AppleAirPods.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e2a25132").then(n)}},{name:"v-62a567ca",path:"/devices/AppleDevice.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-62a567ca").then(n)}},{name:"v-cd7fa48e",path:"/devices/AppleWatch.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-cd7fa48e").then(n)}},{name:"v-7be1050a",path:"/devices/Aranet4.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7be1050a").then(n)}},{name:"v-df3fa35e",path:"/devices/BC08.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-df3fa35e").then(n)}},{name:"v-05508cd7",path:"/devices/BM1in1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-05508cd7").then(n)}},{name:"v-e44b2e0a",path:"/devices/BM2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e44b2e0a").then(n)}},{name:"v-bf08e74a",path:"/devices/BM3in1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bf08e74a").then(n)}},{name:"v-6e110c1d",path:"/devices/BM4in1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6e110c1d").then(n)}},{name:"v-71dcbd0a",path:"/devices/BM6.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-71dcbd0a").then(n)}},{name:"v-0cb1307b",path:"/devices/BPARASITE.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0cb1307b").then(n)}},{name:"v-30fce24a",path:"/devices/BWBSDOO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-30fce24a").then(n)}},{name:"v-01bfbabb",path:"/devices/BeatsBuds.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-01bfbabb").then(n)}},{name:"v-6ca26cc1",path:"/devices/CGD1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6ca26cc1").then(n)}},{name:"v-24eacf82",path:"/devices/CGC1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-24eacf82").then(n)}},{name:"v-54871c8a",path:"/devices/CGDN1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-54871c8a").then(n)}},{name:"v-e228f58a",path:"/devices/CGDK2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e228f58a").then(n)}},{name:"v-6901bec9",path:"/devices/CGH1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6901bec9").then(n)}},{name:"v-2c2c2b72",path:"/devices/CGG1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2c2c2b72").then(n)}},{name:"v-aba55e8a",path:"/devices/CGPR1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-aba55e8a").then(n)}},{name:"v-2342d9bb",path:"/devices/H5055.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2342d9bb").then(n)}},{name:"v-d85d80e2",path:"/devices/CGP23W.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-d85d80e2").then(n)}},{name:"v-befdac4a",path:"/devices/CGP1W.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-befdac4a").then(n)}},{name:"v-bd41cf4a",path:"/devices/H5072.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bd41cf4a").then(n)}},{name:"v-392bfc1b",path:"/devices/H5074.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-392bfc1b").then(n)}},{name:"v-f5db240a",path:"/devices/H5075.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-f5db240a").then(n)}},{name:"v-c165b0ca",path:"/devices/H5100.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-c165b0ca").then(n)}},{name:"v-2998cd0a",path:"/devices/H5101.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2998cd0a").then(n)}},{name:"v-371a0b5b",path:"/devices/H5102.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-371a0b5b").then(n)}},{name:"v-623221ca",path:"/devices/H5104.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-623221ca").then(n)}},{name:"v-1acd60fb",path:"/devices/H5105.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1acd60fb").then(n)}},{name:"v-66b3d2db",path:"/devices/H5106.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-66b3d2db").then(n)}},{name:"v-02fe92ca",path:"/devices/H5108.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-02fe92ca").then(n)}},{name:"v-253d75fb",path:"/devices/H5174.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-253d75fb").then(n)}},{name:"v-be84a14a",path:"/devices/H5179.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-be84a14a").then(n)}},{name:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7871bcfb").then(n)}},{name:"v-08f0cb9b",path:"/devices/H5177.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-08f0cb9b").then(n)}},{name:"v-5c18628a",path:"/devices/HHCCJCY10.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5c18628a").then(n)}},{name:"v-65614ea9",path:"/devices/HHCCPOT002.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-65614ea9").then(n)}},{name:"v-622c3e27",path:"/devices/HOBOMX2001.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-622c3e27").then(n)}},{name:"v-757f164a",path:"/devices/IBS-P01B.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-757f164a").then(n)}},{name:"v-fbeacdca",path:"/devices/IBS_TH1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-fbeacdca").then(n)}},{name:"v-07efbebb",path:"/devices/IBS_TH2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-07efbebb").then(n)}},{name:"v-bf7262e2",path:"/devices/IBT_2X.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bf7262e2").then(n)}},{name:"v-1faec98a",path:"/devices/IBT_6XS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1faec98a").then(n)}},{name:"v-a477c00a",path:"/devices/IBT_4XS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-a477c00a").then(n)}},{name:"v-6a7237ca",path:"/devices/ITH_12S.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6a7237ca").then(n)}},{name:"v-4693609f",path:"/devices/JAALEE.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-4693609f").then(n)}},{name:"v-18e9a14a",path:"/devices/JQJCY01YM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-18e9a14a").then(n)}},{name:"v-34b6fd3a",path:"/devices/KKM_K9.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-34b6fd3a").then(n)}},{name:"v-5bcdcd8a",path:"/devices/LYWSD02.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5bcdcd8a").then(n)}},{name:"v-0371b60a",path:"/devices/KKM_K6P.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0371b60a").then(n)}},{name:"v-af62874e",path:"/devices/LYWSD03MMC.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-af62874e").then(n)}},{name:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5bb593ff").then(n)}},{name:"v-562de0e2",path:"/devices/MBXPRO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-562de0e2").then(n)}},{name:"v-4659520d",path:"/devices/MHO-C401.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-4659520d").then(n)}},{name:"v-5c794abd",path:"/devices/MJWSD05MMC.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5c794abd").then(n)}},{name:"v-38795a5b",path:"/devices/MUE4094RT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-38795a5b").then(n)}},{name:"v-50cf667e",path:"/devices/Miband.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-50cf667e").then(n)}},{name:"v-1fcd57e2",path:"/devices/MokoBeacon.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1fcd57e2").then(n)}},{name:"v-f44f5c62",path:"/devices/Mikrotik.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-f44f5c62").then(n)}},{name:"v-123165ee",path:"/devices/Mopeka.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-123165ee").then(n)}},{name:"v-499a5933",path:"/devices/NODONNIU.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-499a5933").then(n)}},{name:"v-77595eb9",path:"/devices/ORAS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-77595eb9").then(n)}},{name:"v-36fdd4af",path:"/devices/OTOD.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-36fdd4af").then(n)}},{name:"v-508b6d9b",path:"/devices/ORALB.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-508b6d9b").then(n)}},{name:"v-2df958ba",path:"/devices/RDL52832.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2df958ba").then(n)}},{name:"v-17735bb5",path:"/devices/PH10.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-17735bb5").then(n)}},{name:"v-e185e69e",path:"/devices/RuuviTag_RAWv1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e185e69e").then(n)}},{name:"v-1922252f",path:"/devices/RuuviTag_RAWv2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1922252f").then(n)}},{name:"v-fae7f80a",path:"/devices/SBBT-002C.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-fae7f80a").then(n)}},{name:"v-811a5b0a",path:"/devices/SBBT-004CEU.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-811a5b0a").then(n)}},{name:"v-7ad0738a",path:"/devices/SBBT-004CUS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7ad0738a").then(n)}},{name:"v-bb5a0abe",path:"/devices/SBBT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bb5a0abe").then(n)}},{name:"v-cd9f8836",path:"/devices/SBCS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-cd9f8836").then(n)}},{name:"v-acb53b3e",path:"/devices/SBCU.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-acb53b3e").then(n)}},{name:"v-3644c2ca",path:"/devices/SBDW-002C.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3644c2ca").then(n)}},{name:"v-6d08e24a",path:"/devices/SBHT-003C.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6d08e24a").then(n)}},{name:"v-2149b03b",path:"/devices/SBMO-003Z.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2149b03b").then(n)}},{name:"v-11226182",path:"/devices/SBMP.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-11226182").then(n)}},{name:"v-dfc2ee0e",path:"/devices/SBMS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-dfc2ee0e").then(n)}},{name:"v-18591c37",path:"/devices/SBMT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-18591c37").then(n)}},{name:"v-1688c53b",path:"/devices/SBOT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1688c53b").then(n)}},{name:"v-21034dca",path:"/devices/SCD4X.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-21034dca").then(n)}},{name:"v-72e5f5c9",path:"/devices/SBS1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-72e5f5c9").then(n)}},{name:"v-4e67a81a",path:"/devices/SDLS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-4e67a81a").then(n)}},{name:"v-2328ba97",path:"/devices/SE_MAG.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2328ba97").then(n)}},{name:"v-bcfe58b6",path:"/devices/SE_RHT_PRO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bcfe58b6").then(n)}},{name:"v-3ad2b88a",path:"/devices/SE_TEMP.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3ad2b88a").then(n)}},{name:"v-00f466fb",path:"/devices/SE_TEMP_PRO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-00f466fb").then(n)}},{name:"v-d34e370a",path:"/devices/SE_TPROBE.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-d34e370a").then(n)}},{name:"v-1bf8fdbb",path:"/devices/SHT4x.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1bf8fdbb").then(n)}},{name:"v-1ef034fb",path:"/devices/ServiceData.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef034fb").then(n)}},{name:"v-3e2f1c8a",path:"/devices/SOLIS_6.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3e2f1c8a").then(n)}},{name:"v-a0f1084a",path:"/devices/Skale.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-a0f1084a").then(n)}},{name:"v-26262fb6",path:"/devices/T201.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-26262fb6").then(n)}},{name:"v-50cfa3e3",path:"/devices/T301.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-50cfa3e3").then(n)}},{name:"v-6ce925e9",path:"/devices/TILT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6ce925e9").then(n)}},{name:"v-77a5bafb",path:"/devices/TP357.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-77a5bafb").then(n)}},{name:"v-78e7a64a",path:"/devices/TP358.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-78e7a64a").then(n)}},{name:"v-0f729ebb",path:"/devices/TP359.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0f729ebb").then(n)}},{name:"v-0bab1bfb",path:"/devices/TP393.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0bab1bfb").then(n)}},{name:"v-5261d156",path:"/devices/ThermoBeacon.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5261d156").then(n)}},{name:"v-1ef9895f",path:"/devices/TPMS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef9895f").then(n)}},{name:"v-0c830cdb",path:"/devices/XMTZC05HM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0c830cdb").then(n)}},{name:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7b51fb7b").then(n)}},{name:"v-75a52741",path:"/devices/XOSSX2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-75a52741").then(n)}},{name:"v-35f4f98a",path:"/devices/iBeacon.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-35f4f98a").then(n)}},{name:"v-588a4461",path:"/devices/devices_by_brand.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-588a4461").then(n)}},{name:"v-b8fe1e0a",path:"/devices/iNodeEM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-b8fe1e0a").then(n)}},{name:"v-1350da9e",path:"/devices/rows.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1350da9e").then(n)}},{name:"v-3766ecca",path:"/participate/adding-decoders.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3766ecca").then(n)}},{name:"v-3dbed0ca",path:"/participate/development.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3dbed0ca").then(n)}},{name:"v-0db7e63b",path:"/use/ESP32.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0db7e63b").then(n)}},{name:"v-43b9401b",path:"/participate/support.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-43b9401b").then(n)}},{name:"v-54537f3f",path:"/use/python.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-54537f3f").then(n)}},{name:"v-5e1da45b",path:"/use/include.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5e1da45b").then(n)}},{path:"*",component:$s}],Bs={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:"Theengs BLE decoder",frontmatter:{title:"Theengs BLE decoder"},regularPath:"/",relativePath:"README.md",key:"v-92347580",path:"/",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"April Brother N03",frontmatter:{},regularPath:"/devices/ABN03.html",relativePath:"devices/ABN03.md",key:"v-bd76cbca",path:"/devices/ABN03.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"April Brother N07",frontmatter:{},regularPath:"/devices/ABN07.html",relativePath:"devices/ABN07.md",key:"v-5e433cca",path:"/devices/ABN07.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"April Brother ABTemp",frontmatter:{},regularPath:"/devices/ABTemp.html",relativePath:"devices/ABTemp.md",key:"v-cb67a10e",path:"/devices/ABTemp.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Amazfit Smart Watch/Band",frontmatter:{},regularPath:"/devices/Amazfit.html",relativePath:"devices/Amazfit.md",key:"v-590a8cca",path:"/devices/Amazfit.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Amphiro/Oras/Hansa Hydractiva/Activejet Digital",frontmatter:{},regularPath:"/devices/Amphiro.html",relativePath:"devices/Amphiro.md",key:"v-66cd695b",path:"/devices/Amphiro.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Apple AirPods (Pro)",frontmatter:{},regularPath:"/devices/AppleAirPods.html",relativePath:"devices/AppleAirPods.md",key:"v-e2a25132",path:"/devices/AppleAirPods.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Apple iPhone/iPad",frontmatter:{},regularPath:"/devices/AppleDevice.html",relativePath:"devices/AppleDevice.md",key:"v-62a567ca",path:"/devices/AppleDevice.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Apple Watch",frontmatter:{},regularPath:"/devices/AppleWatch.html",relativePath:"devices/AppleWatch.md",key:"v-cd7fa48e",path:"/devices/AppleWatch.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Aranet Aranet4 CO₂ Monitor",frontmatter:{},regularPath:"/devices/Aranet4.html",relativePath:"devices/Aranet4.md",key:"v-7be1050a",path:"/devices/Aranet4.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Blue Maestro Tempo Disc Temperature",frontmatter:{},regularPath:"/devices/BM1in1.html",relativePath:"devices/BM1in1.md",key:"v-05508cd7",path:"/devices/BM1in1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"BM2 Battery Monitor",frontmatter:{},regularPath:"/devices/BM2.html",relativePath:"devices/BM2.md",key:"v-e44b2e0a",path:"/devices/BM2.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"BM6 Battery Monitor",frontmatter:{},regularPath:"/devices/BM6.html",relativePath:"devices/BM6.md",key:"v-71dcbd0a",path:"/devices/BM6.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"rbaron b-parasite",frontmatter:{},regularPath:"/devices/BPARASITE.html",relativePath:"devices/BPARASITE.md",key:"v-0cb1307b",path:"/devices/BPARASITE.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Otio/BeeWi Smart Door & Window Sensor",frontmatter:{},regularPath:"/devices/BWBSDOO.html",relativePath:"devices/BWBSDOO.md",key:"v-30fce24a",path:"/devices/BWBSDOO.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Beats Solo/Studio Buds",frontmatter:{},regularPath:"/devices/BeatsBuds.html",relativePath:"devices/BeatsBuds.md",key:"v-01bfbabb",path:"/devices/BeatsBuds.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ClearGrass/Qingping Alarm Clock CGD1",frontmatter:{},regularPath:"/devices/CGD1.html",relativePath:"devices/CGD1.md",key:"v-6ca26cc1",path:"/devices/CGD1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Qingping Air Monitor Lite",frontmatter:{},regularPath:"/devices/CGDN1.html",relativePath:"devices/CGDN1.md",key:"v-54871c8a",path:"/devices/CGDN1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Qingping TH Lite CGDK2",frontmatter:{},regularPath:"/devices/CGDK2.html",relativePath:"devices/CGDK2.md",key:"v-e228f58a",path:"/devices/CGDK2.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Qingping Contact Sensor CGH1",frontmatter:{},regularPath:"/devices/CGH1.html",relativePath:"devices/CGH1.md",key:"v-6901bec9",path:"/devices/CGH1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ClearGrass/Qingping Hygro Thermometer CGG1",frontmatter:{},regularPath:"/devices/CGG1.html",relativePath:"devices/CGG1.md",key:"v-2c2c2b72",path:"/devices/CGG1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Qingping Motion & Light CGPR1",frontmatter:{},regularPath:"/devices/CGPR1.html",relativePath:"devices/CGPR1.md",key:"v-aba55e8a",path:"/devices/CGPR1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5055",frontmatter:{},regularPath:"/devices/H5055.html",relativePath:"devices/H5055.md",key:"v-2342d9bb",path:"/devices/H5055.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ClearGrass/Qingping Barometer Pro CGP23W",frontmatter:{},regularPath:"/devices/CGP23W.html",relativePath:"devices/CGP23W.md",key:"v-d85d80e2",path:"/devices/CGP23W.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ClearGrass/Qingping Weather Station CGP1W",frontmatter:{},regularPath:"/devices/CGP1W.html",relativePath:"devices/CGP1W.md",key:"v-befdac4a",path:"/devices/CGP1W.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5072",frontmatter:{},regularPath:"/devices/H5072.html",relativePath:"devices/H5072.md",key:"v-bd41cf4a",path:"/devices/H5072.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5074",frontmatter:{},regularPath:"/devices/H5074.html",relativePath:"devices/H5074.md",key:"v-392bfc1b",path:"/devices/H5074.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5075",frontmatter:{},regularPath:"/devices/H5075.html",relativePath:"devices/H5075.md",key:"v-f5db240a",path:"/devices/H5075.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5100",frontmatter:{},regularPath:"/devices/H5100.html",relativePath:"devices/H5100.md",key:"v-c165b0ca",path:"/devices/H5100.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5101",frontmatter:{},regularPath:"/devices/H5101.html",relativePath:"devices/H5101.md",key:"v-2998cd0a",path:"/devices/H5101.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5102",frontmatter:{},regularPath:"/devices/H5102.html",relativePath:"devices/H5102.md",key:"v-371a0b5b",path:"/devices/H5102.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5104",frontmatter:{},regularPath:"/devices/H5104.html",relativePath:"devices/H5104.md",key:"v-623221ca",path:"/devices/H5104.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5105",frontmatter:{},regularPath:"/devices/H5105.html",relativePath:"devices/H5105.md",key:"v-1acd60fb",path:"/devices/H5105.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5106",frontmatter:{},regularPath:"/devices/H5106.html",relativePath:"devices/H5106.md",key:"v-66b3d2db",path:"/devices/H5106.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5108",frontmatter:{},regularPath:"/devices/H5108.html",relativePath:"devices/H5108.md",key:"v-02fe92ca",path:"/devices/H5108.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5174",frontmatter:{},regularPath:"/devices/H5174.html",relativePath:"devices/H5174.md",key:"v-253d75fb",path:"/devices/H5174.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5179",frontmatter:{},regularPath:"/devices/H5179.html",relativePath:"devices/H5179.md",key:"v-be84a14a",path:"/devices/H5179.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi/VegTrug Mi Flora",frontmatter:{},regularPath:"/devices/HHCCJCY01HHCC.html",relativePath:"devices/HHCCJCY01HHCC.md",key:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Govee H5177",frontmatter:{},regularPath:"/devices/H5177.html",relativePath:"devices/H5177.md",key:"v-08f0cb9b",path:"/devices/H5177.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi Mi Flora (pink version)",frontmatter:{},regularPath:"/devices/HHCCJCY10.html",relativePath:"devices/HHCCJCY10.md",key:"v-5c18628a",path:"/devices/HHCCJCY10.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi RoPot",frontmatter:{},regularPath:"/devices/HHCCPOT002.html",relativePath:"devices/HHCCPOT002.md",key:"v-65614ea9",path:"/devices/HHCCPOT002.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Onset Hobo Water Level Sensor",frontmatter:{},regularPath:"/devices/HOBOMX2001.html",relativePath:"devices/HOBOMX2001.md",key:"v-622c3e27",path:"/devices/HOBOMX2001.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Inkbird P01B",frontmatter:{},regularPath:"/devices/IBS-P01B.html",relativePath:"devices/IBS-P01B.md",key:"v-757f164a",path:"/devices/IBS-P01B.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Inkbird TH1",frontmatter:{},regularPath:"/devices/IBS_TH1.html",relativePath:"devices/IBS_TH1.md",key:"v-fbeacdca",path:"/devices/IBS_TH1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Inkbird TH2",frontmatter:{},regularPath:"/devices/IBS_TH2.html",relativePath:"devices/IBS_TH2.md",key:"v-07efbebb",path:"/devices/IBS_TH2.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Inkbird ITH-12S",frontmatter:{},regularPath:"/devices/ITH_12S.html",relativePath:"devices/ITH_12S.md",key:"v-6a7237ca",path:"/devices/ITH_12S.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Jaalee TH sensor F525/F51C",frontmatter:{},regularPath:"/devices/JAALEE.html",relativePath:"devices/JAALEE.md",key:"v-4693609f",path:"/devices/JAALEE.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi Formaldehyde detector",frontmatter:{},regularPath:"/devices/JQJCY01YM.html",relativePath:"devices/JQJCY01YM.md",key:"v-18e9a14a",path:"/devices/JQJCY01YM.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi/Mijia LYWSD02 e-ink Clock",frontmatter:{},regularPath:"/devices/LYWSD02.html",relativePath:"devices/LYWSD02.md",key:"v-5bcdcd8a",path:"/devices/LYWSD02.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi LYWSD03MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/LYWSD03MMC.html",relativePath:"devices/LYWSD03MMC.md",key:"v-af62874e",path:"/devices/LYWSD03MMC.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi LYWSDCGQ",frontmatter:{},regularPath:"/devices/LYWSDCGQ.html",relativePath:"devices/LYWSDCGQ.md",key:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"MokoSmart Pro",frontmatter:{},regularPath:"/devices/MBXPRO.html",relativePath:"devices/MBXPRO.md",key:"v-562de0e2",path:"/devices/MBXPRO.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi MJWSD05MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/MJWSD05MMC.html",relativePath:"devices/MJWSD05MMC.md",key:"v-5c794abd",path:"/devices/MJWSD05MMC.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi Motion sensor and light",frontmatter:{},regularPath:"/devices/MUE4094RT.html",relativePath:"devices/MUE4094RT.md",key:"v-38795a5b",path:"/devices/MUE4094RT.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi Mi Band",frontmatter:{},regularPath:"/devices/Miband.html",relativePath:"devices/Miband.md",key:"v-50cf667e",path:"/devices/Miband.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"MokoSmart Beacon",frontmatter:{},regularPath:"/devices/MokoBeacon.html",relativePath:"devices/MokoBeacon.md",key:"v-1fcd57e2",path:"/devices/MokoBeacon.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"MikroTik TG-BT5-IN & TG-BT5-OUT",frontmatter:{},regularPath:"/devices/Mikrotik.html",relativePath:"devices/Mikrotik.md",key:"v-f44f5c62",path:"/devices/Mikrotik.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"NodOn NIU smart button",frontmatter:{},regularPath:"/devices/NODONNIU.html",relativePath:"devices/NODONNIU.md",key:"v-499a5933",path:"/devices/NODONNIU.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Amphiro/Oras/Hansa Smart Faucet",frontmatter:{},regularPath:"/devices/ORAS.html",relativePath:"devices/ORAS.md",key:"v-77595eb9",path:"/devices/ORAS.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Otodata RC1010 Rotarex-compatible Monitor",frontmatter:{},regularPath:"/devices/OTOD.html",relativePath:"devices/OTOD.md",key:"v-36fdd4af",path:"/devices/OTOD.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Oral-B Bluetooth Toothbrush",frontmatter:{},regularPath:"/devices/ORALB.html",relativePath:"devices/ORALB.md",key:"v-508b6d9b",path:"/devices/ORALB.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"RDL52832",frontmatter:{},regularPath:"/devices/RDL52832.html",relativePath:"devices/RDL52832.md",key:"v-2df958ba",path:"/devices/RDL52832.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Polar H10 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/PH10.html",relativePath:"devices/PH10.md",key:"v-17735bb5",path:"/devices/PH10.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ShellyBLU Button1",frontmatter:{},regularPath:"/devices/SBBT-002C.html",relativePath:"devices/SBBT-002C.md",key:"v-fae7f80a",path:"/devices/SBBT-002C.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ShellyBLU Wall Switcht4",frontmatter:{},regularPath:"/devices/SBBT-004CEU.html",relativePath:"devices/SBBT-004CEU.md",key:"v-811a5b0a",path:"/devices/SBBT-004CEU.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ShellyBLU RC Button4",frontmatter:{},regularPath:"/devices/SBBT-004CUS.html",relativePath:"devices/SBBT-004CUS.md",key:"v-7ad0738a",path:"/devices/SBBT-004CUS.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Blind Tilt",frontmatter:{},regularPath:"/devices/SBBT.html",relativePath:"devices/SBBT.md",key:"v-bb5a0abe",path:"/devices/SBBT.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Contact Sensor",frontmatter:{},regularPath:"/devices/SBCS.html",relativePath:"devices/SBCS.md",key:"v-cd9f8836",path:"/devices/SBCS.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Curtain",frontmatter:{},regularPath:"/devices/SBCU.html",relativePath:"devices/SBCU.md",key:"v-acb53b3e",path:"/devices/SBCU.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ShellyBLU Door/Window",frontmatter:{},regularPath:"/devices/SBDW-002C.html",relativePath:"devices/SBDW-002C.md",key:"v-3644c2ca",path:"/devices/SBDW-002C.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ShellyBLU H&T",frontmatter:{},regularPath:"/devices/SBHT-003C.html",relativePath:"devices/SBHT-003C.md",key:"v-6d08e24a",path:"/devices/SBHT-003C.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ShellyBLU Motion",frontmatter:{},regularPath:"/devices/SBMO-003Z.html",relativePath:"devices/SBMO-003Z.md",key:"v-2149b03b",path:"/devices/SBMO-003Z.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Meter Pro (CO2)",frontmatter:{},regularPath:"/devices/SBMP.html",relativePath:"devices/SBMP.md",key:"v-11226182",path:"/devices/SBMP.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Motion Sensor",frontmatter:{},regularPath:"/devices/SBMS.html",relativePath:"devices/SBMS.md",key:"v-dfc2ee0e",path:"/devices/SBMS.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Meter (Plus)",frontmatter:{},regularPath:"/devices/SBMT.html",relativePath:"devices/SBMT.md",key:"v-18591c37",path:"/devices/SBMT.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Outdoor Meter",frontmatter:{},regularPath:"/devices/SBOT.html",relativePath:"devices/SBOT.md",key:"v-1688c53b",path:"/devices/SBOT.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Sensirion MyCO₂/CO₂ Gadget SCD4X",frontmatter:{},regularPath:"/devices/SCD4X.html",relativePath:"devices/SCD4X.md",key:"v-21034dca",path:"/devices/SCD4X.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SwitchBot Bot",frontmatter:{},regularPath:"/devices/SBS1.html",relativePath:"devices/SBS1.md",key:"v-72e5f5c9",path:"/devices/SBS1.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SmartDry Laundry Sensor",frontmatter:{},regularPath:"/devices/SDLS.html",relativePath:"devices/SDLS.md",key:"v-4e67a81a",path:"/devices/SDLS.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Sensor Easy Thermometer",frontmatter:{},regularPath:"/devices/SE_TEMP.html",relativePath:"devices/SE_TEMP.md",key:"v-3ad2b88a",path:"/devices/SE_TEMP.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Sensirion SHT4X Smart Gadget",frontmatter:{},regularPath:"/devices/SHT4x.html",relativePath:"devices/SHT4x.md",key:"v-1bf8fdbb",path:"/devices/SHT4x.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Service data",frontmatter:{},regularPath:"/devices/ServiceData.html",relativePath:"devices/ServiceData.md",key:"v-1ef034fb",path:"/devices/ServiceData.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Atomax Skale I/II",frontmatter:{},regularPath:"/devices/Skale.html",relativePath:"devices/Skale.md",key:"v-a0f1084a",path:"/devices/Skale.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Oria/Brifit/SigmaWit/SensorPro T201",frontmatter:{},regularPath:"/devices/T201.html",relativePath:"devices/T201.md",key:"v-26262fb6",path:"/devices/T201.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Oria/Brifit/SigmaWit/SensorPro T301",frontmatter:{},regularPath:"/devices/T301.html",relativePath:"devices/T301.md",key:"v-50cfa3e3",path:"/devices/T301.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Tilt Brewing Hydro- Thermometer",frontmatter:{},regularPath:"/devices/TILT.html",relativePath:"devices/TILT.md",key:"v-6ce925e9",path:"/devices/TILT.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ThermoPro TP357",frontmatter:{},regularPath:"/devices/TP357.html",relativePath:"devices/TP357.md",key:"v-77a5bafb",path:"/devices/TP357.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ThermoPro TP358",frontmatter:{},regularPath:"/devices/TP358.html",relativePath:"devices/TP358.md",key:"v-78e7a64a",path:"/devices/TP358.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ThermoPro TP359",frontmatter:{},regularPath:"/devices/TP359.html",relativePath:"devices/TP359.md",key:"v-0f729ebb",path:"/devices/TP359.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"ThermoPro TP393",frontmatter:{},regularPath:"/devices/TP393.html",relativePath:"devices/TP393.md",key:"v-0bab1bfb",path:"/devices/TP393.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"SensorBlue/Oria/Brifit ThermoBeacon",frontmatter:{},regularPath:"/devices/ThermoBeacon.html",relativePath:"devices/ThermoBeacon.md",key:"v-5261d156",path:"/devices/ThermoBeacon.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"TPMS",frontmatter:{},regularPath:"/devices/TPMS.html",relativePath:"devices/TPMS.md",key:"v-1ef9895f",path:"/devices/TPMS.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi Mi Body Composition Scale",frontmatter:{},regularPath:"/devices/XMTZC05HM.html",relativePath:"devices/XMTZC05HM.md",key:"v-0c830cdb",path:"/devices/XMTZC05HM.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Xiaomi Mi Smart Scale",frontmatter:{},regularPath:"/devices/XMTZC04HM.html",relativePath:"devices/XMTZC04HM.md",key:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"XOSS X2 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/XOSSX2.html",relativePath:"devices/XOSSX2.md",key:"v-75a52741",path:"/devices/XOSSX2.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"iBeacon",frontmatter:{},regularPath:"/devices/iBeacon.html",relativePath:"devices/iBeacon.md",key:"v-35f4f98a",path:"/devices/iBeacon.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"iNode Energy Meter",frontmatter:{},regularPath:"/devices/iNodeEM.html",relativePath:"devices/iNodeEM.md",key:"v-b8fe1e0a",path:"/devices/iNodeEM.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Rows",frontmatter:{},regularPath:"/devices/rows.html",relativePath:"devices/rows.md",key:"v-1350da9e",path:"/devices/rows.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Using with ESP32",frontmatter:{},regularPath:"/use/ESP32.html",relativePath:"use/ESP32.md",key:"v-0db7e63b",path:"/use/ESP32.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{title:"Supporting the project",frontmatter:{},regularPath:"/participate/support.html",relativePath:"participate/support.md",key:"v-43b9401b",path:"/participate/support.html",lastUpdated:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3},{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:"1/1/2025, 2:07:22 PM",lastUpdatedTimestamp:1735740442e3}],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,440))),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 Ls(t){const e=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-e.left,y:n.top-e.top}}n(236);var As=[{},({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:Ls(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(Us.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"))),a=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),o={};return Object.keys(a).reduce((t,e)=>(e.startsWith("$")&&(t[e]=a[e].get),t),o),{computed:o}}(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+"/",a=e.path+".html";Is(t,a)?r(a):Is(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(As.filter(t=>"function"==typeof t).map(e=>e({Vue:Vn,options:r,router:n,siteData:Bs,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({}),a=Array.isArray;function o(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(","),a=0;a-1)return t.splice(r,1)}}var P=Object.prototype.hasOwnProperty;function S(t,e){return P.call(t,e)}function x(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var T=/-(\w)/g,w=x((function(t){return t.replace(T,(function(t,e){return e?e.toUpperCase():""}))})),C=x((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),k=/\B([A-Z])/g,O=x((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 U(t,e){for(var n in e)t[n]=e[n];return t}function $(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 at={};Object.defineProperty(at,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,at)}catch(t){}var ot=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,a,o,i,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=a,this.ns=void 0,this.context=o,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)&&o(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,o,s,c=null;if(a(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&&a&&a!==r&&c===a.$key&&!i&&!a.$hasNormal)return a;for(var l in o={},e)e[l]&&"$"!==l[0]&&(o[l]=me(t,n,l,e[l]))}else o={};for(var u in n)u in o||(o[u]=be(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),X(o,"$stable",s),X(o,"$key",c),X(o,"$hasNormal",i),o}function me(t,e,n,r){var o=function(){var e=ut;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),o=(n=n&&"object"==typeof n&&!a(n)?[n]:qt(n))&&n[0];return ft(e),n&&(!o||1===n.length&&o.isComment&&!he(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}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,a){var o=!1;for(var i in e)i in t?e[i]!==n[i]&&(o=!0):(o=!0,_e(t,i,r,a));for(var i in t)i in e||(o=!0,delete t[i]);return o}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 Se=null;function xe(t,e){return(t.__esModule||lt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),u(t)?e.extend(t):t}function Te(t){if(a(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(),on=!0,en.sort(fn),sn=0;snsn&&en[n].id>t.id;)n--;en.splice(n+1,0,t)}else en.push(t);an||(an=!0,De(pn))}}function hn(t,e){if(t){for(var n=Object.create(null),r=lt?Reflect.ownKeys(t):Object.keys(t),a=0;a-1)if(o&&!S(a,"default"))i=!1;else if(""===i||i===O(t)){var c=An(String,a.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,a=t._vnode;for(var o in n){var i=n[o];if(i){var s=i.name;s&&!e(s)&&Qn(n,o,r,a)}}}function Qn(t,e,n,r){var a=t[e];!a||r&&a.tag===r.tag||a.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 a=r.componentOptions;n.propsData=a.propsData,n._parentListeners=a.listeners,n._renderChildren=a.children,n._componentTag=a.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,a=n&&n.context;t.$slots=pe(e._renderChildren,a),t.$scopedSlots=n?ve(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,a){return we(t,e,n,r,a,!1)},t.$createElement=function(e,n,r,a){return we(t,e,n,r,a,!0)};var o=n&&n.data;Lt(t,"$attrs",o&&o.attrs||r,null,!0),Lt(t,"$listeners",e._parentListeners||r,null,!0)}(e),tn(e,"beforeCreate",void 0,!1),function(t){var e=hn(t.$options.inject,t);e&&(Ut(!1),Object.keys(e).forEach((function(n){Lt(t,n,e[n])})),Ut(!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),a=lt?Reflect.ownKeys(n):Object.keys(n),o=0;o1?M(n):n;for(var r=M(arguments,1),a='event handler for "'.concat(t,'"'),o=0,i=n.length;oparseInt(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=Te(t),n=e&&e.componentOptions;if(n){var r=qn(n),a=this.include,o=this.exclude;if(a&&(!r||!Yn(a,r))||o&&r&&Yn(o,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:xn,extend:U,mergeOptions:Mn,defineReactive:Lt},t.set=At,t.delete=Rt,t.nextTick=De,t.observable=function(t){return Bt(t),t},t.options=Object.create(null),I.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,U(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:ot}),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"),ar=y("events,caret,typing,plaintext-only"),or=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,a=t.length;r-1?Rr(t,e,n):or(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&&ar(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:Lr,update:Lr};function Dr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.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 a(){var o=e.apply(null,arguments);null!==o&&Xr(t,a,n,r)}}var Gr=Ue&&!(et&&Number(et[1])<=53);function Fr(t,e,n,r){if(Gr){var a=cn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=a||t.timeStamp<=0||t.target.ownerDocument!==document)return o.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(!o(t.data.on)||!o(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,Tr)}};function qr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=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=U({},l)),c)n in l||(a[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===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var u=o(r)?"":String(r);Yr(a,u)&&(a.value=u)}else if("innerHTML"===n&&mr(a.tagName)&&o(a.innerHTML)){(Vr=Vr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Vr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;f.firstChild;)a.appendChild(f.firstChild)}else if(r!==c[n])try{a[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=x((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=ta(t.style);return t.staticStyle?U(t.staticStyle,e):e}function ta(t){return Array.isArray(t)?$(t):"string"==typeof t?Qr(t):t}var ea,na=/^--/,ra=/\s*!important$/,aa=function(t,e,n){if(na.test(e))t.style.setProperty(e,n);else if(ra.test(n))t.style.setProperty(O(e),n.replace(ra,""),"important");else{var r=ia(e);if(Array.isArray(n))for(var a=0,o=n.length;a-1?e.split(la).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 fa(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(la).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 pa(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&U(e,da(t.name||"v")),U(e,t),e}return"string"==typeof t?da(t):void 0}}var da=x((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")}})),ha=K&&!J,va="transition",ma="transitionend",ba="animation",ya="animationend";ha&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(va="WebkitTransition",ma="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ba="WebkitAnimation",ya="webkitAnimationEnd"));var ga=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function _a(t){ga((function(){ga(t)}))}function Pa(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),ua(t,e))}function Sa(t,e){t._transitionClasses&&_(t._transitionClasses,e),fa(t,e)}function xa(t,e,n){var r=wa(t,e),a=r.type,o=r.timeout,i=r.propCount;if(!a)return n();var s="transition"===a?ma:ya,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=o.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?o.length:c.length:0,{type:n,timeout:u,propCount:f,hasTransform:"transition"===n&&Ta.test(r[va+"Property"])}}function Ca(t,e){for(;t.length1}function $a(t,e){!0!==e.data.show&&Oa(e)}var ja=function(t){var e,n,r={},l=t.modules,u=t.nodeOps;for(e=0;eh?_(t,o(n[b+1])?null:n[b+1].elm,n,d,b,r):d>b&&S(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)?S(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!==o&&(i.selected=o);else if(A(Ha(i),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));a||(t.selectedIndex=-1)}}function Ra(t,e){return e.every((function(e){return!A(e,t)}))}function Ha(t){return"_value"in t?t._value:t.value}function Da(t){t.target.composing=!0}function Ia(t){t.target.composing&&(t.target.composing=!1,Na(t.target,"input"))}function Na(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Wa(t){return!t.componentInstance||t.data&&t.data.transition?t:Wa(t.componentInstance._vnode)}var Ga={model:Ba,show:{bind:function(t,e,n){var r=e.value,a=(n=Wa(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&a?(n.data.show=!0,Oa(n,(function(){t.style.display=o}))):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=Wa(n)).data&&n.data.transition?(n.data.show=!0,r?Oa(n,(function(){t.style.display=t.__vOriginalDisplay})):Ea(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,a){a||(t.style.display=t.__vOriginalDisplay)}}},Fa={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 Xa(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Xa(Te(e.children)):t}function za(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var a=n._parentListeners;for(var r in a)e[w(r)]=a[r];return e}function Va(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Ka=function(t){return t.tag||he(t)},qa=function(t){return"show"===t.name},Ya={name:"transition",props:Fa,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Ka)).length){0;var r=this.mode;0;var a=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return a;var o=Xa(a);if(!o)return a;if(this._leaving)return Va(t,a);var i="__transition-".concat(this._uid,"-");o.key=null==o.key?o.isComment?i+"comment":i+o.tag:c(o.key)?0===String(o.key).indexOf(i)?o.key:i+o.key:o.key;var s=(o.data||(o.data={})).transition=za(this),l=this._vnode,u=Xa(l);if(o.data.directives&&o.data.directives.some(qa)&&(o.data.show=!0),u&&u.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(o,u)&&!he(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=U({},s);if("out-in"===r)return this._leaving=!0,Vt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Va(t,a);if("in-out"===r){if(he(o))return l;var p,d=function(){p()};Vt(s,"afterEnter",d),Vt(s,"enterCancelled",d),Vt(f,"delayLeave",(function(t){p=t}))}}return a}}},Ja=U({tag:String,moveClass:String},Fa);function Qa(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Za(t){t.data.newPos=t.elm.getBoundingClientRect()}function to(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,a=e.top-n.top;if(r||a){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate(".concat(r,"px,").concat(a,"px)"),o.transitionDuration="0s"}}delete Ja.mode;var eo={Transition:Ya,TransitionGroup:{props:Ja,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var a=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,a(),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,a=this.$slots.default||[],o=this.children=[],i=za(this),s=0;s-1?yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:yr[t]=/HTMLUnknownElement/.test(e.toString())},U(Vn.options.directives,Ga),U(Vn.options.components,eo),Vn.prototype.__patch__=K?ja: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 a=t._preWatchers;if(a)for(var o=0;o=0&&(e=t.slice(r),t=t.slice(0,r));var a=t.indexOf("?");return a>=0&&(n=t.slice(a+1),t=t.slice(0,a)),{path:t,query:n,hash:e}}(a.path||""),l=e&&e.path||"/",u=c.path?xo(c.path,l,n||a.append):l,f=function(t,e,n){void 0===e&&(e={});var r,a=n||lo;try{r=a(t||"")}catch(t){r={}}for(var o in e){var i=e[o];r[o]=Array.isArray(i)?i.map(co):co(i)}return r}(c.query,a.query,r&&r.options.parseQuery),p=a.hash||c.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:u,query:f,hash:p}}var Fo,Xo=function(){},zo={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,a=n.resolve(this.to,r,this.append),o=a.location,i=a.route,s=a.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?po(null,Go(i.redirectedFrom),null,n):i;c[h]=yo(r,v,this.exactPath),c[d]=this.exact||this.exactPath?c[h]:function(t,e){return 0===t.path.replace(fo,"/").indexOf(e.path.replace(fo,"/"))&&(!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){Vo(t)&&(e.replace?n.replace(o,Xo):n.push(o,Xo))},y={click:Vo};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=Wo(u.path,s.params),c(u,s,i)}if(s.path){s.params={};for(var d=0;d-1}function Ti(t,e){return xi(t)&&t._isRouter&&(null==e||t.type===e)}function wi(t,e,n){var r=function(a){a>=t.length?n():t[a]?e(t[a],(function(){r(a+1)})):r(a+1)};r(0)}function Ci(t){return function(e,n,r){var a=!1,o=0,i=null;ki(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){a=!0,o++;var c,l=Mi((function(e){var a;((a=e).__esModule||Ei&&"Module"===a[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Fo.extend(e),n.components[s]=e,--o<=0&&r()})),u=Mi((function(t){var e="Failed to resolve async component "+s+": "+t;i||(i=xi(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)}}})),a||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 Ui=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ko){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=vo,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function $i(t,e,n,r){var a=ki(t,(function(t,r,a,o){var i=function(t,e){"function"!=typeof t&&(t=Fo.extend(t));return t.options[e]}(t,e);if(i)return Array.isArray(i)?i.map((function(t){return n(t,r,a,o)})):n(i,r,a,o)}));return Oi(r?a.reverse():a)}function ji(t,e){if(e)return function(){return t.apply(e,arguments)}}Ui.prototype.listen=function(t){this.cb=t},Ui.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Ui.prototype.onError=function(t){this.errorCbs.push(t)},Ui.prototype.transitionTo=function(t,e,n){var r,a=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var o=this.current;this.confirmTransition(r,(function(){a.updateRoute(r),e&&e(r),a.ensureURL(),a.router.afterHooks.forEach((function(t){t&&t(r,o)})),a.ready||(a.ready=!0,a.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!a.ready&&(Ti(t,yi.redirected)&&o===vo||(a.ready=!0,a.readyErrorCbs.forEach((function(e){e(t)}))))}))},Ui.prototype.confirmTransition=function(t,e,n){var r=this,a=this.current;this.pending=t;var o,i,s=function(t){!Ti(t)&&xi(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},c=t.matched.length-1,l=a.matched.length-1;if(yo(t,a)&&c===l&&t.matched[c]===a.matched[l])return this.ensureURL(),t.hash&&ii(this.router,a,t,!1),s(((i=Pi(o=a,t,yi.duplicated,'Avoided redundant navigation to current location: "'+o.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(oi());var a=function(){var n=t.current,a=Li(t.base);t.current===vo&&a===t._startLocation||t.transitionTo(a,(function(t){r&&ii(e,t,n,!0)}))};window.addEventListener("popstate",a),this.listeners.push((function(){window.removeEventListener("popstate",a)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){mi(To(r.base+t.fullPath)),ii(r.router,t,a,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){bi(To(r.base+t.fullPath)),ii(r.router,t,a,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Li(this.base)!==this.current.fullPath){var e=To(this.base+this.current.fullPath);t?mi(e):bi(e)}},e.prototype.getCurrentLocation=function(){return Li(this.base)},e}(Ui);function Li(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(To(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ai=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Li(t);if(!/^\/#/.test(e))return window.location.replace(To(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(oi());var r=function(){var e=t.current;Ri()&&t.transitionTo(Hi(),(function(r){n&&ii(t.router,r,e,!0),vi||Ni(r.fullPath)}))},a=vi?"popstate":"hashchange";window.addEventListener(a,r),this.listeners.push((function(){window.removeEventListener(a,r)}))}},e.prototype.push=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){Ii(t.fullPath),ii(r.router,t,a,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,a=this.current;this.transitionTo(t,(function(t){Ni(t.fullPath),ii(r.router,t,a,!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}(Ui);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){Ti(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}(Ui),Gi=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Jo(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!vi&&!1!==t.fallback,this.fallback&&(e="hash"),Ko||(e="abstract"),this.mode=e,e){case"history":this.history=new Bi(this,t.base);break;case"hash":this.history=new Ai(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 Bi||n instanceof Ai){var r=function(t){n.setupListeners(),function(t){var r=n.current,a=e.options.scrollBehavior;vi&&a&&"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=Go(t,e=e||this.history.current,n,this),a=this.match(r,e),o=a.redirectedFrom||a.fullPath;return{location:r,route:a,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?To(t+"/"+r):r}(this.history.base,o,this.mode),normalizedTo:r,resolved:a}},Gi.prototype.getRoutes=function(){return this.matcher.getRoutes()},Gi.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==vo&&this.history.transitionTo(this.history.getCurrentLocation())},Gi.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==vo&&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||Fo!==e){t.installed=!0,Fo=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",Po),e.component("RouterLink",zo);var a=e.config.optionMergeStrategies;a.beforeRouteEnter=a.beforeRouteLeave=a.beforeRouteUpdate=a.created}},Gi.version="3.6.5",Gi.isNavigationFailure=Ti,Gi.NavigationFailureType=yi,Gi.START_LOCATION=vo,Ko&&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-92347580":()=>n.e(6).then(n.bind(null,317)),"v-bd76cbca":()=>n.e(42).then(n.bind(null,318)),"v-5e433cca":()=>n.e(43).then(n.bind(null,319)),"v-590a8cca":()=>n.e(45).then(n.bind(null,320)),"v-cb67a10e":()=>n.e(44).then(n.bind(null,321)),"v-66cd695b":()=>n.e(46).then(n.bind(null,322)),"v-e2a25132":()=>n.e(47).then(n.bind(null,323)),"v-62a567ca":()=>n.e(48).then(n.bind(null,324)),"v-cd7fa48e":()=>n.e(49).then(n.bind(null,325)),"v-df3fa35e":()=>n.e(7).then(n.bind(null,326)),"v-05508cd7":()=>n.e(51).then(n.bind(null,327)),"v-e44b2e0a":()=>n.e(8).then(n.bind(null,328)),"v-7be1050a":()=>n.e(50).then(n.bind(null,329)),"v-bf08e74a":()=>n.e(52).then(n.bind(null,330)),"v-71dcbd0a":()=>n.e(54).then(n.bind(null,331)),"v-6e110c1d":()=>n.e(53).then(n.bind(null,332)),"v-0cb1307b":()=>n.e(9).then(n.bind(null,333)),"v-01bfbabb":()=>n.e(56).then(n.bind(null,334)),"v-24eacf82":()=>n.e(57).then(n.bind(null,335)),"v-30fce24a":()=>n.e(55).then(n.bind(null,336)),"v-6ca26cc1":()=>n.e(10).then(n.bind(null,337)),"v-e228f58a":()=>n.e(11).then(n.bind(null,338)),"v-2c2c2b72":()=>n.e(13).then(n.bind(null,339)),"v-54871c8a":()=>n.e(12).then(n.bind(null,340)),"v-6901bec9":()=>n.e(14).then(n.bind(null,341)),"v-befdac4a":()=>n.e(15).then(n.bind(null,342)),"v-d85d80e2":()=>n.e(58).then(n.bind(null,343)),"v-bd41cf4a":()=>n.e(60).then(n.bind(null,344)),"v-392bfc1b":()=>n.e(17).then(n.bind(null,345)),"v-2342d9bb":()=>n.e(59).then(n.bind(null,346)),"v-f5db240a":()=>n.e(18).then(n.bind(null,347)),"v-aba55e8a":()=>n.e(16).then(n.bind(null,348)),"v-c165b0ca":()=>n.e(61).then(n.bind(null,349)),"v-2998cd0a":()=>n.e(62).then(n.bind(null,350)),"v-371a0b5b":()=>n.e(63).then(n.bind(null,351)),"v-1acd60fb":()=>n.e(65).then(n.bind(null,352)),"v-02fe92ca":()=>n.e(66).then(n.bind(null,353)),"v-623221ca":()=>n.e(64).then(n.bind(null,354)),"v-253d75fb":()=>n.e(67).then(n.bind(null,355)),"v-66b3d2db":()=>n.e(19).then(n.bind(null,356)),"v-08f0cb9b":()=>n.e(68).then(n.bind(null,357)),"v-be84a14a":()=>n.e(69).then(n.bind(null,358)),"v-7871bcfb":()=>n.e(20).then(n.bind(null,359)),"v-5c18628a":()=>n.e(70).then(n.bind(null,360)),"v-65614ea9":()=>n.e(71).then(n.bind(null,361)),"v-757f164a":()=>n.e(73).then(n.bind(null,362)),"v-622c3e27":()=>n.e(72).then(n.bind(null,363)),"v-fbeacdca":()=>n.e(21).then(n.bind(null,364)),"v-bf7262e2":()=>n.e(23).then(n.bind(null,365)),"v-07efbebb":()=>n.e(22).then(n.bind(null,366)),"v-a477c00a":()=>n.e(24).then(n.bind(null,367)),"v-1faec98a":()=>n.e(74).then(n.bind(null,368)),"v-6a7237ca":()=>n.e(75).then(n.bind(null,369)),"v-4693609f":()=>n.e(76).then(n.bind(null,370)),"v-18e9a14a":()=>n.e(25).then(n.bind(null,371)),"v-0371b60a":()=>n.e(77).then(n.bind(null,372)),"v-5bcdcd8a":()=>n.e(26).then(n.bind(null,373)),"v-af62874e":()=>n.e(27).then(n.bind(null,374)),"v-5bb593ff":()=>n.e(28).then(n.bind(null,375)),"v-562de0e2":()=>n.e(29).then(n.bind(null,376)),"v-34b6fd3a":()=>n.e(78).then(n.bind(null,377)),"v-4659520d":()=>n.e(30).then(n.bind(null,378)),"v-5c794abd":()=>n.e(79).then(n.bind(null,379)),"v-38795a5b":()=>n.e(80).then(n.bind(null,380)),"v-50cf667e":()=>n.e(31).then(n.bind(null,381)),"v-f44f5c62":()=>n.e(81).then(n.bind(null,382)),"v-499a5933":()=>n.e(82).then(n.bind(null,383)),"v-123165ee":()=>n.e(33).then(n.bind(null,384)),"v-1fcd57e2":()=>n.e(32).then(n.bind(null,385)),"v-508b6d9b":()=>n.e(83).then(n.bind(null,386)),"v-77595eb9":()=>n.e(84).then(n.bind(null,387)),"v-36fdd4af":()=>n.e(85).then(n.bind(null,388)),"v-2df958ba":()=>n.e(87).then(n.bind(null,389)),"v-17735bb5":()=>n.e(86).then(n.bind(null,390)),"v-1922252f":()=>n.e(89).then(n.bind(null,391)),"v-e185e69e":()=>n.e(88).then(n.bind(null,392)),"v-fae7f80a":()=>n.e(90).then(n.bind(null,393)),"v-811a5b0a":()=>n.e(91).then(n.bind(null,394)),"v-7ad0738a":()=>n.e(92).then(n.bind(null,395)),"v-bb5a0abe":()=>n.e(93).then(n.bind(null,396)),"v-acb53b3e":()=>n.e(95).then(n.bind(null,397)),"v-cd9f8836":()=>n.e(94).then(n.bind(null,398)),"v-6d08e24a":()=>n.e(97).then(n.bind(null,399)),"v-3644c2ca":()=>n.e(96).then(n.bind(null,400)),"v-2149b03b":()=>n.e(98).then(n.bind(null,401)),"v-dfc2ee0e":()=>n.e(34).then(n.bind(null,402)),"v-1688c53b":()=>n.e(100).then(n.bind(null,403)),"v-72e5f5c9":()=>n.e(101).then(n.bind(null,404)),"v-11226182":()=>n.e(99).then(n.bind(null,405)),"v-18591c37":()=>n.e(35).then(n.bind(null,406)),"v-21034dca":()=>n.e(102).then(n.bind(null,407)),"v-2328ba97":()=>n.e(104).then(n.bind(null,408)),"v-4e67a81a":()=>n.e(103).then(n.bind(null,409)),"v-bcfe58b6":()=>n.e(105).then(n.bind(null,410)),"v-00f466fb":()=>n.e(107).then(n.bind(null,411)),"v-3ad2b88a":()=>n.e(106).then(n.bind(null,412)),"v-d34e370a":()=>n.e(108).then(n.bind(null,413)),"v-1bf8fdbb":()=>n.e(109).then(n.bind(null,414)),"v-3e2f1c8a":()=>n.e(110).then(n.bind(null,415)),"v-1ef034fb":()=>n.e(111).then(n.bind(null,416)),"v-a0f1084a":()=>n.e(112).then(n.bind(null,417)),"v-26262fb6":()=>n.e(36).then(n.bind(null,418)),"v-50cfa3e3":()=>n.e(113).then(n.bind(null,419)),"v-6ce925e9":()=>n.e(114).then(n.bind(null,420)),"v-77a5bafb":()=>n.e(37).then(n.bind(null,421)),"v-78e7a64a":()=>n.e(38).then(n.bind(null,422)),"v-0f729ebb":()=>n.e(115).then(n.bind(null,423)),"v-0bab1bfb":()=>n.e(116).then(n.bind(null,424)),"v-1ef9895f":()=>n.e(39).then(n.bind(null,425)),"v-7b51fb7b":()=>n.e(118).then(n.bind(null,426)),"v-0c830cdb":()=>n.e(40).then(n.bind(null,427)),"v-588a4461":()=>n.e(120).then(n.bind(null,428)),"v-5261d156":()=>n.e(117).then(n.bind(null,429)),"v-75a52741":()=>n.e(119).then(n.bind(null,430)),"v-1350da9e":()=>n.e(123).then(n.bind(null,431)),"v-35f4f98a":()=>n.e(121).then(n.bind(null,432)),"v-b8fe1e0a":()=>n.e(122).then(n.bind(null,433)),"v-3dbed0ca":()=>n.e(125).then(n.bind(null,434)),"v-3766ecca":()=>n.e(124).then(n.bind(null,435)),"v-43b9401b":()=>n.e(126).then(n.bind(null,436)),"v-5e1da45b":()=>n.e(128).then(n.bind(null,437)),"v-0db7e63b":()=>n.e(127).then(n.bind(null,438)),"v-54537f3f":()=>n.e(129).then(n.bind(null,439))};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],as=t=>Ki[t],os=t=>Vi[t],is=t=>Vn.component(t);function ss(t){return es(as,t)}function cs(t){return es(os,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 Ss=n(90),xs={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(Ss)()((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),a=window.innerHeight+n;for(let t=0;t=o.parentElement.offsetTop+10&&(!i||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Ts=n(91),ws=n.n(Ts),Cs={mounted(){ws.a.polyfill()}},ks=n(23),Os=n.n(ks),Es=[bs,xs,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"}}},Us=n(14),$s=Object(Us.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.")}}($s,"mixins",Es);const js=[{name:"v-92347580",path:"/",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-92347580").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-bd76cbca",path:"/devices/ABN03.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bd76cbca").then(n)}},{name:"v-5e433cca",path:"/devices/ABN07.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5e433cca").then(n)}},{name:"v-590a8cca",path:"/devices/Amazfit.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-590a8cca").then(n)}},{name:"v-cb67a10e",path:"/devices/ABTemp.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-cb67a10e").then(n)}},{name:"v-66cd695b",path:"/devices/Amphiro.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-66cd695b").then(n)}},{name:"v-e2a25132",path:"/devices/AppleAirPods.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e2a25132").then(n)}},{name:"v-62a567ca",path:"/devices/AppleDevice.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-62a567ca").then(n)}},{name:"v-cd7fa48e",path:"/devices/AppleWatch.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-cd7fa48e").then(n)}},{name:"v-df3fa35e",path:"/devices/BC08.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-df3fa35e").then(n)}},{name:"v-05508cd7",path:"/devices/BM1in1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-05508cd7").then(n)}},{name:"v-e44b2e0a",path:"/devices/BM2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e44b2e0a").then(n)}},{name:"v-7be1050a",path:"/devices/Aranet4.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7be1050a").then(n)}},{name:"v-bf08e74a",path:"/devices/BM3in1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bf08e74a").then(n)}},{name:"v-71dcbd0a",path:"/devices/BM6.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-71dcbd0a").then(n)}},{name:"v-6e110c1d",path:"/devices/BM4in1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6e110c1d").then(n)}},{name:"v-0cb1307b",path:"/devices/BPARASITE.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0cb1307b").then(n)}},{name:"v-01bfbabb",path:"/devices/BeatsBuds.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-01bfbabb").then(n)}},{name:"v-24eacf82",path:"/devices/CGC1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-24eacf82").then(n)}},{name:"v-30fce24a",path:"/devices/BWBSDOO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-30fce24a").then(n)}},{name:"v-6ca26cc1",path:"/devices/CGD1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6ca26cc1").then(n)}},{name:"v-e228f58a",path:"/devices/CGDK2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e228f58a").then(n)}},{name:"v-2c2c2b72",path:"/devices/CGG1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2c2c2b72").then(n)}},{name:"v-54871c8a",path:"/devices/CGDN1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-54871c8a").then(n)}},{name:"v-6901bec9",path:"/devices/CGH1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6901bec9").then(n)}},{name:"v-befdac4a",path:"/devices/CGP1W.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-befdac4a").then(n)}},{name:"v-d85d80e2",path:"/devices/CGP23W.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-d85d80e2").then(n)}},{name:"v-bd41cf4a",path:"/devices/H5072.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bd41cf4a").then(n)}},{name:"v-392bfc1b",path:"/devices/H5074.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-392bfc1b").then(n)}},{name:"v-2342d9bb",path:"/devices/H5055.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2342d9bb").then(n)}},{name:"v-f5db240a",path:"/devices/H5075.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-f5db240a").then(n)}},{name:"v-aba55e8a",path:"/devices/CGPR1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-aba55e8a").then(n)}},{name:"v-c165b0ca",path:"/devices/H5100.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-c165b0ca").then(n)}},{name:"v-2998cd0a",path:"/devices/H5101.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2998cd0a").then(n)}},{name:"v-371a0b5b",path:"/devices/H5102.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-371a0b5b").then(n)}},{name:"v-1acd60fb",path:"/devices/H5105.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1acd60fb").then(n)}},{name:"v-02fe92ca",path:"/devices/H5108.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-02fe92ca").then(n)}},{name:"v-623221ca",path:"/devices/H5104.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-623221ca").then(n)}},{name:"v-253d75fb",path:"/devices/H5174.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-253d75fb").then(n)}},{name:"v-66b3d2db",path:"/devices/H5106.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-66b3d2db").then(n)}},{name:"v-08f0cb9b",path:"/devices/H5177.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-08f0cb9b").then(n)}},{name:"v-be84a14a",path:"/devices/H5179.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-be84a14a").then(n)}},{name:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7871bcfb").then(n)}},{name:"v-5c18628a",path:"/devices/HHCCJCY10.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5c18628a").then(n)}},{name:"v-65614ea9",path:"/devices/HHCCPOT002.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-65614ea9").then(n)}},{name:"v-757f164a",path:"/devices/IBS-P01B.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-757f164a").then(n)}},{name:"v-622c3e27",path:"/devices/HOBOMX2001.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-622c3e27").then(n)}},{name:"v-fbeacdca",path:"/devices/IBS_TH1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-fbeacdca").then(n)}},{name:"v-bf7262e2",path:"/devices/IBT_2X.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bf7262e2").then(n)}},{name:"v-07efbebb",path:"/devices/IBS_TH2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-07efbebb").then(n)}},{name:"v-a477c00a",path:"/devices/IBT_4XS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-a477c00a").then(n)}},{name:"v-1faec98a",path:"/devices/IBT_6XS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1faec98a").then(n)}},{name:"v-6a7237ca",path:"/devices/ITH_12S.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6a7237ca").then(n)}},{name:"v-4693609f",path:"/devices/JAALEE.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-4693609f").then(n)}},{name:"v-18e9a14a",path:"/devices/JQJCY01YM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-18e9a14a").then(n)}},{name:"v-0371b60a",path:"/devices/KKM_K6P.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0371b60a").then(n)}},{name:"v-5bcdcd8a",path:"/devices/LYWSD02.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5bcdcd8a").then(n)}},{name:"v-af62874e",path:"/devices/LYWSD03MMC.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-af62874e").then(n)}},{name:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5bb593ff").then(n)}},{name:"v-562de0e2",path:"/devices/MBXPRO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-562de0e2").then(n)}},{name:"v-34b6fd3a",path:"/devices/KKM_K9.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-34b6fd3a").then(n)}},{name:"v-4659520d",path:"/devices/MHO-C401.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-4659520d").then(n)}},{name:"v-5c794abd",path:"/devices/MJWSD05MMC.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5c794abd").then(n)}},{name:"v-38795a5b",path:"/devices/MUE4094RT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-38795a5b").then(n)}},{name:"v-50cf667e",path:"/devices/Miband.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-50cf667e").then(n)}},{name:"v-f44f5c62",path:"/devices/Mikrotik.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-f44f5c62").then(n)}},{name:"v-499a5933",path:"/devices/NODONNIU.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-499a5933").then(n)}},{name:"v-123165ee",path:"/devices/Mopeka.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-123165ee").then(n)}},{name:"v-1fcd57e2",path:"/devices/MokoBeacon.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1fcd57e2").then(n)}},{name:"v-508b6d9b",path:"/devices/ORALB.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-508b6d9b").then(n)}},{name:"v-77595eb9",path:"/devices/ORAS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-77595eb9").then(n)}},{name:"v-36fdd4af",path:"/devices/OTOD.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-36fdd4af").then(n)}},{name:"v-2df958ba",path:"/devices/RDL52832.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2df958ba").then(n)}},{name:"v-17735bb5",path:"/devices/PH10.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-17735bb5").then(n)}},{name:"v-1922252f",path:"/devices/RuuviTag_RAWv2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1922252f").then(n)}},{name:"v-e185e69e",path:"/devices/RuuviTag_RAWv1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-e185e69e").then(n)}},{name:"v-fae7f80a",path:"/devices/SBBT-002C.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-fae7f80a").then(n)}},{name:"v-811a5b0a",path:"/devices/SBBT-004CEU.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-811a5b0a").then(n)}},{name:"v-7ad0738a",path:"/devices/SBBT-004CUS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7ad0738a").then(n)}},{name:"v-bb5a0abe",path:"/devices/SBBT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bb5a0abe").then(n)}},{name:"v-acb53b3e",path:"/devices/SBCU.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-acb53b3e").then(n)}},{name:"v-cd9f8836",path:"/devices/SBCS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-cd9f8836").then(n)}},{name:"v-6d08e24a",path:"/devices/SBHT-003C.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6d08e24a").then(n)}},{name:"v-3644c2ca",path:"/devices/SBDW-002C.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3644c2ca").then(n)}},{name:"v-2149b03b",path:"/devices/SBMO-003Z.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2149b03b").then(n)}},{name:"v-dfc2ee0e",path:"/devices/SBMS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-dfc2ee0e").then(n)}},{name:"v-1688c53b",path:"/devices/SBOT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1688c53b").then(n)}},{name:"v-72e5f5c9",path:"/devices/SBS1.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-72e5f5c9").then(n)}},{name:"v-11226182",path:"/devices/SBMP.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-11226182").then(n)}},{name:"v-18591c37",path:"/devices/SBMT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-18591c37").then(n)}},{name:"v-21034dca",path:"/devices/SCD4X.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-21034dca").then(n)}},{name:"v-2328ba97",path:"/devices/SE_MAG.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-2328ba97").then(n)}},{name:"v-4e67a81a",path:"/devices/SDLS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-4e67a81a").then(n)}},{name:"v-bcfe58b6",path:"/devices/SE_RHT_PRO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-bcfe58b6").then(n)}},{name:"v-00f466fb",path:"/devices/SE_TEMP_PRO.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-00f466fb").then(n)}},{name:"v-3ad2b88a",path:"/devices/SE_TEMP.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3ad2b88a").then(n)}},{name:"v-d34e370a",path:"/devices/SE_TPROBE.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-d34e370a").then(n)}},{name:"v-1bf8fdbb",path:"/devices/SHT4x.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1bf8fdbb").then(n)}},{name:"v-3e2f1c8a",path:"/devices/SOLIS_6.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3e2f1c8a").then(n)}},{name:"v-1ef034fb",path:"/devices/ServiceData.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef034fb").then(n)}},{name:"v-a0f1084a",path:"/devices/Skale.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-a0f1084a").then(n)}},{name:"v-26262fb6",path:"/devices/T201.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-26262fb6").then(n)}},{name:"v-50cfa3e3",path:"/devices/T301.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-50cfa3e3").then(n)}},{name:"v-6ce925e9",path:"/devices/TILT.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-6ce925e9").then(n)}},{name:"v-77a5bafb",path:"/devices/TP357.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-77a5bafb").then(n)}},{name:"v-78e7a64a",path:"/devices/TP358.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-78e7a64a").then(n)}},{name:"v-0f729ebb",path:"/devices/TP359.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0f729ebb").then(n)}},{name:"v-0bab1bfb",path:"/devices/TP393.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0bab1bfb").then(n)}},{name:"v-1ef9895f",path:"/devices/TPMS.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1ef9895f").then(n)}},{name:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-7b51fb7b").then(n)}},{name:"v-0c830cdb",path:"/devices/XMTZC05HM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0c830cdb").then(n)}},{name:"v-588a4461",path:"/devices/devices_by_brand.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-588a4461").then(n)}},{name:"v-5261d156",path:"/devices/ThermoBeacon.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5261d156").then(n)}},{name:"v-75a52741",path:"/devices/XOSSX2.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-75a52741").then(n)}},{name:"v-1350da9e",path:"/devices/rows.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-1350da9e").then(n)}},{name:"v-35f4f98a",path:"/devices/iBeacon.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-35f4f98a").then(n)}},{name:"v-b8fe1e0a",path:"/devices/iNodeEM.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-b8fe1e0a").then(n)}},{name:"v-3dbed0ca",path:"/participate/development.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3dbed0ca").then(n)}},{name:"v-3766ecca",path:"/participate/adding-decoders.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-3766ecca").then(n)}},{name:"v-43b9401b",path:"/participate/support.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-43b9401b").then(n)}},{name:"v-5e1da45b",path:"/use/include.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-5e1da45b").then(n)}},{name:"v-0db7e63b",path:"/use/ESP32.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-0db7e63b").then(n)}},{name:"v-54537f3f",path:"/use/python.html",component:$s,beforeEnter:(t,e,n)=>{fs("Layout","v-54537f3f").then(n)}},{path:"*",component:$s}],Bs={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:"Theengs BLE decoder",frontmatter:{title:"Theengs BLE decoder"},regularPath:"/",relativePath:"README.md",key:"v-92347580",path:"/",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"April Brother N03",frontmatter:{},regularPath:"/devices/ABN03.html",relativePath:"devices/ABN03.md",key:"v-bd76cbca",path:"/devices/ABN03.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"April Brother N07",frontmatter:{},regularPath:"/devices/ABN07.html",relativePath:"devices/ABN07.md",key:"v-5e433cca",path:"/devices/ABN07.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Amazfit Smart Watch/Band",frontmatter:{},regularPath:"/devices/Amazfit.html",relativePath:"devices/Amazfit.md",key:"v-590a8cca",path:"/devices/Amazfit.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"April Brother ABTemp",frontmatter:{},regularPath:"/devices/ABTemp.html",relativePath:"devices/ABTemp.md",key:"v-cb67a10e",path:"/devices/ABTemp.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Amphiro/Oras/Hansa Hydractiva/Activejet Digital",frontmatter:{},regularPath:"/devices/Amphiro.html",relativePath:"devices/Amphiro.md",key:"v-66cd695b",path:"/devices/Amphiro.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Apple AirPods (Pro)",frontmatter:{},regularPath:"/devices/AppleAirPods.html",relativePath:"devices/AppleAirPods.md",key:"v-e2a25132",path:"/devices/AppleAirPods.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Apple iPhone/iPad",frontmatter:{},regularPath:"/devices/AppleDevice.html",relativePath:"devices/AppleDevice.md",key:"v-62a567ca",path:"/devices/AppleDevice.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Apple Watch",frontmatter:{},regularPath:"/devices/AppleWatch.html",relativePath:"devices/AppleWatch.md",key:"v-cd7fa48e",path:"/devices/AppleWatch.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Blue Maestro Tempo Disc Temperature",frontmatter:{},regularPath:"/devices/BM1in1.html",relativePath:"devices/BM1in1.md",key:"v-05508cd7",path:"/devices/BM1in1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"BM2 Battery Monitor",frontmatter:{},regularPath:"/devices/BM2.html",relativePath:"devices/BM2.md",key:"v-e44b2e0a",path:"/devices/BM2.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Aranet Aranet4 CO₂ Monitor",frontmatter:{},regularPath:"/devices/Aranet4.html",relativePath:"devices/Aranet4.md",key:"v-7be1050a",path:"/devices/Aranet4.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"BM6 Battery Monitor",frontmatter:{},regularPath:"/devices/BM6.html",relativePath:"devices/BM6.md",key:"v-71dcbd0a",path:"/devices/BM6.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"rbaron b-parasite",frontmatter:{},regularPath:"/devices/BPARASITE.html",relativePath:"devices/BPARASITE.md",key:"v-0cb1307b",path:"/devices/BPARASITE.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Beats Solo/Studio Buds",frontmatter:{},regularPath:"/devices/BeatsBuds.html",relativePath:"devices/BeatsBuds.md",key:"v-01bfbabb",path:"/devices/BeatsBuds.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Otio/BeeWi Smart Door & Window Sensor",frontmatter:{},regularPath:"/devices/BWBSDOO.html",relativePath:"devices/BWBSDOO.md",key:"v-30fce24a",path:"/devices/BWBSDOO.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ClearGrass/Qingping Alarm Clock CGD1",frontmatter:{},regularPath:"/devices/CGD1.html",relativePath:"devices/CGD1.md",key:"v-6ca26cc1",path:"/devices/CGD1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Qingping TH Lite CGDK2",frontmatter:{},regularPath:"/devices/CGDK2.html",relativePath:"devices/CGDK2.md",key:"v-e228f58a",path:"/devices/CGDK2.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ClearGrass/Qingping Hygro Thermometer CGG1",frontmatter:{},regularPath:"/devices/CGG1.html",relativePath:"devices/CGG1.md",key:"v-2c2c2b72",path:"/devices/CGG1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Qingping Air Monitor Lite",frontmatter:{},regularPath:"/devices/CGDN1.html",relativePath:"devices/CGDN1.md",key:"v-54871c8a",path:"/devices/CGDN1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Qingping Contact Sensor CGH1",frontmatter:{},regularPath:"/devices/CGH1.html",relativePath:"devices/CGH1.md",key:"v-6901bec9",path:"/devices/CGH1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ClearGrass/Qingping Weather Station CGP1W",frontmatter:{},regularPath:"/devices/CGP1W.html",relativePath:"devices/CGP1W.md",key:"v-befdac4a",path:"/devices/CGP1W.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ClearGrass/Qingping Barometer Pro CGP23W",frontmatter:{},regularPath:"/devices/CGP23W.html",relativePath:"devices/CGP23W.md",key:"v-d85d80e2",path:"/devices/CGP23W.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5072",frontmatter:{},regularPath:"/devices/H5072.html",relativePath:"devices/H5072.md",key:"v-bd41cf4a",path:"/devices/H5072.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5074",frontmatter:{},regularPath:"/devices/H5074.html",relativePath:"devices/H5074.md",key:"v-392bfc1b",path:"/devices/H5074.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5055",frontmatter:{},regularPath:"/devices/H5055.html",relativePath:"devices/H5055.md",key:"v-2342d9bb",path:"/devices/H5055.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5075",frontmatter:{},regularPath:"/devices/H5075.html",relativePath:"devices/H5075.md",key:"v-f5db240a",path:"/devices/H5075.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Qingping Motion & Light CGPR1",frontmatter:{},regularPath:"/devices/CGPR1.html",relativePath:"devices/CGPR1.md",key:"v-aba55e8a",path:"/devices/CGPR1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5100",frontmatter:{},regularPath:"/devices/H5100.html",relativePath:"devices/H5100.md",key:"v-c165b0ca",path:"/devices/H5100.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5101",frontmatter:{},regularPath:"/devices/H5101.html",relativePath:"devices/H5101.md",key:"v-2998cd0a",path:"/devices/H5101.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5102",frontmatter:{},regularPath:"/devices/H5102.html",relativePath:"devices/H5102.md",key:"v-371a0b5b",path:"/devices/H5102.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5105",frontmatter:{},regularPath:"/devices/H5105.html",relativePath:"devices/H5105.md",key:"v-1acd60fb",path:"/devices/H5105.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5108",frontmatter:{},regularPath:"/devices/H5108.html",relativePath:"devices/H5108.md",key:"v-02fe92ca",path:"/devices/H5108.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5104",frontmatter:{},regularPath:"/devices/H5104.html",relativePath:"devices/H5104.md",key:"v-623221ca",path:"/devices/H5104.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5174",frontmatter:{},regularPath:"/devices/H5174.html",relativePath:"devices/H5174.md",key:"v-253d75fb",path:"/devices/H5174.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5106",frontmatter:{},regularPath:"/devices/H5106.html",relativePath:"devices/H5106.md",key:"v-66b3d2db",path:"/devices/H5106.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5177",frontmatter:{},regularPath:"/devices/H5177.html",relativePath:"devices/H5177.md",key:"v-08f0cb9b",path:"/devices/H5177.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Govee H5179",frontmatter:{},regularPath:"/devices/H5179.html",relativePath:"devices/H5179.md",key:"v-be84a14a",path:"/devices/H5179.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi/VegTrug Mi Flora",frontmatter:{},regularPath:"/devices/HHCCJCY01HHCC.html",relativePath:"devices/HHCCJCY01HHCC.md",key:"v-7871bcfb",path:"/devices/HHCCJCY01HHCC.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi Mi Flora (pink version)",frontmatter:{},regularPath:"/devices/HHCCJCY10.html",relativePath:"devices/HHCCJCY10.md",key:"v-5c18628a",path:"/devices/HHCCJCY10.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi RoPot",frontmatter:{},regularPath:"/devices/HHCCPOT002.html",relativePath:"devices/HHCCPOT002.md",key:"v-65614ea9",path:"/devices/HHCCPOT002.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Inkbird P01B",frontmatter:{},regularPath:"/devices/IBS-P01B.html",relativePath:"devices/IBS-P01B.md",key:"v-757f164a",path:"/devices/IBS-P01B.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Onset Hobo Water Level Sensor",frontmatter:{},regularPath:"/devices/HOBOMX2001.html",relativePath:"devices/HOBOMX2001.md",key:"v-622c3e27",path:"/devices/HOBOMX2001.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Inkbird TH1",frontmatter:{},regularPath:"/devices/IBS_TH1.html",relativePath:"devices/IBS_TH1.md",key:"v-fbeacdca",path:"/devices/IBS_TH1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Inkbird TH2",frontmatter:{},regularPath:"/devices/IBS_TH2.html",relativePath:"devices/IBS_TH2.md",key:"v-07efbebb",path:"/devices/IBS_TH2.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Inkbird ITH-12S",frontmatter:{},regularPath:"/devices/ITH_12S.html",relativePath:"devices/ITH_12S.md",key:"v-6a7237ca",path:"/devices/ITH_12S.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Jaalee TH sensor F525/F51C",frontmatter:{},regularPath:"/devices/JAALEE.html",relativePath:"devices/JAALEE.md",key:"v-4693609f",path:"/devices/JAALEE.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi Formaldehyde detector",frontmatter:{},regularPath:"/devices/JQJCY01YM.html",relativePath:"devices/JQJCY01YM.md",key:"v-18e9a14a",path:"/devices/JQJCY01YM.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi/Mijia LYWSD02 e-ink Clock",frontmatter:{},regularPath:"/devices/LYWSD02.html",relativePath:"devices/LYWSD02.md",key:"v-5bcdcd8a",path:"/devices/LYWSD02.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi LYWSD03MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/LYWSD03MMC.html",relativePath:"devices/LYWSD03MMC.md",key:"v-af62874e",path:"/devices/LYWSD03MMC.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi LYWSDCGQ",frontmatter:{},regularPath:"/devices/LYWSDCGQ.html",relativePath:"devices/LYWSDCGQ.md",key:"v-5bb593ff",path:"/devices/LYWSDCGQ.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"MokoSmart Pro",frontmatter:{},regularPath:"/devices/MBXPRO.html",relativePath:"devices/MBXPRO.md",key:"v-562de0e2",path:"/devices/MBXPRO.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi MJWSD05MMC ATC or PVVX firmware",frontmatter:{},regularPath:"/devices/MJWSD05MMC.html",relativePath:"devices/MJWSD05MMC.md",key:"v-5c794abd",path:"/devices/MJWSD05MMC.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi Motion sensor and light",frontmatter:{},regularPath:"/devices/MUE4094RT.html",relativePath:"devices/MUE4094RT.md",key:"v-38795a5b",path:"/devices/MUE4094RT.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi Mi Band",frontmatter:{},regularPath:"/devices/Miband.html",relativePath:"devices/Miband.md",key:"v-50cf667e",path:"/devices/Miband.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"MikroTik TG-BT5-IN & TG-BT5-OUT",frontmatter:{},regularPath:"/devices/Mikrotik.html",relativePath:"devices/Mikrotik.md",key:"v-f44f5c62",path:"/devices/Mikrotik.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"NodOn NIU smart button",frontmatter:{},regularPath:"/devices/NODONNIU.html",relativePath:"devices/NODONNIU.md",key:"v-499a5933",path:"/devices/NODONNIU.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"MokoSmart Beacon",frontmatter:{},regularPath:"/devices/MokoBeacon.html",relativePath:"devices/MokoBeacon.md",key:"v-1fcd57e2",path:"/devices/MokoBeacon.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Oral-B Bluetooth Toothbrush",frontmatter:{},regularPath:"/devices/ORALB.html",relativePath:"devices/ORALB.md",key:"v-508b6d9b",path:"/devices/ORALB.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Amphiro/Oras/Hansa Smart Faucet",frontmatter:{},regularPath:"/devices/ORAS.html",relativePath:"devices/ORAS.md",key:"v-77595eb9",path:"/devices/ORAS.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Otodata RC1010 Rotarex-compatible Monitor",frontmatter:{},regularPath:"/devices/OTOD.html",relativePath:"devices/OTOD.md",key:"v-36fdd4af",path:"/devices/OTOD.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"RDL52832",frontmatter:{},regularPath:"/devices/RDL52832.html",relativePath:"devices/RDL52832.md",key:"v-2df958ba",path:"/devices/RDL52832.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Polar H10 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/PH10.html",relativePath:"devices/PH10.md",key:"v-17735bb5",path:"/devices/PH10.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ShellyBLU Button1",frontmatter:{},regularPath:"/devices/SBBT-002C.html",relativePath:"devices/SBBT-002C.md",key:"v-fae7f80a",path:"/devices/SBBT-002C.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ShellyBLU Wall Switcht4",frontmatter:{},regularPath:"/devices/SBBT-004CEU.html",relativePath:"devices/SBBT-004CEU.md",key:"v-811a5b0a",path:"/devices/SBBT-004CEU.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ShellyBLU RC Button4",frontmatter:{},regularPath:"/devices/SBBT-004CUS.html",relativePath:"devices/SBBT-004CUS.md",key:"v-7ad0738a",path:"/devices/SBBT-004CUS.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Blind Tilt",frontmatter:{},regularPath:"/devices/SBBT.html",relativePath:"devices/SBBT.md",key:"v-bb5a0abe",path:"/devices/SBBT.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Curtain",frontmatter:{},regularPath:"/devices/SBCU.html",relativePath:"devices/SBCU.md",key:"v-acb53b3e",path:"/devices/SBCU.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Contact Sensor",frontmatter:{},regularPath:"/devices/SBCS.html",relativePath:"devices/SBCS.md",key:"v-cd9f8836",path:"/devices/SBCS.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ShellyBLU H&T",frontmatter:{},regularPath:"/devices/SBHT-003C.html",relativePath:"devices/SBHT-003C.md",key:"v-6d08e24a",path:"/devices/SBHT-003C.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ShellyBLU Door/Window",frontmatter:{},regularPath:"/devices/SBDW-002C.html",relativePath:"devices/SBDW-002C.md",key:"v-3644c2ca",path:"/devices/SBDW-002C.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ShellyBLU Motion",frontmatter:{},regularPath:"/devices/SBMO-003Z.html",relativePath:"devices/SBMO-003Z.md",key:"v-2149b03b",path:"/devices/SBMO-003Z.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Motion Sensor",frontmatter:{},regularPath:"/devices/SBMS.html",relativePath:"devices/SBMS.md",key:"v-dfc2ee0e",path:"/devices/SBMS.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Outdoor Meter",frontmatter:{},regularPath:"/devices/SBOT.html",relativePath:"devices/SBOT.md",key:"v-1688c53b",path:"/devices/SBOT.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Bot",frontmatter:{},regularPath:"/devices/SBS1.html",relativePath:"devices/SBS1.md",key:"v-72e5f5c9",path:"/devices/SBS1.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Meter Pro (CO2)",frontmatter:{},regularPath:"/devices/SBMP.html",relativePath:"devices/SBMP.md",key:"v-11226182",path:"/devices/SBMP.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SwitchBot Meter (Plus)",frontmatter:{},regularPath:"/devices/SBMT.html",relativePath:"devices/SBMT.md",key:"v-18591c37",path:"/devices/SBMT.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Sensirion MyCO₂/CO₂ Gadget SCD4X",frontmatter:{},regularPath:"/devices/SCD4X.html",relativePath:"devices/SCD4X.md",key:"v-21034dca",path:"/devices/SCD4X.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SmartDry Laundry Sensor",frontmatter:{},regularPath:"/devices/SDLS.html",relativePath:"devices/SDLS.md",key:"v-4e67a81a",path:"/devices/SDLS.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Sensor Easy Thermometer",frontmatter:{},regularPath:"/devices/SE_TEMP.html",relativePath:"devices/SE_TEMP.md",key:"v-3ad2b88a",path:"/devices/SE_TEMP.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Sensirion SHT4X Smart Gadget",frontmatter:{},regularPath:"/devices/SHT4x.html",relativePath:"devices/SHT4x.md",key:"v-1bf8fdbb",path:"/devices/SHT4x.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Service data",frontmatter:{},regularPath:"/devices/ServiceData.html",relativePath:"devices/ServiceData.md",key:"v-1ef034fb",path:"/devices/ServiceData.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Atomax Skale I/II",frontmatter:{},regularPath:"/devices/Skale.html",relativePath:"devices/Skale.md",key:"v-a0f1084a",path:"/devices/Skale.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Oria/Brifit/SigmaWit/SensorPro T201",frontmatter:{},regularPath:"/devices/T201.html",relativePath:"devices/T201.md",key:"v-26262fb6",path:"/devices/T201.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Oria/Brifit/SigmaWit/SensorPro T301",frontmatter:{},regularPath:"/devices/T301.html",relativePath:"devices/T301.md",key:"v-50cfa3e3",path:"/devices/T301.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Tilt Brewing Hydro- Thermometer",frontmatter:{},regularPath:"/devices/TILT.html",relativePath:"devices/TILT.md",key:"v-6ce925e9",path:"/devices/TILT.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ThermoPro TP357",frontmatter:{},regularPath:"/devices/TP357.html",relativePath:"devices/TP357.md",key:"v-77a5bafb",path:"/devices/TP357.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ThermoPro TP358",frontmatter:{},regularPath:"/devices/TP358.html",relativePath:"devices/TP358.md",key:"v-78e7a64a",path:"/devices/TP358.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ThermoPro TP359",frontmatter:{},regularPath:"/devices/TP359.html",relativePath:"devices/TP359.md",key:"v-0f729ebb",path:"/devices/TP359.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"ThermoPro TP393",frontmatter:{},regularPath:"/devices/TP393.html",relativePath:"devices/TP393.md",key:"v-0bab1bfb",path:"/devices/TP393.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"TPMS",frontmatter:{},regularPath:"/devices/TPMS.html",relativePath:"devices/TPMS.md",key:"v-1ef9895f",path:"/devices/TPMS.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi Mi Smart Scale",frontmatter:{},regularPath:"/devices/XMTZC04HM.html",relativePath:"devices/XMTZC04HM.md",key:"v-7b51fb7b",path:"/devices/XMTZC04HM.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Xiaomi Mi Body Composition Scale",frontmatter:{},regularPath:"/devices/XMTZC05HM.html",relativePath:"devices/XMTZC05HM.md",key:"v-0c830cdb",path:"/devices/XMTZC05HM.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"SensorBlue/Oria/Brifit ThermoBeacon",frontmatter:{},regularPath:"/devices/ThermoBeacon.html",relativePath:"devices/ThermoBeacon.md",key:"v-5261d156",path:"/devices/ThermoBeacon.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"XOSS X2 Heart Rate Sensor",frontmatter:{},regularPath:"/devices/XOSSX2.html",relativePath:"devices/XOSSX2.md",key:"v-75a52741",path:"/devices/XOSSX2.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Rows",frontmatter:{},regularPath:"/devices/rows.html",relativePath:"devices/rows.md",key:"v-1350da9e",path:"/devices/rows.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"iBeacon",frontmatter:{},regularPath:"/devices/iBeacon.html",relativePath:"devices/iBeacon.md",key:"v-35f4f98a",path:"/devices/iBeacon.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"iNode Energy Meter",frontmatter:{},regularPath:"/devices/iNodeEM.html",relativePath:"devices/iNodeEM.md",key:"v-b8fe1e0a",path:"/devices/iNodeEM.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Supporting the project",frontmatter:{},regularPath:"/participate/support.html",relativePath:"participate/support.md",key:"v-43b9401b",path:"/participate/support.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{title:"Using with ESP32",frontmatter:{},regularPath:"/use/ESP32.html",relativePath:"use/ESP32.md",key:"v-0db7e63b",path:"/use/ESP32.html",lastUpdated:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4},{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:"1/15/2025, 5:46:50 PM",lastUpdatedTimestamp:173696321e4}],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,440))),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 Ls(t){const e=document.documentElement.getBoundingClientRect(),n=t.getBoundingClientRect();return{x:n.left-e.left,y:n.top-e.top}}n(236);var As=[{},({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:Ls(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(Us.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"))),a=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),o={};return Object.keys(a).reduce((t,e)=>(e.startsWith("$")&&(t[e]=a[e].get),t),o),{computed:o}}(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+"/",a=e.path+".html";Is(t,a)?r(a):Is(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(As.filter(t=>"function"==typeof t).map(e=>e({Vue:Vn,options:r,router:n,siteData:Bs,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 6e32b2cbc..df8417ec3 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 328ead2c2..1627c6a37 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 4eb3c7028..ba8fc9a04 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 193021b6d..d39602d11 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 b4284aec1..b2e64d322 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/AppleAirPods.html b/devices/AppleAirPods.html index d05c9102c..f09cc6811 100644 --- a/devices/AppleAirPods.html +++ b/devices/AppleAirPods.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Apple AirPods (Pro)

Model Id APPLEAIRPODS (opens new window)
Brand Apple
Model AirPods (Pro)
Short Description Various Apple AirPods (Pro) models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data model version, color, status, (left, right, case) battery level*, (left, right, case) charging state
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, iPad or AirPods (opens new window)

* battery levels are only reported in 10% steps by the BLE broadcasts.

Some model versions and statuses are not decoded correctly yet, due to the various models and generations. In such a case please report your device's MQTT message with the PUBLISH_ADVDATA option (opens new window) set to true.

- + (opens new window)

# Apple AirPods (Pro)

Model Id APPLEAIRPODS (opens new window)
Brand Apple
Model AirPods (Pro)
Short Description Various Apple AirPods (Pro) models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data model version, color, status, (left, right, case) battery level*, (left, right, case) charging state
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, iPad or AirPods (opens new window)

* battery levels are only reported in 10% steps by the BLE broadcasts.

Some model versions and statuses are not decoded correctly yet, due to the various models and generations. In such a case please report your device's MQTT message with the PUBLISH_ADVDATA option (opens new window) set to true.

+ diff --git a/devices/AppleDevice.html b/devices/AppleDevice.html index 600d22ae1..73343dec8 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 96ff6d5d1..e575ec6c2 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 2faaa6ec8..3e8b4920c 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 3c3271415..4a13556fc 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 7fa939a3f..c9168b354 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 f96d6dd8b..159ad3828 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 623540db3..6feb77f39 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 d3e8be6d1..39447bd15 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 210a5ab30..5bcc3dd84 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 a337cff2e..dbe744f19 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 472929e53..13441662b 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/BeatsBuds.html b/devices/BeatsBuds.html index 08fbd12c3..66dea1604 100644 --- a/devices/BeatsBuds.html +++ b/devices/BeatsBuds.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Beats Solo/Studio Buds

Model Id BEATSBUDS (opens new window)
Brand Beats
Model Solo/Studio Buds
Short Description Various Beats Solo/Studio Buds models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data model version, color, status, (left, right, case) battery level*, (left, right, case) charging state
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, iPad or Beats Buds (opens new window)

* battery levels are only reported in 10% steps by the BLE broadcasts.

Some model versions, colors and statuses are not decoded correctly yet, due to the various models, colors and generations. In such a case please report your device's MQTT message with the PUBLISH_ADVDATA option (opens new window) set to true.

- + (opens new window)

# Beats Solo/Studio Buds

Model Id BEATSBUDS (opens new window)
Brand Beats
Model Solo/Studio Buds
Short Description Various Beats Solo/Studio Buds models
Communication BLE broadcast
Frequency 2.4Ghz
Power Source Rechargeable battery
Exchanged Data model version, color, status, (left, right, case) battery level*, (left, right, case) charging state
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, iPad or Beats Buds (opens new window)

* battery levels are only reported in 10% steps by the BLE broadcasts.

Some model versions, colors and statuses are not decoded correctly yet, due to the various models, colors and generations. In such a case please report your device's MQTT message with the PUBLISH_ADVDATA option (opens new window) set to true.

+ diff --git a/devices/CGC1.html b/devices/CGC1.html index a7e585ff9..ceea00260 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 e75632b51..0d4ed1f12 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 b39792ac3..095ee0f4d 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 0557d7e82..a3a7ae2fa 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 64c5d8b36..b6e2ef541 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 2d4d60091..18619158b 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 269b910bb..0ff164ea8 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 4a9a069a7..31358844b 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 CGP23W (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 CGP23W (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 ee74eba48..0ee8d30d3 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 42eafedda..5cd6e63ad 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 d3a49b70d..f6a187f61 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 d5aab6be8..cb324a254 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 123a075f2..0e11411de 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 6ef633419..0bf8effe9 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 a15c0285a..8fbb6182d 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 99f0fd845..64c441c92 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 35477812b..b9e3be4ff 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 c44b8848a..8c07a4a22 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 edda9a444..3ebd8fc52 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/H5108.html b/devices/H5108.html index 7339174d8..e954e1c52 100644 --- a/devices/H5108.html +++ b/devices/H5108.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Govee H5108

Model Id H5108 (opens new window)
Brand Govee
Model Smart Probe Thermometer
Short Description Smart Probe Temperature monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, battery
Encrypted No
- + (opens new window)

# Govee H5108

Model Id H5108 (opens new window)
Brand Govee
Model Smart Probe Thermometer
Short Description Smart Probe Temperature monitor with LCD display
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AAA
Exchanged Data temperature, battery
Encrypted No
+ diff --git a/devices/H5174.html b/devices/H5174.html index 8deedefed..835a4889e 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 c2362496a..42d6e8b62 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 6170a2a13..d4e124e79 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 979e2c7dc..1670b92d7 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 43375b778..31fee1efa 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 da8428545..4f4ff002a 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/HOBOMX2001.html b/devices/HOBOMX2001.html index 59061c5b0..7b66069ca 100644 --- a/devices/HOBOMX2001.html +++ b/devices/HOBOMX2001.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# Onset Hobo Water Level Sensor

Model Id MX2001 (opens new window)
Brand Onset
Model Hobo Water Level Sensor
Short Description Water Tank level sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data level
Encrypted No
- + (opens new window)

# Onset Hobo Water Level Sensor

Model Id MX2001 (opens new window)
Brand Onset
Model Hobo Water Level Sensor
Short Description Water Tank level sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data level
Encrypted No
+ diff --git a/devices/IBS-P01B.html b/devices/IBS-P01B.html index d45b3fc54..590e3fb3a 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 1646115a4..da6f219cb 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 3a076a473..2a202dae3 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 caead4d77..d8c0a504f 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 9c829495c..5b4ba7c5a 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 0ebe1e61a..6a2479520 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 9eb7c1a80..56313eba0 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 446387c61..afa963b54 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 bb3cb4cd2..0e5dcbfc5 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 9fa12a56d..48542cae1 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 1bce93fbc..b1da104fb 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 51ec4f35d..d45dac2ef 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 99bc91f1d..ba34479a4 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 1c57c247b..919b55853 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 5427d032f..a05fcc49b 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 604ba0b60..c302587f8 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 27139e3d2..b3d41813e 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 31f913a6e..b8107ef09 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 d9bfb9869..645074b70 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/Mikrotik.html b/devices/Mikrotik.html index 4d0f527aa..7a81afe94 100644 --- a/devices/Mikrotik.html +++ b/devices/Mikrotik.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# MikroTik TG-BT5-IN & TG-BT5-OUT

Model Id TG-BT5 (opens new window)
Brand MikroTik
Model TG-BT5-IN/-OUT
Short Description Indoor & Outdoor temperature and acceleration sensors
Communication BLE broadcast
Frequency 2.4Ghz
Power Source built-in non-replaceable battery
Exchanged Data temperature, acceleration x/y/z-axis, uptime, battery
Encrypted No - Currently only unencrypted devices are supported
Device Tracker
- + (opens new window)

# MikroTik TG-BT5-IN & TG-BT5-OUT

Model Id TG-BT5 (opens new window)
Brand MikroTik
Model TG-BT5-IN/-OUT
Short Description Indoor & Outdoor temperature and acceleration sensors
Communication BLE broadcast
Frequency 2.4Ghz
Power Source built-in non-replaceable battery
Exchanged Data temperature, acceleration x/y/z-axis, uptime, battery
Encrypted No - Currently only unencrypted devices are supported
Device Tracker
+ diff --git a/devices/MokoBeacon.html b/devices/MokoBeacon.html index 514adea00..d62f27f3c 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 7b61fbf0d..0b7ebc331 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 63a622d66..ed113de38 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 edf4bcf9f..0e313acbe 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 b92bfb74e..9f15b07a6 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 c513f065a..3f9055c31 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 62f7a7c7e..1820140f5 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 c5283df1e..4d0057899 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 4d6075e08..3bebfe5c3 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 cd67fc703..816ca2dbe 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 bbf5c3649..8a9bb4cb6 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
  • 11 - Button hold
- + (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
  • 11 - Button hold
+ diff --git a/devices/SBBT-004CEU.html b/devices/SBBT-004CEU.html index fa4f20632..660dbfd34 100644 --- a/devices/SBBT-004CEU.html +++ b/devices/SBBT-004CEU.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ShellyBLU Wall Switcht4

Model Id SBBT-004CEU (opens new window)
Brand Shelly
Model ShellyBLU Wall Switch4
Short Description Button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type of each button, battery, packet ID
Encrypted No - Currently only unencrypted devices are supported

The button press type for each button is encoded as:

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

# ShellyBLU Wall Switcht4

Model Id SBBT-004CEU (opens new window)
Brand Shelly
Model ShellyBLU Wall Switch4
Short Description Button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type of each button, battery, packet ID
Encrypted No - Currently only unencrypted devices are supported

The button press type for each button is encoded as:

  • 0 - None (other Button was pressed or sent every 8 seconds if beacon mode is enabled)
  • 1 - Single short click
  • 2 - Double click
  • 3 - Triple click
  • 9 - Long press
  • 11 - Button hold
+ diff --git a/devices/SBBT-004CUS.html b/devices/SBBT-004CUS.html index 7e4c05890..ef5157b04 100644 --- a/devices/SBBT-004CUS.html +++ b/devices/SBBT-004CUS.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ShellyBLU RC Button4

Model Id SBBT-004CUS (opens new window)
Brand Shelly
Model ShellyBLU RC Button4
Short Description Button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type of each button, battery, packet ID
Encrypted No - Currently only unencrypted devices are supported

The button press type for each button is encoded as:

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

# ShellyBLU RC Button4

Model Id SBBT-004CUS (opens new window)
Brand Shelly
Model ShellyBLU RC Button4
Short Description Button
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data button press type of each button, battery, packet ID
Encrypted No - Currently only unencrypted devices are supported

The button press type for each button is encoded as:

  • 0 - None (other Button was pressed or sent every 8 seconds if beacon mode is enabled)
  • 1 - Single short click
  • 2 - Double click
  • 3 - Triple click
  • 9 - Long press
  • 11 - Button hold
+ diff --git a/devices/SBBT.html b/devices/SBBT.html index 9ecd1a08f..8838d8e0b 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 ee3159016..2bb71f2f6 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 63ddf6c09..78250b1c6 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 1ca6e6e5c..a2c097652 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/SBHT-003C.html b/devices/SBHT-003C.html index 5976cffe4..d135859ea 100644 --- a/devices/SBHT-003C.html +++ b/devices/SBHT-003C.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# ShellyBLU H&T

Model Id SBHT-003C (opens new window)
Brand Shelly
Model ShellyBLU H&T
Short Description Humidity and temperature sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, button press type, battery, packet ID
Encrypted Yes/No - Optional

The button press type is encoded as:

  • 1 - Single short click
  • 11 - Button hold
- + (opens new window)

# ShellyBLU H&T

Model Id SBHT-003C (opens new window)
Brand Shelly
Model ShellyBLU H&T
Short Description Humidity and temperature sensor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source CR2032
Exchanged Data temperature, humidity, button press type, battery, packet ID
Encrypted Yes/No - Optional

The button press type is encoded as:

  • 1 - Single short click
  • 11 - Button hold
+ diff --git a/devices/SBMO-003Z.html b/devices/SBMO-003Z.html index cb87bed5e..cc53b98e2 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/SBMP.html b/devices/SBMP.html index d71e4d1e2..fb6db4f01 100644 --- a/devices/SBMP.html +++ b/devices/SBMP.html @@ -18,7 +18,7 @@ - + @@ -98,7 +98,7 @@ Sponsor 🤍 GitHub - (opens new window)

# SwitchBot Meter Pro (CO2)

Model Id W490001X (opens new window)
Brand SwitchBot
Model Meter Pro (CO2)
Short Description Thermo-Hygrometer and CO2 Monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, humidity, carbon dioxide, battery
Encrypted No
- + (opens new window)

# SwitchBot Meter Pro (CO2)

Model Id W490001X (opens new window)
Brand SwitchBot
Model Meter Pro (CO2)
Short Description Thermo-Hygrometer and CO2 Monitor
Communication BLE broadcast
Frequency 2.4Ghz
Power Source 2 AA
Exchanged Data temperature, humidity, carbon dioxide, battery
Encrypted No
+ diff --git a/devices/SBMS.html b/devices/SBMS.html index d90f5b006..578e61d0e 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 6ab06ce40..a3d0ee23c 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 d97fdd144..5562f96dc 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 767128f84..bb6003869 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 c0565cbed..399d3af4b 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 436af47bc..e43dcc0b3 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 a14271170..4ceddc5e9 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 f2d575646..9b7628ce1 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 478473b2a..6768e98a2 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 a73cc4fe1..3c9ad19af 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_PRO (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_PRO (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 a0e8f4b35..3e7394f7c 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 42b401fc2..d73b09fff 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 9ddfd0281..43c3c3599 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 cd4909208..89742bbab 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 e6c6f29ff..b15a263ea 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 3e0581df7..6da061139 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 b43c04838..e183bd8f8 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 29983ea17..9e1fe07b9 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 939a9eb88..d38e13c98 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, battery
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, battery
Encrypted No
Image TP357
+ diff --git a/devices/TP358.html b/devices/TP358.html index b4a74514d..52eca63c1 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, battery
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, battery
Encrypted No
Image TP358
+ diff --git a/devices/TP359.html b/devices/TP359.html index 7718f53eb..96e09ddbc 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, battery
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, battery
Encrypted No
+ diff --git a/devices/TP393.html b/devices/TP393.html index ff96f9a83..ae6ed8b3b 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, battery
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, battery
Encrypted No
+ diff --git a/devices/TPMS.html b/devices/TPMS.html index 67997a02b..0a4ee976e 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 6d730f284..2fecb724f 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 2d8110406..f4dc6f796 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 398d1cdfe..96231dc82 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 8abff9cf6..81dcf5b51 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_by_brand.html b/devices/devices_by_brand.html index 4c09d9fc8..43044cfe9 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 450ca4179..5e177aab4 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 d92412485..d396b5163 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 0013ec2cf..81161f173 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 97c97d2df..f0eb639f2 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 1b2ceaa64..c57407f9b 100644 --- a/participate/adding-decoders.html +++ b/participate/adding-decoders.html @@ -18,7 +18,7 @@ - + @@ -216,7 +216,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 a1383ff87..d362e442c 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 2be88a708..6dc713906 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 f27c36912..5354191d5 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 fef8eaa08..57a53dfd9 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 1df975e40..9961dbb34 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.
- +