{"_id":"@rhizomatics/signalk-bluetti-plugin","_rev":"32-5599203423bd9aa2392c310fb4986953","name":"@rhizomatics/signalk-bluetti-plugin","dist-tags":{"beta":"2.0.0","latest":"2.1.3"},"versions":{"1.0.1-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.1-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.1-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"49de98048329a710e33c92b95b6ee61e0f0aea84","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.1-alpha.tgz","fileCount":12,"integrity":"sha512-58HOek/aX36JkiVzqTL4qvJ48QNNc1S+3Fhh2GHpjUzGuRTtjxP4g1hpw6JVp2IGE/W5gpvwqKq8w4zsZRIpzA==","signatures":[{"sig":"MEQCIGhJjzV9fTolRa+QCe7UvQCUM0L447yROuu8v414lCO/AiAhkj/sjJwq6n54tuPfZ6on2bxEfxHzAr85Tkf3yUuI7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42678},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"138a8fac4f3595d7d59a7570588a74efb5a2d772","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. ","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@abandonware/noble":"^1.9.2-15"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.1-alpha_1780659814101_0.66483439116286","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.2-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.2-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.2-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"b7da9dc1d5d9502f8ac690923e6b3fd4ccd91ee7","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.2-alpha.tgz","fileCount":12,"integrity":"sha512-LaEHxMBpOC/V+uE824UXoWJGvy/dncccYB0oWHVje+TQOTX0zPxhF9AKBpXsHZPytE/WgmhCf329oZXgDDOqeA==","signatures":[{"sig":"MEUCIQCuvVdbZ4/pP0TrAYxxEy90yHnfhjqJ+vHPWjFvH07HggIgX2BED5W+iIwZtGeSG3mBFKf6n2f+gPYKoy5AHv6g0jI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42701},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"32a5da710d60cedb84f13a61eb7f3015ac6fd98c","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@abandonware/noble":"^1.9.2-0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.2-alpha_1780662431752_0.34468727030260093","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.3-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.3-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.3-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"e8825d45ebb05d3137bf23a5e79802eee8ba55e4","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.3-alpha.tgz","fileCount":12,"integrity":"sha512-/H/Vv1kn/MHC+5CbVu11w7IWO+EucPRc8tLDprqNTw7PQvdW6CbTeXOYQMqxu8OLOKuwzi0ib4j2IHAE6fBV+Q==","signatures":[{"sig":"MEQCIDzYI3Ihnxdpw5ynsHZ5C4v1Ud39rnD5F2NMYzYdyEduAiAFxnCOai416sG+qDDKcA/Wz5xdt0Fo3eVJtYIlZFykhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42701},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"aed8a86dfa26a6e069abc313eda1f54689b01185","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@abandonware/noble":"^1.9.2-0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.3-alpha_1780662647534_0.7311649134612828","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.4-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.4-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.4-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"5f871525766830ecaa99d5558c695f1d7407326d","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.4-alpha.tgz","fileCount":12,"integrity":"sha512-z3GOMW/XdYFjAOiTR9I3C/NRTgL9DfuiNh/fqXkvHXpja8brFGL81kUZS+wlr7q6BPZZx/G2v3gCV9HyxWYVTA==","signatures":[{"sig":"MEUCIQDDmBVdEd0Cp+lqu8foGz+7vkXy3mUl6QoMtD8z25pPiQIgAzUvleVaRarKRrRRt5F89MD5QBzbtq7BRNlV4utp7Qo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42698},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"aed8a86dfa26a6e069abc313eda1f54689b01185","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@stoprocent/noble":"^2.5.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.4-alpha_1780663480218_0.5156968869552121","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.5-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.5-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.5-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"4acef9563b77ef6dcf820757e802956042231cd8","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.5-alpha.tgz","fileCount":10,"integrity":"sha512-9kwZSH4ltqt7shVSdxVStm0siFanWQJxbszBaQkhVRYCVp5RkS6cYNcnwbCo24QUZU+Nho9tswha1qSLp2YtJg==","signatures":[{"sig":"MEQCIEmn7XM747Cgr/EEQrxZttVcmtApffiqetHao0/loMMAAiBF+R7nlhejhKTnyLpzn/Im0Wwa1Nbp9EPfmDboXtFgEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38634},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"b45a0f32effa00fe2006cb4129539c859e8b93c7","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@stoprocent/noble":"^2.5.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.5-alpha_1780664639290_0.513572428974526","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.6-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.6-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.6-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"06209dd9cab7569e78ec95f0d9cf042ab2863949","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.6-alpha.tgz","fileCount":10,"integrity":"sha512-zKdr1ri/3Ndnw2b5XNMkcpPNKl9C6Gpd5bh9ea1UxtrAGPiS8dUU/42brpvMEOpTbUV8nP/UggZqmDqZH6gzGA==","signatures":[{"sig":"MEYCIQCtb/yBVGqQ+NXdKMxadt5IDoOaod5WuAqbV3DOeCoXzAIhANVTvU00aVUlV69P3LgsX7TnVMHzcC1S9cIcbmcI5+//","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38632},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"305f9b12034745016058ff8acd898c1832a09c85","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@stoprocent/noble":"^2.5.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.6-alpha_1780665184269_0.21623673823932976","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.7-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.7-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.7-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"33dfdd8243021e7145db095b57e3dd83e2495be3","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.7-alpha.tgz","fileCount":10,"integrity":"sha512-vkshjH0Lm/YUiqcNQrhrlWG125sDGV1Pj1xIs7jVNu1m2AVGYNLNQVxTIAe/IA+BG7R+99AtOJIHU8eJi/iRhA==","signatures":[{"sig":"MEQCIHNs0D+U2ZHgUk3hxGCKaBBAq09WwabzsOwEU9ZUsjeyAiBqsJ+1ayzbneigdUc+Z1HH3tLev2Icc98v2pFbFyOVkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39940},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"d88e3f6fa16d8514b79d16bcfec4c8fe6ddea3b1","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@stoprocent/noble":"^2.5.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.7-alpha_1780682527599_0.8797892076926266","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.0.8-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.0.8-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.0.8-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"1236f4af5ca1299310572c22ce87c46fff76f875","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.0.8-alpha.tgz","fileCount":10,"integrity":"sha512-QcC0RzCzW5WYL5Xljv3LGN3OIb7qi22rOvgQ4TwMiZvHgA1W+xeTHdaN6cM7mk5NDiBD/yaQeHmBitlQ7Snvbw==","signatures":[{"sig":"MEUCIDxgJbxTf2ayzDPJQoWCqLIOn8LUMfzTqwimOf7TWCRrAiEAu7M7RsgabxsKP8JufvqlmKdHZkBrH00HWXYKgY9YSkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40448},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"ada13a3eda2381ce18790cf79ebabf2b32efb917","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@stoprocent/noble":"^2.5.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.0.8-alpha_1780683187544_0.972574152094134","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.1.0-alpha":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.1.0-alpha","keywords":["signalk-node-server-plugin","signalk-node-plugin","bluetti","battery","electrical","bluetooth","ble","marine"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.1.0-alpha","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"dist":{"shasum":"e5af5b235c9671cf15c5839e8f5672811f0713c4","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.1.0-alpha.tgz","fileCount":10,"integrity":"sha512-ccUfxJ2RNapxAFCwRvLATsDV2NR/47p7YZKdgC4+reu780W4bmlOwgACa1rlXTAJCU18MjJjeY2XxWUj97Bx5g==","signatures":[{"sig":"MEUCIQC8dwH5L/2GPJa7QvGJ3jt/BPlxIADqTdThqGR4EVZCmQIgNvfxHVOT7R5o6Velm557C1b9Vr3VHtmWVOLj0Sn3vZc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41252},"main":"index.js","engines":{"signalk-server":"*"},"gitHead":"cda30e3424d62c3ef6e9e063d3dc34349e703139","scripts":{"start":"node index.js"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.12.1","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Alpha, use with caution.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"csv-parse":"^5.5.6","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.1.0-alpha_1780685105991_0.037504875433788776","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.3.0":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.3.0","keywords":["battery","ble","bluetooth","bluetti","electrical","marine","signalk-node-plugin","signalk-node-server-plugin"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.3.0","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"0d1f77e838bcf15b0e4bbd42b95f38ff4f521078","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.3.0.tgz","fileCount":14,"integrity":"sha512-5qpa6zzCMxqLJ8YCLYF7J+XPgnuNGEwhuXg6TVuWT3oWpJgFi/LRbDpKxpyUSTXQPeVCUVCr66iNhg8nRhxD/Q==","signatures":[{"sig":"MEYCIQD/t9oQlrdg7GLXXB3zX0YJSpLGSuyo9lf8LXjQU+mM6wIhANBLk8hCDWptVw8CpRh3sRgk/2rMvs9Zl7whTVoz345x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87146},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"fab8e3f88f84ae59e05d6a8781c2f0a1b4a8d4d7","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","start":"node index.js","fmt:check":"oxfmt --check"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Beta, use with caution.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"csv-parse":"^5.5.6","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.76.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.3.0_1785253215090_0.5941133560028942","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.3.1":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.3.1","keywords":["battery","ble","bluetooth","bluetti","electrical","marine","signalk-node-plugin","signalk-node-server-plugin"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.3.1","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"e7fbbf6932964759daba371017169b5be4d6a8ae","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.3.1.tgz","fileCount":14,"integrity":"sha512-pbORBAx7ZD5Iqjc4eJx5rMUi/kz2sT7IDzyTXVoH/dnYMdwaGmPqU75yx9toGuG5Sh/DAL8kYKZfaXJWOrNWDw==","signatures":[{"sig":"MEQCIBwuYKzGAxaZqClmNmBndoQ0G20LvN8L4kUSq+ert9AqAiB/cDYaWx5tis45DDWu8TKrqNjXKh4yK9FHJksyiPon4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90348},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"2dfc88088908c5e6e7939db8d1220e89c95b6374","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","start":"node index.js","fmt:check":"oxfmt --check"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Beta, use with caution.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"csv-parse":"^5.5.6","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.76.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.3.1_1785257489070_0.19617280567745143","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.3.2":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.3.2","keywords":["battery","ble","bluetooth","bluetti","electrical","marine","signalk-node-plugin","signalk-node-server-plugin"],"license":"Apache-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.3.2","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"d050dc805c4ca30e0cb872033e5a3d156ee9243e","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.3.2.tgz","fileCount":14,"integrity":"sha512-V+yeitTHVIBM4IwfoBkrDfqMydDSSWnUWvKftY0qgJg7YIoZ7nUeV7nvhcfUN+sScjLc7kdo61IZGB7vBGgcYw==","signatures":[{"sig":"MEUCIQDGWbey4qiZWq64iAnnCQc7etVzjrQx4mR9zwBaJ90CLQIgZgMu01wbUA94CzfogX12S/IXk+5kINXOOCCrjhDp2jQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90375},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"83579772ca1d2ea151a9e95f507bd4fc96b18bdd","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","start":"node index.js","fmt:check":"oxfmt --check"},"signalk":{"displayName":"Bluetti Monitoring"},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Beta, use with caution.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"csv-parse":"^5.5.6","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.76.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.3.2_1785258138660_0.3168083069084273","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.4.0":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.4.0","keywords":["battery","ble","bluetooth","bluetti","electrical","marine","signalk-node-plugin","signalk-node-server-plugin"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.4.0","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"b9e35588e40191af6c44e7bfe1df4b52be2a4253","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.4.0.tgz","fileCount":15,"integrity":"sha512-p77sligwFeXxnCh15Z5jB0sLEg873FyvXxyM2Zv5LhejXdTNGUbeD+xDVo6B9fT5bXEVelFfQe5VmO3qkzJvHw==","signatures":[{"sig":"MEQCIGUVqclECrbxOuwBn474Z60eJRSlUYIQySLCpBMmrJmeAiB7aYit91LDu19m47WHVeoDmapCI1xHremfL8MTCD6X/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102843},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"efb27edb7907e0b0623373a5e2387807b786805c","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","start":"node index.js","fmt:check":"oxfmt --check"},"signalk":{"recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Beta, use with caution.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"csv-parse":"^5.5.6","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.76.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.4.0_1785263424280_0.7732768885734647","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.4.1":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.4.1","keywords":["battery","ble","bluetooth","bluetti","electrical","marine","signalk-node-plugin","signalk-node-server-plugin"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.4.1","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"b989bd9c3ff5c276d5a458fd10026ecf12234a38","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.4.1.tgz","fileCount":15,"integrity":"sha512-puPa96dA2vI1JIZKAoRWoin5GQ4GhaErzexQRkeO0oUDDMxNSK8eXO8mV8Si7vSWXtnBulxqUQm/VttH8iEvBg==","signatures":[{"sig":"MEUCIFc4QfJ/C4UvjIVo36x/l3Ygl0LMHDHGiwnTJ1OC/4LpAiEA2MLMftT1sczWkwmrYWFBeUpZC5jW3gkQoHSi6eb9FWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103174},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"22bc62556732da35fc56a7944235519826e1ed19","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Beta, use with caution.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"csv-parse":"^5.5.6","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.76.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.4.1_1785264621069_0.4092341582218393","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.5.0":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.5.0","keywords":["battery","ble","bluetooth","bluetti","electrical","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.5.0","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"9d5688cca6a887a93d80770abe33e772156fdee8","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.5.0.tgz","fileCount":45,"integrity":"sha512-yUdjRboLBkoJMYYstAWvmoFllHjbDZH/2VGrHIuMz9+b9PoiFXy2ENYLiz4BY3UHpPlj0RfFob/xQtXUZcZ8hA==","signatures":[{"sig":"MEQCIB1Ea7rOambXu9JmlWLeosfSCybxeCAv6qBpjahedh3lAiBUlfHH+9JZ3UJQg9EtWBlfzsxCU/ETTnFNWWCEcThUog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261580},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"d77ae15e637adbd6e138356ac374002c3ec31906","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Comes with configuration for 20+ models.","directories":{},"_nodeVersion":"26.4.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.5.0_1785317972727_0.27314566559439446","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"1.5.1":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"1.5.1","keywords":["battery","ble","bluetooth","bluetti","electrical","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@1.5.1","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"13c1f0984cdbcfc383a591faacaa1ef59ab1a317","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-1.5.1.tgz","fileCount":45,"integrity":"sha512-0DAoJLDghiNR0Qe/yoncVGSX/bM17e3dGxEcHU/KzIn5zROb3ZtbdbznYmbUHT5y3U0GGxIxPnQ39j7wYYKkwA==","signatures":[{"sig":"MEUCIGYBo8kEoRPIGqK/rmaMOliyKvqDT1BDQLA+H7Z8zwyXAiEA9nE6OqLwF+Q3/TVovppy9lCvLquzQj9uPO3OYt5CBVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261106},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"11f8ddd64dd102db6283dc3f6660ee574ad0ddaf","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"SignalK plugin for Bluetti power station monitoring via Bluetooth LE. Comes with configuration for 20+ models.","directories":{},"_nodeVersion":"26.4.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_1.5.1_1785319110283_0.05358901538882255","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.0.0":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.0.0","keywords":["battery","ble","bluetooth","bluetti","electrical","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.0.0","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"9e1b4ad41ef6f6621b8621743bd0e7311e658842","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.0.0.tgz","fileCount":48,"integrity":"sha512-YGx91UdUSCNFasFXPhqMap02n5DL3t3E3NwHqFBXjuNK0Sv65kTTxUwZuPmmEc9FDuhasHQluP2QL3/FNoC6gw==","signatures":[{"sig":"MEUCIQD8M6W2zf7IPv6F/Drvx2sg85gaNvMfyyi5Flzjdv/QTwIgGhT4xQQzF7wTeookPvDB3d/gvStWcHtLYI8PASAEVzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275646},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"8de04dadcd000f0335c54dc8d988efe6376f8500","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"11.19.0","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Comes with configuration for 20+ models.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.0.0_1786975236654_0.5782149163417849","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.0.1":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.0.1","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.0.1","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"5353d749f636abaf3096c6e954d2735018df3050","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.0.1.tgz","fileCount":48,"integrity":"sha512-1g+qrr7gwGIviA8uAKUzrH02ShNOUTdTdx2WuhGFpjeneOXIGTwbetu/la3KSRpskCFDAkLZkIrP/1QBNFmLSQ==","signatures":[{"sig":"MEYCIQC/XWSj2S4oGLl/OB6GKls4xHE6e230ZUAVUcPkLSu9tgIhAMQDB4PFVSwQBe+XMFuB2Cw4kixcAK2HvMF1lB7iKVB8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276754},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"af7f412249d6c68b9ff54f9698a0f2a371f994c7","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"11.19.0","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.0.1_1786989384414_0.8696742203668613","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.0.2":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.0.2","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.0.2","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"e2a6044696b1617c00ab691c2cb537e8eabb35cd","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.0.2.tgz","fileCount":48,"integrity":"sha512-M+j+Fy/Ihe/zp5gf2YCXOoEjT6m43na7PrtYjNYqptgdsBAq8DRqqjaoW2VmlMfGmYgq9XArmRPLU8WhimdH2Q==","signatures":[{"sig":"MEUCIQDjm0yNf6JZ0XQkBvUOVYM+Fb8wK+YJBfsjm/u7ACbBmgIgBJsD4V84vPYMs4tVsfSCtA6DWUUmuHPqfAoLzrsmU24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFqTsXb71OHpXe4DqZy1+avljm6/1FoPe22gHUYqDOKxAiAdpYYloJ+DCWyx+WgHaHoD5nqQ/a++hZk6a2O4iOknaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277376},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"cecc11cc6753a1b3eba5ffa0037bb8c4c23d2379","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.0.2_1789640315423_0.5304468771527264","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.0.3":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.0.3","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.0.3","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"eeecef65152dcebdb0978ef912c29edb4176b83e","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.0.3.tgz","fileCount":48,"integrity":"sha512-xnGAbovaJBh0YUokYKpqi5tn2LdH+JApP8GpSV7jky7TuJlU0MQdw4yMb0omF2i50peSOPFL5j2/Xy9vLrmiOw==","signatures":[{"sig":"MEUCIQDgZu6Zo8NjPbC+0uoTh/R6eAIBhXP6jNzRKWtNWjFJHwIgXe3yE0PG3+ITQ8aQFWOEBojT1nrSLBvMXOCI6B6f5RU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEWjdBaWMDkDlqXZvNGnOPt3B3qSTWeOfHJJGwAw4hE5AiEA5401CntVWRWf3PEed0HLk0qBOD8JJlmfzFtcBTTkQqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278112},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"9b9a7dc4c7c151960b487ddebe84c870eed9d5e5","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.0.3_1789641525953_0.7012294042227603","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.1.0":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.1.0","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.1.0","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"c48922c016d0963548c68adc04f6b0d0d1235936","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.1.0.tgz","fileCount":48,"integrity":"sha512-u8/xAxUaSPMQMA37c2dkmtA1kBodJflktO/M4Yls3WQAdVReqDlJxlEsmCkdW5SE0xHa7TUoOCBJTwTtWc1P7Q==","signatures":[{"sig":"MEQCICmd/EaP6a7Xxcli1w16GefqwahedLSCfAE5n4O9wjzyAiB48WKCTlqfp2ywjy2c6gx6FguOIHO3TiHjIgeoKZHhMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICLtL0JbYqlB3m1mI0yFtvCyoqUB1bT6b6KTVAtv5pOZAiAzpF8j9cGDsfWx6eQAD3rf/CD3SnKZR/QLHd+l595YCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280411},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"7c2c942cf0e675041177a1d1fee83dabb2af312f","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.1.0_1789644519295_0.4283793437490746","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.1.1":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.1.1","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.1.1","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"d29d5bb9696525a13cebcd4bb06f6496192cc97e","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.1.1.tgz","fileCount":48,"integrity":"sha512-t5Ps8P/GkJkCw61wzXRdCxFFTn9uA3fzUeHzD0acWXbJSEHOZOioChr7Xe/5Rzf9GyQ84PFAZNVVYltA5LgEzg==","signatures":[{"sig":"MEYCIQC6eMcdnESs9fegYxrSOl8UDHLQn6TJ3HHA0IinY6LkiAIhAOARTp4B29SlBmaMKp1udZYeZ3vAVP2BX0VfuoD9tdxM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEhVzD0RnzM/1gPJcaNBCOkfduC8OnCAIq1+cgzTdZ0KAiAkUD0vSL50lZzIda+rzxc2EGTJBqWNvK4cqJaK4mwFcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281222},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"958aedec7e398e4b1380ee7b27ef28c2372e003e","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.1.1_1789648872126_0.2829824619240191","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.1.2":{"name":"@rhizomatics/signalk-bluetti-plugin","version":"2.1.2","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"author":{"name":"jey burrows"},"license":"APACHE-2.0","_id":"@rhizomatics/signalk-bluetti-plugin@2.1.2","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"bin":{"bluetti-cli":"cli.js"},"dist":{"shasum":"c1f80098dd37dbb1fbeb5846d92dff3a91171e50","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.1.2.tgz","fileCount":48,"integrity":"sha512-9RVifW8aRv+4FExyGTtVPPQnmiT0DQaPWBvCk/72DRiMOZ7g+sPb88rIgRJLjqjgXGVr5H50lqYPI8EEcgVXUg==","signatures":[{"sig":"MEUCIQDzmyC4RwsxB6Amhe4nnu4kwoEIgFotlz/dkd4REk59BgIgUWbj9i8bs59+uUQ0RtwhE8YvwZk/aTezRz7/KmkU/tw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGLn/Xs6JiZK8yFg5f1A7Wtp74wXcMeFy7u8Csy6HH4yAiA2Nsh0PKZtYYah7WqYLJh4GRuCPVEVvCQ+NDQg64F5vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283758},"main":"index.js","engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"3a600a01d2c789afb32546784906bea58c33aeae","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"tmp":"tmp/signalk-bluetti-plugin_2.1.2_1789650905535_0.5321269402256428","host":"s3://npm-registry-packages-npm-production"},"signalk-plugin-enabled-by-default":false},"2.1.3":{"_id":"@rhizomatics/signalk-bluetti-plugin@2.1.3","bin":{"bluetti-cli":"cli.js"},"bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"dist":{"shasum":"ee47031676d7f8cd95f41a0fe54ac7caadfd90be","tarball":"https://registry.npmjs.org/@rhizomatics/signalk-bluetti-plugin/-/signalk-bluetti-plugin-2.1.3.tgz","fileCount":48,"integrity":"sha512-yTLS03F2/mAcig1tMYGBYg5ESJMnL07iQU8t+BMK0Mmm2jwQ5s7sr3Cscb/rah+EmPlMXDS7F1F7kJ997CXN8g==","signatures":[{"sig":"MEQCIA31LffXeUVZzcOzsAmTf0bj6eR53MV3oLHta3OFZVpOAiBpEpQYZEhC1F15H8VyZhmWh1+ki/hS4QAHJ8+PJE2x3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGk3d69PQARr0TwsMDtqp7RDh8ThAAD+t3h1mjarPQYvAiEAqOfbhpIlZS6j1KJDtzDoH4+fWAq83iYrlkqzyPKQEKg="}],"unpackedSize":286181},"main":"index.js","name":"@rhizomatics/signalk-bluetti-plugin","author":{"name":"jey burrows"},"engines":{"node":">=18.0.0","signalk-server":"*"},"gitHead":"87ee81bce3cd51d16f1f840aec7f6b61fdbcb441","license":"APACHE-2.0","scripts":{"cli":"node cli.js","fmt":"oxfmt","lint":"oxlint","test":"node --test","start":"node index.js","fmt:check":"oxfmt --check","test:coverage":"node --experimental-test-coverage --test-coverage-include=\"lib/**/*.js\" --test-coverage-exclude=\"lib/device.js\" --test-coverage-exclude=\"lib/scanner.js\" --test-coverage-exclude=\"lib/ble-manager-device.js\" --test-coverage-exclude=\"lib/ble-manager-scanner.js\" --test-coverage-lines=80 --test-coverage-branches=80 --test-coverage-functions=80 --test"},"signalk":{"appIcon":"docs/assets/icon.svg","recommends":["@rhizomatics/signalk-einklabel-plugin"],"displayName":"Bluetti Monitoring","screenshots":["docs/assets/screenshots/bluetti_data.png"]},"version":"2.1.3","_npmUser":{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"},"homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"_npmVersion":"12.0.2","description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","directories":{},"maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"_nodeVersion":"24.21.0","dependencies":{"yaml":"^2.9.0","@naugehyde/node-ble":"^1.13.5"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.61.0","oxlint":"^1.75.0","oxlint-tsgolint":"^7.0.2001"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signalk-bluetti-plugin_2.1.3_1789716067695_0.08073356950484722"},"signalk-plugin-enabled-by-default":false}},"time":{"created":"2026-06-05T11:43:33.669Z","modified":"2026-09-18T07:21:08.015Z","1.0.1-alpha":"2026-06-05T11:43:34.253Z","1.0.2-alpha":"2026-06-05T12:27:11.906Z","1.0.3-alpha":"2026-06-05T12:30:47.691Z","1.0.4-alpha":"2026-06-05T12:44:40.354Z","1.0.5-alpha":"2026-06-05T13:03:59.445Z","1.0.6-alpha":"2026-06-05T13:13:04.407Z","1.0.7-alpha":"2026-06-05T18:02:07.750Z","1.0.8-alpha":"2026-06-05T18:13:07.700Z","1.1.0-alpha":"2026-06-05T18:45:06.138Z","1.1.1-alpha":"2026-06-05T20:44:56.839Z","1.1.2-alpha":"2026-06-05T21:04:20.952Z","1.1.3":"2026-07-14T17:45:50.373Z","1.2.0":"2026-07-28T14:43:27.857Z","1.3.0":"2026-07-28T15:40:15.270Z","1.3.1":"2026-07-28T16:51:29.230Z","1.3.2":"2026-07-28T17:02:18.801Z","1.4.0":"2026-07-28T18:30:24.414Z","1.4.1":"2026-07-28T18:50:21.219Z","1.5.0":"2026-07-29T09:39:32.872Z","1.5.1":"2026-07-29T09:58:30.432Z","2.0.0":"2026-08-17T14:00:36.811Z","2.0.1":"2026-08-17T17:56:24.560Z","2.0.2":"2026-09-17T10:18:35.518Z","2.0.3":"2026-09-17T10:38:46.072Z","2.1.0":"2026-09-17T11:28:39.383Z","2.1.1":"2026-09-17T12:41:12.218Z","2.1.2":"2026-09-17T13:15:05.626Z","2.1.3":"2026-09-18T07:21:07.818Z"},"bugs":{"url":"https://github.com/rhizomatics/signalk-bluetti-plugin/issues"},"author":{"name":"jey burrows"},"license":"APACHE-2.0","homepage":"https://github.com/rhizomatics/signalk-bluetti-plugin.git","keywords":["battery","ble","bluetooth","bluetti","electrical","gatt","generator","marine","signalk","signalk-category-hardware","signalk-node-plugin","signalk-node-server-plugin","solar"],"repository":{"url":"git+https://github.com/rhizomatics/signalk-bluetti-plugin.git","type":"git"},"description":"Bluetti power station monitoring via Bluetooth LE for SignalK. Built-in configuration for 20+ models.","maintainers":[{"name":"jeyrb","email":"signalk@rhizomatics.org.uk"}],"readme":"# SignalK Bluetti Power Station Monitoring\n\n[![npm version](https://img.shields.io/npm/v/@rhizomatics/signalk-bluetti-plugin.svg)](https://www.npmjs.com/package/@rhizomatics/signalk-bluetti-plugin)\n[![npm downloads](https://img.shields.io/npm/dm/@rhizomatics/signalk-bluetti-plugin.svg)](https://www.npmjs.com/package/@rhizomatics/signalk-bluetti-plugin)\n[![SignalK Plugin CI](https://github.com/rhizomatics/signalk-bluetti-plugin/actions/workflows/signalk-ci.yml/badge.svg)](https://github.com/rhizomatics/signalk-bluetti-plugin/actions/workflows/signalk-ci.yml)\n![code style: oxfmt](https://img.shields.io/badge/code_style-oxfmt-blue.svg)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/rhizomatics/signalk-bluetti-plugin/blob/main/LICENSE)\n[![boat tech directory](https://boat-tech-directory.rhizomatics.org.uk/images/badge.svg)](https://boat-tech-directory.rhizomatics.org.uk)\n\nA SignalK plugin to display data from Bluetti power stations over a Bluetooth Low Energy (BLE) connection. Supports 20+ stations, extensible by configuration. Also offers a CLI for easier exploring and debugging, and optional support for the BLE Manager API introduced in SignalK Server 2.31.0.\n\n![Example Data](docs/assets/screenshots/bluetti_data.png)\n\n## Pre-requisites\n\nThe requirements below are only to make SignalK work with Bluetooth Low Energy, which is good thing to have anyway, since vendors like Victron, Switchbot, Ruuvi and others have BLE enabled hardware that's useful to have on a boat. Ignore if BLE already being used.\n\n### SignalK BLE Manager\n\nSignalK server 2.31.0 added a server-managed [BLE API](https://demo.signalk.org/documentation/Developing/REST_APIs/BLE_API.html) so multiple BLE plugins can share one adapter (or a remote gateway) through the server instead of each opening its own BlueZ session, and often causing problems between plugins.\n\nThis plugin supports this with the **Use the SignalK BLE Manager API** setting (on by default, only shown once your server is on 2.31.0+ and BLE Manager enabled). It also requires either a local bluetooth adapter, or a BLE gateway to be configured - switch on the server's own **Local Bluetooth Adapter** in **Server → Settings → Bluetooth** and monitor it in the **Data -> BLE Manager** page.\n\n#### SignalK server\n\n- **Linux** is required if using a Bluetooth adapter on the server\n- MacOS and Windows aren't supported by the [BLE interface layer](https://www.npmjs.com/package/@naugehyde/node-ble) or SignalK BLE API, however they can be used for template development and debugging (everything except `scan` and `paint`)\n- Linux isn't a requirement if a BLE Gateway is used, using [SensESP](https://github.com/dirkwa/SensESP)\n\n#### Bluetooth Low Energy (BLE) Integration\n\n##### Local BLE adapter\n\n1. Choosing an adapter\n\n- Bluetooth adapters for Linux can be tricky, TP-Link UB400 and Asus USB-BT500 are two well-known and available ones\n- Some Raspberry Pi models come with suitable Bluetooth built in\n- Don't worry about the very latest Bluetooth versions, 4.0 is minimum for BLE, 5.0 is nice\n- Home Assistant is massively more popular than SignalK, and often also run on Raspberry Pi and similar, so good source of advice\n\n2. `bluez` and `dbus` packages installed\n\n- No need to do this if you have a Raspberry Pi with recent Raspian version, since `bluez` comes built in.\n- If you're not running a Raspberry Pi, then ensure that the `dbus` package is installed\n\n3. Choose BLE API or self-managed BLE integration\n\n- SignalK BLE via **Server → Settings → Bluetooth** and **Data -> BLE Manager**\n- Or built-in BLE integration by switching off **Use the SignalK BLE Manager API** in the settings\n- The BLE Manager (as of v2.31.0) has a limited and unconfigurable 15 second scan period, which may not be sufficient for some devices. Fall back to the internal BLE integration if so, which can be configured to wait as long as you want in a scan.\n\n##### BLE Gateway\n\nBuy or build a gateway using [SensESP](https://github.com/dirkwa/SensESP). Ensure the BLE API usage is switched on, in the plugin and the Server Settings.\n\n#### Bluetti Encryption Key\n\nIf using a later model that needs encryption, email [service@bluettipower.com](mailto:service@bluettipower.com) to raise a support query for key. Official API site is at see https://github.com/bluetti-official/bluetti-bluetooth-lib.\n\nKey will be in the form of a CSV file, which be stored in your SignalK server, for example in a home directory, and referenced in the Bluetti Monitoring plugin configuration.\n\n### Other uses for BLE\n\nOnce you have all of that, it may be worth also installing plugins like [signalk-victron-ble](https://github.com/stefanor/signalk-victron-ble), [signalk-ruuvitag-plugin](https://github.com/vokkim/signalk-ruuvitag-plugin) or [bt-sensors-plugin](https://github.com/naugehyde/bt-sensors-plugin-sk) to pull in data from other sensors and equipment.\n\n## Installation\n\nLook for **Bluetti Monitoring** in the **SignalK AppStore** on your server ( under _Apps & Plugins_ on the latest version).\n\n## CLI\n\nA `bluetti-cli` command is bundled for finding and inspecting devices without a running SignalK server. Run it from the plugin directory with `node cli.js <command>` (or `npm run cli -- <command>`); if installed globally/linked, `bluetti-cli <command>` works directly.\n\nRequires a Linux host with BlueZ/D-Bus (same as the plugin itself) — it won't work on macOS/Windows.\n\n### `scan`\n\nScan for nearby Bluetti devices and print their address and name.\n\n```bash\nnode cli.js scan\nnode cli.js scan --all              # show every BLE device, not just Bluetti-matching ones\nnode cli.js scan --timeout 30       # scan duration in seconds (default: 15)\n```\n\n### `dump [mac]`\n\nConnect to a single device by MAC address and print low-level details: name, alias, RSSI, pairing state, manufacturer data, and its raw GATT services/characteristics — including each characteristic's flags (read/write/notify/…) and, for readable ones, its current value as hex. Useful for figuring out a new/unknown device's UUIDs before wiring up a register map. If `mac` is omitted, scans and connects to the first Bluetti-matching device found.\n\n```bash\nnode cli.js dump aa:bb:cc:dd:ee:ff\nnode cli.js dump                                   # scan and use the first Bluetti device found\nnode cli.js dump aa:bb:cc:dd:ee:ff --timeout 30   # discovery timeout if device isn't already known to BlueZ (default: 20)\n```\n\n### `info [mac]`\n\nConnect to a device and decode its live register values the same way the plugin itself does — same GATT UUIDs, same encryption handshake (including the AES/ECDH handshake used by \"V2\"-protocol models like the EL100V2), same register parsing. Requires `--registers`. If `mac` is omitted, scans and connects to the first Bluetti-matching device found.\n\n```bash\n# Decode live registers using a bundled device configuration (see devices/*.yaml for available models)\nnode cli.js info aa:bb:cc:dd:ee:ff --registers ac200p\nnode cli.js info --registers ac200p                # scan and use the first Bluetti device found\n\n# Or a custom YAML, plus an encryption key file for legacy models that XOR-scramble frames\n# (not needed for V2-protocol models — those are auto-detected and handshake automatically)\nnode cli.js info aa:bb:cc:dd:ee:ff --registers ./my-device-registers.yaml --encryption-key ~/19e1646709e0421b755fa9dda74.csv\n\nnode cli.js info aa:bb:cc:dd:ee:ff --registers ac200p --timeout 30   # discovery timeout if device isn't already known to BlueZ (default: 20)\n```\n\n### `models`\n\nList every device configuration the CLI (and the plugin) can find — bundled ones plus anything dropped into the custom directory (`~/.signalk/bluetti` by default) — with a field and constant count per model. No device connection needed.\n\n```bash\nnode cli.js models\n```\n\n## FAQ\n\n### Capacity figures show in Joules, how do I make it useful?\n\nSignalK stores all data in SI units rather than any customary units used anywhere, for example temperatures are all held in Kelvin and unit preferences allow them to be converted in the display to C or F.\n\nUnfortunately the default sets of preset unit preferences don't include the `energy` category used for capacity and more unfortunately as of SignalK v2.30.0 there's no easy way to override individual paths.\n\nThe fiddly way to do it should be as below (however there's a current [misconfiguration](https://github.com/SignalK/signalk-server/issues/2878) in the SignalK code which gets in the way):\n\n1. Download your preferred set of unit preferences from the [SignalK repo](https://github.com/SignalK/signalk-server/tree/ac368c548fba923db0acf8a314cbdc6552b2b8cf/unitpreferences/presets)\n2. Edit the downloaded file\n\n- Change the `targetUnit` of `energy` category to `Wh`\n- Change the `name` at the top of the file to reflect the change, for example `\"Nautical (Metric, Wh capacity)\"`\n\n3. Go to the _Unit Preferences_ section of the _Data_ menu in SignalK\n4. Use the _Upload_ button to upload your amended preferences preset and select it in the preset dropdown\n\n### SignalK starts before the Bluetooth daemon — does the plugin need `bluetoothd` running at boot?\n\nThe plugin retries BLE adapter initialisation with backoff (starting at 2s, capping at 30s) if `bluetoothd`/D-Bus isn't up yet when the plugin starts, so a slow-starting Bluetooth stack on boot will no longer strand it — it keeps retrying until the adapter appears rather than failing once and giving up. You'll see `BLE adapter not ready … — retrying in Ns …` in the SignalK logs in the meantime.\n\nThat said, it's cleaner to fix the boot ordering at the systemd level so the plugin finds the adapter ready on its first attempt. If SignalK runs as a systemd service (`systemctl status signalk`) and its unit file has no `[Unit]` section (check with `systemctl cat signalk`), add one:\n\n```bash\nsudo systemctl edit signalk.service\n```\n\nThis opens an override file — add:\n\n```ini\n[Unit]\nAfter=bluetooth.target\nWants=bluetooth.target\n```\n\nSave and exit, then:\n\n```bash\nsudo systemctl daemon-reload\nsudo systemctl restart signalk\n```\n\nThis tells systemd to start `bluetoothd` first and wait for it before starting SignalK, rather than relying on both racing to start in parallel at boot.\n\n### My station isn't supported\n\nAdditional products can be added using a YAML file mapping modbus registers and providing static values — see [`docs/examples/model_definition.yaml`](docs/examples/model_definition.yaml) in the repo for an annotated template, and `devices/*.yaml` for real examples.\n\nDrop your file into the plugin's **Custom Device Configuration Directory** (a plugin setting, defaulting to `~/.signalk/bluetti`) and it'll appear in the **Device Configuration** dropdown for a device, named after the file (without `.yaml`). A file there takes priority over a bundled one of the same name, so it also doubles as a way to override a built-in map.\n\nCheck one of these projects to see if some of the mapping work has been done:\n\n- https://github.com/Patrick762/bluetti-bt-lib\n- https://github.com/warhammerkid/bluetti_mqtt\n","readmeFilename":"README.md"}