bt-sensors-plugin-sk 1.2.5 → 1.2.6-beta
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.
- package/BTSensor.js +77 -38
- package/DistanceManager.js +249 -0
- package/Mixin.js +19 -0
- package/OutOfRangeDevice.js +46 -0
- package/README.md +20 -6
- package/classLoader.js +7 -2
- package/connectUUID.exp +26 -0
- package/index.js +54 -11
- package/package.json +8 -6
- package/public/159.js +1 -1
- package/public/540.js +1 -1
- package/public/681.js +3 -9
- package/public/681.js.LICENSE.txt +2 -0
- package/public/764.js +1 -0
- package/public/images/ATC.jpeg +0 -0
- package/public/images/Aranet4.webp +0 -0
- package/public/images/BP108B.webp +0 -0
- package/public/images/GoveeH5074.jpg +0 -0
- package/public/images/GoveeH5075.webp +0 -0
- package/public/images/GoveeH510x.jpg +0 -0
- package/public/images/InkbirdTH3.webp +0 -0
- package/public/images/JBDBMS.webp +0 -0
- package/public/images/Junctek.webp +0 -0
- package/public/images/KilovaultHLXPlus.jpg +0 -0
- package/public/images/LancolVoltageMeter.webp +0 -0
- package/public/images/LiTimeLiFePo4Battery.avif +0 -0
- package/public/images/MercurySmartcraft.jpg +0 -0
- package/public/images/MopekaTankSensor.jpg +0 -0
- package/public/images/RemoranWave3.jpeg +0 -0
- package/public/images/RenogyInverter.jpg +0 -0
- package/public/images/RenogyRoverClient.jpg +0 -0
- package/public/images/RenogySmartLiFePo4Battery.webp +0 -0
- package/public/images/RuuviTag.jpg +0 -0
- package/public/images/ShellyBLUHT.webp +0 -0
- package/public/images/ShellyBLUMotion.webp +0 -0
- package/public/images/ShellyBluDoorWindow.webp +0 -0
- package/public/images/Skanbatt.jpg +0 -0
- package/public/images/SmartBatteryProtect.webp +0 -0
- package/public/images/SmartBatterySense.webp +0 -0
- package/public/images/SwitchBotMeterPlus.webp +0 -0
- package/public/images/SwitchBotTH.webp +0 -0
- package/public/images/TopbandBattery.webp +0 -0
- package/public/images/Ultrasonic.jpg +0 -0
- package/public/images/VictronBlueSmartACCharger.jpg +0 -0
- package/public/images/VictronBlueSolarMPPT.jpeg +0 -0
- package/public/images/VictronCerboGX.webp +0 -0
- package/public/images/VictronInverterRS.webp +0 -0
- package/public/images/VictronLynxSmartBMS.webp +0 -0
- package/public/images/VictronMultiPlus-II.webp +0 -0
- package/public/images/VictronOrionTrIsolated.webp +0 -0
- package/public/images/VictronOrionTrNonIsolated.webp +0 -0
- package/public/images/VictronPhoenixInverter.webp +0 -0
- package/public/images/VictronPhoenixSmart1600.webp +0 -0
- package/public/images/VictronSmartBatteryProtect.jpg +0 -0
- package/public/images/VictronSmartIP43.webp +0 -0
- package/public/images/VictronSmartLithiumBattery.jpg +0 -0
- package/public/images/VictronSmartSolarMPPT.webp +0 -0
- package/public/images/VictronVEBus.webp +0 -0
- package/public/images/iBeacon.jpg +0 -0
- package/public/main.js +1 -1
- package/public/remoteEntry.js +1 -1
- package/readUUID.exp +23 -0
- package/sensor_classes/ATC.js +3 -2
- package/sensor_classes/Aranet2.js +3 -1
- package/sensor_classes/Aranet4.js +1 -2
- package/sensor_classes/BankManager.js +1 -1
- package/sensor_classes/Beacon/AbstractBeaconMixin.js +85 -0
- package/sensor_classes/Beacon/Eddystone.js +77 -0
- package/sensor_classes/Beacon/iBeacon.js +58 -0
- package/sensor_classes/EctiveBMS.js +270 -0
- package/sensor_classes/FeasyComBeacon.js +68 -0
- package/sensor_classes/GobiusCTankMeter.js +4 -3
- package/sensor_classes/GoveeH5074.js +2 -0
- package/sensor_classes/GoveeH5075.js +2 -0
- package/sensor_classes/GoveeH510x.js +1 -0
- package/sensor_classes/Inkbird.js +1 -0
- package/sensor_classes/JBDBMS.js +1 -0
- package/sensor_classes/Junctek.js +14 -6
- package/sensor_classes/KilovaultHLXPlus.js +1 -0
- package/sensor_classes/LancolVoltageMeter.js +2 -0
- package/sensor_classes/MercurySmartcraft.js +1 -0
- package/sensor_classes/MopekaTankSensor.js +7 -204
- package/sensor_classes/RemoranWave3.js +2 -0
- package/sensor_classes/Renogy/RenogySensor.js +1 -0
- package/sensor_classes/RenogyBattery.js +3 -4
- package/sensor_classes/RenogyInverter.js +3 -6
- package/sensor_classes/RenogyRoverClient.js +3 -0
- package/sensor_classes/RuuviTag.js +11 -8
- package/sensor_classes/ShellySBDW002C.js +3 -1
- package/sensor_classes/ShellySBHT003C.js +7 -0
- package/sensor_classes/ShellySBMO003Z.js +3 -2
- package/sensor_classes/ShenzhenLiOnBMS.js +4 -0
- package/sensor_classes/SwitchBotMeterPlus.js +1 -1
- package/sensor_classes/SwitchBotTH.js +2 -1
- package/sensor_classes/UNKNOWN.js +2 -1
- package/sensor_classes/UltrasonicWindMeter.js +3 -0
- package/sensor_classes/Victron/VictronConstants.js +2 -0
- package/sensor_classes/Victron/VictronIdentifier.js +24 -0
- package/sensor_classes/Victron/VictronSensor.js +59 -49
- package/sensor_classes/VictronACCharger.js +1 -6
- package/sensor_classes/VictronBatteryMonitor.js +37 -26
- package/sensor_classes/VictronDCDCConverter.js +1 -4
- package/sensor_classes/VictronDCEnergyMeter.js +1 -4
- package/sensor_classes/VictronGXDevice.js +1 -4
- package/sensor_classes/VictronInverter.js +2 -3
- package/sensor_classes/VictronInverterRS.js +2 -4
- package/sensor_classes/VictronLynxSmartBMS.js +1 -4
- package/sensor_classes/VictronOrionXS.js +1 -3
- package/sensor_classes/VictronSmartBatteryProtect.js +1 -4
- package/sensor_classes/VictronSmartLithium.js +1 -4
- package/sensor_classes/VictronSolarCharger.js +1 -3
- package/sensor_classes/VictronVEBus.js +1 -4
- package/sensor_classes/XiaomiMiBeacon.js +5 -2
- package/sensor_classes/iBeaconSensor.js +40 -0
- package/src/components/PluginConfigurationPanel.js +134 -173
- package/Screenshot 2025-06-12 at 9.33.57/342/200/257AM.png +0 -0
- package/bt-sensors-plugin-sk copy.json +0 -170
- package/bt-sensors-plugin-sk.json.bak +0 -121
- package/public/847.js +0 -1
- package/sensor_classes/IBeacon.js +0 -45
- package/vsl_patch_17_06_25.patch +0 -13
- /package/public/images/{Aranet2_HOME_F_900x900_90OVA5J.original.webp → Aranet2.webp} +0 -0
- /package/public/images/{Bank Manager All-in-onewc.webp → BankManager.webp} +0 -0
- /package/public/images/{Gobius_C.png → GobiusCTankMeter.png} +0 -0
- /package/public/images/{Victron-SmartShunt.jpg → VictronSmartShunt.jpg} +0 -0
- /package/public/images/{smartsolarMPPT7515.png → VictronSmartSolarMPPT7515.png} +0 -0
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"configuration": {
|
|
3
|
-
"discoveryTimeout": 30,
|
|
4
|
-
"discoveryInterval": 0,
|
|
5
|
-
"peripherals": [
|
|
6
|
-
{
|
|
7
|
-
"active": true,
|
|
8
|
-
"mac_address": "D4:50:46:39:38:C5",
|
|
9
|
-
"discoveryTimeout": 30,
|
|
10
|
-
"params": {
|
|
11
|
-
"name": "Victron Smart Shunt",
|
|
12
|
-
"encryptionKey": "8cce8529307cf9dd0c85611c4fef42d9"
|
|
13
|
-
},
|
|
14
|
-
"paths": {
|
|
15
|
-
"RSSI": "sensors.smartshunt.rssi",
|
|
16
|
-
"current": "electrical.battery.house.current",
|
|
17
|
-
"power": "electrical.battery.house.power",
|
|
18
|
-
"voltage": "electrical.battery.house.voltage",
|
|
19
|
-
"alarm": "electrical.battery.house.alarm",
|
|
20
|
-
"consumed": "electrical.battery.house.consumedAh",
|
|
21
|
-
"soc": "electrical.battery.house.soc",
|
|
22
|
-
"ttg": "electrical.battery.house.ttg",
|
|
23
|
-
"starterVoltage": "electrical.battery.starter.voltage",
|
|
24
|
-
"__state__": "sensors.smartshunt.state"
|
|
25
|
-
},
|
|
26
|
-
"gattParams": {
|
|
27
|
-
"useGATT": false
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"active": true,
|
|
32
|
-
"mac_address": "F9:B0:6E:63:BC:7E",
|
|
33
|
-
"discoveryTimeout": 30,
|
|
34
|
-
"params": {
|
|
35
|
-
"name": "Ruuvi sensor for cabin"
|
|
36
|
-
},
|
|
37
|
-
"paths": {
|
|
38
|
-
"RSSI": "sensors.ruuviBC7E.rssi",
|
|
39
|
-
"temp": "environment.cabin.temperature",
|
|
40
|
-
"humidity": "environment.cabin.humidity",
|
|
41
|
-
"pressure": "environment.cabin.pressure",
|
|
42
|
-
"battV": "sensors.ruuviBC7E.voltage",
|
|
43
|
-
"mc": "sensors.ruuviBC7E.movementCounter",
|
|
44
|
-
"battery": "sensors.temperature.reefer.batterystrength",
|
|
45
|
-
"__state__": "sensors.ruuviBC7E.state"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"active": true,
|
|
50
|
-
"mac_address": "49:22:05:17:2B:AE",
|
|
51
|
-
"discoveryTimeout": 120,
|
|
52
|
-
"params": {
|
|
53
|
-
"name": "Inkbird temperature sensor"
|
|
54
|
-
},
|
|
55
|
-
"paths": {
|
|
56
|
-
"RSSI": "sensors.inkbird-th2.rssi",
|
|
57
|
-
"temp": "environment.refrigerator.temperature",
|
|
58
|
-
"battery": "sensors.inkbird-th2.battery",
|
|
59
|
-
"__state__": "sensors.inkbird-th2.state"
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"active": true,
|
|
64
|
-
"mac_address": "A4:C1:38:9F:F7:7E",
|
|
65
|
-
"discoveryTimeout": 300,
|
|
66
|
-
"params": {
|
|
67
|
-
"name": "ATC Temp/Humidity sensor for Deck",
|
|
68
|
-
"parser": "ATC-LE"
|
|
69
|
-
},
|
|
70
|
-
"paths": {
|
|
71
|
-
"RSSI": "sensors.ATC_9FF77E.rssi",
|
|
72
|
-
"temp": "environment.deck.temperature",
|
|
73
|
-
"humidity": "environment.deck.humidity",
|
|
74
|
-
"voltage": "sensors.ATC_9FF77E.voltage",
|
|
75
|
-
"batteryStrength": "sensors.ATC_9FF77E.batteryStrength",
|
|
76
|
-
"__state__": "sensors.ATC_9FF77E.state"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"active": true,
|
|
81
|
-
"mac_address": "D4:40:59:BE:2A:8C",
|
|
82
|
-
"discoveryTimeout": 30,
|
|
83
|
-
"params": {
|
|
84
|
-
"medium": "PROPANE",
|
|
85
|
-
"tankHeight": "304.8",
|
|
86
|
-
"name": "Galley propane level"
|
|
87
|
-
},
|
|
88
|
-
"paths": {
|
|
89
|
-
"RSSI": "sensors.mopeka-59be8c.rssi",
|
|
90
|
-
"battVolt": "sensors.mopeka-59be8c.battery.voltage",
|
|
91
|
-
"battStrength": "sensors.mopeka-59be8c.battery.strength",
|
|
92
|
-
"temp": "sensors.mopeka-59be8c.temperature",
|
|
93
|
-
"tankLevel": "sensors.mopeka-59be8c.tankLevel",
|
|
94
|
-
"readingQuality": "sensors.mopeka-59be8c.quality",
|
|
95
|
-
"__state__": "sensors.mopeka-59be8c.state"
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"active": true,
|
|
100
|
-
"mac_address": "A4:C1:38:3E:7E:94",
|
|
101
|
-
"discoveryTimeout": 30,
|
|
102
|
-
"params": {
|
|
103
|
-
"encryptionKey": "3985f4ebc032f276cc316f1f6ecea085",
|
|
104
|
-
"__state__": "sensors.xiaomi.state"
|
|
105
|
-
},
|
|
106
|
-
"paths": {
|
|
107
|
-
"RSSI": "sensors.xiaomi.rssi",
|
|
108
|
-
"temp": "sensors.xiaomi.temp",
|
|
109
|
-
"humidity": "sensors.xiaomi.humidity",
|
|
110
|
-
"voltage": "sensors.xiaomi.voltage",
|
|
111
|
-
"__state__": "sensors.xiaomi.state"
|
|
112
|
-
},
|
|
113
|
-
"gattParams": {
|
|
114
|
-
"useGATT": false
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
},
|
|
119
|
-
"enabled": true,
|
|
120
|
-
"enableDebug": true
|
|
121
|
-
}
|
package/public/847.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunkbt_sensors_plugin_sk=self.webpackChunkbt_sensors_plugin_sk||[]).push([[847],{9337:()=>{},62995:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>k});var a=n(73490),o=n(74810),s=n(86528),r=n.n(s),l=n(40334),c=n(27606),i=n(86452),u=n(82096),g=n(3768),d=n(71431),m=n(39676),f=n(47041),h=n(86038),p=n(95027),E=n(43540),w=n(38250),y=n(31008),v=n(20455),S=n(23399);const b=e=>console.log.bind(console,e);var A,D={};function k(e){const t=(0,u.A)((e=>({root:{"& > *":{margin:e.spacing(1)}}}))),[n,k]=(0,s.useState)({}),[$,C]=(0,s.useState)({}),[_,x]=(0,s.useState)({}),[T,N]=(0,s.useState)({"ui:options":{label:!1},title:{"ui:widget":"hidden"}}),[j,M]=(0,s.useState)([]),[O,U]=(0,s.useState)(),[L,J]=(0,s.useState)(new Map),[B,I]=(0,s.useState)({progress:0,maxTimeout:100,deviceCount:0,totalDevices:0}),[P,R]=(0,s.useState)("unknown"),[G,H]=(0,s.useState)(),K=t();function F(e,t){console.log(`sending ${e}`),console.log(t);const n=new Headers;return n.append("Content-Type","application/json"),fetch(`/plugins/bt-sensors-plugin-sk/${e}`,{credentials:"include",method:"POST",body:JSON.stringify(t),headers:n})}async function W(e){var t;console.log(`fetching ${e}`);try{t=fetch(`/plugins/bt-sensors-plugin-sk/${e}`,{credentials:"include"})}catch(e){t={status:500,statusText:e.toString()}}return t}function Y(e){return Object.keys(e.config).length>0}function q(e){const t=Y(e);return r().createElement(v.A,{action:!0,onClick:()=>{e.config.mac_address=e.info.mac,x(e.schema),U(e.config)}},r().createElement("div",{class:"d-flex justify-content-between align-items-center",style:t?{fontWeight:"normal"}:{fontStyle:"italic"}},`${e._changesMade?"*":""}${e.info.name} MAC: ${e.info.mac} RSSI: ${n=e.info.RSSI,null==n?NaN:n}`,r().createElement("div",{class:"d-flex justify-content-between "},function(e){return null==e.info.lastContactDelta||e.info.lastContactDelta>e.config.discoveryTimeout?r().createElement(g.A,null):e.info.signalStrength>80?r().createElement(d.A,null):e.info.signalStrength>60?r().createElement(m.A,null):e.info.signalStrength>40?r().createElement(f.A,null):e.info.signalStrength>20?r().createElement(h.A,null):r().createElement(p.A,null)}(e))));var n}function z(){return Array.from(L.entries()).filter((e=>Y(e[1])))}function Q(e){return"_configured"===e?z():Array.from(L.entries()).filter((t=>t[1].info.domain===e))}function V(e){window.open(e,"_blank","noreferrer")}return(0,s.useEffect)((()=>{console.log("useEffect([])");let e=null;return W("getPluginState").then((async t=>{if(404==t.status)throw R("unknown"),new Error("unable to get plugin state");const n=await t.json();console.log("Setting up eventsource"),e=new EventSource("/plugins/bt-sensors-plugin-sk/sse",{withCredentials:!0}),R(n.state),await async function(){console.log("getDomains");const e=await W("getDomains");if(200!=e.status)throw new Error(`Unable get domain data: ${e.statusText} (${e.status}) `);const t=await e.json();return console.log(t),t}(),e.addEventListener("newsensor",(e=>{console.log("newsensor");let t=JSON.parse(e.data);A.has(t.info.mac)||(console.log(`New sensor: ${t.info.mac}`),J(new Map(A.set(t.info.mac,t))))})),e.addEventListener("sensorchanged",(e=>{let t=JSON.parse(e.data);if(console.log("sensorchanged"),console.log(t),A.has(t.mac)){let e=A.get(t.mac);Object.assign(e.info,t),J(new Map(A))}})),e.addEventListener("progress",(e=>{console.log("progress");const t=JSON.parse(e.data);I(t),console.log(t)})),e.addEventListener("pluginstate",(e=>{console.log("pluginstate");const t=JSON.parse(e.data);R(t.state)}))})).catch((e=>{H(e)})),()=>{console.log("Closing connection to SSE"),e.close()}}),[]),(0,s.useEffect)((()=>{console.log("useEffect([pluginState])"),"started"==P?(console.log("refreshing sensor map"),async function(){console.log("getSensors");const e=await W("getSensors");if(200!=e.status)throw new Error(`Unable get sensor data: ${e.statusText} (${e.status}) `);const t=await e.json();return console.log(t),t}().then((e=>{J(new Map(e.map((e=>[e.info.mac,e]))))})).catch((e=>{H(e)})),async function(){console.log("getBaseData");const e=await W("getBaseData");if(200!=e.status)throw new Error(`Unable to get base data: ${e.statusText} (${e.status}) `);const t=await e.json();return console.log(t),t.schema.htmlDescription=r().createElement("div",null,(0,l.Ay)(t.schema.htmlDescription),r().createElement("p",null)),t}().then((e=>{k(e.schema),C(e.data)})).catch((e=>{H(e)})),async function(){console.log("getProgress");const e=await W("getProgress");if(200!=e.status)throw new Error(`Unable to get progress: ${e.statusText} (${e.status}) `);const t=await e.json();return console.log(t),t}().then((e=>{I(e)})).catch((e=>{H(e)}))):(J(new Map),k({}),C({}))}),[P]),(0,s.useEffect)((()=>{console.log("useEffect([sensorMap])"),A=L;const e=[...new Set(L.entries().map((e=>e[1].info.domain)))].sort(),t={_configured:0==z().length?"Select a device from its domain tab (Electrical etc.) and configure it.":z().map((e=>q(L.get(e[0]))))};e.forEach((e=>{t[e]=Q(e).map((e=>q(L.get(e[0]))))})),D=t}),[L]),"stopped"==P||"unknown"==P?r().createElement("h3",null,"Enable plugin to see configuration"):r().createElement("div",null,r().createElement("div",{className:K.root},r().createElement(i.A,{variant:"contained",onClick:()=>{V("https://github.com/naugehyde/bt-sensors-plugin-sk/tree/1.2.0-beta#configuration")}},"Documentation"),r().createElement(i.A,{variant:"contained",onClick:()=>{V("https://github.com/naugehyde/bt-sensors-plugin-sk/issues/new/choose")}},"Report Issue"),r().createElement(i.A,{variant:"contained",onClick:()=>{V("https://discord.com/channels/1170433917761892493/1295425963466952725")}},"Discord Thread"),r().createElement("p",null),r().createElement("p",null)),r().createElement("hr",{style:{width:"100%",height:"1px",color:"gray","background-color":"gray","text-align":"left","margin-left":0}}),G?r().createElement("h2",{style:"color: red;"},G):"",r().createElement(a.Ay,{schema:n,validator:o.Ay,uiSchema:{"ui:field":"LayoutGridField","ui:layoutGrid":{"ui:row":[{"ui:row":{className:"row",children:[{"ui:columns":{className:"col-xs-4",children:["adapter","transport","duplicateData","discoveryTimeout","discoveryInterval"]}}]}}]}},onChange:e=>C(e.formData),onSubmit:({formData:e},t)=>{var n;n=e,console.log("updateBaseData"),F("updateBaseData",n).then((e=>{200!=e.status&&H(new Error(`Unable to update base data: ${e.statusText} (${e.status})`))})),x({})},onError:b("errors"),formData:$}),r().createElement("hr",{style:{width:"100%",height:"1px",color:"gray","background-color":"gray","text-align":"left","margin-left":0}}),r().createElement("p",null),r().createElement("p",null),B.deviceCount<B.totalDevices?r().createElement(S.A,{max:B.maxTimeout,now:B.progress}):"",r().createElement("p",null),r().createElement(w.A,{defaultActiveKey:"_configured",id:"domain-tabs",className:"mb-3",onClick:()=>{x({})}},Object.keys(D).map((e=>function(e){var t=e.slice("_"===e.charAt(0)?1:0);let n=function(e){return D[e]}(e);return r().createElement(y.A,{eventKey:e,title:`${t.charAt(0).toUpperCase()}${t.slice(1)}${0==Q(e).length?"":" ("+Q(e).length+")"}`},r().createElement(E.A,{style:{maxHeight:"300px",overflowY:"auto"}},n))}(e)))),r().createElement("div",{style:{paddingLeft:10,paddingTop:10,display:0==Object.keys(_).length?"none":""}},r().createElement(c.A,{container:!0,direction:"column",style:{spacing:5}},r().createElement(c.A,{item:!0},r().createElement("h2",null,_?.title),r().createElement("p",null)),r().createElement(c.A,{item:!0},(0,l.Ay)(_?.htmlDescription))),r().createElement(a.Ay,{schema:_,validator:o.Ay,uiSchema:T,onChange:e=>{L.get(e.formData.mac_address)._changesMade=!0,U(e.formData)},onSubmit:({formData:e},t)=>{var n;n=e,console.log("updateSensorData"),F("updateSensorData",n).then((e=>{if(200!=e.status)throw new Error(e.statusText);L.get(n.mac_address)._changesMade=!1,L.get(n.mac_address).config=n})),x({}),alert("Changes saved")},onError:b("errors"),formData:O},r().createElement("div",{className:K.root},r().createElement(i.A,{type:"submit",color:"primary",variant:"contained"},"Save"),r().createElement(i.A,{variant:"contained",onClick:()=>{var e;e=O.mac_address,console.log("undoChanges"),L.get(e)._changesMade=!1,U(L.get(e).config)}},"Undo"),r().createElement(i.A,{variant:"contained",color:"secondary",onClick:e=>{return t=O.mac_address,void(window.confirm(`Delete configuration for ${t}?`)&&function(e){console.log("removeSensorData");try{F("removeSensorData",{mac_address:e}).then((e=>{if(200!=e.status)throw new Error(e.statusText)})),A.delete(e),J(new Map(A)),x({})}catch{}}(t));var t}},"Delete")))))}}}]);
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const BTSensor = require("../BTSensor");
|
|
2
|
-
|
|
3
|
-
class IBeacon extends BTSensor {
|
|
4
|
-
static isSystem = true;
|
|
5
|
-
|
|
6
|
-
static async identify(device) {
|
|
7
|
-
/*const md = await this.getDeviceProp(device,'ManufacturerData');
|
|
8
|
-
if (md && Object.hasOwn(md, 0x004c)) {
|
|
9
|
-
if (md[0x004c].value.slice(0,2).join() == [0x02, 0x15].join()) {
|
|
10
|
-
return this
|
|
11
|
-
}
|
|
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
|
-
|
|
20
|
-
return null
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
initSchema(){
|
|
24
|
-
super.initSchema()
|
|
25
|
-
this.addDefaultPath("battery","sensors.batteryStrength")
|
|
26
|
-
.read=(buffer)=>{return buffer[6]}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
propertiesChanged(props){
|
|
30
|
-
super.propertiesChanged(props);
|
|
31
|
-
const buff = this.getServiceData("0000356e-0000-1000-8000-00805f9b34fb");
|
|
32
|
-
if (buff)
|
|
33
|
-
this.emitData("battery", buff);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
getManufacturer(){
|
|
37
|
-
return "Apple Inc. or clone";
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
getDescription(){
|
|
41
|
-
return `${this.getName()} iBeacon from Apple Inc. or a clone`
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
module.exports = IBeacon;
|
package/vsl_patch_17_06_25.patch
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
diff --git a/sensor_classes/VictronSmartLithium.js b/sensor_classes/VictronSmartLithium.js
|
|
2
|
-
index 0ed70ad..2988374 100644
|
|
3
|
-
--- a/sensor_classes/VictronSmartLithium.js
|
|
4
|
-
+++ b/sensor_classes/VictronSmartLithium.js
|
|
5
|
-
@@ -50,7 +50,7 @@ class VictronSmartLithium extends VictronSensor{
|
|
6
|
-
(buff)=>{return buff.readUInt16LE(4)})
|
|
7
|
-
.default="electrical.batteries.{batteryID}.errors"
|
|
8
|
-
|
|
9
|
-
- for (let i=0;i++;i<8){
|
|
10
|
-
+ for (let i=0;i<8; i++){
|
|
11
|
-
this.addMetadatum(`cell${i+1}Voltage`,'V', `cell ${i+1} voltage`)
|
|
12
|
-
.default=`electrical.batteries.{batteryID}.cell${i+1}.voltage`
|
|
13
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|