matterbridge-eve-energy 1.1.0 → 1.2.0-dev.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.
- package/CHANGELOG.md +12 -0
- package/dist/index.js +0 -7
- package/dist/platform.js +7 -25
- package/npm-shrinkwrap.json +39 -9
- package/package.json +2 -39
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/platform.d.ts +0 -14
- package/dist/platform.d.ts.map +0 -1
- package/dist/platform.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.2.0-dev.1] - 2025-02-01
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- [package]: Require Matterbridge 2.1.0.
|
|
10
|
+
- [package]: Update package.
|
|
11
|
+
- [package]: Update dependencies.
|
|
12
|
+
|
|
13
|
+
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
14
|
+
<img src="./yellow-button.png" alt="Buy me a coffee" width="120">
|
|
15
|
+
</a>
|
|
16
|
+
|
|
5
17
|
## [1.1.0] - 2024-12-14
|
|
6
18
|
|
|
7
19
|
### Added
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { EveEnergyPlatform } from './platform.js';
|
|
2
|
-
/**
|
|
3
|
-
* This is the standard interface for MatterBridge plugins.
|
|
4
|
-
* Each plugin should export a default function that follows this signature.
|
|
5
|
-
*
|
|
6
|
-
* @param matterbridge - An instance of MatterBridge
|
|
7
|
-
*/
|
|
8
2
|
export default function initializePlugin(matterbridge, log, config) {
|
|
9
3
|
return new EveEnergyPlatform(matterbridge, log, config);
|
|
10
4
|
}
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
package/dist/platform.js
CHANGED
|
@@ -1,45 +1,34 @@
|
|
|
1
|
-
import { OnOff,
|
|
2
|
-
import { MatterHistory
|
|
1
|
+
import { OnOff, MatterbridgeAccessoryPlatform, powerSource, MatterbridgeEndpoint, onOffOutlet } from 'matterbridge';
|
|
2
|
+
import { MatterHistory } from 'matter-history';
|
|
3
3
|
export class EveEnergyPlatform extends MatterbridgeAccessoryPlatform {
|
|
4
4
|
energy;
|
|
5
5
|
history;
|
|
6
6
|
interval;
|
|
7
|
-
createMutableDevice(definition, options = {}, debug = false) {
|
|
8
|
-
let device;
|
|
9
|
-
if (this.matterbridge.edge === true)
|
|
10
|
-
device = new MatterbridgeEndpoint(definition, options, debug);
|
|
11
|
-
else
|
|
12
|
-
device = new MatterbridgeDevice(definition, options, debug);
|
|
13
|
-
return device;
|
|
14
|
-
}
|
|
15
7
|
constructor(matterbridge, log, config) {
|
|
16
8
|
super(matterbridge, log, config);
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
throw new Error(`This plugin requires Matterbridge version >= "1.6.6". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version in the frontend."`);
|
|
9
|
+
if (this.verifyMatterbridgeVersion === undefined || typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('2.1.0')) {
|
|
10
|
+
throw new Error(`This plugin requires Matterbridge version >= "2.1.0". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version in the frontend."`);
|
|
20
11
|
}
|
|
21
12
|
this.log.info('Initializing platform:', this.config.name);
|
|
22
13
|
}
|
|
23
14
|
async onStart(reason) {
|
|
24
15
|
this.log.info('onStart called with reason:', reason ?? 'none');
|
|
25
16
|
this.history = new MatterHistory(this.log, 'Eve energy', { filePath: this.matterbridge.matterbridgeDirectory, edge: this.matterbridge.edge });
|
|
26
|
-
this.energy =
|
|
17
|
+
this.energy = new MatterbridgeEndpoint([onOffOutlet, powerSource], { uniqueStorageKey: 'Eve energy' }, this.config.debug);
|
|
27
18
|
this.energy.createDefaultIdentifyClusterServer();
|
|
28
19
|
this.energy.createDefaultBasicInformationClusterServer('Eve energy', '0x88528475', 4874, 'Eve Systems', 80, 'Eve Energy 20EBO8301', 6650, '3.2.1', 1, '1.1');
|
|
29
|
-
this.energy.createDefaultScenesClusterServer();
|
|
30
20
|
this.energy.createDefaultGroupsClusterServer();
|
|
31
21
|
this.energy.createDefaultOnOffClusterServer(true);
|
|
32
22
|
this.energy.createDefaultPowerSourceWiredClusterServer();
|
|
33
|
-
// Add the EveHistory cluster to the device as last cluster!
|
|
34
23
|
this.history.createEnergyEveHistoryClusterServer(this.energy, this.log);
|
|
35
24
|
this.history.autoPilot(this.energy);
|
|
36
25
|
await this.registerDevice(this.energy);
|
|
37
26
|
this.energy.addCommandHandler('identify', async ({ request: { identifyTime } }) => {
|
|
38
|
-
this.log.
|
|
27
|
+
this.log.info(`Command identify called identifyTime:${identifyTime}`);
|
|
39
28
|
this.history?.logHistory(false);
|
|
40
29
|
});
|
|
41
30
|
this.energy.addCommandHandler('triggerEffect', async ({ request: { effectIdentifier, effectVariant } }) => {
|
|
42
|
-
this.log.
|
|
31
|
+
this.log.info(`Command triggerEffect called effect ${effectIdentifier} variant ${effectVariant}`);
|
|
43
32
|
this.history?.logHistory(false);
|
|
44
33
|
});
|
|
45
34
|
}
|
|
@@ -55,12 +44,6 @@ export class EveEnergyPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
55
44
|
const power = state === true ? this.history.getFakeLevel(0.5, 1550, 2) : 0;
|
|
56
45
|
const consumption = this.history.getFakeLevel(0.5, 1550, 2);
|
|
57
46
|
this.energy.setAttribute(OnOff.Cluster.id, 'onOff', state, this.log);
|
|
58
|
-
if (!this.matterbridge.edge) {
|
|
59
|
-
this.energy.setAttribute(EveHistory.Cluster.id, 'Voltage', voltage, this.log);
|
|
60
|
-
this.energy.setAttribute(EveHistory.Cluster.id, 'Current', current, this.log);
|
|
61
|
-
this.energy.setAttribute(EveHistory.Cluster.id, 'Consumption', power, this.log);
|
|
62
|
-
this.energy.setAttribute(EveHistory.Cluster.id, 'TotalConsumption', consumption, this.log);
|
|
63
|
-
}
|
|
64
47
|
this.history.setLastEvent();
|
|
65
48
|
this.history.addEntry({ time: this.history.now(), status: state === true ? 1 : 0, voltage, current, power, consumption });
|
|
66
49
|
this.log.info(`Set state to ${state} voltage:${voltage} current:${current} power:${power} consumption:${consumption}`);
|
|
@@ -74,4 +57,3 @@ export class EveEnergyPlatform extends MatterbridgeAccessoryPlatform {
|
|
|
74
57
|
await this.unregisterAllDevices();
|
|
75
58
|
}
|
|
76
59
|
}
|
|
77
|
-
//# sourceMappingURL=platform.js.map
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-eve-energy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-dev.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge-eve-energy",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.2.0-dev.1",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"matter-history": "1.1.17-dev.
|
|
12
|
+
"matter-history": "1.1.17-dev.8",
|
|
13
13
|
"node-ansi-logger": "3.0.0",
|
|
14
14
|
"node-persist-manager": "1.0.8"
|
|
15
15
|
},
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"node_modules/matter-history": {
|
|
21
|
-
"version": "1.1.17-dev.
|
|
22
|
-
"resolved": "https://registry.npmjs.org/matter-history/-/matter-history-1.1.17-dev.
|
|
23
|
-
"integrity": "sha512-
|
|
21
|
+
"version": "1.1.17-dev.8",
|
|
22
|
+
"resolved": "https://registry.npmjs.org/matter-history/-/matter-history-1.1.17-dev.8.tgz",
|
|
23
|
+
"integrity": "sha512-r/qr30WlJkLbmFVhF6fbeTPZFaLaznYBZVhZuPPAeCY0Y1FN+YdqKzUd59jAeSMQQZNGmPqOuHnOlrkzczKA1g==",
|
|
24
24
|
"hasShrinkwrap": true,
|
|
25
25
|
"license": "Apache-2.0",
|
|
26
26
|
"dependencies": {
|
|
@@ -71,10 +71,13 @@
|
|
|
71
71
|
}
|
|
72
72
|
},
|
|
73
73
|
"node_modules/node-persist": {
|
|
74
|
-
"version": "4.0.
|
|
75
|
-
"resolved": "https://registry.npmjs.org/node-persist/-/node-persist-4.0.
|
|
76
|
-
"integrity": "sha512-
|
|
74
|
+
"version": "4.0.4",
|
|
75
|
+
"resolved": "https://registry.npmjs.org/node-persist/-/node-persist-4.0.4.tgz",
|
|
76
|
+
"integrity": "sha512-8sPAz/7tw1mCCc8xBG4f0wi+flHkSSgQeX998iQ75Pu27evA6UUWCjSE7xnrYTg2q33oU5leJ061EKPDv6BocQ==",
|
|
77
77
|
"license": "MIT",
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"p-limit": "^3.1.0"
|
|
80
|
+
},
|
|
78
81
|
"engines": {
|
|
79
82
|
"node": ">=10.12.0"
|
|
80
83
|
}
|
|
@@ -94,6 +97,33 @@
|
|
|
94
97
|
"type": "buymeacoffee",
|
|
95
98
|
"url": "https://www.buymeacoffee.com/luligugithub"
|
|
96
99
|
}
|
|
100
|
+
},
|
|
101
|
+
"node_modules/p-limit": {
|
|
102
|
+
"version": "3.1.0",
|
|
103
|
+
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
|
104
|
+
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
|
105
|
+
"license": "MIT",
|
|
106
|
+
"dependencies": {
|
|
107
|
+
"yocto-queue": "^0.1.0"
|
|
108
|
+
},
|
|
109
|
+
"engines": {
|
|
110
|
+
"node": ">=10"
|
|
111
|
+
},
|
|
112
|
+
"funding": {
|
|
113
|
+
"url": "https://github.com/sponsors/sindresorhus"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"node_modules/yocto-queue": {
|
|
117
|
+
"version": "0.1.0",
|
|
118
|
+
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
|
119
|
+
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
|
|
120
|
+
"license": "MIT",
|
|
121
|
+
"engines": {
|
|
122
|
+
"node": ">=10"
|
|
123
|
+
},
|
|
124
|
+
"funding": {
|
|
125
|
+
"url": "https://github.com/sponsors/sindresorhus"
|
|
126
|
+
}
|
|
97
127
|
}
|
|
98
128
|
}
|
|
99
129
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge-eve-energy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-dev.1",
|
|
4
4
|
"description": "Matterbridge eve energy with history",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
|
-
"types": "dist/index.d.ts",
|
|
10
9
|
"repository": {
|
|
11
10
|
"type": "git",
|
|
12
11
|
"url": "git+https://github.com/Luligu/matterbridge-eve-energy.git"
|
|
@@ -27,44 +26,8 @@
|
|
|
27
26
|
"engines": {
|
|
28
27
|
"node": ">=18.0.0 <19.0.0 || >=20.0.0 <21.0.0 || >=22.0.0 <23.0.0"
|
|
29
28
|
},
|
|
30
|
-
"scripts": {
|
|
31
|
-
"build": "tsc",
|
|
32
|
-
"watch": "tsc --watch",
|
|
33
|
-
"start": "matterbridge",
|
|
34
|
-
"start:bridge": "matterbridge -bridge",
|
|
35
|
-
"start:childbridge": "matterbridge -childbridge",
|
|
36
|
-
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
37
|
-
"test:verbose": "node --experimental-vm-modules node_modules/jest/bin/jest.js --verbose",
|
|
38
|
-
"test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
|
|
39
|
-
"test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage",
|
|
40
|
-
"lint": "eslint --max-warnings=0 .",
|
|
41
|
-
"lint:fix": "eslint --fix --max-warnings=0 .",
|
|
42
|
-
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,md}\"",
|
|
43
|
-
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,css,md}\"",
|
|
44
|
-
"clean": "npx rimraf tsconfig.tsbuildinfo ./dist",
|
|
45
|
-
"cleanBuild": "npm run clean && tsc",
|
|
46
|
-
"deepClean": "npx rimraf tsconfig.tsbuildinfo package-lock.json npm-shrinkwrap.json ./dist ./node_modules",
|
|
47
|
-
"deepCleanBuild": "npm run deepClean && npm install && npm link matterbridge && npm run build",
|
|
48
|
-
"checkDependencies": "npx npm-check-updates",
|
|
49
|
-
"updateDependencies": "npx npm-check-updates -u && npm install && npm link matterbridge && npm run build",
|
|
50
|
-
"prepublishOnly": "npm pkg delete devDependencies && npm install --omit=dev && npm shrinkwrap",
|
|
51
|
-
"buildProduction": "npm run clean && tsc --project tsconfig.production.json",
|
|
52
|
-
"npmPack": "copy package.json package.log && npm run buildProduction && npm pkg delete devDependencies && npm pkg delete scripts && npx rimraf ./node_modules && npm install --omit=dev && npm shrinkwrap && npm pack && copy package.log package.json && npm run deepCleanBuild && npm run deepCleanBuild",
|
|
53
|
-
"npmPublishTagDev": "copy package.json package.log && npm run buildProduction && npm pkg delete devDependencies && npm pkg delete scripts && npx rimraf ./node_modules && npm install --omit=dev && npm shrinkwrap && npm publish --tag dev && copy package.log package.json && npm run deepCleanBuild",
|
|
54
|
-
"npmPublishTagLatest": "copy package.json package.log && npm run buildProduction && npm pkg delete devDependencies && npm pkg delete scripts && npx rimraf ./node_modules && npm install --omit=dev && npm shrinkwrap && npm publish --tag latest && copy package.log package.json && npm run deepCleanBuild",
|
|
55
|
-
"matterbridge:add": "matterbridge -add .\\",
|
|
56
|
-
"matterbridge:remove": "matterbridge -remove .\\",
|
|
57
|
-
"matterbridge:enable": "matterbridge -enable .\\",
|
|
58
|
-
"matterbridge:disable": "matterbridge -disable .\\",
|
|
59
|
-
"matterbridge:list": "matterbridge -list",
|
|
60
|
-
"history:local": "npm install ../matter-history && npm run deepCleanBuild",
|
|
61
|
-
"history:dev": "npm install matter-history@dev && npm run deepCleanBuild",
|
|
62
|
-
"history": "npm install matter-history && npm run deepCleanBuild",
|
|
63
|
-
"dev:link": "npm link matterbridge",
|
|
64
|
-
"dev:unlink": "npm unlink matterbridge"
|
|
65
|
-
},
|
|
66
29
|
"dependencies": {
|
|
67
|
-
"matter-history": "1.1.17-dev.
|
|
30
|
+
"matter-history": "1.1.17-dev.8",
|
|
68
31
|
"node-ansi-logger": "3.0.0",
|
|
69
32
|
"node-persist-manager": "1.0.8"
|
|
70
33
|
}
|
package/dist/index.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Matterbridge, PlatformConfig } from 'matterbridge';
|
|
2
|
-
import { AnsiLogger } from 'matterbridge/logger';
|
|
3
|
-
import { EveEnergyPlatform } from './platform.js';
|
|
4
|
-
/**
|
|
5
|
-
* This is the standard interface for MatterBridge plugins.
|
|
6
|
-
* Each plugin should export a default function that follows this signature.
|
|
7
|
-
*
|
|
8
|
-
* @param matterbridge - An instance of MatterBridge
|
|
9
|
-
*/
|
|
10
|
-
export default function initializePlugin(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig): EveEnergyPlatform;
|
|
11
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,qBAE3G"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,YAA0B,EAAE,GAAe,EAAE,MAAsB;IAC1G,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"}
|
package/dist/platform.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { PlatformConfig, Matterbridge, MatterbridgeDevice, MatterbridgeAccessoryPlatform, EndpointOptions, DeviceTypeDefinition, AtLeastOne } from 'matterbridge';
|
|
2
|
-
import { MatterHistory } from 'matter-history';
|
|
3
|
-
import { AnsiLogger } from 'matterbridge/logger';
|
|
4
|
-
export declare class EveEnergyPlatform extends MatterbridgeAccessoryPlatform {
|
|
5
|
-
energy: MatterbridgeDevice | undefined;
|
|
6
|
-
history: MatterHistory | undefined;
|
|
7
|
-
interval: NodeJS.Timeout | undefined;
|
|
8
|
-
createMutableDevice(definition: DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>, options?: EndpointOptions, debug?: boolean): MatterbridgeDevice;
|
|
9
|
-
constructor(matterbridge: Matterbridge, log: AnsiLogger, config: PlatformConfig);
|
|
10
|
-
onStart(reason?: string): Promise<void>;
|
|
11
|
-
onConfigure(): Promise<void>;
|
|
12
|
-
onShutdown(reason?: string): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=platform.d.ts.map
|
package/dist/platform.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,6BAA6B,EAE7B,eAAe,EACf,oBAAoB,EACpB,UAAU,EAGX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,6BAA6B;IAClE,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAErC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,GAAE,eAAoB,EAAE,KAAK,UAAQ,GAAG,kBAAkB;gBAO9I,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc;IAahE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM;IA8BvB,WAAW;IA2BX,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;CAM1C"}
|
package/dist/platform.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|