@victronenergy/mfd-modules 10.4.2 → 11.1.0
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 +1 -1
- package/dist/src/Modules/AcLoads/AcLoads.provider.d.ts.map +1 -1
- package/dist/src/Modules/AcLoads/AcLoads.provider.js +19 -19
- package/dist/src/Modules/AcLoads/AcLoads.provider.js.map +1 -1
- package/dist/src/Modules/AcMode/AcMode.provider.d.ts.map +1 -1
- package/dist/src/Modules/AcMode/AcMode.provider.js +19 -31
- package/dist/src/Modules/AcMode/AcMode.provider.js.map +1 -1
- package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js +17 -17
- package/dist/src/Modules/ActiveSource/ActiveInValues.provider.js.map +1 -1
- package/dist/src/Modules/ActiveSource/ActiveSource.provider.js +11 -11
- package/dist/src/Modules/ActiveSource/ActiveSource.provider.js.map +1 -1
- package/dist/src/Modules/Alternators/Alternator.provider.d.ts.map +1 -1
- package/dist/src/Modules/Alternators/Alternator.provider.js +7 -8
- package/dist/src/Modules/Alternators/Alternator.provider.js.map +1 -1
- package/dist/src/Modules/Alternators/Alternators.provider.d.ts.map +1 -1
- package/dist/src/Modules/Alternators/Alternators.provider.js +16 -14
- package/dist/src/Modules/Alternators/Alternators.provider.js.map +1 -1
- package/dist/src/Modules/Alternators/Alternators.store.d.ts.map +1 -1
- package/dist/src/Modules/Alternators/Alternators.store.js +7 -10
- package/dist/src/Modules/Alternators/Alternators.store.js.map +1 -1
- package/dist/src/Modules/App/App.provider.js +47 -47
- package/dist/src/Modules/App/App.provider.js.map +1 -1
- package/dist/src/Modules/App/App.store.d.ts +2 -2
- package/dist/src/Modules/App/App.store.d.ts.map +1 -1
- package/dist/src/Modules/App/App.store.js +67 -110
- package/dist/src/Modules/App/App.store.js.map +1 -1
- package/dist/src/Modules/Battery/Batteries.provider.d.ts.map +1 -1
- package/dist/src/Modules/Battery/Batteries.provider.js +16 -14
- package/dist/src/Modules/Battery/Batteries.provider.js.map +1 -1
- package/dist/src/Modules/Battery/Batteries.store.d.ts.map +1 -1
- package/dist/src/Modules/Battery/Batteries.store.js +7 -10
- package/dist/src/Modules/Battery/Batteries.store.js.map +1 -1
- package/dist/src/Modules/Battery/SystemBatteries.provider.js +5 -5
- package/dist/src/Modules/Battery/SystemBatteries.provider.js.map +1 -1
- package/dist/src/Modules/Chargers/Charger.provider.js +23 -33
- package/dist/src/Modules/Chargers/Charger.provider.js.map +1 -1
- package/dist/src/Modules/Chargers/Chargers.provider.d.ts.map +1 -1
- package/dist/src/Modules/Chargers/Chargers.provider.js +16 -15
- package/dist/src/Modules/Chargers/Chargers.provider.js.map +1 -1
- package/dist/src/Modules/Chargers/Chargers.store.d.ts.map +1 -1
- package/dist/src/Modules/Chargers/Chargers.store.js +7 -10
- package/dist/src/Modules/Chargers/Chargers.store.js.map +1 -1
- package/dist/src/Modules/DcLoads/DcLoads.provider.d.ts.map +1 -1
- package/dist/src/Modules/DcLoads/DcLoads.provider.js +9 -20
- package/dist/src/Modules/DcLoads/DcLoads.provider.js.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGenset.provider.d.ts.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGenset.provider.js +36 -47
- package/dist/src/Modules/Generators/ConnectedGenset.provider.js.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGensets.provider.d.ts.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGensets.provider.js +16 -14
- package/dist/src/Modules/Generators/ConnectedGensets.provider.js.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGensets.store.d.ts.map +1 -1
- package/dist/src/Modules/Generators/ConnectedGensets.store.js +8 -11
- package/dist/src/Modules/Generators/ConnectedGensets.store.js.map +1 -1
- package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js +17 -27
- package/dist/src/Modules/Generators/GeneratorConnectedGenset.provider.js.map +1 -1
- package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts +2 -2
- package/dist/src/Modules/Generators/GeneratorRelay.provider.d.ts.map +1 -1
- package/dist/src/Modules/Generators/GeneratorRelay.provider.js +24 -34
- package/dist/src/Modules/Generators/GeneratorRelay.provider.js.map +1 -1
- package/dist/src/Modules/Header/Header.provider.js +4 -4
- package/dist/src/Modules/Header/Header.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InputLimit.provider.js +6 -17
- package/dist/src/Modules/InverterCharger/InputLimit.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.d.ts.map +1 -1
- package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js +12 -26
- package/dist/src/Modules/InverterCharger/InputLimitSelector.provider.js.map +1 -1
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.d.ts.map +1 -1
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.js +16 -27
- package/dist/src/Modules/InverterCharger/InverterCharger.provider.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverter.provider.d.ts.map +1 -1
- package/dist/src/Modules/Inverters/Inverter.provider.js +19 -30
- package/dist/src/Modules/Inverters/Inverter.provider.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverters.provider.d.ts.map +1 -1
- package/dist/src/Modules/Inverters/Inverters.provider.js +14 -13
- package/dist/src/Modules/Inverters/Inverters.provider.js.map +1 -1
- package/dist/src/Modules/Inverters/Inverters.store.d.ts.map +1 -1
- package/dist/src/Modules/Inverters/Inverters.store.js +7 -10
- package/dist/src/Modules/Inverters/Inverters.store.js.map +1 -1
- package/dist/src/Modules/Inverters/index.js.map +1 -1
- package/dist/src/Modules/Language/Language.provider.d.ts +1 -1
- package/dist/src/Modules/Language/Language.provider.d.ts.map +1 -1
- package/dist/src/Modules/Language/Language.provider.js +21 -56
- package/dist/src/Modules/Language/Language.provider.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.constants.js +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.constants.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts +2 -2
- package/dist/src/Modules/Mqtt/Mqtt.provider.d.ts.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.provider.js +4 -4
- package/dist/src/Modules/Mqtt/Mqtt.provider.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.store.d.ts +3 -3
- package/dist/src/Modules/Mqtt/Mqtt.store.d.ts.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.store.js +169 -193
- package/dist/src/Modules/Mqtt/Mqtt.store.js.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.types.d.ts +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.types.d.ts.map +1 -1
- package/dist/src/Modules/Mqtt/Mqtt.types.js +0 -1
- package/dist/src/Modules/Mqtt/Mqtt.types.js.map +1 -1
- package/dist/src/Modules/PvCharger/PvCharger.provider.js +8 -8
- package/dist/src/Modules/PvCharger/PvCharger.provider.js.map +1 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts +4 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.d.ts.map +1 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js +24 -35
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.provider.js.map +1 -1
- package/dist/src/Modules/ShorePowerInput/index.d.ts +0 -1
- package/dist/src/Modules/ShorePowerInput/index.d.ts.map +1 -1
- package/dist/src/Modules/ShorePowerInput/index.js +0 -1
- package/dist/src/Modules/ShorePowerInput/index.js.map +1 -1
- package/dist/src/Modules/SwitchingPane/GenericInput.provider.d.ts +27 -0
- package/dist/src/Modules/SwitchingPane/GenericInput.provider.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/GenericInput.provider.js +32 -0
- package/dist/src/Modules/SwitchingPane/GenericInput.provider.js.map +1 -0
- package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchableOutput.provider.d.ts +28 -9
- package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js +59 -0
- package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.js +48 -0
- package/dist/src/Modules/SwitchingPane/SwitchingDevice.provider.js.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingDevices.store.d.ts.map +1 -0
- package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevices.store.js +7 -10
- package/dist/src/Modules/SwitchingPane/SwitchingDevices.store.js.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.d.ts +2 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js +274 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts +53 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.store.js +178 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.store.js.map +1 -0
- package/dist/src/Modules/SwitchingPane/index.d.ts +7 -0
- package/dist/src/Modules/SwitchingPane/index.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/index.js +7 -0
- package/dist/src/Modules/SwitchingPane/index.js.map +1 -0
- package/dist/src/Modules/SystemState/SystemState.provider.js +5 -5
- package/dist/src/Modules/SystemState/SystemState.provider.js.map +1 -1
- package/dist/src/Modules/Tanks/Tank.provider.d.ts.map +1 -1
- package/dist/src/Modules/Tanks/Tank.provider.js +11 -11
- package/dist/src/Modules/Tanks/Tank.provider.js.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.provider.d.ts.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.provider.js +19 -18
- package/dist/src/Modules/Tanks/Tanks.provider.js.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.store.d.ts.map +1 -1
- package/dist/src/Modules/Tanks/Tanks.store.js +7 -10
- package/dist/src/Modules/Tanks/Tanks.store.js.map +1 -1
- package/dist/src/Modules/Temperatures/Temperature.provider.d.ts.map +1 -1
- package/dist/src/Modules/Temperatures/Temperature.provider.js +29 -29
- package/dist/src/Modules/Temperatures/Temperature.provider.js.map +1 -1
- package/dist/src/Modules/Temperatures/Temperatures.provider.d.ts.map +1 -1
- package/dist/src/Modules/Temperatures/Temperatures.provider.js +18 -17
- package/dist/src/Modules/Temperatures/Temperatures.provider.js.map +1 -1
- package/dist/src/Modules/Temperatures/Temperatures.store.d.ts.map +1 -1
- package/dist/src/Modules/Temperatures/Temperatures.store.js +7 -10
- package/dist/src/Modules/Temperatures/Temperatures.store.js.map +1 -1
- package/dist/src/Modules/Temperatures/index.d.ts +3 -3
- package/dist/src/Modules/Temperatures/index.js +3 -3
- package/dist/src/Modules/Temperatures/index.js.map +1 -1
- package/dist/src/Modules/Theme/Theme.provider.js +6 -6
- package/dist/src/Modules/Theme/Theme.provider.js.map +1 -1
- package/dist/src/Modules/Theme/Theme.store.d.ts.map +1 -1
- package/dist/src/Modules/Theme/Theme.store.js +35 -38
- package/dist/src/Modules/Theme/Theme.store.js.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.provider.d.ts.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.provider.js +39 -48
- package/dist/src/Modules/Vebus/Vebus.provider.js.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.store.d.ts.map +1 -1
- package/dist/src/Modules/Vebus/Vebus.store.js +11 -14
- package/dist/src/Modules/Vebus/Vebus.store.js.map +1 -1
- package/dist/src/Modules/Vrm/Vrm.store.d.ts.map +1 -1
- package/dist/src/Modules/Vrm/Vrm.store.js +85 -154
- package/dist/src/Modules/Vrm/Vrm.store.js.map +1 -1
- package/dist/src/Modules/Vrm/Vrm.types.js +0 -1
- package/dist/src/Modules/WindGenerators/WindGenerator.provider.d.ts.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerator.provider.js +6 -7
- package/dist/src/Modules/WindGenerators/WindGenerator.provider.js.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerators.provider.d.ts.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerators.provider.js +21 -19
- package/dist/src/Modules/WindGenerators/WindGenerators.provider.js.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerators.store.d.ts.map +1 -1
- package/dist/src/Modules/WindGenerators/WindGenerators.store.js +7 -10
- package/dist/src/Modules/WindGenerators/WindGenerators.store.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/constants.d.ts +57 -3
- package/dist/src/utils/constants.d.ts.map +1 -1
- package/dist/src/utils/constants.js +86 -30
- package/dist/src/utils/constants.js.map +1 -1
- package/dist/src/utils/hsvw.d.ts.map +1 -1
- package/dist/src/utils/hsvw.js +24 -25
- package/dist/src/utils/hsvw.js.map +1 -1
- package/dist/src/utils/logger.d.ts +5 -8
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js +11 -23
- package/dist/src/utils/logger.js.map +1 -1
- package/dist/src/utils/storage.d.ts.map +1 -1
- package/dist/src/utils/storage.js +7 -6
- package/dist/src/utils/storage.js.map +1 -1
- package/dist/src/utils/util.d.ts +6 -15
- package/dist/src/utils/util.d.ts.map +1 -1
- package/dist/src/utils/util.js +8 -100
- package/dist/src/utils/util.js.map +1 -1
- package/package.json +26 -15
- package/dist/eslint.config.d.mts +0 -13
- package/dist/eslint.config.d.mts.map +0 -1
- package/dist/eslint.config.mjs +0 -28
- package/dist/eslint.config.mjs.map +0 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts +0 -11
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.d.ts.map +0 -1
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js +0 -37
- package/dist/src/Modules/ShorePowerInput/ShorePowerInput.store.js.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.d.ts.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.js +0 -67
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutput.provider.js.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.d.ts +0 -2
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.d.ts.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.js +0 -168
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.provider.js.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.d.ts +0 -38
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.d.ts.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.js +0 -116
- package/dist/src/Modules/SwitchableOutputs/SwitchableOutputs.store.js.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.d.ts.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.js +0 -50
- package/dist/src/Modules/SwitchableOutputs/SwitchingDevice.provider.js.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchingDevices.store.d.ts.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/SwitchingDevices.store.js.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/index.d.ts +0 -6
- package/dist/src/Modules/SwitchableOutputs/index.d.ts.map +0 -1
- package/dist/src/Modules/SwitchableOutputs/index.js +0 -6
- package/dist/src/Modules/SwitchableOutputs/index.js.map +0 -1
- /package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevice.provider.d.ts +0 -0
- /package/dist/src/Modules/{SwitchableOutputs → SwitchingPane}/SwitchingDevices.store.d.ts +0 -0
|
@@ -3,25 +3,27 @@ import { useEffect, useMemo } from "react";
|
|
|
3
3
|
import { useMqtt } from "../Mqtt";
|
|
4
4
|
import { useConnectedGensetsStore } from "./ConnectedGensets.store";
|
|
5
5
|
import { ConnectedGensetType } from "./ConnectedGenset.provider";
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
gensetInstances:
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
useEffect(
|
|
6
|
+
export const useConnectedGensets = (gensetType) => {
|
|
7
|
+
const store = useConnectedGensetsStore();
|
|
8
|
+
const mqtt = useMqtt();
|
|
9
|
+
const getTopics = (portalId, gensetType) => ({
|
|
10
|
+
gensetInstances: `N/${portalId}/${gensetType}/+/DeviceInstance`,
|
|
11
|
+
});
|
|
12
|
+
const topics = useMemo(() => getTopics(mqtt.portalId, gensetType), [mqtt.portalId, gensetType]);
|
|
13
|
+
const messages = mqtt.messagesByWildcard(topics.gensetInstances);
|
|
14
|
+
useEffect(() => {
|
|
15
15
|
if (!messages || Object.entries(messages).length === 0) {
|
|
16
16
|
// Logger.log(`Waiting for ${gensetType}s...`);
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const gensets = gensetType === ConnectedGensetType.ACGENSET ? store.acGensets : store.dcGensets;
|
|
20
|
+
const deviceInstances = Object.values(messages).sort();
|
|
21
21
|
// TODO: check unordered structural identify of old and new state
|
|
22
22
|
// TODO: to avoid unnecessary re-rendering: O(n^2) baby
|
|
23
|
-
if (!
|
|
24
|
-
|
|
23
|
+
if (!gensets ||
|
|
24
|
+
gensets.length !== deviceInstances.length ||
|
|
25
|
+
!deviceInstances.every((id) => gensets.includes(id))) {
|
|
26
|
+
Logger.log(`New ${gensetType}s instances: ${JSON.stringify(deviceInstances)}`);
|
|
25
27
|
switch (gensetType) {
|
|
26
28
|
case ConnectedGensetType.ACGENSET:
|
|
27
29
|
store.setACGensets(deviceInstances);
|
|
@@ -32,7 +34,7 @@ export var useConnectedGensets = function (gensetType) {
|
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
|
-
}, [messages]);
|
|
37
|
+
}, [messages, gensetType, store]);
|
|
36
38
|
return store;
|
|
37
39
|
};
|
|
38
40
|
//# sourceMappingURL=ConnectedGensets.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedGensets.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"ConnectedGensets.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAY,OAAO,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAqB,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAA+B,EAAE,EAAE;IACrE,MAAM,KAAK,GAAG,wBAAwB,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,UAA+B,EAAE,EAAE,CAAC,CAAC;QAC1E,eAAe,EAAE,KAAK,QAAQ,IAAI,UAAU,mBAAmB;KAChE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE/F,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAEhE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,+CAA+C;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,UAAU,KAAK,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAA;YAC/F,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAyB,CAAA;YAC7E,iEAAiE;YACjE,uDAAuD;YACvD,IACE,CAAC,OAAO;gBACR,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;gBACzC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACpD,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,OAAO,UAAU,gBAAgB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;gBAC9E,QAAQ,UAAU,EAAE,CAAC;oBACnB,KAAK,mBAAmB,CAAC,QAAQ;wBAC/B,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;wBACnC,MAAK;oBACP,KAAK,mBAAmB,CAAC,QAAQ;wBAC/B,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;wBACnC,MAAK;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjC,OAAO,KAAK,CAAA;AACd,CAAC,CAAA","sourcesContent":["import Logger from \"../../utils/logger\"\nimport { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { useConnectedGensetsStore } from \"./ConnectedGensets.store\"\nimport { ConnectedGensetId, ConnectedGensetType } from \"./ConnectedGenset.provider\"\n\nexport const useConnectedGensets = (gensetType: ConnectedGensetType) => {\n const store = useConnectedGensetsStore()\n const mqtt = useMqtt()\n\n const getTopics = (portalId: PortalId, gensetType: ConnectedGensetType) => ({\n gensetInstances: `N/${portalId}/${gensetType}/+/DeviceInstance`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId, gensetType), [mqtt.portalId, gensetType])\n\n const messages = mqtt.messagesByWildcard(topics.gensetInstances)\n\n useEffect(() => {\n if (!messages || Object.entries(messages).length === 0) {\n // Logger.log(`Waiting for ${gensetType}s...`);\n } else {\n const gensets = gensetType === ConnectedGensetType.ACGENSET ? store.acGensets : store.dcGensets\n const deviceInstances = Object.values(messages).sort() as ConnectedGensetId[]\n // TODO: check unordered structural identify of old and new state\n // TODO: to avoid unnecessary re-rendering: O(n^2) baby\n if (\n !gensets ||\n gensets.length !== deviceInstances.length ||\n !deviceInstances.every((id) => gensets.includes(id))\n ) {\n Logger.log(`New ${gensetType}s instances: ${JSON.stringify(deviceInstances)}`)\n switch (gensetType) {\n case ConnectedGensetType.ACGENSET:\n store.setACGensets(deviceInstances)\n break\n case ConnectedGensetType.DCGENSET:\n store.setDCGensets(deviceInstances)\n break\n }\n }\n }\n }, [messages, gensetType, store])\n\n return store\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedGensets.store.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAI9D,qBAAa,gBAAgB;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAK;IACnC,SAAS,EAAE,iBAAiB,EAAE,CAAK;;IAMnC,YAAY,GAAI,SAAS,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"ConnectedGensets.store.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAI9D,qBAAa,gBAAgB;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAK;IACnC,SAAS,EAAE,iBAAiB,EAAE,CAAK;;IAMnC,YAAY,GAAI,SAAS,iBAAiB,EAAE,yBAA+B;IAE3E,YAAY,GAAI,SAAS,iBAAiB,EAAE,yBAA+B;CAC5E;AAYD,wBAAgB,wBAAwB,qBAEvC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { action, makeAutoObservable } from "mobx";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _this = this;
|
|
3
|
+
let store;
|
|
4
|
+
export class ConnectedGensets {
|
|
5
|
+
constructor() {
|
|
7
6
|
Object.defineProperty(this, "acGensets", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
configurable: true,
|
|
@@ -20,21 +19,19 @@ var ConnectedGensets = /** @class */ (function () {
|
|
|
20
19
|
enumerable: true,
|
|
21
20
|
configurable: true,
|
|
22
21
|
writable: true,
|
|
23
|
-
value:
|
|
22
|
+
value: (gensets) => (this.acGensets = gensets)
|
|
24
23
|
});
|
|
25
24
|
Object.defineProperty(this, "setDCGensets", {
|
|
26
25
|
enumerable: true,
|
|
27
26
|
configurable: true,
|
|
28
27
|
writable: true,
|
|
29
|
-
value:
|
|
28
|
+
value: (gensets) => (this.dcGensets = gensets)
|
|
30
29
|
});
|
|
31
30
|
makeAutoObservable(this, { setACGensets: action, setDCGensets: action });
|
|
32
31
|
}
|
|
33
|
-
|
|
34
|
-
}());
|
|
35
|
-
export { ConnectedGensets };
|
|
32
|
+
}
|
|
36
33
|
function initializeStore() {
|
|
37
|
-
|
|
34
|
+
const _store = store !== null && store !== void 0 ? store : new ConnectedGensets();
|
|
38
35
|
// For SSG and SSR always create a new store
|
|
39
36
|
if (typeof window === "undefined")
|
|
40
37
|
return _store;
|
|
@@ -44,6 +41,6 @@ function initializeStore() {
|
|
|
44
41
|
return _store;
|
|
45
42
|
}
|
|
46
43
|
export function useConnectedGensetsStore() {
|
|
47
|
-
return useMemo(
|
|
44
|
+
return useMemo(() => initializeStore(), []);
|
|
48
45
|
}
|
|
49
46
|
//# sourceMappingURL=ConnectedGensets.store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedGensets.store.js","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG/B,IAAI,KAAuB,CAAA;AAE3B;
|
|
1
|
+
{"version":3,"file":"ConnectedGensets.store.js","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG/B,IAAI,KAAuB,CAAA;AAE3B,MAAM,OAAO,gBAAgB;IAI3B;QAHA;;;;mBAAiC,EAAE;WAAA;QACnC;;;;mBAAiC,EAAE;WAAA;QAMnC;;;;mBAAe,CAAC,OAA4B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;WAAA;QAE3E;;;;mBAAe,CAAC,OAA4B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;WAAA;QALzE,kBAAkB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;CAKF;AAED,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,gBAAgB,EAAE,CAAA;IAC9C,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,wBAAwB;IACtC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\nimport { ConnectedGensetId } from \"./ConnectedGenset.provider\"\n\nlet store: ConnectedGensets\n\nexport class ConnectedGensets {\n acGensets: ConnectedGensetId[] = []\n dcGensets: ConnectedGensetId[] = []\n\n constructor() {\n makeAutoObservable(this, { setACGensets: action, setDCGensets: action })\n }\n\n setACGensets = (gensets: ConnectedGensetId[]) => (this.acGensets = gensets)\n\n setDCGensets = (gensets: ConnectedGensetId[]) => (this.dcGensets = gensets)\n}\n\nfunction initializeStore() {\n const _store = store ?? new ConnectedGensets()\n // For SSG and SSR always create a new store\n if (typeof window === \"undefined\") return _store\n // Create the store once in the client\n if (!store) store = _store\n\n return _store\n}\n\nexport function useConnectedGensetsStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
|
|
@@ -1,36 +1,26 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
13
2
|
import { useMemo } from "react";
|
|
14
3
|
import { useConnectedGenset } from "./ConnectedGenset.provider";
|
|
15
4
|
export function useGeneratorConnectedGenset() {
|
|
16
|
-
|
|
5
|
+
const getTopics = (portalId) => {
|
|
17
6
|
return {
|
|
18
|
-
gensetType:
|
|
19
|
-
gensetInstance:
|
|
20
|
-
autoStartEnabled:
|
|
7
|
+
gensetType: `N/${portalId}/generator/1/GensetServiceType`,
|
|
8
|
+
gensetInstance: `N/${portalId}/generator/1/GensetInstance`,
|
|
9
|
+
autoStartEnabled: `N/${portalId}/generator/1/AutoStartEnabled`,
|
|
21
10
|
};
|
|
22
11
|
};
|
|
23
|
-
|
|
24
|
-
autoMode:
|
|
25
|
-
manualMode:
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return
|
|
12
|
+
const getWriteTopics = (portalId) => ({
|
|
13
|
+
autoMode: `W/${portalId}/generator/1/AutoStartEnabled`,
|
|
14
|
+
manualMode: `W/${portalId}/generator/1/ManualStart`,
|
|
15
|
+
});
|
|
16
|
+
const mqtt = useMqtt();
|
|
17
|
+
const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
|
|
18
|
+
const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId), [mqtt.portalId]);
|
|
19
|
+
const updateAutoMode = (mode) => mqtt.publish(writeTopics.autoMode, mode);
|
|
20
|
+
const updateManualMode = (currentLimit) => mqtt.publish(writeTopics.manualMode, currentLimit);
|
|
21
|
+
const generatorState = useTopicsState(topics);
|
|
22
|
+
const gensetState = useConnectedGenset(generatorState.gensetType, generatorState.gensetInstance);
|
|
23
|
+
return Object.assign(Object.assign({}, generatorState), { gensetState: gensetState, updateAutoMode,
|
|
24
|
+
updateManualMode });
|
|
35
25
|
}
|
|
36
26
|
//# sourceMappingURL=GeneratorConnectedGenset.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneratorConnectedGenset.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/GeneratorConnectedGenset.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GeneratorConnectedGenset.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/GeneratorConnectedGenset.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAA6C,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAoB1G,MAAM,UAAU,2BAA2B;IACzC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE;QACvC,OAAO;YACL,UAAU,EAAE,KAAK,QAAQ,gCAAgC;YACzD,cAAc,EAAE,KAAK,QAAQ,6BAA6B;YAC1D,gBAAgB,EAAE,KAAK,QAAQ,+BAA+B;SAC/D,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QAC9C,QAAQ,EAAE,KAAK,QAAQ,+BAA+B;QACtD,UAAU,EAAE,KAAK,QAAQ,0BAA0B;KACpD,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEjF,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACjF,MAAM,gBAAgB,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAErG,MAAM,cAAc,GAAG,cAAc,CAAgC,MAAM,CAAC,CAAA;IAC5E,MAAM,WAAW,GAAG,kBAAkB,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAEhG,OAAO,gCACF,cAAc,KACjB,WAAW,EAAE,WAAW,EACxB,cAAc;QACd,gBAAgB,GACmB,CAAA;AACvC,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\nimport { ConnectedGensetState, ConnectedGensetType, useConnectedGenset } from \"./ConnectedGenset.provider\"\n\nexport interface GeneratorConnectedGensetState {\n gensetType: ConnectedGensetType\n gensetInstance: number\n autoStartEnabled: number\n gensetState: ConnectedGensetState\n}\n\nexport interface GeneratorConnectedGensetTopics extends Topics {\n gensetType?: string\n gensetInstance?: string\n autoStartEnabled?: string\n}\n\nexport interface GeneratorConnectedGensetProvider extends GeneratorConnectedGensetState {\n updateAutoMode: (mode: number) => void\n updateManualMode: (currentLimit: number) => void\n}\n\nexport function useGeneratorConnectedGenset(): GeneratorConnectedGensetProvider {\n const getTopics = (portalId: PortalId) => {\n return {\n gensetType: `N/${portalId}/generator/1/GensetServiceType`,\n gensetInstance: `N/${portalId}/generator/1/GensetInstance`,\n autoStartEnabled: `N/${portalId}/generator/1/AutoStartEnabled`,\n }\n }\n\n const getWriteTopics = (portalId: PortalId) => ({\n autoMode: `W/${portalId}/generator/1/AutoStartEnabled`,\n manualMode: `W/${portalId}/generator/1/ManualStart`,\n })\n\n const mqtt = useMqtt()\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId), [mqtt.portalId])\n\n const updateAutoMode = (mode: number) => mqtt.publish(writeTopics.autoMode, mode)\n const updateManualMode = (currentLimit: number) => mqtt.publish(writeTopics.manualMode, currentLimit)\n\n const generatorState = useTopicsState<GeneratorConnectedGensetState>(topics)\n const gensetState = useConnectedGenset(generatorState.gensetType, generatorState.gensetInstance)\n\n return {\n ...generatorState,\n gensetState: gensetState,\n updateAutoMode,\n updateManualMode,\n } as GeneratorConnectedGensetProvider\n}\n"]}
|
|
@@ -18,8 +18,8 @@ export interface GeneratorRelayTopics extends Topics {
|
|
|
18
18
|
settings?: string[];
|
|
19
19
|
}
|
|
20
20
|
export interface GeneratorRelayProvider extends GeneratorRelayState {
|
|
21
|
-
updateAutoMode: () => void;
|
|
22
|
-
updateManualMode: () => void;
|
|
21
|
+
updateAutoMode: (mode: number) => void;
|
|
22
|
+
updateManualMode: (mode: number) => void;
|
|
23
23
|
}
|
|
24
24
|
export declare function useGeneratorRelay(): GeneratorRelayProvider;
|
|
25
25
|
//# sourceMappingURL=GeneratorRelay.provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneratorRelay.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/GeneratorRelay.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAInE,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,oBAAqB,SAAQ,MAAM;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,cAAc,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"GeneratorRelay.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/GeneratorRelay.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAInE,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,oBAAqB,SAAQ,MAAM;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED,wBAAgB,iBAAiB,IAAI,sBAAsB,CAwC1D"}
|
|
@@ -1,45 +1,35 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
13
2
|
import { useVebusStore } from "../Vebus";
|
|
14
3
|
import { useMemo } from "react";
|
|
15
4
|
export function useGeneratorRelay() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
relayFunction:
|
|
19
|
-
statusCode:
|
|
20
|
-
manualStart:
|
|
21
|
-
autoStart:
|
|
5
|
+
const getTopics = (portalId, vebusInstanceId) => {
|
|
6
|
+
const relayTopics = {
|
|
7
|
+
relayFunction: `N/${portalId}/settings/0/Settings/Relay/Function`,
|
|
8
|
+
statusCode: `N/${portalId}/generator/0/State`,
|
|
9
|
+
manualStart: `N/${portalId}/generator/0/ManualStart`,
|
|
10
|
+
autoStart: `N/${portalId}/generator/0/AutoStartEnabled`,
|
|
22
11
|
};
|
|
23
|
-
|
|
24
|
-
activeInput:
|
|
25
|
-
phases:
|
|
12
|
+
const vebusTopics = {
|
|
13
|
+
activeInput: `N/${portalId}/vebus/${vebusInstanceId}/Ac/ActiveIn/ActiveInput`,
|
|
14
|
+
phases: `N/${portalId}/vebus/${vebusInstanceId}/Ac/NumberOfPhases`,
|
|
26
15
|
settings: [
|
|
27
|
-
|
|
28
|
-
|
|
16
|
+
`N/${portalId}/settings/0/Settings/SystemSetup/AcInput1`,
|
|
17
|
+
`N/${portalId}/settings/0/Settings/SystemSetup/AcInput2`,
|
|
29
18
|
],
|
|
30
19
|
};
|
|
31
|
-
return vebusInstanceId ?
|
|
20
|
+
return vebusInstanceId ? Object.assign(Object.assign({}, relayTopics), vebusTopics) : relayTopics;
|
|
32
21
|
};
|
|
33
|
-
|
|
34
|
-
autoMode:
|
|
35
|
-
manualMode:
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return
|
|
22
|
+
const getWriteTopics = (portalId) => ({
|
|
23
|
+
autoMode: `W/${portalId}/generator/0/AutoStartEnabled`,
|
|
24
|
+
manualMode: `W/${portalId}/generator/0/ManualStart`,
|
|
25
|
+
});
|
|
26
|
+
const { instanceId } = useVebusStore();
|
|
27
|
+
const mqtt = useMqtt();
|
|
28
|
+
const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId), [mqtt.portalId]);
|
|
29
|
+
const topics = useMemo(() => getTopics(mqtt.portalId, instanceId), [mqtt.portalId, instanceId]);
|
|
30
|
+
const updateAutoMode = (mode) => mqtt.publish(writeTopics.autoMode, mode);
|
|
31
|
+
const updateManualMode = (mode) => mqtt.publish(writeTopics.manualMode, mode);
|
|
32
|
+
return Object.assign(Object.assign({}, useTopicsState(topics)), { updateAutoMode,
|
|
33
|
+
updateManualMode });
|
|
44
34
|
}
|
|
45
35
|
//# sourceMappingURL=GeneratorRelay.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeneratorRelay.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/GeneratorRelay.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GeneratorRelay.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/GeneratorRelay.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAc,aAAa,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AA6B/B,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,eAA2B,EAAE,EAAE;QACpE,MAAM,WAAW,GAAG;YAClB,aAAa,EAAE,KAAK,QAAQ,qCAAqC;YACjE,UAAU,EAAE,KAAK,QAAQ,oBAAoB;YAC7C,WAAW,EAAE,KAAK,QAAQ,0BAA0B;YACpD,SAAS,EAAE,KAAK,QAAQ,+BAA+B;SACxD,CAAA;QAED,MAAM,WAAW,GAAG;YAClB,WAAW,EAAE,KAAK,QAAQ,UAAU,eAAe,0BAA0B;YAC7E,MAAM,EAAE,KAAK,QAAQ,UAAU,eAAe,oBAAoB;YAClE,QAAQ,EAAE;gBACR,KAAK,QAAQ,2CAA2C;gBACxD,KAAK,QAAQ,2CAA2C;aACzD;SACF,CAAA;QAED,OAAO,eAAe,CAAC,CAAC,iCAAM,WAAW,GAAK,WAAW,EAAG,CAAC,CAAC,WAAW,CAAA;IAC3E,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QAC9C,QAAQ,EAAE,KAAK,QAAQ,+BAA+B;QACtD,UAAU,EAAE,KAAK,QAAQ,0BAA0B;KACpD,CAAC,CAAA;IAEF,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAA;IACtC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE/F,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACjF,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAErF,OAAO,gCACF,cAAc,CAAsB,MAAM,CAAC,KAC9C,cAAc;QACd,gBAAgB,GACS,CAAA;AAC7B,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { InstanceId, useVebusStore } from \"../Vebus\"\nimport { useMemo } from \"react\"\n\nexport interface GeneratorRelayState {\n relayFunction: number\n statusCode: number\n manualStart: number\n autoStart: number\n\n activeInput?: number\n phases?: number\n settings?: number[]\n}\n\nexport interface GeneratorRelayTopics extends Topics {\n relayFunction?: string\n statusCode?: string\n manualStart?: string\n autoStart?: string\n\n activeInput?: string\n phases?: string\n settings?: string[]\n}\n\nexport interface GeneratorRelayProvider extends GeneratorRelayState {\n updateAutoMode: (mode: number) => void\n updateManualMode: (mode: number) => void\n}\n\nexport function useGeneratorRelay(): GeneratorRelayProvider {\n const getTopics = (portalId: PortalId, vebusInstanceId: InstanceId) => {\n const relayTopics = {\n relayFunction: `N/${portalId}/settings/0/Settings/Relay/Function`,\n statusCode: `N/${portalId}/generator/0/State`,\n manualStart: `N/${portalId}/generator/0/ManualStart`,\n autoStart: `N/${portalId}/generator/0/AutoStartEnabled`,\n }\n\n const vebusTopics = {\n activeInput: `N/${portalId}/vebus/${vebusInstanceId}/Ac/ActiveIn/ActiveInput`,\n phases: `N/${portalId}/vebus/${vebusInstanceId}/Ac/NumberOfPhases`,\n settings: [\n `N/${portalId}/settings/0/Settings/SystemSetup/AcInput1`,\n `N/${portalId}/settings/0/Settings/SystemSetup/AcInput2`,\n ],\n }\n\n return vebusInstanceId ? { ...relayTopics, ...vebusTopics } : relayTopics\n }\n\n const getWriteTopics = (portalId: PortalId) => ({\n autoMode: `W/${portalId}/generator/0/AutoStartEnabled`,\n manualMode: `W/${portalId}/generator/0/ManualStart`,\n })\n\n const { instanceId } = useVebusStore()\n const mqtt = useMqtt()\n\n const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId), [mqtt.portalId])\n const topics = useMemo(() => getTopics(mqtt.portalId, instanceId), [mqtt.portalId, instanceId])\n\n const updateAutoMode = (mode: number) => mqtt.publish(writeTopics.autoMode, mode)\n const updateManualMode = (mode: number) => mqtt.publish(writeTopics.manualMode, mode)\n\n return {\n ...useTopicsState<GeneratorRelayState>(topics),\n updateAutoMode,\n updateManualMode,\n } as GeneratorRelayProvider\n}\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
export function useHeader() {
|
|
4
|
-
|
|
4
|
+
const getTopics = (portalId) => {
|
|
5
5
|
return {
|
|
6
|
-
showRemoteConsoleSetting:
|
|
6
|
+
showRemoteConsoleSetting: `N/${portalId}/settings/0/Settings/System/VncLocal`,
|
|
7
7
|
};
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const mqtt = useMqtt();
|
|
10
|
+
const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
|
|
11
11
|
return useTopicsState(topics);
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=Header.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.provider.js","sourceRoot":"/","sources":["src/Modules/Header/Header.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAU/B,MAAM,UAAU,SAAS;IACvB,
|
|
1
|
+
{"version":3,"file":"Header.provider.js","sourceRoot":"/","sources":["src/Modules/Header/Header.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAU/B,MAAM,UAAU,SAAS;IACvB,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE;QACvC,OAAO;YACL,wBAAwB,EAAE,KAAK,QAAQ,sCAAsC;SAC9E,CAAA;IACH,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,OAAO,cAAc,CAAc,MAAM,CAAC,CAAA;AAC5C,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface HeaderState {\n showRemoteConsoleSetting: boolean\n}\n\nexport interface HeaderTopics extends Topics {\n showRemoteConsoleSetting?: string\n}\n\nexport function useHeader(): HeaderState {\n const getTopics = (portalId: PortalId) => {\n return {\n showRemoteConsoleSetting: `N/${portalId}/settings/0/Settings/System/VncLocal`,\n }\n }\n\n const mqtt = useMqtt()\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n return useTopicsState<HeaderState>(topics)\n}\n"]}
|
|
@@ -1,25 +1,14 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
13
2
|
import { useMemo } from "react";
|
|
14
3
|
export function useInputLimit(instanceId, inputId) {
|
|
15
|
-
|
|
4
|
+
const getTopics = (portalId, deviceInstanceId, inputId) => {
|
|
16
5
|
return {
|
|
17
|
-
currentLimit:
|
|
18
|
-
currentLimitIsAdjustable:
|
|
6
|
+
currentLimit: `N/${portalId}/vebus/${deviceInstanceId}/Ac/In/${inputId}/CurrentLimit`,
|
|
7
|
+
currentLimitIsAdjustable: `N/${portalId}/vebus/${deviceInstanceId}/Ac/In/${inputId}/CurrentLimitIsAdjustable`,
|
|
19
8
|
};
|
|
20
9
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return
|
|
10
|
+
const mqtt = useMqtt();
|
|
11
|
+
const topics = useMemo(() => getTopics(mqtt.portalId, instanceId, inputId), [mqtt.portalId, instanceId, inputId]);
|
|
12
|
+
return Object.assign({}, useTopicsState(topics));
|
|
24
13
|
}
|
|
25
14
|
//# sourceMappingURL=InputLimit.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputLimit.provider.js","sourceRoot":"/","sources":["src/Modules/InverterCharger/InputLimit.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputLimit.provider.js","sourceRoot":"/","sources":["src/Modules/InverterCharger/InputLimit.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAY/B,MAAM,UAAU,aAAa,CAAC,UAAsB,EAAE,OAAe;IACnE,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,gBAA4B,EAAE,OAAe,EAAE,EAAE;QACtF,OAAO;YACL,YAAY,EAAE,KAAK,QAAQ,UAAU,gBAAgB,UAAU,OAAO,eAAe;YACrF,wBAAwB,EAAE,KAAK,QAAQ,UAAU,gBAAgB,UAAU,OAAO,2BAA2B;SAC9G,CAAA;IACH,CAAC,CAAA;IAED,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IAEjH,yBAAY,cAAc,CAAkB,MAAM,CAAC,EAAE;AACvD,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { InstanceId } from \"../Vebus\"\nimport { useMemo } from \"react\"\n\nexport interface InputLimitState {\n currentLimit: string\n currentLimitIsAdjustable: boolean\n}\n\nexport interface InputLimitTopics extends Topics {\n currentLimit?: string\n currentLimitIsAdjustable?: string\n}\n\nexport function useInputLimit(instanceId: InstanceId, inputId: number): InputLimitState {\n const getTopics = (portalId: PortalId, deviceInstanceId: InstanceId, inputId: number) => {\n return {\n currentLimit: `N/${portalId}/vebus/${deviceInstanceId}/Ac/In/${inputId}/CurrentLimit`,\n currentLimitIsAdjustable: `N/${portalId}/vebus/${deviceInstanceId}/Ac/In/${inputId}/CurrentLimitIsAdjustable`,\n }\n }\n\n const mqtt = useMqtt()\n const topics = useMemo(() => getTopics(mqtt.portalId, instanceId, inputId), [mqtt.portalId, instanceId, inputId])\n\n return { ...useTopicsState<InputLimitState>(topics) }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputLimitSelector.provider.d.ts","sourceRoot":"/","sources":["src/Modules/InverterCharger/InputLimitSelector.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"InputLimitSelector.provider.d.ts","sourceRoot":"/","sources":["src/Modules/InverterCharger/InputLimitSelector.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAGrC,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,wBAAyB,SAAQ,MAAM;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAuBzG"}
|
|
@@ -1,31 +1,17 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
13
2
|
import { useMemo } from "react";
|
|
14
3
|
export function useInputLimitSelector(instanceId, inputId) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
})
|
|
27
|
-
var writeTopics = useMemo(function () { return getWriteTopics(mqtt.portalId, instanceId, inputId); }, [mqtt.portalId, instanceId, inputId]);
|
|
28
|
-
var updateLimit = function (limit) { return mqtt.publish(writeTopics.limit, limit); };
|
|
29
|
-
return __assign(__assign({}, useTopicsState(topics)), { updateLimit: updateLimit });
|
|
4
|
+
const mqtt = useMqtt();
|
|
5
|
+
const topics = useMemo(() => ({
|
|
6
|
+
currentLimit: `N/${mqtt.portalId}/vebus/${instanceId}/Ac/In/${inputId}/CurrentLimit`,
|
|
7
|
+
currentLimitMax: `N/${mqtt.portalId}/vebus/${instanceId}/Ac/In/${inputId}/CurrentLimitGetMax`,
|
|
8
|
+
productId: `N/${mqtt.portalId}/vebus/${instanceId}/ProductId`,
|
|
9
|
+
}), [mqtt.portalId, instanceId, inputId]);
|
|
10
|
+
const getWriteTopics = (portalId, deviceInstanceId, inputId) => ({
|
|
11
|
+
limit: `W/${portalId}/vebus/${deviceInstanceId}/Ac/In/${inputId}/CurrentLimit`,
|
|
12
|
+
});
|
|
13
|
+
const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId, instanceId, inputId), [mqtt.portalId, instanceId, inputId]);
|
|
14
|
+
const updateLimit = (limit) => mqtt.publish(writeTopics.limit, limit);
|
|
15
|
+
return Object.assign(Object.assign({}, useTopicsState(topics)), { updateLimit });
|
|
30
16
|
}
|
|
31
17
|
//# sourceMappingURL=InputLimitSelector.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputLimitSelector.provider.js","sourceRoot":"/","sources":["src/Modules/InverterCharger/InputLimitSelector.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputLimitSelector.provider.js","sourceRoot":"/","sources":["src/Modules/InverterCharger/InputLimitSelector.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAkB/B,MAAM,UAAU,qBAAqB,CAAC,UAAsB,EAAE,OAAe;IAC3E,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,CAAC;QACL,YAAY,EAAE,KAAK,IAAI,CAAC,QAAQ,UAAU,UAAU,UAAU,OAAO,eAAe;QACpF,eAAe,EAAE,KAAK,IAAI,CAAC,QAAQ,UAAU,UAAU,UAAU,OAAO,qBAAqB;QAC7F,SAAS,EAAE,KAAK,IAAI,CAAC,QAAQ,UAAU,UAAU,YAAY;KAC9D,CAAC,EACF,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CACrC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,gBAA4B,EAAE,OAAe,EAAE,EAAE,CAAC,CAAC;QAC7F,KAAK,EAAE,KAAK,QAAQ,UAAU,gBAAgB,UAAU,OAAO,eAAe;KAC/E,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,EACxD,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CACrC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAE7E,OAAO,gCAAK,cAAc,CAA0B,MAAM,CAAC,KAAE,WAAW,GAAgC,CAAA;AAC1G,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { InstanceId } from \"../Vebus\"\nimport { useMemo } from \"react\"\n\nexport interface InputLimitSelectorState {\n currentLimit: number\n currentLimitMax: number\n productId: number\n}\n\nexport interface InputLimitSelectorTopics extends Topics {\n currentLimit?: string\n currentLimitMax?: string\n productId?: string\n}\n\nexport interface InputLimitSelectorProvider extends InputLimitSelectorState {\n updateLimit: (limit: number) => void\n}\n\nexport function useInputLimitSelector(instanceId: InstanceId, inputId: number): InputLimitSelectorProvider {\n const mqtt = useMqtt()\n const topics = useMemo(\n () => ({\n currentLimit: `N/${mqtt.portalId}/vebus/${instanceId}/Ac/In/${inputId}/CurrentLimit`,\n currentLimitMax: `N/${mqtt.portalId}/vebus/${instanceId}/Ac/In/${inputId}/CurrentLimitGetMax`,\n productId: `N/${mqtt.portalId}/vebus/${instanceId}/ProductId`,\n }),\n [mqtt.portalId, instanceId, inputId]\n )\n\n const getWriteTopics = (portalId: PortalId, deviceInstanceId: InstanceId, inputId: number) => ({\n limit: `W/${portalId}/vebus/${deviceInstanceId}/Ac/In/${inputId}/CurrentLimit`,\n })\n\n const writeTopics = useMemo(\n () => getWriteTopics(mqtt.portalId, instanceId, inputId),\n [mqtt.portalId, instanceId, inputId]\n )\n\n const updateLimit = (limit: number) => mqtt.publish(writeTopics.limit, limit)\n\n return { ...useTopicsState<InputLimitSelectorState>(topics), updateLimit } as InputLimitSelectorProvider\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InverterCharger.provider.d.ts","sourceRoot":"/","sources":["src/Modules/InverterCharger/InverterCharger.provider.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"InverterCharger.provider.d.ts","sourceRoot":"/","sources":["src/Modules/InverterCharger/InverterCharger.provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,MAAM;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,uBAAuB,CA2BlF"}
|
|
@@ -1,34 +1,23 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useMemo } from "react";
|
|
13
|
-
import { useMqtt, useTopicsState
|
|
2
|
+
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
14
3
|
export function useInverterCharger(instanceId) {
|
|
15
|
-
|
|
4
|
+
const getTopics = (portalId, deviceInstanceId) => {
|
|
16
5
|
return {
|
|
17
|
-
state:
|
|
18
|
-
mode:
|
|
19
|
-
numberOfAcInputs:
|
|
20
|
-
customName:
|
|
21
|
-
productName:
|
|
22
|
-
modeIsAdjustable:
|
|
6
|
+
state: `N/${portalId}/vebus/${deviceInstanceId}/State`,
|
|
7
|
+
mode: `N/${portalId}/vebus/${deviceInstanceId}/Mode`,
|
|
8
|
+
numberOfAcInputs: `N/${portalId}/vebus/${deviceInstanceId}/Ac/NumberOfAcInputs`,
|
|
9
|
+
customName: `N/${portalId}/vebus/${deviceInstanceId}/CustomName`,
|
|
10
|
+
productName: `N/${portalId}/vebus/${deviceInstanceId}/ProductName`,
|
|
11
|
+
modeIsAdjustable: `N/${portalId}/vebus/${deviceInstanceId}/ModeIsAdjustable`,
|
|
23
12
|
};
|
|
24
13
|
};
|
|
25
|
-
|
|
26
|
-
mode:
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return
|
|
14
|
+
const getWriteTopics = (portalId, deviceInstanceId) => ({
|
|
15
|
+
mode: `W/${portalId}/vebus/${deviceInstanceId}/Mode`,
|
|
16
|
+
});
|
|
17
|
+
const mqtt = useMqtt();
|
|
18
|
+
const topics = useMemo(() => getTopics(mqtt.portalId, instanceId), [mqtt.portalId, instanceId]);
|
|
19
|
+
const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId, instanceId), [mqtt.portalId, instanceId]);
|
|
20
|
+
const updateMode = (mode) => mqtt.publish(writeTopics.mode, mode);
|
|
21
|
+
return Object.assign(Object.assign({}, useTopicsState(topics)), { updateMode });
|
|
33
22
|
}
|
|
34
23
|
//# sourceMappingURL=InverterCharger.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InverterCharger.provider.js","sourceRoot":"/","sources":["src/Modules/InverterCharger/InverterCharger.provider.ts"],"names":[],"mappings":"
|
|
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,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAyBnE,MAAM,UAAU,kBAAkB,CAAC,UAAsB;IACvD,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,gBAA4B,EAAE,EAAE;QACrE,OAAO;YACL,KAAK,EAAE,KAAK,QAAQ,UAAU,gBAAgB,QAAQ;YACtD,IAAI,EAAE,KAAK,QAAQ,UAAU,gBAAgB,OAAO;YACpD,gBAAgB,EAAE,KAAK,QAAQ,UAAU,gBAAgB,sBAAsB;YAC/E,UAAU,EAAE,KAAK,QAAQ,UAAU,gBAAgB,aAAa;YAChE,WAAW,EAAE,KAAK,QAAQ,UAAU,gBAAgB,cAAc;YAClE,gBAAgB,EAAE,KAAK,QAAQ,UAAU,gBAAgB,mBAAmB;SAC7E,CAAA;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,gBAA4B,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,EAAE,KAAK,QAAQ,UAAU,gBAAgB,OAAO;KACrD,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAC/F,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAEzG,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEzE,uCACK,cAAc,CAAuB,MAAM,CAAC,KAC/C,UAAU,IACX;AACH,CAAC","sourcesContent":["import { useMemo } from \"react\"\nimport { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { InstanceId } from \"../Vebus\"\n\nexport interface InverterChargerState {\n state: string\n mode: string\n numberOfAcInputs: number\n customName: string\n productName: string\n modeIsAdjustable: number\n}\n\nexport interface InverterChargerTopics extends Topics {\n state?: string\n mode?: string\n numberOfAcInputs?: string\n customName?: string\n productName?: string\n modeIsAdjustable?: string\n}\n\nexport interface InverterChargerProvider extends InverterChargerState {\n updateMode: (mode: number) => void\n}\n\nexport function useInverterCharger(instanceId: InstanceId): InverterChargerProvider {\n const getTopics = (portalId: PortalId, deviceInstanceId: InstanceId) => {\n return {\n state: `N/${portalId}/vebus/${deviceInstanceId}/State`,\n mode: `N/${portalId}/vebus/${deviceInstanceId}/Mode`,\n numberOfAcInputs: `N/${portalId}/vebus/${deviceInstanceId}/Ac/NumberOfAcInputs`,\n customName: `N/${portalId}/vebus/${deviceInstanceId}/CustomName`,\n productName: `N/${portalId}/vebus/${deviceInstanceId}/ProductName`,\n modeIsAdjustable: `N/${portalId}/vebus/${deviceInstanceId}/ModeIsAdjustable`,\n }\n }\n\n const getWriteTopics = (portalId: PortalId, deviceInstanceId: InstanceId) => ({\n mode: `W/${portalId}/vebus/${deviceInstanceId}/Mode`,\n })\n\n const mqtt = useMqtt()\n\n const topics = useMemo(() => getTopics(mqtt.portalId, instanceId), [mqtt.portalId, instanceId])\n const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId, instanceId), [mqtt.portalId, instanceId])\n\n const updateMode = (mode: number) => mqtt.publish(writeTopics.mode, mode)\n\n return {\n ...useTopicsState<InverterChargerState>(topics),\n updateMode,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inverter.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Inverters/Inverter.provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Inverter.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Inverters/Inverter.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CA8B5F"}
|