bt-sensors-plugin-sk 1.2.0-beta.0.0.9 → 1.2.0-beta.0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/BTSensor.js +14 -2
  2. package/README.md +13 -0
  3. package/bt-sensors-plugin-sk.json.bak +121 -0
  4. package/classLoader.js +38 -0
  5. package/index.js +51 -99
  6. package/package.json +2 -2
  7. package/public/159.js +1 -2
  8. package/public/239.js +14 -0
  9. package/public/540.js +1 -1
  10. package/public/778.js +2 -0
  11. package/public/main.js +1 -1
  12. package/public/remoteEntry.js +1 -1
  13. package/sensor_classes/ATC.js +1 -0
  14. package/sensor_classes/Aranet/AranetSensor.js +1 -0
  15. package/sensor_classes/GobiusCTankMeter.js +363 -0
  16. package/sensor_classes/GoveeH50xx.js +1 -1
  17. package/sensor_classes/GoveeH510x.js +1 -1
  18. package/sensor_classes/IBeacon.js +9 -2
  19. package/sensor_classes/Inkbird.js +1 -1
  20. package/sensor_classes/JBDBMS.js +1 -0
  21. package/sensor_classes/KilovaultHLXPlus.js +2 -0
  22. package/sensor_classes/LancolVoltageMeter.js +1 -0
  23. package/sensor_classes/MopekaTankSensor.js +7 -3
  24. package/sensor_classes/Renogy/RenogySensor.js +1 -1
  25. package/sensor_classes/RuuviTag.js +1 -0
  26. package/sensor_classes/ShellySBHT003C.js +2 -5
  27. package/sensor_classes/SwitchBotMeterPlus.js +2 -1
  28. package/sensor_classes/SwitchBotTH.js +2 -0
  29. package/sensor_classes/UltrasonicWindMeter.js +2 -0
  30. package/sensor_classes/Victron/VictronSensor.js +1 -0
  31. package/sensor_classes/VictronInverterRS.js +2 -2
  32. package/sensor_classes/XiaomiMiBeacon.js +2 -1
  33. package/src/components/PluginConfigurationPanel.js +140 -81
  34. package/.vscode/launch.json +0 -7
  35. package/public/30.js +0 -8
  36. package/public/893.js +0 -1
  37. package/testqueue.js +0 -64
  38. /package/public/{30.js.LICENSE.txt → 239.js.LICENSE.txt} +0 -0
  39. /package/public/{159.js.LICENSE.txt → 778.js.LICENSE.txt} +0 -0
package/public/540.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see 540.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[]).push([[540],{5287:(e,r,t)=>{var n=t(5228),o="function"==typeof Symbol&&Symbol.for,u=o?Symbol.for("react.element"):60103,f=o?Symbol.for("react.portal"):60106,l=o?Symbol.for("react.fragment"):60107,c=o?Symbol.for("react.strict_mode"):60108,i=o?Symbol.for("react.profiler"):60114,a=o?Symbol.for("react.provider"):60109,s=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.forward_ref"):60112,y=o?Symbol.for("react.suspense"):60113,d=o?Symbol.for("react.memo"):60115,h=o?Symbol.for("react.lazy"):60116,v="function"==typeof Symbol&&Symbol.iterator;function m(e){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t<arguments.length;t++)r+="&args[]="+encodeURIComponent(arguments[t]);return"Minified React error #"+e+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_={};function S(e,r,t){this.props=e,this.context=r,this.refs=_,this.updater=t||b}function k(){}function g(e,r,t){this.props=e,this.context=r,this.refs=_,this.updater=t||b}S.prototype.isReactComponent={},S.prototype.setState=function(e,r){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(m(85));this.updater.enqueueSetState(this,e,r,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},k.prototype=S.prototype;var w=g.prototype=new k;w.constructor=g,n(w,S.prototype),w.isPureReactComponent=!0;var $={current:null},C=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function R(e,r,t){var n,o={},f=null,l=null;if(null!=r)for(n in void 0!==r.ref&&(l=r.ref),void 0!==r.key&&(f=""+r.key),r)C.call(r,n)&&!E.hasOwnProperty(n)&&(o[n]=r[n]);var c=arguments.length-2;if(1===c)o.children=t;else if(1<c){for(var i=Array(c),a=0;a<c;a++)i[a]=arguments[a+2];o.children=i}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===o[n]&&(o[n]=c[n]);return{$$typeof:u,type:e,key:f,ref:l,props:o,_owner:$.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===u}var P=/\/+/g,j=[];function O(e,r,t,n){if(j.length){var o=j.pop();return o.result=e,o.keyPrefix=r,o.func=t,o.context=n,o.count=0,o}return{result:e,keyPrefix:r,func:t,context:n,count:0}}function A(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>j.length&&j.push(e)}function I(e,r,t,n){var o=typeof e;"undefined"!==o&&"boolean"!==o||(e=null);var l=!1;if(null===e)l=!0;else switch(o){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case u:case f:l=!0}}if(l)return t(n,e,""===r?"."+q(e,0):r),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var i=r+q(o=e[c],c);l+=I(o,i,t,n)}else if("function"==typeof(i=null===e||"object"!=typeof e?null:"function"==typeof(i=v&&e[v]||e["@@iterator"])?i:null))for(e=i.call(e),c=0;!(o=e.next()).done;)l+=I(o=o.value,i=r+q(o,c++),t,n);else if("object"===o)throw t=""+e,Error(m(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t,""));return l}function U(e,r,t){return null==e?0:I(e,"",r,t)}function q(e,r){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var r={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return r[e]}))}(e.key):r.toString(36)}function F(e,r){e.func.call(e.context,r,e.count++)}function L(e,r,t){var n=e.result,o=e.keyPrefix;e=e.func.call(e.context,r,e.count++),Array.isArray(e)?M(e,n,t,(function(e){return e})):null!=e&&(x(e)&&(e=function(e,r){return{$$typeof:u,type:e.type,key:r,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||r&&r.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+t)),n.push(e))}function M(e,r,t,n,o){var u="";null!=t&&(u=(""+t).replace(P,"$&/")+"/"),U(e,L,r=O(r,u,n,o)),A(r)}var D={current:null};function V(){var e=D.current;if(null===e)throw Error(m(321));return e}var B={ReactCurrentDispatcher:D,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:$,IsSomeRendererActing:{current:!1},assign:n};r.Children={map:function(e,r,t){if(null==e)return e;var n=[];return M(e,n,null,r,t),n},forEach:function(e,r,t){if(null==e)return e;U(e,F,r=O(null,null,r,t)),A(r)},count:function(e){return U(e,(function(){return null}),null)},toArray:function(e){var r=[];return M(e,r,null,(function(e){return e})),r},only:function(e){if(!x(e))throw Error(m(143));return e}},r.Component=S,r.Fragment=l,r.Profiler=i,r.PureComponent=g,r.StrictMode=c,r.Suspense=y,r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,r.cloneElement=function(e,r,t){if(null==e)throw Error(m(267,e));var o=n({},e.props),f=e.key,l=e.ref,c=e._owner;if(null!=r){if(void 0!==r.ref&&(l=r.ref,c=$.current),void 0!==r.key&&(f=""+r.key),e.type&&e.type.defaultProps)var i=e.type.defaultProps;for(a in r)C.call(r,a)&&!E.hasOwnProperty(a)&&(o[a]=void 0===r[a]&&void 0!==i?i[a]:r[a])}var a=arguments.length-2;if(1===a)o.children=t;else if(1<a){i=Array(a);for(var s=0;s<a;s++)i[s]=arguments[s+2];o.children=i}return{$$typeof:u,type:e.type,key:f,ref:l,props:o,_owner:c}},r.createContext=function(e,r){return void 0===r&&(r=null),(e={$$typeof:s,_calculateChangedBits:r,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},r.createElement=R,r.createFactory=function(e){var r=R.bind(null,e);return r.type=e,r},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:p,render:e}},r.isValidElement=x,r.lazy=function(e){return{$$typeof:h,_ctor:e,_status:-1,_result:null}},r.memo=function(e,r){return{$$typeof:d,type:e,compare:void 0===r?null:r}},r.useCallback=function(e,r){return V().useCallback(e,r)},r.useContext=function(e,r){return V().useContext(e,r)},r.useDebugValue=function(){},r.useEffect=function(e,r){return V().useEffect(e,r)},r.useImperativeHandle=function(e,r,t){return V().useImperativeHandle(e,r,t)},r.useLayoutEffect=function(e,r){return V().useLayoutEffect(e,r)},r.useMemo=function(e,r){return V().useMemo(e,r)},r.useReducer=function(e,r,t){return V().useReducer(e,r,t)},r.useRef=function(e){return V().useRef(e)},r.useState=function(e){return V().useState(e)},r.version="16.14.0"},6540:(e,r,t)=>{e.exports=t(5287)}}]);
2
+ "use strict";(self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[]).push([[540],{15287:(e,r,t)=>{var n=t(45228),o="function"==typeof Symbol&&Symbol.for,u=o?Symbol.for("react.element"):60103,f=o?Symbol.for("react.portal"):60106,l=o?Symbol.for("react.fragment"):60107,c=o?Symbol.for("react.strict_mode"):60108,i=o?Symbol.for("react.profiler"):60114,a=o?Symbol.for("react.provider"):60109,s=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.forward_ref"):60112,y=o?Symbol.for("react.suspense"):60113,d=o?Symbol.for("react.memo"):60115,h=o?Symbol.for("react.lazy"):60116,v="function"==typeof Symbol&&Symbol.iterator;function m(e){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t<arguments.length;t++)r+="&args[]="+encodeURIComponent(arguments[t]);return"Minified React error #"+e+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_={};function S(e,r,t){this.props=e,this.context=r,this.refs=_,this.updater=t||b}function k(){}function g(e,r,t){this.props=e,this.context=r,this.refs=_,this.updater=t||b}S.prototype.isReactComponent={},S.prototype.setState=function(e,r){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(m(85));this.updater.enqueueSetState(this,e,r,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},k.prototype=S.prototype;var w=g.prototype=new k;w.constructor=g,n(w,S.prototype),w.isPureReactComponent=!0;var $={current:null},C=Object.prototype.hasOwnProperty,E={key:!0,ref:!0,__self:!0,__source:!0};function R(e,r,t){var n,o={},f=null,l=null;if(null!=r)for(n in void 0!==r.ref&&(l=r.ref),void 0!==r.key&&(f=""+r.key),r)C.call(r,n)&&!E.hasOwnProperty(n)&&(o[n]=r[n]);var c=arguments.length-2;if(1===c)o.children=t;else if(1<c){for(var i=Array(c),a=0;a<c;a++)i[a]=arguments[a+2];o.children=i}if(e&&e.defaultProps)for(n in c=e.defaultProps)void 0===o[n]&&(o[n]=c[n]);return{$$typeof:u,type:e,key:f,ref:l,props:o,_owner:$.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===u}var P=/\/+/g,j=[];function O(e,r,t,n){if(j.length){var o=j.pop();return o.result=e,o.keyPrefix=r,o.func=t,o.context=n,o.count=0,o}return{result:e,keyPrefix:r,func:t,context:n,count:0}}function A(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>j.length&&j.push(e)}function I(e,r,t,n){var o=typeof e;"undefined"!==o&&"boolean"!==o||(e=null);var l=!1;if(null===e)l=!0;else switch(o){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case u:case f:l=!0}}if(l)return t(n,e,""===r?"."+q(e,0):r),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var i=r+q(o=e[c],c);l+=I(o,i,t,n)}else if("function"==typeof(i=null===e||"object"!=typeof e?null:"function"==typeof(i=v&&e[v]||e["@@iterator"])?i:null))for(e=i.call(e),c=0;!(o=e.next()).done;)l+=I(o=o.value,i=r+q(o,c++),t,n);else if("object"===o)throw t=""+e,Error(m(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t,""));return l}function U(e,r,t){return null==e?0:I(e,"",r,t)}function q(e,r){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var r={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return r[e]}))}(e.key):r.toString(36)}function F(e,r){e.func.call(e.context,r,e.count++)}function L(e,r,t){var n=e.result,o=e.keyPrefix;e=e.func.call(e.context,r,e.count++),Array.isArray(e)?M(e,n,t,(function(e){return e})):null!=e&&(x(e)&&(e=function(e,r){return{$$typeof:u,type:e.type,key:r,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||r&&r.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+t)),n.push(e))}function M(e,r,t,n,o){var u="";null!=t&&(u=(""+t).replace(P,"$&/")+"/"),U(e,L,r=O(r,u,n,o)),A(r)}var D={current:null};function V(){var e=D.current;if(null===e)throw Error(m(321));return e}var B={ReactCurrentDispatcher:D,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:$,IsSomeRendererActing:{current:!1},assign:n};r.Children={map:function(e,r,t){if(null==e)return e;var n=[];return M(e,n,null,r,t),n},forEach:function(e,r,t){if(null==e)return e;U(e,F,r=O(null,null,r,t)),A(r)},count:function(e){return U(e,(function(){return null}),null)},toArray:function(e){var r=[];return M(e,r,null,(function(e){return e})),r},only:function(e){if(!x(e))throw Error(m(143));return e}},r.Component=S,r.Fragment=l,r.Profiler=i,r.PureComponent=g,r.StrictMode=c,r.Suspense=y,r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,r.cloneElement=function(e,r,t){if(null==e)throw Error(m(267,e));var o=n({},e.props),f=e.key,l=e.ref,c=e._owner;if(null!=r){if(void 0!==r.ref&&(l=r.ref,c=$.current),void 0!==r.key&&(f=""+r.key),e.type&&e.type.defaultProps)var i=e.type.defaultProps;for(a in r)C.call(r,a)&&!E.hasOwnProperty(a)&&(o[a]=void 0===r[a]&&void 0!==i?i[a]:r[a])}var a=arguments.length-2;if(1===a)o.children=t;else if(1<a){i=Array(a);for(var s=0;s<a;s++)i[s]=arguments[s+2];o.children=i}return{$$typeof:u,type:e.type,key:f,ref:l,props:o,_owner:c}},r.createContext=function(e,r){return void 0===r&&(r=null),(e={$$typeof:s,_calculateChangedBits:r,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},r.createElement=R,r.createFactory=function(e){var r=R.bind(null,e);return r.type=e,r},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:p,render:e}},r.isValidElement=x,r.lazy=function(e){return{$$typeof:h,_ctor:e,_status:-1,_result:null}},r.memo=function(e,r){return{$$typeof:d,type:e,compare:void 0===r?null:r}},r.useCallback=function(e,r){return V().useCallback(e,r)},r.useContext=function(e,r){return V().useContext(e,r)},r.useDebugValue=function(){},r.useEffect=function(e,r){return V().useEffect(e,r)},r.useImperativeHandle=function(e,r,t){return V().useImperativeHandle(e,r,t)},r.useLayoutEffect=function(e,r){return V().useLayoutEffect(e,r)},r.useMemo=function(e,r){return V().useMemo(e,r)},r.useReducer=function(e,r,t){return V().useReducer(e,r,t)},r.useRef=function(e){return V().useRef(e)},r.useState=function(e){return V().useState(e)},r.version="16.14.0"},96540:(e,r,t)=>{e.exports=t(15287)}}]);
package/public/778.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 778.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[]).push([[540,778],{15287:(e,r,t)=>{var n=t(45228),o="function"==typeof Symbol&&Symbol.for,u=o?Symbol.for("react.element"):60103,c=o?Symbol.for("react.portal"):60106,f=o?Symbol.for("react.fragment"):60107,l=o?Symbol.for("react.strict_mode"):60108,i=o?Symbol.for("react.profiler"):60114,a=o?Symbol.for("react.provider"):60109,s=o?Symbol.for("react.context"):60110,p=o?Symbol.for("react.forward_ref"):60112,y=o?Symbol.for("react.suspense"):60113,d=o?Symbol.for("react.memo"):60115,h=o?Symbol.for("react.lazy"):60116,b="function"==typeof Symbol&&Symbol.iterator;function v(e){for(var r="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t<arguments.length;t++)r+="&args[]="+encodeURIComponent(arguments[t]);return"Minified React error #"+e+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_={};function g(e,r,t){this.props=e,this.context=r,this.refs=_,this.updater=t||m}function S(){}function k(e,r,t){this.props=e,this.context=r,this.refs=_,this.updater=t||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,r){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(v(85));this.updater.enqueueSetState(this,e,r,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},S.prototype=g.prototype;var w=k.prototype=new S;w.constructor=k,n(w,g.prototype),w.isPureReactComponent=!0;var j={current:null},O=Object.prototype.hasOwnProperty,C={key:!0,ref:!0,__self:!0,__source:!0};function $(e,r,t){var n,o={},c=null,f=null;if(null!=r)for(n in void 0!==r.ref&&(f=r.ref),void 0!==r.key&&(c=""+r.key),r)O.call(r,n)&&!C.hasOwnProperty(n)&&(o[n]=r[n]);var l=arguments.length-2;if(1===l)o.children=t;else if(1<l){for(var i=Array(l),a=0;a<l;a++)i[a]=arguments[a+2];o.children=i}if(e&&e.defaultProps)for(n in l=e.defaultProps)void 0===o[n]&&(o[n]=l[n]);return{$$typeof:u,type:e,key:c,ref:f,props:o,_owner:j.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===u}var P=/\/+/g,x=[];function R(e,r,t,n){if(x.length){var o=x.pop();return o.result=e,o.keyPrefix=r,o.func=t,o.context=n,o.count=0,o}return{result:e,keyPrefix:r,func:t,context:n,count:0}}function A(e){e.result=null,e.keyPrefix=null,e.func=null,e.context=null,e.count=0,10>x.length&&x.push(e)}function I(e,r,t,n){var o=typeof e;"undefined"!==o&&"boolean"!==o||(e=null);var f=!1;if(null===e)f=!0;else switch(o){case"string":case"number":f=!0;break;case"object":switch(e.$$typeof){case u:case c:f=!0}}if(f)return t(n,e,""===r?"."+U(e,0):r),1;if(f=0,r=""===r?".":r+":",Array.isArray(e))for(var l=0;l<e.length;l++){var i=r+U(o=e[l],l);f+=I(o,i,t,n)}else if("function"==typeof(i=null===e||"object"!=typeof e?null:"function"==typeof(i=b&&e[b]||e["@@iterator"])?i:null))for(e=i.call(e),l=0;!(o=e.next()).done;)f+=I(o=o.value,i=r+U(o,l++),t,n);else if("object"===o)throw t=""+e,Error(v(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t,""));return f}function q(e,r,t){return null==e?0:I(e,"",r,t)}function U(e,r){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var r={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,(function(e){return r[e]}))}(e.key):r.toString(36)}function F(e,r){e.func.call(e.context,r,e.count++)}function L(e,r,t){var n=e.result,o=e.keyPrefix;e=e.func.call(e.context,r,e.count++),Array.isArray(e)?M(e,n,t,(function(e){return e})):null!=e&&(E(e)&&(e=function(e,r){return{$$typeof:u,type:e.type,key:r,ref:e.ref,props:e.props,_owner:e._owner}}(e,o+(!e.key||r&&r.key===e.key?"":(""+e.key).replace(P,"$&/")+"/")+t)),n.push(e))}function M(e,r,t,n,o){var u="";null!=t&&(u=(""+t).replace(P,"$&/")+"/"),q(e,L,r=R(r,u,n,o)),A(r)}var N={current:null};function D(){var e=N.current;if(null===e)throw Error(v(321));return e}var T={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:j,IsSomeRendererActing:{current:!1},assign:n};r.Children={map:function(e,r,t){if(null==e)return e;var n=[];return M(e,n,null,r,t),n},forEach:function(e,r,t){if(null==e)return e;q(e,F,r=R(null,null,r,t)),A(r)},count:function(e){return q(e,(function(){return null}),null)},toArray:function(e){var r=[];return M(e,r,null,(function(e){return e})),r},only:function(e){if(!E(e))throw Error(v(143));return e}},r.Component=g,r.Fragment=f,r.Profiler=i,r.PureComponent=k,r.StrictMode=l,r.Suspense=y,r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T,r.cloneElement=function(e,r,t){if(null==e)throw Error(v(267,e));var o=n({},e.props),c=e.key,f=e.ref,l=e._owner;if(null!=r){if(void 0!==r.ref&&(f=r.ref,l=j.current),void 0!==r.key&&(c=""+r.key),e.type&&e.type.defaultProps)var i=e.type.defaultProps;for(a in r)O.call(r,a)&&!C.hasOwnProperty(a)&&(o[a]=void 0===r[a]&&void 0!==i?i[a]:r[a])}var a=arguments.length-2;if(1===a)o.children=t;else if(1<a){i=Array(a);for(var s=0;s<a;s++)i[s]=arguments[s+2];o.children=i}return{$$typeof:u,type:e.type,key:c,ref:f,props:o,_owner:l}},r.createContext=function(e,r){return void 0===r&&(r=null),(e={$$typeof:s,_calculateChangedBits:r,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},r.createElement=$,r.createFactory=function(e){var r=$.bind(null,e);return r.type=e,r},r.createRef=function(){return{current:null}},r.forwardRef=function(e){return{$$typeof:p,render:e}},r.isValidElement=E,r.lazy=function(e){return{$$typeof:h,_ctor:e,_status:-1,_result:null}},r.memo=function(e,r){return{$$typeof:d,type:e,compare:void 0===r?null:r}},r.useCallback=function(e,r){return D().useCallback(e,r)},r.useContext=function(e,r){return D().useContext(e,r)},r.useDebugValue=function(){},r.useEffect=function(e,r){return D().useEffect(e,r)},r.useImperativeHandle=function(e,r,t){return D().useImperativeHandle(e,r,t)},r.useLayoutEffect=function(e,r){return D().useLayoutEffect(e,r)},r.useMemo=function(e,r){return D().useMemo(e,r)},r.useReducer=function(e,r,t){return D().useReducer(e,r,t)},r.useRef=function(e){return D().useRef(e)},r.useState=function(e){return D().useState(e)},r.version="16.14.0"},45228:e=>{var r=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var r={},t=0;t<10;t++)r["_"+String.fromCharCode(t)]=t;if("0123456789"!==Object.getOwnPropertyNames(r).map((function(e){return r[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var u,c,f=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var i in u=Object(arguments[l]))t.call(u,i)&&(f[i]=u[i]);if(r){c=r(u);for(var a=0;a<c.length;a++)n.call(u,c[a])&&(f[c[a]]=u[c[a]])}}return f}},96540:(e,r,t)=>{e.exports=t(15287)}}]);
package/public/main.js CHANGED
@@ -1 +1 @@
1
- (()=>{var e,r,t={9445:()=>{}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,o.c=n,o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="bt-sensors-plugin-sk:",o.l=(t,n,a,i)=>{if(e[t])e[t].push(n);else{var s,l;if(void 0!==a)for(var u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var p=u[c];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+a){s=p;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+a),s.src=t),e[t]=[n];var d=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var o=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),r)return r(n)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),l&&document.head.appendChild(s)}},(()=>{o.S={};var e={},r={};o.I=(t,n)=>{n||(n=[]);var a=r[t];if(a||(a=r[t]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[t])return e[t];o.o(o.S,t)||(o.S[t]={});var i=o.S[t],s="bt-sensors-plugin-sk",l=[];return"default"===t&&((e,r,t,n)=>{var a=i[e]=i[e]||{},l=a[r];(!l||!l.loaded&&(1!=!l.eager?n:s>l.from))&&(a[r]={get:()=>o.e(159).then((()=>()=>o(6540))),from:s,eager:!1})})("react","16.14.0"),e[t]=l.length?Promise.all(l).then((()=>e[t]=1)):1}}})(),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={792:0};o.f.j=(r,t)=>{var n=o.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var a=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=a);var i=o.p+o.u(r),s=new Error;o.l(i,(t=>{if(o.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var a=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;s.message="Loading chunk "+r+" failed.\n("+a+": "+i+")",s.name="ChunkLoadError",s.type=a,s.request=i,n[1](s)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,a,[i,s,l]=t,u=0;if(i.some((r=>0!==e[r]))){for(n in s)o.o(s,n)&&(o.m[n]=s[n]);l&&l(o)}for(r&&r(t);u<i.length;u++)a=i[u],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},t=self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),o(9445)})();
1
+ (()=>{var e,r,t={49445:()=>{}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,o.c=n,o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="bt-sensors-plugin-sk:",o.l=(t,n,a,i)=>{if(e[t])e[t].push(n);else{var s,l;if(void 0!==a)for(var u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var p=u[c];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+a){s=p;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+a),s.src=t),e[t]=[n];var d=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var o=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),r)return r(n)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),l&&document.head.appendChild(s)}},(()=>{o.S={};var e={},r={};o.I=(t,n)=>{n||(n=[]);var a=r[t];if(a||(a=r[t]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[t])return e[t];o.o(o.S,t)||(o.S[t]={});var i=o.S[t],s="bt-sensors-plugin-sk",l=[];return"default"===t&&((e,r,t,n)=>{var a=i[e]=i[e]||{},l=a[r];(!l||!l.loaded&&(1!=!l.eager?n:s>l.from))&&(a[r]={get:()=>o.e(778).then((()=>()=>o(96540))),from:s,eager:!1})})("react","16.14.0"),e[t]=l.length?Promise.all(l).then((()=>e[t]=1)):1}}})(),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={792:0};o.f.j=(r,t)=>{var n=o.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var a=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=a);var i=o.p+o.u(r),s=new Error;o.l(i,(t=>{if(o.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var a=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;s.message="Loading chunk "+r+" failed.\n("+a+": "+i+")",s.name="ChunkLoadError",s.type=a,s.request=i,n[1](s)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,a,[i,s,l]=t,u=0;if(i.some((r=>0!==e[r]))){for(n in s)o.o(s,n)&&(o.m[n]=s[n]);l&&l(o)}for(r&&r(t);u<i.length;u++)a=i[u],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},t=self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),o(49445)})();
@@ -1 +1 @@
1
- var bt_sensors_plugin_sk;(()=>{"use strict";var e,r,t,n,o,a,i,u,s,l,f,d,c,p,h,v,g,b,m,y,w,k={3237:(e,r,t)=>{var n={"./PluginConfigurationPanel":()=>Promise.all([t.e(30),t.e(893)]).then((()=>()=>t(2995)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},S={};function _(e){var r=S[e];if(void 0!==r)return r.exports;var t=S[e]={id:e,loaded:!1,exports:{}};return k[e](t,t.exports,_),t.loaded=!0,t.exports}_.m=k,_.c=S,_.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return _.d(r,{a:r}),r},_.d=(e,r)=>{for(var t in r)_.o(r,t)&&!_.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},_.f={},_.e=e=>Promise.all(Object.keys(_.f).reduce(((r,t)=>(_.f[t](e,r),r)),[])),_.u=e=>e+".js",_.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),_.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="bt-sensors-plugin-sk:",_.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var i,u;if(void 0!==o)for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var f=s[l];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+o){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,_.nc&&i.setAttribute("nonce",_.nc),i.setAttribute("data-webpack",r+o),i.src=t),e[t]=[n];var d=(r,n)=>{i.onerror=i.onload=null,clearTimeout(c);var o=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},c=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),u&&document.head.appendChild(i)}},_.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},_.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{_.S={};var e={},r={};_.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];_.o(_.S,t)||(_.S[t]={});var a=_.S[t],i="bt-sensors-plugin-sk",u=[];return"default"===t&&((e,r,t,n)=>{var o=a[e]=a[e]||{},u=o[r];(!u||!u.loaded&&(1!=!u.eager?n:i>u.from))&&(o[r]={get:()=>_.e(159).then((()=>()=>_(6540))),from:i,eager:!1})})("react","16.14.0"),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;_.g.importScripts&&(e=_.g.location+"");var r=_.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),_.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var o=e[n],a=(typeof o)[0];if(n>=r.length)return"u"==a;var i=r[n],u=(typeof i)[0];if(a!=u)return"o"==a&&"n"==u||"s"==u||"u"==a;if("o"!=a&&"u"!=a&&o!=i)return o<i;n++}},o=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,a=1;a<e.length;a++)n--,t+="u"==(typeof(u=e[a]))[0]?"-":(n>0?".":"")+(n=2,u);return t}var i=[];for(a=1;a<e.length;a++){var u=e[a];i.push(0===u?"not("+s()+")":1===u?"("+s()+" || "+s()+")":2===u?i.pop()+" "+i.pop():o(u))}return s();function s(){return i.pop().replace(/^\((.+)\)$/,"$1")}},a=(e,r)=>{if(0 in e){r=t(r);var n=e[0],o=n<0;o&&(n=-n-1);for(var i=0,u=1,s=!0;;u++,i++){var l,f,d=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(l=r[i]))[0]))return!s||("u"==d?u>n&&!o:""==d!=o);if("u"==f){if(!s||"u"!=d)return!1}else if(s)if(d==f)if(u<=n){if(l!=e[u])return!1}else{if(o?l>e[u]:l<e[u])return!1;l!=e[u]&&(s=!1)}else if("s"!=d&&"n"!=d){if(o||u<=n)return!1;s=!1,u--}else{if(u<=n||f<d!=o)return!1;s=!1}else"s"!=d&&"n"!=d&&(s=!1,u--)}}var c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var h=e[i];c.push(1==h?p()|p():2==h?p()&p():h?a(h,r):!p())}return!!p()},i=(e,r)=>e&&_.o(e,r),u=e=>(e.loaded=1,e.get()),s=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),l=(e,r,t)=>{var o=t?s(e[r]):e[r];return(r=Object.keys(o).reduce(((e,r)=>!e||n(e,r)?r:e),0))&&o[r]},f=(e,r,t,o)=>{var i=o?s(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!a(t,r)||e&&!n(e,r)?e:r),0))&&i[r]},d=(e,r,t,n,a)=>{var i=e[t];return"No satisfying version ("+o(n)+")"+(a?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from "+i[e].from)).join(", ")},c=e=>{throw new Error(e)},h=(e,r,t)=>t?t():((e,r)=>c("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),v=(p=e=>function(r,t,n,o,a){var i=_.I(r);return i&&i.then&&!n?i.then(e.bind(e,r,_.S[r],t,!1,o,a)):e(r,_.S[r],t,n,o,a)})(((e,r,t,n,o)=>i(r,t)?u(l(r,t,n)):h(e,t,o))),g=p(((e,r,t,n,o,a)=>{if(!i(r,t))return h(e,t,a);var s=f(r,t,o,n);return s?u(s):a?a():void c(d(r,e,t,o,n))})),b={},m={1490:()=>g("default","react",!1,[,[1,17,0,0],[1,16,8,0],1],(()=>_.e(540).then((()=>()=>_(6540))))),2085:()=>g("default","react",!1,[1,16,14,0],(()=>_.e(540).then((()=>()=>_(6540))))),2417:()=>g("default","react",!1,[0,16,8,0],(()=>_.e(540).then((()=>()=>_(6540))))),4147:()=>g("default","react",!1,[1,16,13,1],(()=>_.e(540).then((()=>()=>_(6540))))),4167:()=>v("default","react",!1,(()=>_.e(540).then((()=>()=>_(6540))))),4564:()=>g("default","react",!1,[0,16,14,0],(()=>_.e(540).then((()=>()=>_(6540))))),6932:()=>g("default","react",!1,[0,15,0,0],(()=>_.e(540).then((()=>()=>_(6540))))),7227:()=>g("default","react",!1,[0,16,6,0],(()=>_.e(540).then((()=>()=>_(6540))))),7920:()=>g("default","react",!1,[,[0,17],[1,16,14,0],1],(()=>_.e(540).then((()=>()=>_(6540))))),8271:()=>g("default","react",!1,[0,0,14,0],(()=>_.e(540).then((()=>()=>_(6540)))))},y={893:[1490,2085,2417,4147,4167,4564,6932,7227,7920,8271]},w={},_.f.consumes=(e,r)=>{_.o(y,e)&&y[e].forEach((e=>{if(_.o(b,e))return r.push(b[e]);if(!w[e]){var t=r=>{b[e]=0,_.m[e]=t=>{delete _.c[e],t.exports=r()}};w[e]=!0;var n=r=>{delete b[e],_.m[e]=t=>{throw delete _.c[e],r}};try{var o=m[e]();o.then?r.push(b[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}}))},(()=>{var e={592:0};_.f.j=(r,t)=>{var n=_.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=_.p+_.u(r),i=new Error;_.l(a,(t=>{if(_.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,o,[a,i,u]=t,s=0;if(a.some((r=>0!==e[r]))){for(n in i)_.o(i,n)&&(_.m[n]=i[n]);u&&u(_)}for(r&&r(t);s<a.length;s++)o=a[s],_.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})();var j=_(3237);bt_sensors_plugin_sk=j})();
1
+ var bt_sensors_plugin_sk;(()=>{"use strict";var e,r,t,n,a,o,i,u,s,l,f,d,c,p,h,v,g,b,m,y,w,k={43237:(e,r,t)=>{var n={"./PluginConfigurationPanel":()=>Promise.all([t.e(239),t.e(159)]).then((()=>()=>t(62995)))},a=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),o=(e,r)=>{if(t.S){var n="default",a=t.S[n];if(a&&a!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>a,init:()=>o})}},S={};function _(e){var r=S[e];if(void 0!==r)return r.exports;var t=S[e]={id:e,loaded:!1,exports:{}};return k[e](t,t.exports,_),t.loaded=!0,t.exports}_.m=k,_.c=S,_.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return _.d(r,{a:r}),r},_.d=(e,r)=>{for(var t in r)_.o(r,t)&&!_.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},_.f={},_.e=e=>Promise.all(Object.keys(_.f).reduce(((r,t)=>(_.f[t](e,r),r)),[])),_.u=e=>e+".js",_.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),_.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="bt-sensors-plugin-sk:",_.l=(t,n,a,o)=>{if(e[t])e[t].push(n);else{var i,u;if(void 0!==a)for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){var f=s[l];if(f.getAttribute("src")==t||f.getAttribute("data-webpack")==r+a){i=f;break}}i||(u=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,_.nc&&i.setAttribute("nonce",_.nc),i.setAttribute("data-webpack",r+a),i.src=t),e[t]=[n];var d=(r,n)=>{i.onerror=i.onload=null,clearTimeout(c);var a=e[t];if(delete e[t],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(n))),r)return r(n)},c=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),u&&document.head.appendChild(i)}},_.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},_.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{_.S={};var e={},r={};_.I=(t,n)=>{n||(n=[]);var a=r[t];if(a||(a=r[t]={}),!(n.indexOf(a)>=0)){if(n.push(a),e[t])return e[t];_.o(_.S,t)||(_.S[t]={});var o=_.S[t],i="bt-sensors-plugin-sk",u=[];return"default"===t&&((e,r,t,n)=>{var a=o[e]=o[e]||{},u=a[r];(!u||!u.loaded&&(1!=!u.eager?n:i>u.from))&&(a[r]={get:()=>_.e(778).then((()=>()=>_(96540))),from:i,eager:!1})})("react","16.14.0"),e[t]=u.length?Promise.all(u).then((()=>e[t]=1)):1}}})(),(()=>{var e;_.g.importScripts&&(e=_.g.location+"");var r=_.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),_.p=e})(),t=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},n=(e,r)=>{e=t(e),r=t(r);for(var n=0;;){if(n>=e.length)return n<r.length&&"u"!=(typeof r[n])[0];var a=e[n],o=(typeof a)[0];if(n>=r.length)return"u"==o;var i=r[n],u=(typeof i)[0];if(o!=u)return"o"==o&&"n"==u||"s"==u||"u"==o;if("o"!=o&&"u"!=o&&a!=i)return a<i;n++}},a=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,t+="u"==(typeof(u=e[o]))[0]?"-":(n>0?".":"")+(n=2,u);return t}var i=[];for(o=1;o<e.length;o++){var u=e[o];i.push(0===u?"not("+s()+")":1===u?"("+s()+" || "+s()+")":2===u?i.pop()+" "+i.pop():a(u))}return s();function s(){return i.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,r)=>{if(0 in e){r=t(r);var n=e[0],a=n<0;a&&(n=-n-1);for(var i=0,u=1,s=!0;;u++,i++){var l,f,d=u<e.length?(typeof e[u])[0]:"";if(i>=r.length||"o"==(f=(typeof(l=r[i]))[0]))return!s||("u"==d?u>n&&!a:""==d!=a);if("u"==f){if(!s||"u"!=d)return!1}else if(s)if(d==f)if(u<=n){if(l!=e[u])return!1}else{if(a?l>e[u]:l<e[u])return!1;l!=e[u]&&(s=!1)}else if("s"!=d&&"n"!=d){if(a||u<=n)return!1;s=!1,u--}else{if(u<=n||f<d!=a)return!1;s=!1}else"s"!=d&&"n"!=d&&(s=!1,u--)}}var c=[],p=c.pop.bind(c);for(i=1;i<e.length;i++){var h=e[i];c.push(1==h?p()|p():2==h?p()&p():h?o(h,r):!p())}return!!p()},i=(e,r)=>e&&_.o(e,r),u=e=>(e.loaded=1,e.get()),s=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),l=(e,r,t)=>{var a=t?s(e[r]):e[r];return(r=Object.keys(a).reduce(((e,r)=>!e||n(e,r)?r:e),0))&&a[r]},f=(e,r,t,a)=>{var i=a?s(e[r]):e[r];return(r=Object.keys(i).reduce(((e,r)=>!o(t,r)||e&&!n(e,r)?e:r),0))&&i[r]},d=(e,r,t,n,o)=>{var i=e[t];return"No satisfying version ("+a(n)+")"+(o?" for eager consumption":"")+" of shared module "+t+" found in shared scope "+r+".\nAvailable versions: "+Object.keys(i).map((e=>e+" from "+i[e].from)).join(", ")},c=e=>{throw new Error(e)},h=(e,r,t)=>t?t():((e,r)=>c("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),v=(p=e=>function(r,t,n,a,o){var i=_.I(r);return i&&i.then&&!n?i.then(e.bind(e,r,_.S[r],t,!1,a,o)):e(r,_.S[r],t,n,a,o)})(((e,r,t,n,a)=>i(r,t)?u(l(r,t,n)):h(e,t,a))),g=p(((e,r,t,n,a,o)=>{if(!i(r,t))return h(e,t,o);var s=f(r,t,a,n);return s?u(s):o?o():void c(d(r,e,t,a,n))})),b={},m={21490:()=>g("default","react",!1,[,[1,17,0,0],[1,16,8,0],1],(()=>_.e(540).then((()=>()=>_(96540))))),42417:()=>g("default","react",!1,[0,16,8,0],(()=>_.e(540).then((()=>()=>_(96540))))),44167:()=>v("default","react",!1,(()=>_.e(540).then((()=>()=>_(96540))))),57920:()=>g("default","react",!1,[,[0,17],[1,16,14,0],1],(()=>_.e(540).then((()=>()=>_(96540))))),62085:()=>g("default","react",!1,[1,16,14,0],(()=>_.e(540).then((()=>()=>_(96540))))),64115:()=>g("default","react",!1,[,[1,19,0,0,,"rc",1],[1,18,0,0],[1,17,0,0,,"rc",1],[1,16,8,0],1,1,1],(()=>_.e(540).then((()=>()=>_(96540))))),64564:()=>g("default","react",!1,[0,16,14,0],(()=>_.e(540).then((()=>()=>_(96540))))),86528:()=>g("default","react",!1,[1,16,13,1],(()=>_.e(540).then((()=>()=>_(96540))))),87227:()=>g("default","react",!1,[0,16,6,0],(()=>_.e(540).then((()=>()=>_(96540))))),96932:()=>g("default","react",!1,[0,15,0,0],(()=>_.e(540).then((()=>()=>_(96540))))),98271:()=>g("default","react",!1,[0,0,14,0],(()=>_.e(540).then((()=>()=>_(96540)))))},y={159:[21490,42417,44167,57920,62085,64115,64564,86528,87227,96932,98271]},w={},_.f.consumes=(e,r)=>{_.o(y,e)&&y[e].forEach((e=>{if(_.o(b,e))return r.push(b[e]);if(!w[e]){var t=r=>{b[e]=0,_.m[e]=t=>{delete _.c[e],t.exports=r()}};w[e]=!0;var n=r=>{delete b[e],_.m[e]=t=>{throw delete _.c[e],r}};try{var a=m[e]();a.then?r.push(b[e]=a.then(t).catch(n)):t(a)}catch(e){n(e)}}}))},(()=>{var e={592:0};_.f.j=(r,t)=>{var n=_.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var a=new Promise(((t,a)=>n=e[r]=[t,a]));t.push(n[2]=a);var o=_.p+_.u(r),i=new Error;_.l(o,(t=>{if(_.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var a=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,n[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,a,[o,i,u]=t,s=0;if(o.some((r=>0!==e[r]))){for(n in i)_.o(i,n)&&(_.m[n]=i[n]);u&&u(_)}for(r&&r(t);s<o.length;s++)a=o[s],_.o(e,a)&&e[a]&&e[a][0](),e[a]=0},t=self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})();var j=_(43237);bt_sensors_plugin_sk=j})();
@@ -1,5 +1,6 @@
1
1
  const BTSensor = require("../BTSensor");
2
2
  class ATC extends BTSensor{
3
+ static Domain = this.SensorDomains.environmental
3
4
 
4
5
  constructor(device, config={}){
5
6
  super(device,config)
@@ -19,6 +19,7 @@ class AranetSensor extends BTSensor{
19
19
 
20
20
  return null
21
21
  }
22
+ static Domain = BTSensor.SensorDomains.environmental
22
23
  initSchema(){
23
24
  super.initSchema()
24
25
  this.addDefaultParam("zone")
@@ -0,0 +1,363 @@
1
+ /*
2
+ [GOBIUS C]# list-attributes
3
+ Primary Service (Handle 0x0000)
4
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055
5
+ f000ffc0-0451-4000-b000-000000000000
6
+ Vendor specific
7
+ Characteristic (Handle 0x0000)
8
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char005e
9
+ f000ffc5-0451-4000-b000-000000000000
10
+ Vendor specific
11
+ Descriptor (Handle 0x0000)
12
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char005e/desc0061
13
+ 00002901-0000-1000-8000-00805f9b34fb
14
+ Characteristic User Description
15
+ Descriptor (Handle 0x0000)
16
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char005e/desc0060
17
+ 00002902-0000-1000-8000-00805f9b34fb
18
+ Client Characteristic Configuration
19
+ Characteristic (Handle 0x0000)
20
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char005a
21
+ f000ffc2-0451-4000-b000-000000000000
22
+ Vendor specific
23
+ Descriptor (Handle 0x0000)
24
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char005a/desc005d
25
+ 00002901-0000-1000-8000-00805f9b34fb
26
+ Characteristic User Description
27
+ Descriptor (Handle 0x0000)
28
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char005a/desc005c
29
+ 00002902-0000-1000-8000-00805f9b34fb
30
+ Client Characteristic Configuration
31
+ Characteristic (Handle 0x0000)
32
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char0056
33
+ f000ffc1-0451-4000-b000-000000000000
34
+ Vendor specific
35
+ Descriptor (Handle 0x0000)
36
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char0056/desc0059
37
+ 00002901-0000-1000-8000-00805f9b34fb
38
+ Characteristic User Description
39
+ Descriptor (Handle 0x0000)
40
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0055/char0056/desc0058
41
+ 00002902-0000-1000-8000-00805f9b34fb
42
+ Client Characteristic Configuration
43
+ Primary Service (Handle 0x0000)
44
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018
45
+ 0000ffe0-0000-1000-8000-00805f9b34fb
46
+ Unknown
47
+ Characteristic (Handle 0x0000)
48
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0052
49
+ 0000fff3-0000-1000-8000-00805f9b34fb
50
+ Unknown
51
+ Descriptor (Handle 0x0000)
52
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0052/desc0054
53
+ 00002901-0000-1000-8000-00805f9b34fb
54
+ Characteristic User Description
55
+ Characteristic (Handle 0x0000)
56
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char004f
57
+ 0000fff2-0000-1000-8000-00805f9b34fb
58
+ Unknown
59
+ Descriptor (Handle 0x0000)
60
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char004f/desc0051
61
+ 00002901-0000-1000-8000-00805f9b34fb
62
+ Characteristic User Description
63
+ Characteristic (Handle 0x0000)
64
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char004b
65
+ 0000fff1-0000-1000-8000-00805f9b34fb
66
+ Unknown
67
+ Descriptor (Handle 0x0000)
68
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char004b/desc004e
69
+ 00002901-0000-1000-8000-00805f9b34fb
70
+ Characteristic User Description
71
+ Descriptor (Handle 0x0000)
72
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char004b/desc004d
73
+ 00002902-0000-1000-8000-00805f9b34fb
74
+ Client Characteristic Configuration
75
+ Characteristic (Handle 0x0000)
76
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0048
77
+ 0000fff0-0000-1000-8000-00805f9b34fb
78
+ Unknown
79
+ Descriptor (Handle 0x0000)
80
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0048/desc004a
81
+ 00002901-0000-1000-8000-00805f9b34fb
82
+ Characteristic User Description
83
+ Characteristic (Handle 0x0000)
84
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0044
85
+ 0000ffef-0000-1000-8000-00805f9b34fb
86
+ Unknown
87
+ Descriptor (Handle 0x0000)
88
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0044/desc0047
89
+ 00002901-0000-1000-8000-00805f9b34fb
90
+ Characteristic User Description
91
+ Descriptor (Handle 0x0000)
92
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0044/desc0046
93
+ 00002902-0000-1000-8000-00805f9b34fb
94
+ Client Characteristic Configuration
95
+ Characteristic (Handle 0x0000)
96
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0041
97
+ 0000ffee-0000-1000-8000-00805f9b34fb
98
+ Unknown
99
+ Descriptor (Handle 0x0000)
100
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0041/desc0043
101
+ 00002901-0000-1000-8000-00805f9b34fb
102
+ Characteristic User Description
103
+ Characteristic (Handle 0x0000)
104
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char003e
105
+ 0000ffed-0000-1000-8000-00805f9b34fb
106
+ Unknown
107
+ Descriptor (Handle 0x0000)
108
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char003e/desc0040
109
+ 00002901-0000-1000-8000-00805f9b34fb
110
+ Characteristic User Description
111
+ Characteristic (Handle 0x0000)
112
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char003b
113
+ 0000ffec-0000-1000-8000-00805f9b34fb
114
+ Unknown
115
+ Descriptor (Handle 0x0000)
116
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char003b/desc003d
117
+ 00002901-0000-1000-8000-00805f9b34fb
118
+ Characteristic User Description
119
+ Characteristic (Handle 0x0000)
120
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0038
121
+ 0000ffeb-0000-1000-8000-00805f9b34fb
122
+ Unknown
123
+ Descriptor (Handle 0x0000)
124
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0038/desc003a
125
+ 00002901-0000-1000-8000-00805f9b34fb
126
+ Characteristic User Description
127
+ Characteristic (Handle 0x0000)
128
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0035
129
+ 0000ffea-0000-1000-8000-00805f9b34fb
130
+ Unknown
131
+ Descriptor (Handle 0x0000)
132
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0035/desc0037
133
+ 00002901-0000-1000-8000-00805f9b34fb
134
+ Characteristic User Description
135
+ Characteristic (Handle 0x0000)
136
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0031
137
+ 0000ffe9-0000-1000-8000-00805f9b34fb
138
+ Unknown
139
+ Descriptor (Handle 0x0000)
140
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0031/desc0034
141
+ 00002901-0000-1000-8000-00805f9b34fb
142
+ Characteristic User Description
143
+ Descriptor (Handle 0x0000)
144
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0031/desc0033
145
+ 00002902-0000-1000-8000-00805f9b34fb
146
+ Client Characteristic Configuration
147
+ Characteristic (Handle 0x0000)
148
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char002e
149
+ 0000ffe8-0000-1000-8000-00805f9b34fb
150
+ Unknown
151
+ Descriptor (Handle 0x0000)
152
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char002e/desc0030
153
+ 00002901-0000-1000-8000-00805f9b34fb
154
+ Characteristic User Description
155
+ Characteristic (Handle 0x0000)
156
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char002b
157
+ 0000ffe7-0000-1000-8000-00805f9b34fb
158
+ Unknown
159
+ Descriptor (Handle 0x0000)
160
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char002b/desc002d
161
+ 00002901-0000-1000-8000-00805f9b34fb
162
+ Characteristic User Description
163
+ Characteristic (Handle 0x0000)
164
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0028
165
+ 0000ffe6-0000-1000-8000-00805f9b34fb
166
+ Unknown
167
+ Descriptor (Handle 0x0000)
168
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0028/desc002a
169
+ 00002901-0000-1000-8000-00805f9b34fb
170
+ Characteristic User Description
171
+ Characteristic (Handle 0x0000)
172
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0025
173
+ 0000ffe5-0000-1000-8000-00805f9b34fb
174
+ Unknown
175
+ Descriptor (Handle 0x0000)
176
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0025/desc0027
177
+ 00002901-0000-1000-8000-00805f9b34fb
178
+ Characteristic User Description
179
+ Characteristic (Handle 0x0000)
180
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0022
181
+ 0000ffe4-0000-1000-8000-00805f9b34fb
182
+ Unknown
183
+ Descriptor (Handle 0x0000)
184
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0022/desc0024
185
+ 00002901-0000-1000-8000-00805f9b34fb
186
+ Characteristic User Description
187
+ Characteristic (Handle 0x0000)
188
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char001f
189
+ 0000ffe3-0000-1000-8000-00805f9b34fb
190
+ Unknown
191
+ Descriptor (Handle 0x0000)
192
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char001f/desc0021
193
+ 00002901-0000-1000-8000-00805f9b34fb
194
+ Characteristic User Description
195
+ Characteristic (Handle 0x0000)
196
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char001c
197
+ 0000ffe2-0000-1000-8000-00805f9b34fb
198
+ Unknown
199
+ Descriptor (Handle 0x0000)
200
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char001c/desc001e
201
+ 00002901-0000-1000-8000-00805f9b34fb
202
+ Characteristic User Description
203
+ Characteristic (Handle 0x0000)
204
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0019
205
+ 0000ffe1-0000-1000-8000-00805f9b34fb
206
+ Unknown
207
+ Descriptor (Handle 0x0000)
208
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service0018/char0019/desc001b
209
+ 00002901-0000-1000-8000-00805f9b34fb
210
+ Characteristic User Description
211
+ Primary Service (Handle 0x0000)
212
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000d
213
+ 0000180a-0000-1000-8000-00805f9b34fb
214
+ Device Information
215
+ Characteristic (Handle 0x0000)
216
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000d/char0016
217
+ 00002a29-0000-1000-8000-00805f9b34fb
218
+ Manufacturer Name String
219
+ Characteristic (Handle 0x0000)
220
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000d/char0014
221
+ 00002a28-0000-1000-8000-00805f9b34fb
222
+ Software Revision String
223
+ Characteristic (Handle 0x0000)
224
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000d/char0012
225
+ 00002a27-0000-1000-8000-00805f9b34fb
226
+ Hardware Revision String
227
+ Characteristic (Handle 0x0000)
228
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000d/char0010
229
+ 00002a25-0000-1000-8000-00805f9b34fb
230
+ Serial Number String
231
+ Characteristic (Handle 0x0000)
232
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000d/char000e
233
+ 00002a24-0000-1000-8000-00805f9b34fb
234
+ Model Number String
235
+ Primary Service (Handle 0x0000)
236
+ /org/bluez/hci0/dev_34_68_B5_87_2E_04/service000c
237
+ 00001801-0000-1000-8000-00805f9b34fb
238
+ Generic Attribute Profile
239
+ */
240
+ const BTSensor = require("../BTSensor");
241
+
242
+ const GobiusState=new Map(
243
+ [[0x0, "Start-Up"],
244
+ [0x1, "Self-Test"],
245
+ [0x02, "Uninit"],
246
+ [0x03, "Uncalibrated"],
247
+ [0x04, "Calibration"],
248
+ [0x05, "Active"],
249
+ [0x06, "Error"],
250
+ [0x07,"Production-Test"],
251
+ [0x08, "HW-Test"]]
252
+ )
253
+ class GobiusCTankMeter extends BTSensor{
254
+ static Domain = BTSensor.SensorDomains.tanks
255
+
256
+ static async identify(device){
257
+
258
+ const name = await this.getDeviceProp(device,"Name")
259
+ if (name && name.toLowerCase().startsWith('gobius c'))
260
+ return this
261
+ else
262
+ return null
263
+ }
264
+ hasGATT(){
265
+ return true
266
+ }
267
+ usingGATT(){
268
+ return true
269
+ }
270
+ emitGATT(){
271
+ this.characteristic.readValue()
272
+ .then((buffer)=>
273
+ this.emitValuesFrom( buffer)
274
+ )
275
+
276
+ }
277
+ initSchema(){
278
+ super.initSchema()
279
+ this.getGATTParams()["useGATT"].default=true
280
+ this.addParameter("type",{
281
+ tag: "type",
282
+ description:"Type of tank",
283
+ enum: [
284
+ "petrol",
285
+ "freshWater",
286
+ "greyWater",
287
+ "blackWater",
288
+ "holding",
289
+ "lpg",
290
+ "diesel",
291
+ "liveWell",
292
+ "baitWell",
293
+ "ballast",
294
+ "rum"
295
+ ]
296
+ })
297
+
298
+ this.addDefaultParam("id")
299
+ .default="1"
300
+
301
+ this.addMetadatum("mst","","Device state",
302
+ (buffer)=>{return GobiusState.get(buffer.readInt8(0))}
303
+ )
304
+ .default='tanks.{type}.{id}.deviceState'
305
+
306
+ this.addMetadatum("msb","","Device status",
307
+ (buffer)=>{return buffer.readInt8(1)}
308
+ )
309
+ .default='tanks.{type}.{id}.deviceStatus'
310
+
311
+
312
+ this.addMetadatum("mvd","","Measurement validity 0=invalid 1=valid",
313
+ (buffer)=>{return buffer.readInt8(2)}
314
+ )
315
+ .default='tanks.{type}.{id}.measurementValidity'
316
+
317
+ this.addMetadatum("mfl","ratio","Current level",
318
+ (buffer)=>{return buffer.readInt16BE(3)/1000}
319
+ )
320
+ .default='tanks.{type}.{id}.currentLevel'
321
+
322
+ this.addMetadatum("minc","rad","Sensor inclination",
323
+ (buffer)=>{return buffer.readInt8(5) * Math.PI/180}
324
+ )
325
+ .default='tanks.{type}.{id}.inclination'
326
+
327
+ this.addMetadatum("mdist","mm","Distance from sensor enclosure interface [mm]",
328
+ (buffer)=>{return buffer.readInt16BE(6) }
329
+ )
330
+ .default='tanks.{type}.{id}.distanceFromEnclosure'
331
+ this.getJSONSchema().properties.params.required=["type" ]
332
+ }
333
+
334
+ initGATTConnection(){
335
+ return new Promise((resolve,reject )=>{ this.deviceConnect().then(async ()=>{
336
+ if (!this.gattServer) {
337
+ this.gattServer = await this.device.gatt()
338
+ this.service = await this.gattServer.getPrimaryService("0000ffe0-0000-1000-8000-00805f9b34fb")
339
+ this.characteristic = await this.service.getCharacteristic("0000ffe9-0000-1000-8000-00805f9b34fb")
340
+ }
341
+ resolve(this)
342
+ }).catch((e)=>{ reject(e.message) }) })
343
+ }
344
+ initGATTNotifications() {
345
+ Promise.resolve(this.characteristic.startNotifications().then(()=>{
346
+ this.characteristic.on('valuechanged', buffer => {
347
+ this.emitValuesFrom(buffer)
348
+ })
349
+ }))
350
+ }
351
+
352
+ async stopListening(){
353
+ super.stopListening()
354
+ if (this.characteristic && await this.characteristic.isNotifying()) {
355
+ await this.characteristic.stopNotifications()
356
+ this.characteristic=null
357
+ }
358
+ if (await this.device.isConnected()){
359
+ await this.device.disconnect()
360
+ }
361
+ }
362
+ }
363
+ module.exports=GobiusCTankMeter
@@ -1,7 +1,7 @@
1
1
  const BTSensor = require("../BTSensor");
2
2
 
3
3
  class GoveeH50xx extends BTSensor {
4
-
4
+ static Domain = this.SensorDomains.environmental
5
5
  static async identify(device){
6
6
  const regex = /^Govee_H50[0-9]{2}_[a-f,A-F,0-9]{4}$/
7
7
  //this.getManufacturer()
@@ -19,7 +19,7 @@ function decodeTempHumid(tempHumidBytes) {
19
19
  }
20
20
  }
21
21
  class GoveeH510x extends BTSensor{
22
-
22
+ static Domain = this.SensorDomains.environmental
23
23
  static async identify(device){
24
24
  const regex = /^GVH510[0-9]_[a-f,A-F,0-9]{4}$/
25
25
  const name = await this.getDeviceProp(device,"Name")
@@ -4,12 +4,19 @@ class IBeacon extends BTSensor {
4
4
  static isSystem = true;
5
5
 
6
6
  static async identify(device) {
7
- const md = await this.getDeviceProp(device,'ManufacturerData');
7
+ /*const md = await this.getDeviceProp(device,'ManufacturerData');
8
8
  if (md && Object.hasOwn(md, 0x004c)) {
9
9
  if (md[0x004c].value.slice(0,2).join() == [0x02, 0x15].join()) {
10
10
  return this
11
11
  }
12
- }
12
+ }*/
13
+ // IBeacon protocol (see above) is incorporated into multiple BT devices
14
+ // The identify:: method above will misidentify any sensor (Govee for example)
15
+ // that the scanner finds.
16
+ // Sensors can still be classified as IBeacons, they'll appear as Unknown devices in
17
+ // the config. Users can then select IBeacon from the dropdown to
18
+ // instantiate the sensor as an IBeacon object.
19
+
13
20
  return null
14
21
  }
15
22
 
@@ -1,7 +1,7 @@
1
1
  const BTSensor = require("../BTSensor");
2
2
 
3
3
  class Inkbird extends BTSensor{
4
-
4
+ static Domain = this.SensorDomains.environmental
5
5
  static async identify(device){
6
6
 
7
7
  const uuids = await this.getDeviceProp(device,'UUIDs')
@@ -5,6 +5,7 @@ function sleep(ms) {
5
5
  });
6
6
  }
7
7
  class JBDBMS extends BTSensor {
8
+ static Domain = BTSensor.electrical
8
9
 
9
10
  static TX_RX_SERVICE = "0000ff00-0000-1000-8000-00805f9b34fb"
10
11
  static NOTIFY_CHAR_UUID = "0000ff01-0000-1000-8000-00805f9b34fb"
@@ -35,6 +35,8 @@
35
35
 
36
36
  const BTSensor = require("../BTSensor");
37
37
  class KilovaultHLXPlus extends BTSensor{
38
+ static Domain = BTSensor.SensorDomains.electrical
39
+
38
40
  constructor(device, config, gattConfig) {
39
41
  super(device, config, gattConfig)
40
42
  this.accumulated_buffer = Buffer.alloc(0)
@@ -2,6 +2,7 @@ const BTSensor = require("../BTSensor");
2
2
 
3
3
  class LancolVoltageMeter extends BTSensor{
4
4
 
5
+ static Domain = BTSensor.SensorDomains.electrical
5
6
  static async identify(device){
6
7
 
7
8
  const name = await this.getDeviceProp(device,"Name")
@@ -201,13 +201,15 @@ class MopekaIOTBluetoothDeviceData(BluetoothData):
201
201
  */
202
202
 
203
203
  class MopekaDevice{
204
+
204
205
  constructor (ID, name, lengthOfAd = 10){
205
206
  this.ID=ID
206
207
  this.name=name
207
208
  this.lengthOfAd=lengthOfAd
208
209
  }
209
210
  }
210
- MopekaDevices = new Map()
211
+
212
+ const MopekaDevices = new Map()
211
213
  MopekaDevices.set()
212
214
  .set (0x0, new MopekaDevice("XXXX","Unknown Mopeka device"))
213
215
  .set (0x3, new MopekaDevice("M1017", "Pro Check"))
@@ -238,6 +240,8 @@ MopekaDevices.set()
238
240
 
239
241
  const BTSensor = require("../BTSensor");
240
242
  class MopekaTankSensor extends BTSensor{
243
+ static Domain = BTSensor.SensorDomains.tanks
244
+
241
245
  static serviceID = "0000fee5-0000-1000-8000-00805f9b34fb"
242
246
  static serviceID16 = 0xFEE5
243
247
 
@@ -257,7 +261,6 @@ class MopekaTankSensor extends BTSensor{
257
261
  await super.init()
258
262
  const md = this.valueIfVariant(this.getManufacturerData(this.constructor.manufacturerID))
259
263
  this.modelID = md[0]
260
- this.initMetadata()
261
264
  }
262
265
 
263
266
  getMedium(){
@@ -272,7 +275,8 @@ class MopekaTankSensor extends BTSensor{
272
275
  return rawLevel * (coefs[0] + (coefs[1] * (this.temp-233.15)) + (coefs[2] * ((this.temp-233.15)^2)))
273
276
  }
274
277
 
275
- initMetadata(){
278
+ initSchema(){
279
+ super.initSchema()
276
280
  this.addParameter("medium",
277
281
  {
278
282
  title:"type of liquid in tank",
@@ -5,7 +5,7 @@ const BTSensor = require("../../BTSensor.js");
5
5
  const VC = require('./RenogyConstants.js');
6
6
  const crc16Modbus = require('./CRC.js')
7
7
  class RenogySensor extends BTSensor{
8
-
8
+ static Domain=BTSensor.SensorDomains.electrical
9
9
  static ALIAS_PREFIX = 'BT-TH'
10
10
  static TX_SERVICE = "0000ffd0-0000-1000-8000-00805f9b34fb"
11
11
  static RX_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb"