@victronenergy/mfd-modules 3.3.9 → 3.3.10
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/README.md +20 -0
- package/dist/src/Modules/AcLoads/AcLoads.provider.js +3 -3
- package/dist/src/Modules/AcLoads/AcLoads.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.js +6 -6
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverter.provider.js +11 -13
- package/dist/src/Modules/Inverters/Inverter.provider.js.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.provider.js +2 -2
- package/dist/src/Modules/Tanks/Tanks.provider.js.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.provider.js +26 -11
- package/dist/src/Modules/Vebus/Vebus.provider.js.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.store.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,3 +10,23 @@ To publish a new release:
|
|
|
10
10
|
|
|
11
11
|
1. Set the commit name according to the [commit message convention](https://semantic-release.gitbook.io/semantic-release/#commit-message-format)
|
|
12
12
|
2. Manually trigger the `Publish` action in Gitlab after merging your merge request
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Development
|
|
16
|
+
|
|
17
|
+
Required Node Version 18 LTS
|
|
18
|
+
|
|
19
|
+
### Setup
|
|
20
|
+
|
|
21
|
+
1. Clone this repository
|
|
22
|
+
2. Run `npm install` to install dependencies
|
|
23
|
+
3. Run `npm run build` to build the modules
|
|
24
|
+
|
|
25
|
+
### Use in the HTML5 app
|
|
26
|
+
|
|
27
|
+
1. Remove the version from npm: `npm remove @victronenergy/mfd-modules`
|
|
28
|
+
2. Run `npm link ../victron-mfd-modules`
|
|
29
|
+
2. Link React: `npm link react` (Prevents difference in React versions between the two projects)
|
|
30
|
+
3. Build the modules after every change
|
|
31
|
+
4. Run `npm unlink ../victron-mfd-modules` when you're done
|
|
32
|
+
5. Add back the version to npm: `npm add @victronenergy/mfd-modules`
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { useMqtt, useTopicsState, useTopicSubscriptions } from "../Mqtt";
|
|
1
|
+
import { useMqtt, useTopicsState, useTopicSubscriptions, } from "../Mqtt";
|
|
2
2
|
import { useVebusStore } from "../Vebus";
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
export function useAcLoads() {
|
|
5
|
-
var mqtt = useMqtt();
|
|
6
|
-
var vebusStore = useVebusStore();
|
|
7
5
|
var getTopics = function (portalId, instanceId) { return ({
|
|
8
6
|
phases: "N/" + portalId + "/system/0/Ac/Consumption/NumberOfPhases",
|
|
9
7
|
frequency: [
|
|
@@ -27,6 +25,8 @@ export function useAcLoads() {
|
|
|
27
25
|
"N/" + portalId + "/vebus/" + instanceId + "/Ac/Out/L3/P",
|
|
28
26
|
],
|
|
29
27
|
}); };
|
|
28
|
+
var mqtt = useMqtt();
|
|
29
|
+
var vebusStore = useVebusStore();
|
|
30
30
|
var topics = useMemo(function () { return getTopics(mqtt.portalId, vebusStore.instanceId); }, [mqtt.portalId, vebusStore.instanceId]);
|
|
31
31
|
useTopicSubscriptions(topics);
|
|
32
32
|
return useTopicsState(topics);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcLoads.provider.js","sourceRoot":"","sources":["../../../../src/Modules/AcLoads/AcLoads.provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AcLoads.provider.js","sourceRoot":"","sources":["../../../../src/Modules/AcLoads/AcLoads.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,cAAc,EACd,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAc,aAAa,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAkBhC,MAAM,UAAU,UAAU;IACxB,IAAM,SAAS,GAAG,UAAC,QAAkB,EAAE,UAAsB,IAAK,OAAA,CAAC;QACjE,MAAM,EAAE,OAAK,QAAQ,4CAAyC;QAC9D,SAAS,EAAE;YACT,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;SAChD;QACD,OAAO,EAAE;YACP,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;SAChD;QACD,OAAO,EAAE;YACP,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;SAChD;QACD,KAAK,EAAE;YACL,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;YAC/C,OAAK,QAAQ,eAAU,UAAU,iBAAc;SAChD;KACF,CAAC,EAtBgE,CAsBhE,CAAC;IAEH,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAM,MAAM,GAAG,OAAO,CACpB,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAA/C,CAA+C,EACrD,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CACvC,CAAC;IAEF,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO,cAAc,CAAe,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -9,9 +9,9 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { useMqtt, useTopicsState, useTopicSubscriptions } from "../Mqtt";
|
|
13
|
-
import { useVebusStore } from "../Vebus";
|
|
14
12
|
import { useMemo } from "react";
|
|
13
|
+
import { useMqtt, useTopicsState, useTopicSubscriptions, } from "../Mqtt";
|
|
14
|
+
import { useVebusStore } from "../Vebus";
|
|
15
15
|
export function useInverterCharger() {
|
|
16
16
|
var getTopics = function (portalId, deviceInstanceId) {
|
|
17
17
|
return {
|
|
@@ -22,14 +22,14 @@ export function useInverterCharger() {
|
|
|
22
22
|
modeIsAdjustable: "N/" + portalId + "/vebus/" + deviceInstanceId + "/ModeIsAdjustable",
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
+
var getWriteTopics = function (portalId, deviceInstanceId) { return ({
|
|
26
|
+
mode: "W/" + portalId + "/vebus/" + deviceInstanceId + "/Mode"
|
|
27
|
+
}); };
|
|
25
28
|
var mqtt = useMqtt();
|
|
26
29
|
var instanceId = useVebusStore().instanceId;
|
|
27
30
|
var topics = useMemo(function () { return getTopics(mqtt.portalId, instanceId); }, [mqtt.portalId, instanceId]);
|
|
28
|
-
useTopicSubscriptions(topics);
|
|
29
|
-
var getWriteTopics = function (portalId, deviceInstanceId) { return ({
|
|
30
|
-
mode: "W/" + portalId + "/vebus/" + deviceInstanceId + "/Mode",
|
|
31
|
-
}); };
|
|
32
31
|
var writeTopics = useMemo(function () { return getWriteTopics(mqtt.portalId, instanceId); }, [mqtt.portalId, instanceId]);
|
|
32
|
+
useTopicSubscriptions(topics);
|
|
33
33
|
var updateMode = function (mode) { return mqtt.publish(writeTopics.mode, mode); };
|
|
34
34
|
return __assign(__assign({}, useTopicsState(topics)), { updateMode: updateMode });
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InverterCharger.provider.js","sourceRoot":"","sources":["../../../../src/Modules/InverterCharger/InverterCharger.provider.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"InverterCharger.provider.js","sourceRoot":"","sources":["../../../../src/Modules/InverterCharger/InverterCharger.provider.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAGL,OAAO,EACP,cAAc,EACd,qBAAqB,GACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAc,aAAa,EAAE,MAAM,UAAU,CAAA;AAuBpD,MAAM,UAAU,kBAAkB;IAChC,IAAM,SAAS,GAAG,UAAC,QAAkB,EAAE,gBAA4B;QACjE,OAAO;YACL,KAAK,EAAE,OAAK,QAAQ,gCAA6B;YACjD,IAAI,EAAE,OAAK,QAAQ,eAAU,gBAAgB,UAAO;YACpD,UAAU,EAAE,OAAK,QAAQ,eAAU,gBAAgB,gBAAa;YAChE,WAAW,EAAE,OAAK,QAAQ,eAAU,gBAAgB,iBAAc;YAClE,gBAAgB,EAAE,OAAK,QAAQ,eAAU,gBAAgB,sBAAmB;SAC7E,CAAC;IACJ,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG,UAAC,QAAkB,EAAE,gBAA4B,IAAK,OAAA,CAAC;QAC5E,IAAI,EAAE,OAAK,QAAQ,eAAU,gBAAgB,UAAO;KACrD,CAAC,EAF2E,CAE3E,CAAC;IAEH,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACf,IAAA,UAAU,GAAK,aAAa,EAAE,WAApB,CAAqB;IAEvC,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAApC,CAAoC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAChG,IAAM,WAAW,GAAG,OAAO,CAAC,cAAM,OAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAzC,CAAyC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1G,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAM,UAAU,GAAG,UAAC,IAAY,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAArC,CAAqC,CAAC;IAE3E,6BACK,cAAc,CAAuB,MAAM,CAAC,KAC/C,UAAU,YAAA,IACX;AACH,CAAC"}
|
|
@@ -9,21 +9,19 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
import { useMqtt, useTopicsState, useTopicSubscriptions } from "../Mqtt";
|
|
12
|
+
import { useMqtt, useTopicsState, useTopicSubscriptions, } from "../Mqtt";
|
|
13
13
|
import { useMemo } from "react";
|
|
14
14
|
export function useInverter(instanceId, source) {
|
|
15
|
-
var getTopics = function (portalId, source, deviceInstanceId) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
};
|
|
15
|
+
var getTopics = function (portalId, source, deviceInstanceId) { return ({
|
|
16
|
+
state: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/State",
|
|
17
|
+
mode: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/Mode",
|
|
18
|
+
voltage: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/Ac/Out/L1/V",
|
|
19
|
+
current: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/Ac/Out/L1/I",
|
|
20
|
+
power: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/Ac/Out/L1/P",
|
|
21
|
+
customName: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/CustomName",
|
|
22
|
+
productName: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/ProductName",
|
|
23
|
+
nAcInputs: "N/" + portalId + "/" + source + "/" + deviceInstanceId + "/Ac/NumberOfAcInputs",
|
|
24
|
+
}); };
|
|
27
25
|
var mqtt = useMqtt();
|
|
28
26
|
var topics = useMemo(function () { return getTopics(mqtt.portalId, source, instanceId); }, [mqtt.portalId, source, instanceId]);
|
|
29
27
|
useTopicSubscriptions(topics);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inverter.provider.js","sourceRoot":"","sources":["../../../../src/Modules/Inverters/Inverter.provider.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Inverter.provider.js","sourceRoot":"","sources":["../../../../src/Modules/Inverters/Inverter.provider.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAGL,OAAO,EACP,cAAc,EACd,qBAAqB,GACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AA6BhC,MAAM,UAAU,WAAW,CACzB,UAA8B,EAC9B,MAAc;IAEd,IAAM,SAAS,GAAG,UAChB,QAAkB,EAClB,MAAc,EACd,gBAAoC,IACjC,OAAA,CAAC;QACJ,KAAK,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,WAAQ;QAC1D,IAAI,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,UAAO;QACxD,OAAO,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,iBAAc;QAClE,OAAO,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,iBAAc;QAClE,KAAK,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,iBAAc;QAChE,UAAU,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,gBAAa;QACpE,WAAW,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,iBAAc;QACtE,SAAS,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,yBAAsB;KAC7E,CAAC,EATG,CASH,CAAC;IAEH,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,IAAM,MAAM,GAAG,OAAO,CACpB,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAA5C,CAA4C,EAClD,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CACpC,CAAC;IAEF,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAM,cAAc,GAAG,UACrB,QAAkB,EAClB,MAAc,EACd,gBAAoC,IACjC,OAAA,CAAC;QACJ,IAAI,EAAE,OAAK,QAAQ,SAAI,MAAM,SAAI,gBAAgB,UAAO;KACzD,CAAC,EAFG,CAEH,CAAC;IAEH,IAAM,WAAW,GAAG,OAAO,CACzB,cAAM,OAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAjD,CAAiD,EACvD,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CACpC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,IAAY,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,IAAI,EAAE,IAAI,CAAC,EAArC,CAAqC,CAAC;IAE3E,OAAO,sBACF,cAAc,CAAgB,MAAM,CAAC,KACxC,UAAU,YAAA,GACS,CAAC;AACxB,CAAC"}
|
|
@@ -10,8 +10,8 @@ export var useTanks = function () {
|
|
|
10
10
|
var mqtt = useMqtt();
|
|
11
11
|
var topics = useMemo(function () { return getTopics(mqtt.portalId); }, [mqtt.portalId]);
|
|
12
12
|
useTopicSubscriptions(topics);
|
|
13
|
+
var messages = mqtt.messagesByWildcard(topics.tanks);
|
|
13
14
|
useEffect(function () {
|
|
14
|
-
var messages = mqtt.messagesByWildcard(topics.tanks);
|
|
15
15
|
if (!messages || Object.entries(messages).length === 0) {
|
|
16
16
|
Logger.log("Waiting for tanks...");
|
|
17
17
|
}
|
|
@@ -19,7 +19,7 @@ export var useTanks = function () {
|
|
|
19
19
|
var deviceInstances = Object.values(messages);
|
|
20
20
|
tanksStore.setTanks(deviceInstances);
|
|
21
21
|
}
|
|
22
|
-
}, [
|
|
22
|
+
}, [messages]);
|
|
23
23
|
var tanks = tanksStore.tanks;
|
|
24
24
|
return { tanks: tanks };
|
|
25
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tanks.provider.js","sourceRoot":"","sources":["../../../../src/Modules/Tanks/Tanks.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAY,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,EAAkB,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,CAAC,IAAM,QAAQ,GAAG;IACtB,IAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAElC,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,KAAK,EAAE,OAAK,QAAQ,2BAAwB;KAC7C,CAAC,EAFwC,CAExC,CAAA;IAEF,IAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAxB,CAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,
|
|
1
|
+
{"version":3,"file":"Tanks.provider.js","sourceRoot":"","sources":["../../../../src/Modules/Tanks/Tanks.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAY,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAClE,OAAO,EAAkB,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,CAAC,IAAM,QAAQ,GAAG;IACtB,IAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAElC,IAAM,SAAS,GAAG,UAAC,QAAkB,IAAK,OAAA,CAAC;QACzC,KAAK,EAAE,OAAK,QAAQ,2BAAwB;KAC7C,CAAC,EAFwC,CAExC,CAAA;IAEF,IAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAM,MAAM,GAAG,OAAO,CAAC,cAAM,OAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAxB,CAAwB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,qBAAqB,CAAC,MAAM,CAAC,CAAA;IAE7B,IAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEtD,SAAS,CAAC;QACR,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACtD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;SACnC;aAAM;YACL,IAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAqB,CAAA;YACnE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;SACrC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,IAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAE9B,OAAO,EAAE,KAAK,OAAA,EAAE,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import Logger from "../../utils/logger";
|
|
2
|
-
import { useMqtt, useTopicsState, useTopicSubscriptions } from "../Mqtt";
|
|
3
|
-
import { useVebusStore } from "./Vebus.store";
|
|
4
1
|
import { useEffect, useMemo } from "react";
|
|
5
2
|
import { runInAction, toJS, when } from "mobx";
|
|
6
3
|
import { isEqual } from "lodash-es";
|
|
4
|
+
import Logger from "../../utils/logger";
|
|
5
|
+
import { useMqtt, useTopicsState, useTopicSubscriptions, } from "../Mqtt";
|
|
6
|
+
import { useVebusStore, } from "./Vebus.store";
|
|
7
7
|
export var useVebus = function () {
|
|
8
8
|
var mqtt = useMqtt();
|
|
9
9
|
var vebusStore = useVebusStore();
|
|
@@ -12,9 +12,10 @@ export var useVebus = function () {
|
|
|
12
12
|
deviceInstances: "N/" + portalId + "/vebus/+/DeviceInstance",
|
|
13
13
|
}); };
|
|
14
14
|
var topics = useMemo(function () { return getTopics(portalId); }, [portalId]);
|
|
15
|
+
var messages = mqtt.messagesByWildcard(topics.deviceInstances);
|
|
15
16
|
useTopicSubscriptions(topics);
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
// Checks for old inverter paths, if not equal, set new path.
|
|
18
|
+
when(function () { return Object.entries(messages).length > 0; }, function () {
|
|
18
19
|
var deviceInstances = Object.values(messages);
|
|
19
20
|
var possibleInvertersPaths = deviceInstances.reduce(function (acc, id) {
|
|
20
21
|
acc[id] = "N/" + portalId + "/vebus/" + id + "/Ac/NumberOfAcInputs";
|
|
@@ -23,7 +24,9 @@ export var useVebus = function () {
|
|
|
23
24
|
var oldInvertersPaths = toJS(vebusStore.possibleInvertersPaths);
|
|
24
25
|
if (!isEqual(possibleInvertersPaths, oldInvertersPaths)) {
|
|
25
26
|
Logger.warn("Saving vebus inverters paths");
|
|
26
|
-
runInAction(function () {
|
|
27
|
+
runInAction(function () {
|
|
28
|
+
return vebusStore.setPossibleInvertersPaths(possibleInvertersPaths);
|
|
29
|
+
});
|
|
27
30
|
}
|
|
28
31
|
});
|
|
29
32
|
useTopicSubscriptions(vebusStore.possibleInvertersPaths);
|
|
@@ -31,11 +34,11 @@ export var useVebus = function () {
|
|
|
31
34
|
// set vebus instanceId (system with multiple inputs)
|
|
32
35
|
useEffect(function () {
|
|
33
36
|
Logger.warn("Setting vebus device instance");
|
|
34
|
-
// Sometimes "ghost" instances of devices linger in MQTT, so we need to select the highest (
|
|
37
|
+
// Sometimes "ghost" instances of devices linger in MQTT, so we need to select the highest (i.e. latest) instance ID
|
|
35
38
|
var multiInstances = Object.entries(subsMessages)
|
|
39
|
+
// Take only "Multi" devices -> must have more than one AcInput
|
|
36
40
|
.filter(function (_a) {
|
|
37
41
|
var _ = _a[0], nAcInputs = _a[1];
|
|
38
|
-
// Take only "Multi" devices -> must have more than one AcInput
|
|
39
42
|
return nAcInputs && parseInt(nAcInputs) !== 0;
|
|
40
43
|
})
|
|
41
44
|
.map(function (instance) { return parseInt(instance[0]); })
|
|
@@ -49,19 +52,31 @@ export var useVebus = function () {
|
|
|
49
52
|
// set vebus inverters
|
|
50
53
|
useEffect(function () {
|
|
51
54
|
Logger.warn("Setting vebus device inverters");
|
|
52
|
-
var vebusInverters = Object.entries(subsMessages)
|
|
55
|
+
var vebusInverters = Object.entries(subsMessages)
|
|
56
|
+
.filter(function (_a) {
|
|
53
57
|
var _ = _a[0], nAcInputs = _a[1];
|
|
54
58
|
return parseInt(nAcInputs) === 0;
|
|
55
|
-
})
|
|
59
|
+
})
|
|
60
|
+
.map(function (_a) {
|
|
56
61
|
var instance = _a[0];
|
|
57
62
|
return parseInt(instance);
|
|
58
63
|
});
|
|
59
64
|
var oldInverters = toJS(vebusStore.vebusInverters);
|
|
60
65
|
if (!isEqual(vebusInverters, oldInverters)) {
|
|
61
|
-
Logger.log("New VE.Bus device
|
|
66
|
+
Logger.log("New VE.Bus device inverters: " + JSON.stringify(vebusInverters));
|
|
62
67
|
vebusStore.setVebusInverters(vebusInverters);
|
|
63
68
|
}
|
|
64
69
|
}, [subsMessages]);
|
|
70
|
+
// Solves #337
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
if (!messages || Object.entries(messages).length === 0) {
|
|
73
|
+
Logger.log("Waiting for vebus inverters...");
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
var deviceInstances = Object.values(messages);
|
|
77
|
+
vebusStore.setVebusInverters(deviceInstances);
|
|
78
|
+
}
|
|
79
|
+
}, [messages]);
|
|
65
80
|
return vebusStore;
|
|
66
81
|
};
|
|
67
82
|
//# sourceMappingURL=Vebus.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vebus.provider.js","sourceRoot":"","sources":["../../../../src/Modules/Vebus/Vebus.provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Vebus.provider.js","sourceRoot":"","sources":["../../../../src/Modules/Vebus/Vebus.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vebus.store.js","sourceRoot":"","sources":["../../../../src/Modules/Vebus/Vebus.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Vebus.store.js","sourceRoot":"","sources":["../../../../src/Modules/Vebus/Vebus.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAiB,CAAA;AAUrB;IAKE;QAAA,iBAIC;QARD;;;;;WAAsB;QACtB;;;;;WAAkD;QAClD;;;;;WAA8B;QAQ9B;;;;mBAA4B,UAAC,sBAAkD,IAAK,OAAA,KAAI,CAAC,sBAAsB,GAAG,sBAAsB,EAApD,CAAoD;WAAC;QAEzI;;;;mBAAoB,UAAC,cAA8B,IAAK,OAAA,KAAI,CAAC,cAAc,GAAG,cAAc,EAApC,CAAoC;WAAC;QAE7F;;;;mBAAgB,UAAC,UAAsB,IAAK,OAAA,KAAI,CAAC,UAAU,GAAG,UAAU,EAA5B,CAA4B;WAAA;QATtE,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACxB,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAA;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;IAC1B,CAAC;IAOH,iBAAC;AAAD,CAAC,AAhBD,IAgBC;;AAED,SAAS,eAAe;IACtB,IAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,UAAU,EAAE,CAAA;IACxC,4CAA4C;IAC5C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,MAAM,CAAA;IAChD,sCAAsC;IACtC,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,MAAM,CAAA;IAE1B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,cAAM,OAAA,eAAe,EAAE,EAAjB,CAAiB,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC"}
|