@victronenergy/mfd-modules 10.4.2 → 11.0.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 +25 -9
- package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.d.ts.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchableOutput.provider.js +58 -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 +256 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.provider.js.map +1 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts +50 -0
- package/dist/src/Modules/SwitchingPane/SwitchingPane.store.d.ts.map +1 -0
- package/dist/src/Modules/{SwitchableOutputs/SwitchableOutputs.store.js → SwitchingPane/SwitchingPane.store.js} +67 -18
- 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 +53 -3
- package/dist/src/utils/constants.d.ts.map +1 -1
- package/dist/src/utils/constants.js +82 -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.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Batteries.provider.js","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.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,EAAa,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEhE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Batteries.provider.js","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.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,EAAa,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAC1C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,gBAAgB,EAAE,KAAK,QAAQ,2BAA2B;KAC3D,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,yCAAyC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;YAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAiB,CAAA;YACrE,iEAAiE;YACjE,uDAAuD;YACvD,IACE,CAAC,SAAS;gBACV,SAAS,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;gBAC3C,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACtD,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;gBACzE,cAAc,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;YAC9C,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;IAE9B,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA","sourcesContent":["import Logger from \"../../utils/logger\"\nimport { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { BatteryId, useBatteriesStore } from \"./Batteries.store\"\n\nexport const useBatteries = () => {\n const batteriesStore = useBatteriesStore()\n const mqtt = useMqtt()\n\n const getTopics = (portalId: PortalId) => ({\n batteryInstances: `N/${portalId}/battery/+/DeviceInstance`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const messages = mqtt.messagesByWildcard(topics.batteryInstances)\n\n useEffect(() => {\n if (!messages || Object.entries(messages).length === 0) {\n // Logger.log(\"Waiting for batteries...\")\n } else {\n const batteries = batteriesStore.batteries\n const deviceInstances = Object.values(messages).sort() as BatteryId[]\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 !batteries ||\n batteries.length !== deviceInstances.length ||\n !deviceInstances.every((id) => batteries.includes(id))\n ) {\n Logger.log(`New batteries instances: ${JSON.stringify(deviceInstances)}`)\n batteriesStore.setBatteries(deviceInstances)\n }\n }\n }, [messages, batteriesStore])\n\n return batteriesStore\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Batteries.store.d.ts","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEjD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,cAAc;IACzB,SAAS,EAAE,SAAS,EAAE,CAAK;;IAM3B,YAAY,GAAI,WAAW,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"Batteries.store.d.ts","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEjD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAA;CACvB;AAED,qBAAa,cAAc;IACzB,SAAS,EAAE,SAAS,EAAE,CAAK;;IAM3B,YAAY,GAAI,WAAW,SAAS,EAAE,iBAAiC;CACxE;AAYD,wBAAgB,iBAAiB,mBAEhC"}
|
|
@@ -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 BatteriesStore {
|
|
5
|
+
constructor() {
|
|
7
6
|
Object.defineProperty(this, "batteries", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
configurable: true,
|
|
@@ -14,15 +13,13 @@ var BatteriesStore = /** @class */ (function () {
|
|
|
14
13
|
enumerable: true,
|
|
15
14
|
configurable: true,
|
|
16
15
|
writable: true,
|
|
17
|
-
value:
|
|
16
|
+
value: (batteries) => (this.batteries = batteries)
|
|
18
17
|
});
|
|
19
18
|
makeAutoObservable(this, { setBatteries: action });
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
}());
|
|
23
|
-
export { BatteriesStore };
|
|
20
|
+
}
|
|
24
21
|
function initializeStore() {
|
|
25
|
-
|
|
22
|
+
const _store = store !== null && store !== void 0 ? store : new BatteriesStore();
|
|
26
23
|
// For SSG and SSR always create a new store
|
|
27
24
|
if (typeof window === "undefined")
|
|
28
25
|
return _store;
|
|
@@ -32,6 +29,6 @@ function initializeStore() {
|
|
|
32
29
|
return _store;
|
|
33
30
|
}
|
|
34
31
|
export function useBatteriesStore() {
|
|
35
|
-
return useMemo(
|
|
32
|
+
return useMemo(() => initializeStore(), []);
|
|
36
33
|
}
|
|
37
34
|
//# sourceMappingURL=Batteries.store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Batteries.store.js","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAqB,CAAA;AAQzB;
|
|
1
|
+
{"version":3,"file":"Batteries.store.js","sourceRoot":"/","sources":["src/Modules/Battery/Batteries.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAqB,CAAA;AAQzB,MAAM,OAAO,cAAc;IAGzB;QAFA;;;;mBAAyB,EAAE;WAAA;QAM3B;;;;mBAAe,CAAC,SAAsB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;WAAA;QAHrE,kBAAkB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;IACpD,CAAC;CAGF;AAED,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,cAAc,EAAE,CAAA;IAC5C,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,iBAAiB;IAC/B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\n\nlet store: BatteriesStore\n\nexport type BatteryId = number | null | undefined\n\nexport interface BatteriesState {\n batteries: BatteryId[]\n}\n\nexport class BatteriesStore {\n batteries: BatteryId[] = []\n\n constructor() {\n makeAutoObservable(this, { setBatteries: action })\n }\n\n setBatteries = (batteries: BatteryId[]) => (this.batteries = batteries)\n}\n\nfunction initializeStore() {\n const _store = store ?? new BatteriesStore()\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 useBatteriesStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useMqtt, useTopicsState } from "../Mqtt";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
export function useSystemBatteries() {
|
|
4
|
-
|
|
5
|
-
batteries:
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
const getTopics = (portalId) => ({
|
|
5
|
+
batteries: `N/${portalId}/system/0/Batteries`,
|
|
6
|
+
});
|
|
7
|
+
const mqtt = useMqtt();
|
|
8
|
+
const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
|
|
9
9
|
return useTopicsState(topics);
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=SystemBatteries.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemBatteries.provider.js","sourceRoot":"/","sources":["src/Modules/Battery/SystemBatteries.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAyB/B,MAAM,UAAU,kBAAkB;IAChC,
|
|
1
|
+
{"version":3,"file":"SystemBatteries.provider.js","sourceRoot":"/","sources":["src/Modules/Battery/SystemBatteries.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAyB/B,MAAM,UAAU,kBAAkB;IAChC,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,SAAS,EAAE,KAAK,QAAQ,qBAAqB;KAC9C,CAAC,CAAA;IACF,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;IAEvE,OAAO,cAAc,CAAuB,MAAM,CAAC,CAAA;AACrD,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface BatteryState {\n active_battery_service: boolean\n current: number\n voltage: number\n soc: number\n power: number\n temperature: number\n timetogo: number\n instance: number\n state: number\n bmsstate: number\n id: string\n name: string\n}\n\nexport interface SystemBatteriesState {\n batteries: Array<BatteryState>\n}\n\nexport interface BatteryTopics extends Topics {\n batteries?: string\n}\n\nexport function useSystemBatteries(): SystemBatteriesState {\n const getTopics = (portalId: PortalId) => ({\n batteries: `N/${portalId}/system/0/Batteries`,\n })\n const mqtt = useMqtt()\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n return useTopicsState<SystemBatteriesState>(topics)\n}\n"]}
|
|
@@ -1,39 +1,29 @@
|
|
|
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
|
-
export
|
|
15
|
-
|
|
16
|
-
customName:
|
|
17
|
-
productName:
|
|
18
|
-
currentLimit:
|
|
19
|
-
state:
|
|
20
|
-
mode:
|
|
21
|
-
nrOfOutputs:
|
|
3
|
+
export const useCharger = (chargerId) => {
|
|
4
|
+
const getTopics = (portalId, chargerInstanceId) => ({
|
|
5
|
+
customName: `N/${portalId}/charger/${chargerInstanceId}/CustomName`,
|
|
6
|
+
productName: `N/${portalId}/charger/${chargerInstanceId}/ProductName`,
|
|
7
|
+
currentLimit: `N/${portalId}/charger/${chargerInstanceId}/Ac/In/CurrentLimit`,
|
|
8
|
+
state: `N/${portalId}/charger/${chargerInstanceId}/State`,
|
|
9
|
+
mode: `N/${portalId}/charger/${chargerInstanceId}/Mode`,
|
|
10
|
+
nrOfOutputs: `N/${portalId}/charger/${chargerInstanceId}/NrOfOutputs`,
|
|
22
11
|
current: [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
`N/${portalId}/charger/${chargerInstanceId}/Dc/0/Current`,
|
|
13
|
+
`N/${portalId}/charger/${chargerInstanceId}/Dc/1/Current`,
|
|
14
|
+
`N/${portalId}/charger/${chargerInstanceId}/Dc/2/Current`,
|
|
26
15
|
],
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
mode:
|
|
32
|
-
currentLimit:
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return
|
|
16
|
+
});
|
|
17
|
+
const mqtt = useMqtt();
|
|
18
|
+
const topics = useMemo(() => getTopics(mqtt.portalId, chargerId), [mqtt.portalId, chargerId]);
|
|
19
|
+
const getWriteTopics = (portalId, chargerInstanceId) => ({
|
|
20
|
+
mode: `W/${portalId}/charger/${chargerInstanceId}/Mode`,
|
|
21
|
+
currentLimit: `W/${portalId}/charger/${chargerInstanceId}/Ac/In/CurrentLimit`,
|
|
22
|
+
});
|
|
23
|
+
const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId, chargerId), [mqtt.portalId, chargerId]);
|
|
24
|
+
const updateMode = (mode) => mqtt.publish(writeTopics.mode, mode);
|
|
25
|
+
const updateCurrentLimit = (currentLimit) => mqtt.publish(writeTopics.currentLimit, currentLimit);
|
|
26
|
+
return Object.assign(Object.assign({}, useTopicsState(topics)), { updateMode,
|
|
27
|
+
updateCurrentLimit });
|
|
38
28
|
};
|
|
39
29
|
//# sourceMappingURL=Charger.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charger.provider.js","sourceRoot":"/","sources":["src/Modules/Chargers/Charger.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Charger.provider.js","sourceRoot":"/","sources":["src/Modules/Chargers/Charger.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AA2B/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAA4B,EAAE,EAAE;IACzD,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,iBAAoC,EAAE,EAAE,CAAC,CAAC;QAC/E,UAAU,EAAE,KAAK,QAAQ,YAAY,iBAAiB,aAAa;QACnE,WAAW,EAAE,KAAK,QAAQ,YAAY,iBAAiB,cAAc;QACrE,YAAY,EAAE,KAAK,QAAQ,YAAY,iBAAiB,qBAAqB;QAC7E,KAAK,EAAE,KAAK,QAAQ,YAAY,iBAAiB,QAAQ;QACzD,IAAI,EAAE,KAAK,QAAQ,YAAY,iBAAiB,OAAO;QACvD,WAAW,EAAE,KAAK,QAAQ,YAAY,iBAAiB,cAAc;QACrE,OAAO,EAAE;YACP,KAAK,QAAQ,YAAY,iBAAiB,eAAe;YACzD,KAAK,QAAQ,YAAY,iBAAiB,eAAe;YACzD,KAAK,QAAQ,YAAY,iBAAiB,eAAe;SAC1D;KACF,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7F,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,iBAAoC,EAAE,EAAE,CAAC,CAAC;QACpF,IAAI,EAAE,KAAK,QAAQ,YAAY,iBAAiB,OAAO;QACvD,YAAY,EAAE,KAAK,QAAQ,YAAY,iBAAiB,qBAAqB;KAC9E,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;IAEvG,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzE,MAAM,kBAAkB,GAAG,CAAC,YAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IAEzG,OAAO,gCACF,cAAc,CAAe,MAAM,CAAC,KACvC,UAAU;QACV,kBAAkB,GACA,CAAA;AACtB,CAAC,CAAA","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { ChargerInstanceId } from \"./Chargers.store\"\nimport { useMemo } from \"react\"\n\nexport interface ChargerTopics extends Topics {\n customName?: string\n productName?: string\n currentLimit?: string\n state?: string\n mode?: string\n nrOfOutputs?: string\n current?: string[]\n}\n\nexport interface ChargerState {\n customName: string\n productName: string\n currentLimit: number\n state: number\n mode: number\n nrOfOutputs: number\n current: [number?, number?, number?]\n}\n\nexport interface ChargerProvider extends ChargerState {\n updateMode: (mode: number) => void\n updateCurrentLimit: (limit: number) => void\n}\n\nexport const useCharger = (chargerId: ChargerInstanceId) => {\n const getTopics = (portalId: PortalId, chargerInstanceId: ChargerInstanceId) => ({\n customName: `N/${portalId}/charger/${chargerInstanceId}/CustomName`,\n productName: `N/${portalId}/charger/${chargerInstanceId}/ProductName`,\n currentLimit: `N/${portalId}/charger/${chargerInstanceId}/Ac/In/CurrentLimit`,\n state: `N/${portalId}/charger/${chargerInstanceId}/State`,\n mode: `N/${portalId}/charger/${chargerInstanceId}/Mode`,\n nrOfOutputs: `N/${portalId}/charger/${chargerInstanceId}/NrOfOutputs`,\n current: [\n `N/${portalId}/charger/${chargerInstanceId}/Dc/0/Current`,\n `N/${portalId}/charger/${chargerInstanceId}/Dc/1/Current`,\n `N/${portalId}/charger/${chargerInstanceId}/Dc/2/Current`,\n ],\n })\n\n const mqtt = useMqtt()\n const topics = useMemo(() => getTopics(mqtt.portalId, chargerId), [mqtt.portalId, chargerId])\n\n const getWriteTopics = (portalId: PortalId, chargerInstanceId: ChargerInstanceId) => ({\n mode: `W/${portalId}/charger/${chargerInstanceId}/Mode`,\n currentLimit: `W/${portalId}/charger/${chargerInstanceId}/Ac/In/CurrentLimit`,\n })\n\n const writeTopics = useMemo(() => getWriteTopics(mqtt.portalId, chargerId), [mqtt.portalId, chargerId])\n\n const updateMode = (mode: number) => mqtt.publish(writeTopics.mode, mode)\n const updateCurrentLimit = (currentLimit: number) => mqtt.publish(writeTopics.currentLimit, currentLimit)\n\n return {\n ...useTopicsState<ChargerState>(topics),\n updateMode,\n updateCurrentLimit,\n } as ChargerProvider\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chargers.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.provider.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"Chargers.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.provider.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,gDAgCvB,CAAA"}
|
|
@@ -2,30 +2,31 @@ import Logger from "../../utils/logger";
|
|
|
2
2
|
import { useEffect, useMemo } from "react";
|
|
3
3
|
import { useMqtt } from "../Mqtt";
|
|
4
4
|
import { useChargersStore } from "./Chargers.store";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
chargerInstances:
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
useEffect(function () {
|
|
5
|
+
export const useChargers = () => {
|
|
6
|
+
const chargersStore = useChargersStore();
|
|
7
|
+
const mqtt = useMqtt();
|
|
8
|
+
const getTopics = (portalId) => ({
|
|
9
|
+
chargerInstances: `N/${portalId}/charger/+/DeviceInstance`,
|
|
10
|
+
});
|
|
11
|
+
const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
|
|
12
|
+
const messages = mqtt.messagesByWildcard(topics.chargerInstances);
|
|
13
|
+
useEffect(() => {
|
|
15
14
|
if (!messages || Object.entries(messages).length === 0) {
|
|
16
15
|
// Logger.log("Waiting for chargers...")
|
|
17
16
|
}
|
|
18
17
|
else {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const chargers = chargersStore.chargers;
|
|
19
|
+
const deviceInstances = Object.values(messages);
|
|
21
20
|
// TODO: check unordered structural identify of old and new state
|
|
22
21
|
// TODO: to avoid unnecessary re-rendering: O(n^2) baby
|
|
23
|
-
if (!
|
|
24
|
-
|
|
22
|
+
if (!chargers ||
|
|
23
|
+
chargers.length !== deviceInstances.length ||
|
|
24
|
+
!deviceInstances.every((id) => chargers.includes(id))) {
|
|
25
|
+
Logger.log(`New chargers instances: ${JSON.stringify(deviceInstances)}`);
|
|
25
26
|
chargersStore.setChargers(deviceInstances);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
|
-
}, [messages]);
|
|
29
|
+
}, [messages, chargersStore]);
|
|
29
30
|
return chargersStore;
|
|
30
31
|
};
|
|
31
32
|
//# sourceMappingURL=Chargers.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chargers.provider.js","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"Chargers.provider.js","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.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,EAAqB,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEtE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,gBAAgB,EAAE,KAAK,QAAQ,2BAA2B;KAC3D,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,wCAAwC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;YACvC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAwB,CAAA;YACtE,iEAAiE;YACjE,uDAAuD;YACvD,IACE,CAAC,QAAQ;gBACT,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM;gBAC1C,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EACrD,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;gBACxE,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAA;IAE7B,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA","sourcesContent":["import Logger from \"../../utils/logger\"\nimport { useEffect, useMemo } from \"react\"\nimport { PortalId, useMqtt } from \"../Mqtt\"\nimport { ChargerInstanceId, useChargersStore } from \"./Chargers.store\"\n\nexport const useChargers = () => {\n const chargersStore = useChargersStore()\n const mqtt = useMqtt()\n\n const getTopics = (portalId: PortalId) => ({\n chargerInstances: `N/${portalId}/charger/+/DeviceInstance`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const messages = mqtt.messagesByWildcard(topics.chargerInstances)\n\n useEffect(() => {\n if (!messages || Object.entries(messages).length === 0) {\n // Logger.log(\"Waiting for chargers...\")\n } else {\n const chargers = chargersStore.chargers\n const deviceInstances = Object.values(messages) as ChargerInstanceId[]\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 !chargers ||\n chargers.length !== deviceInstances.length ||\n !deviceInstances.every((id) => chargers.includes(id))\n ) {\n Logger.log(`New chargers instances: ${JSON.stringify(deviceInstances)}`)\n chargersStore.setChargers(deviceInstances)\n }\n }\n }, [messages, chargersStore])\n\n return chargersStore\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chargers.store.d.ts","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEzD,qBAAa,aAAa;IACxB,QAAQ,EAAE,iBAAiB,EAAE,CAAK;;IAMlC,WAAW,GAAI,UAAU,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"Chargers.store.d.ts","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.store.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEzD,qBAAa,aAAa;IACxB,QAAQ,EAAE,iBAAiB,EAAE,CAAK;;IAMlC,WAAW,GAAI,UAAU,iBAAiB,EAAE,yBAA+B;CAC5E;AAYD,wBAAgB,gBAAgB,kBAE/B"}
|
|
@@ -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 ChargersStore {
|
|
5
|
+
constructor() {
|
|
7
6
|
Object.defineProperty(this, "chargers", {
|
|
8
7
|
enumerable: true,
|
|
9
8
|
configurable: true,
|
|
@@ -14,15 +13,13 @@ var ChargersStore = /** @class */ (function () {
|
|
|
14
13
|
enumerable: true,
|
|
15
14
|
configurable: true,
|
|
16
15
|
writable: true,
|
|
17
|
-
value:
|
|
16
|
+
value: (chargers) => (this.chargers = chargers)
|
|
18
17
|
});
|
|
19
18
|
makeAutoObservable(this, { setChargers: action });
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
}());
|
|
23
|
-
export { ChargersStore };
|
|
20
|
+
}
|
|
24
21
|
function initializeStore() {
|
|
25
|
-
|
|
22
|
+
const _store = store !== null && store !== void 0 ? store : new ChargersStore();
|
|
26
23
|
// For SSG and SSR always create a new store
|
|
27
24
|
if (typeof window === "undefined")
|
|
28
25
|
return _store;
|
|
@@ -32,6 +29,6 @@ function initializeStore() {
|
|
|
32
29
|
return _store;
|
|
33
30
|
}
|
|
34
31
|
export function useChargersStore() {
|
|
35
|
-
return useMemo(
|
|
32
|
+
return useMemo(() => initializeStore(), []);
|
|
36
33
|
}
|
|
37
34
|
//# sourceMappingURL=Chargers.store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chargers.store.js","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAoB,CAAA;AAIxB;
|
|
1
|
+
{"version":3,"file":"Chargers.store.js","sourceRoot":"/","sources":["src/Modules/Chargers/Chargers.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/B,IAAI,KAAoB,CAAA;AAIxB,MAAM,OAAO,aAAa;IAGxB;QAFA;;;;mBAAgC,EAAE;WAAA;QAMlC;;;;mBAAc,CAAC,QAA6B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;WAAA;QAHzE,kBAAkB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACnD,CAAC;CAGF;AAED,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,aAAa,EAAE,CAAA;IAC3C,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,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7C,CAAC","sourcesContent":["import { action, makeAutoObservable } from \"mobx\"\nimport { useMemo } from \"react\"\n\nlet store: ChargersStore\n\nexport type ChargerInstanceId = number | null | undefined\n\nexport class ChargersStore {\n chargers: ChargerInstanceId[] = []\n\n constructor() {\n makeAutoObservable(this, { setChargers: action })\n }\n\n setChargers = (chargers: ChargerInstanceId[]) => (this.chargers = chargers)\n}\n\nfunction initializeStore() {\n const _store = store ?? new ChargersStore()\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 useChargersStore() {\n return useMemo(() => initializeStore(), [])\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DcLoads.provider.d.ts","sourceRoot":"/","sources":["src/Modules/DcLoads/DcLoads.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,UAAU,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"DcLoads.provider.d.ts","sourceRoot":"/","sources":["src/Modules/DcLoads/DcLoads.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,UAAU,IAAI,YAAY,CAiBzC"}
|
|
@@ -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 useDcLoads() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
voltage:
|
|
18
|
-
power:
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return
|
|
4
|
+
const mqtt = useMqtt();
|
|
5
|
+
const getTopics = (portalId) => ({
|
|
6
|
+
voltage: `N/${portalId}/system/0/Dc/Battery/Voltage`,
|
|
7
|
+
power: `N/${portalId}/system/0/Dc/System/Power`,
|
|
8
|
+
});
|
|
9
|
+
const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId]);
|
|
10
|
+
const topicStates = useTopicsState(topics);
|
|
11
|
+
const calculatedCurrent = topicStates.voltage !== 0 ? topicStates.power / topicStates.voltage : 0;
|
|
12
|
+
return Object.assign(Object.assign({}, topicStates), { current: calculatedCurrent });
|
|
24
13
|
}
|
|
25
14
|
//# sourceMappingURL=DcLoads.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DcLoads.provider.js","sourceRoot":"/","sources":["src/Modules/DcLoads/DcLoads.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DcLoads.provider.js","sourceRoot":"/","sources":["src/Modules/DcLoads/DcLoads.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAc/B,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,KAAK,QAAQ,8BAA8B;QACpD,KAAK,EAAE,KAAK,QAAQ,2BAA2B;KAChD,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEvE,MAAM,WAAW,GAAG,cAAc,CAAe,MAAM,CAAC,CAAA;IAExD,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IAEjG,uCACK,WAAW,KACd,OAAO,EAAE,iBAAiB,IAC3B;AACH,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport interface DcLoadsState {\n voltage: number\n power: number\n current: number\n}\n\nexport interface DcLoadsTopics extends Topics {\n power?: string\n voltage?: string\n current?: string\n}\n\nexport function useDcLoads(): DcLoadsState {\n const mqtt = useMqtt()\n const getTopics = (portalId: PortalId) => ({\n voltage: `N/${portalId}/system/0/Dc/Battery/Voltage`,\n power: `N/${portalId}/system/0/Dc/System/Power`,\n })\n\n const topics = useMemo(() => getTopics(mqtt.portalId), [mqtt.portalId])\n\n const topicStates = useTopicsState<DcLoadsState>(topics)\n\n const calculatedCurrent = topicStates.voltage !== 0 ? topicStates.power / topicStates.voltage : 0\n\n return {\n ...topicStates,\n current: calculatedCurrent,\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedGenset.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGenset.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEzD,oBAAY,mBAAmB;IAC7B,QAAQ,WAAW;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,0BAA0B;IAC/D,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,0BAA0B;IAC/D,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAA;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACpC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACpC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;CACvC;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,aAAa,CAAA;AAEhE,MAAM,WAAW,2BAA4B,SAAQ,MAAM;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM;IACrD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ConnectedGenset.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGenset.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAA2B,MAAM,SAAS,CAAA;AAGnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAEzD,oBAAY,mBAAmB;IAC7B,QAAQ,WAAW;IACnB,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,0BAA0B;IAC/D,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAA;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,0BAA0B;IAC/D,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAA;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACpC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IACpC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;CACvC;AAED,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,aAAa,CAAA;AAEhE,MAAM,WAAW,2BAA4B,SAAQ,MAAM;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM;IACrD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAwB,SAAQ,MAAM;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CA+D1G"}
|
|
@@ -1,14 +1,3 @@
|
|
|
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 var ConnectedGensetType;
|
|
@@ -17,54 +6,54 @@ export var ConnectedGensetType;
|
|
|
17
6
|
ConnectedGensetType["DCGENSET"] = "dcgenset";
|
|
18
7
|
})(ConnectedGensetType || (ConnectedGensetType = {}));
|
|
19
8
|
export function useConnectedGenset(gensetType, gensetId) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
statusCode:
|
|
23
|
-
productId:
|
|
24
|
-
productName:
|
|
25
|
-
customName:
|
|
26
|
-
remoteStartModeEnabled:
|
|
27
|
-
coolant:
|
|
28
|
-
winding:
|
|
29
|
-
exhaust:
|
|
30
|
-
heatsink:
|
|
9
|
+
const getTopics = (portalId, gensetType, gensetId) => {
|
|
10
|
+
const sharedTopics = {
|
|
11
|
+
statusCode: `N/${portalId}/${gensetType}/${gensetId}/StatusCode`,
|
|
12
|
+
productId: `N/${portalId}/${gensetType}/${gensetId}/ProductId`,
|
|
13
|
+
productName: `N/${portalId}/${gensetType}/${gensetId}/ProductName`,
|
|
14
|
+
customName: `N/${portalId}/${gensetType}/${gensetId}/CustomName`,
|
|
15
|
+
remoteStartModeEnabled: `N/${portalId}/${gensetType}/${gensetId}/RemoteStartModeEnabled`,
|
|
16
|
+
coolant: `N/${portalId}/${gensetType}/${gensetId}/Engine/CoolantTemperature`,
|
|
17
|
+
winding: `N/${portalId}/${gensetType}/${gensetId}/Engine/WindingTemperature`,
|
|
18
|
+
exhaust: `N/${portalId}/${gensetType}/${gensetId}/Engine/ExaustTemperature`,
|
|
19
|
+
heatsink: `N/${portalId}/${gensetType}/${gensetId}/HeatsinkTemperature`,
|
|
31
20
|
};
|
|
32
|
-
|
|
33
|
-
voltage:
|
|
34
|
-
current:
|
|
35
|
-
power:
|
|
21
|
+
const dcTopics = {
|
|
22
|
+
voltage: `N/${portalId}/${gensetType}/${gensetId}/Dc/0/Voltage`,
|
|
23
|
+
current: `N/${portalId}/${gensetType}/${gensetId}/Dc/0/Current`,
|
|
24
|
+
power: `N/${portalId}/${gensetType}/${gensetId}/Dc/0/Power`,
|
|
36
25
|
};
|
|
37
|
-
|
|
38
|
-
phases:
|
|
26
|
+
const acTopics = {
|
|
27
|
+
phases: `N/${portalId}/${gensetType}/${gensetId}/NrOfPhases`,
|
|
39
28
|
voltage: [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
29
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Voltage`,
|
|
30
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Voltage`,
|
|
31
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Voltage`,
|
|
43
32
|
],
|
|
44
33
|
current: [
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Current`,
|
|
35
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Current`,
|
|
36
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Current`,
|
|
48
37
|
],
|
|
49
38
|
power: [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Power`,
|
|
40
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Power`,
|
|
41
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Power`,
|
|
53
42
|
],
|
|
54
43
|
frequency: [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
44
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Frequency`,
|
|
45
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Frequency`,
|
|
46
|
+
`N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Frequency`,
|
|
58
47
|
],
|
|
59
48
|
};
|
|
60
|
-
return
|
|
49
|
+
return Object.assign(Object.assign({}, sharedTopics), (gensetType === ConnectedGensetType.ACGENSET ? acTopics : dcTopics));
|
|
61
50
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return
|
|
51
|
+
const mqtt = useMqtt();
|
|
52
|
+
const topics = useMemo(() => getTopics(mqtt.portalId, gensetType, gensetId), [mqtt.portalId, gensetType, gensetId]);
|
|
53
|
+
const useTopicsStateAugmentedWithGensetType = (gensetType) => {
|
|
54
|
+
const gensetValues = useTopicsState(topics);
|
|
55
|
+
const memoizedGensetValues = useMemo(() => {
|
|
56
|
+
return Object.assign(Object.assign({}, gensetValues), { gensetType: gensetType });
|
|
68
57
|
}, [gensetValues, gensetType]);
|
|
69
58
|
return memoizedGensetValues;
|
|
70
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedGenset.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGenset.provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConnectedGenset.provider.js","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGenset.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAI/B,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,4CAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B;AA0DD,MAAM,UAAU,kBAAkB,CAAC,UAA+B,EAAE,QAAgB;IAClF,MAAM,SAAS,GAAG,CAAC,QAAkB,EAAE,UAA+B,EAAE,QAA2B,EAAE,EAAE;QACrG,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,aAAa;YAChE,SAAS,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,YAAY;YAC9D,WAAW,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,cAAc;YAClE,UAAU,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,aAAa;YAChE,sBAAsB,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,yBAAyB;YACxF,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,4BAA4B;YAC5E,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,4BAA4B;YAC5E,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,2BAA2B;YAC3E,QAAQ,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,sBAAsB;SACxE,CAAA;QACD,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,eAAe;YAC/D,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,eAAe;YAC/D,KAAK,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,aAAa;SAC5D,CAAA;QACD,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,aAAa;YAC5D,OAAO,EAAE;gBACP,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,gBAAgB;gBACvD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,gBAAgB;gBACvD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,gBAAgB;aACxD;YACD,OAAO,EAAE;gBACP,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,gBAAgB;gBACvD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,gBAAgB;gBACvD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,gBAAgB;aACxD;YACD,KAAK,EAAE;gBACL,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,cAAc;gBACrD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,cAAc;gBACrD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,cAAc;aACtD;YACD,SAAS,EAAE;gBACT,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,kBAAkB;gBACzD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,kBAAkB;gBACzD,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ,kBAAkB;aAC1D;SACF,CAAA;QACD,uCACK,YAAY,GACZ,CAAC,UAAU,KAAK,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EACvE;IACH,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEnH,MAAM,qCAAqC,GAAG,CAAC,UAA+B,EAAE,EAAE;QAChF,MAAM,YAAY,GAAG,cAAc,CAAuB,MAAM,CAAC,CAAA;QACjE,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;YACxC,OAAO,gCACF,YAAY,KACf,UAAU,EAAE,UAAU,GACC,CAAA;QAC3B,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAA;QAE9B,OAAO,oBAAoB,CAAA;IAC7B,CAAC,CAAA;IAED,OAAO,qCAAqC,CAAC,UAAU,CAAC,CAAA;AAC1D,CAAC","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\n\nexport type ConnectedGensetId = number | null | undefined\n\nexport enum ConnectedGensetType {\n ACGENSET = \"genset\",\n DCGENSET = \"dcgenset\",\n}\n\nexport interface SharedConnectedGensetState {\n statusCode: number\n productId: number\n productName: string\n customName: string\n remoteStartModeEnabled: number\n coolant: number\n winding: number\n exhaust: number\n heatsink: number\n}\n\nexport interface DCGensetState extends SharedConnectedGensetState {\n gensetType: ConnectedGensetType.DCGENSET\n voltage: number\n current: number\n power: number\n}\n\nexport interface ACGensetState extends SharedConnectedGensetState {\n gensetType: ConnectedGensetType.ACGENSET\n phases: number\n voltage: [number?, number?, number?]\n current: [number?, number?, number?]\n power: [number?, number?, number?]\n frequency: [number?, number?, number?]\n}\n\nexport type ConnectedGensetState = DCGensetState | ACGensetState\n\nexport interface ConnectedGensetSharedTopics extends Topics {\n statusCode?: string\n productId?: string\n productName?: string\n customName?: string\n remoteStartModeEnabled?: string\n coolant?: string\n winding?: string\n exhaust?: string\n heatsink?: string\n}\n\nexport interface ConnectedGensetDCTopics extends Topics {\n voltage?: string\n current?: string\n power?: string\n}\n\nexport interface ConnectedGensetACTopics extends Topics {\n phases?: string\n voltage?: Array<string>\n current?: Array<string>\n power?: Array<string>\n frequency?: Array<string>\n}\n\nexport function useConnectedGenset(gensetType: ConnectedGensetType, gensetId: number): ConnectedGensetState {\n const getTopics = (portalId: PortalId, gensetType: ConnectedGensetType, gensetId: ConnectedGensetId) => {\n const sharedTopics = {\n statusCode: `N/${portalId}/${gensetType}/${gensetId}/StatusCode`,\n productId: `N/${portalId}/${gensetType}/${gensetId}/ProductId`,\n productName: `N/${portalId}/${gensetType}/${gensetId}/ProductName`,\n customName: `N/${portalId}/${gensetType}/${gensetId}/CustomName`,\n remoteStartModeEnabled: `N/${portalId}/${gensetType}/${gensetId}/RemoteStartModeEnabled`,\n coolant: `N/${portalId}/${gensetType}/${gensetId}/Engine/CoolantTemperature`,\n winding: `N/${portalId}/${gensetType}/${gensetId}/Engine/WindingTemperature`,\n exhaust: `N/${portalId}/${gensetType}/${gensetId}/Engine/ExaustTemperature`,\n heatsink: `N/${portalId}/${gensetType}/${gensetId}/HeatsinkTemperature`,\n }\n const dcTopics = {\n voltage: `N/${portalId}/${gensetType}/${gensetId}/Dc/0/Voltage`,\n current: `N/${portalId}/${gensetType}/${gensetId}/Dc/0/Current`,\n power: `N/${portalId}/${gensetType}/${gensetId}/Dc/0/Power`,\n }\n const acTopics = {\n phases: `N/${portalId}/${gensetType}/${gensetId}/NrOfPhases`,\n voltage: [\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Voltage`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Voltage`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Voltage`,\n ],\n current: [\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Current`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Current`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Current`,\n ],\n power: [\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Power`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Power`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Power`,\n ],\n frequency: [\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L1/Frequency`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L2/Frequency`,\n `N/${portalId}/${gensetType}/${gensetId}/Ac/L3/Frequency`,\n ],\n }\n return {\n ...sharedTopics,\n ...(gensetType === ConnectedGensetType.ACGENSET ? acTopics : dcTopics),\n }\n }\n const mqtt = useMqtt()\n\n const topics = useMemo(() => getTopics(mqtt.portalId, gensetType, gensetId), [mqtt.portalId, gensetType, gensetId])\n\n const useTopicsStateAugmentedWithGensetType = (gensetType: ConnectedGensetType) => {\n const gensetValues = useTopicsState<ConnectedGensetState>(topics)\n const memoizedGensetValues = useMemo(() => {\n return {\n ...gensetValues,\n gensetType: gensetType,\n } as ConnectedGensetState\n }, [gensetValues, gensetType])\n\n return memoizedGensetValues\n }\n\n return useTopicsStateAugmentedWithGensetType(gensetType)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectedGensets.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"ConnectedGensets.provider.d.ts","sourceRoot":"/","sources":["src/Modules/Generators/ConnectedGensets.provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEnF,eAAO,MAAM,mBAAmB,GAAI,YAAY,mBAAmB,wDAuClE,CAAA"}
|