@victronenergy/mfd-modules 10.1.2 → 10.2.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.
@@ -1,6 +1,6 @@
1
1
  import { PortalId, Topics } from "../Mqtt";
2
2
  import { SwitchingDeviceInstanceId } from "./SwitchingDevice.provider";
3
- import { SwitchableOutputStatus, SwitchableOutputType, SwitchableOutputVisibility } from "../../utils/constants";
3
+ import { SwitchableOutputStatus, SwitchableOutputType, SwitchableOutputValidTypesBitmask, SwitchableOutputVisibility } from "../../utils/constants";
4
4
  import { HSVWColorArray } from "../../utils/hsvw";
5
5
  export declare const SWITCHABLE_OUTPUT_TREES: readonly ["system", "switch"];
6
6
  export type SwitchableOutputTree = (typeof SWITCHABLE_OUTPUT_TREES)[number];
@@ -11,6 +11,7 @@ export interface SwitchableOutputState {
11
11
  deviceId: SwitchingDeviceInstanceId;
12
12
  outputId: SwitchableOutputId;
13
13
  type: SwitchableOutputType;
14
+ validTypes: SwitchableOutputValidTypesBitmask;
14
15
  status: SwitchableOutputStatus;
15
16
  name: string;
16
17
  customName: string;
@@ -30,13 +31,16 @@ export interface SwitchableOutputState {
30
31
  lightControls: HSVWColorArray;
31
32
  }
32
33
  export interface SwitchableOutputProvider extends SwitchableOutputState {
34
+ updateType: (type: SwitchableOutputType) => void;
33
35
  updateAuto: (auto: 0 | 1) => void;
34
36
  updateState: (state: 0 | 1) => void;
35
37
  updateDimming: (dimming: number) => void;
36
38
  updateLightControls: (hsvwa: HSVWColorArray) => void;
37
39
  }
40
+ export declare function switchableOutputSupportsType(validType: SwitchableOutputValidTypesBitmask, type: SwitchableOutputType): boolean;
38
41
  export interface SwitchableOutputTopics extends Topics {
39
42
  type?: string;
43
+ validTypes?: string;
40
44
  status?: string;
41
45
  name?: string;
42
46
  customName?: string;
@@ -55,6 +59,7 @@ export interface SwitchableOutputTopics extends Topics {
55
59
  export declare const getSwitchableOutputNameForDisplay: (state: SwitchableOutputState, switchingDeviceName: string) => string;
56
60
  export declare const getSwitchableOutputStateTopics: (portalId: PortalId, tree: SwitchableOutputTree, deviceId: SwitchingDeviceInstanceId, outputId: SwitchableOutputId) => {
57
61
  type: string;
62
+ validTypes: string;
58
63
  status: string;
59
64
  name: string;
60
65
  customName: string;
@@ -73,6 +78,7 @@ export declare const getSwitchableOutputStateTopics: (portalId: PortalId, tree:
73
78
  lightControls: string;
74
79
  };
75
80
  export declare const getSwitchableOutputWriteTopics: (portalId: PortalId, tree: SwitchableOutputTree, deviceId: SwitchingDeviceInstanceId, outputId: SwitchableOutputId) => {
81
+ type: string;
76
82
  auto: string;
77
83
  state: string;
78
84
  dimming: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchableOutput.provider.d.ts","sourceRoot":"/","sources":["src/Modules/SwitchableOutputs/SwitchableOutput.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SwitchableOutput.provider.d.ts","sourceRoot":"/","sources":["src/Modules/SwitchableOutputs/SwitchableOutput.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA2B,MAAM,SAAS,CAAA;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,iCAAiC,EACjC,0BAA0B,EAC3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAElE,eAAO,MAAM,uBAAuB,+BAAgC,CAAA;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAC3E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACvC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAA;AAEjF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,QAAQ,EAAE,yBAAyB,CAAA;IACnC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,IAAI,EAAE,oBAAoB,CAAA;IAC1B,UAAU,EAAE,iCAAiC,CAAA;IAC7C,MAAM,EAAE,sBAAsB,CAAA;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,0BAA0B,CAAA;IACzC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;IACX,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,UAAU,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAChD,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;IACnC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,mBAAmB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;CACrD;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,iCAAiC,EAC5C,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAET;AAED,MAAM,WAAW,sBAAuB,SAAQ,MAAM;IACpD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,eAAO,MAAM,iCAAiC,GAAI,OAAO,qBAAqB,EAAE,qBAAqB,MAAM,WAO1G,CAAA;AAED,eAAO,MAAM,8BAA8B,GACzC,UAAU,QAAQ,EAClB,MAAM,oBAAoB,EAC1B,UAAU,yBAAyB,EACnC,UAAU,kBAAkB;;;;;;;;;;;;;;;;;;;CAoB5B,CAAA;AAEF,eAAO,MAAM,8BAA8B,GACzC,UAAU,QAAQ,EAClB,MAAM,oBAAoB,EAC1B,UAAU,yBAAyB,EACnC,UAAU,kBAAkB;;;;;;CAO5B,CAAA;AAEF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,yBAAyB,EACnC,QAAQ,EAAE,kBAAkB,GAC3B,wBAAwB,CA2B1B"}
@@ -13,6 +13,9 @@ import { useMqtt, useTopicsState } from "../Mqtt";
13
13
  import { useMemo } from "react";
14
14
  import { hsvwArrayToJSON } from "../../utils/hsvw";
15
15
  export var SWITCHABLE_OUTPUT_TREES = ["system", "switch"];
16
+ export function switchableOutputSupportsType(validType, type) {
17
+ return (validType & (1 << type)) !== 0;
18
+ }
16
19
  export var getSwitchableOutputNameForDisplay = function (state, switchingDeviceName) {
17
20
  // when custom name defined, or group not overriden
18
21
  if (state.customName || state.group === "") {
@@ -23,6 +26,7 @@ export var getSwitchableOutputNameForDisplay = function (state, switchingDeviceN
23
26
  };
24
27
  export var getSwitchableOutputStateTopics = function (portalId, tree, deviceId, outputId) { return ({
25
28
  type: "N/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Settings/Type"),
29
+ validTypes: "N/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Settings/ValidTypes"),
26
30
  status: "N/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Status"),
27
31
  name: "N/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Name"),
28
32
  customName: "N/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Settings/CustomName"),
@@ -41,6 +45,7 @@ export var getSwitchableOutputStateTopics = function (portalId, tree, deviceId,
41
45
  lightControls: "N/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/LightControls"),
42
46
  }); };
43
47
  export var getSwitchableOutputWriteTopics = function (portalId, tree, deviceId, outputId) { return ({
48
+ type: "W/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Settings/Type"),
44
49
  auto: "W/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Auto"),
45
50
  state: "W/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/State"),
46
51
  dimming: "W/".concat(portalId, "/").concat(tree, "/").concat(deviceId, "/SwitchableOutput/").concat(outputId, "/Dimming"),
@@ -50,12 +55,13 @@ export function useSwitchableOutput(tree, deviceId, outputId) {
50
55
  var mqtt = useMqtt();
51
56
  var topics = useMemo(function () { return getSwitchableOutputStateTopics(mqtt.portalId, tree, deviceId, outputId); }, [mqtt.portalId, deviceId, outputId]);
52
57
  var writeTopics = useMemo(function () { return getSwitchableOutputWriteTopics(mqtt.portalId, tree, deviceId, outputId); }, [mqtt.portalId, deviceId, outputId]);
58
+ var updateType = function (type) { return mqtt.publish(writeTopics.type, type); };
53
59
  var updateAuto = function (auto) { return mqtt.publish(writeTopics.auto, auto); };
54
60
  var updateState = function (state) { return mqtt.publish(writeTopics.state, state); };
55
61
  var updateDimming = function (dimming) { return mqtt.publish(writeTopics.dimming, dimming); };
56
62
  var updateLightControls = function (hsvwa) {
57
63
  return mqtt.publish(writeTopics.lightControls, { raw: hsvwArrayToJSON(hsvwa) });
58
64
  };
59
- return __assign(__assign({}, useTopicsState(topics)), { tree: tree, updateAuto: updateAuto, updateState: updateState, updateDimming: updateDimming, updateLightControls: updateLightControls });
65
+ return __assign(__assign({}, useTopicsState(topics)), { tree: tree, updateType: updateType, updateAuto: updateAuto, updateState: updateState, updateDimming: updateDimming, updateLightControls: updateLightControls });
60
66
  }
61
67
  //# sourceMappingURL=SwitchableOutput.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchableOutput.provider.js","sourceRoot":"/","sources":["src/Modules/SwitchableOutputs/SwitchableOutput.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\nimport { SwitchingDeviceInstanceId } from \"./SwitchingDevice.provider\"\nimport { SwitchableOutputStatus, SwitchableOutputType, SwitchableOutputVisibility } from \"../../utils/constants\"\nimport { hsvwArrayToJSON, HSVWColorArray } from \"../../utils/hsvw\"\n\nexport const SWITCHABLE_OUTPUT_TREES = [\"system\", \"switch\"] as const\nexport type SwitchableOutputTree = (typeof SWITCHABLE_OUTPUT_TREES)[number]\nexport type SwitchableOutputId = string\nexport type SwitchableOutputUnit = string | \"/Speed\" | \"/Temperature\" | \"/Volume\"\n\nexport interface SwitchableOutputState {\n tree: SwitchableOutputTree\n deviceId: SwitchingDeviceInstanceId\n outputId: SwitchableOutputId\n type: SwitchableOutputType\n status: SwitchableOutputStatus\n name: string\n customName: string\n group: string\n parentDeviceName: string\n showUIControl: SwitchableOutputVisibility\n auto: 0 | 1\n state: 0 | 1\n dimming?: number\n dimmingMin?: number\n dimmingMax?: number\n // NOTE: stepSize can be of any precision, respect the precision in the UI\n stepSize?: number\n measurement?: number\n unit: SwitchableOutputUnit\n decimals?: number\n // NOTE: JSON encoded string array\n labels: string\n lightControls: HSVWColorArray\n}\n\nexport interface SwitchableOutputProvider extends SwitchableOutputState {\n updateAuto: (auto: 0 | 1) => void\n updateState: (state: 0 | 1) => void\n updateDimming: (dimming: number) => void\n updateLightControls: (hsvwa: HSVWColorArray) => void\n}\n\nexport interface SwitchableOutputTopics extends Topics {\n type?: string\n status?: string\n name?: string\n customName?: string\n group?: string\n showUIControl?: string\n auto?: string\n state?: string\n dimming?: string\n dimmingMin?: string\n dimmingMax?: string\n stepSize?: string\n measurement?: string\n unit?: string\n labels?: string[]\n}\n\nexport const getSwitchableOutputNameForDisplay = (state: SwitchableOutputState, switchingDeviceName: string) => {\n // when custom name defined, or group not overriden\n if (state.customName || state.group === \"\") {\n return state.customName || state.name\n }\n // otherwise prepend switching device name\n return `${switchingDeviceName} | ${state.name}`\n}\n\nexport const getSwitchableOutputStateTopics = (\n portalId: PortalId,\n tree: SwitchableOutputTree,\n deviceId: SwitchingDeviceInstanceId,\n outputId: SwitchableOutputId\n) => ({\n type: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Type`,\n status: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Status`,\n name: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Name`,\n customName: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/CustomName`,\n group: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Group`,\n showUIControl: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/ShowUIControl`,\n auto: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Auto`,\n state: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/State`,\n dimming: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Dimming`,\n dimmingMin: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/DimmingMin`,\n dimmingMax: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/DimmingMax`,\n stepSize: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/StepSize`,\n measurement: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Measurement`,\n unit: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Unit`,\n decimals: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Decimals`,\n labels: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Labels`,\n lightControls: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/LightControls`,\n})\n\nexport const getSwitchableOutputWriteTopics = (\n portalId: PortalId,\n tree: SwitchableOutputTree,\n deviceId: SwitchingDeviceInstanceId,\n outputId: SwitchableOutputId\n) => ({\n auto: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Auto`,\n state: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/State`,\n dimming: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Dimming`,\n lightControls: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/LightControls`,\n})\n\nexport function useSwitchableOutput(\n tree: SwitchableOutputTree,\n deviceId: SwitchingDeviceInstanceId,\n outputId: SwitchableOutputId\n): SwitchableOutputProvider {\n const mqtt = useMqtt()\n const topics = useMemo(\n () => getSwitchableOutputStateTopics(mqtt.portalId, tree, deviceId, outputId),\n [mqtt.portalId, deviceId, outputId]\n )\n const writeTopics = useMemo(\n () => getSwitchableOutputWriteTopics(mqtt.portalId, tree, deviceId, outputId),\n [mqtt.portalId, deviceId, outputId]\n )\n\n const updateAuto = (auto: 0 | 1) => mqtt.publish(writeTopics!.auto, auto)\n const updateState = (state: 0 | 1) => mqtt.publish(writeTopics!.state, state)\n const updateDimming = (dimming: number) => mqtt.publish(writeTopics!.dimming, dimming)\n const updateLightControls = (hsvwa: HSVWColorArray) =>\n mqtt.publish(writeTopics!.lightControls, { raw: hsvwArrayToJSON(hsvwa) })\n\n return {\n ...useTopicsState<SwitchableOutputState>(topics),\n tree: tree,\n updateAuto,\n updateState,\n updateDimming,\n updateLightControls,\n }\n}\n"]}
1
+ {"version":3,"file":"SwitchableOutput.provider.js","sourceRoot":"/","sources":["src/Modules/SwitchableOutputs/SwitchableOutput.provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { PortalId, Topics, useMqtt, useTopicsState } from \"../Mqtt\"\nimport { useMemo } from \"react\"\nimport { SwitchingDeviceInstanceId } from \"./SwitchingDevice.provider\"\nimport {\n SwitchableOutputStatus,\n SwitchableOutputType,\n SwitchableOutputValidTypesBitmask,\n SwitchableOutputVisibility,\n} from \"../../utils/constants\"\nimport { hsvwArrayToJSON, HSVWColorArray } from \"../../utils/hsvw\"\n\nexport const SWITCHABLE_OUTPUT_TREES = [\"system\", \"switch\"] as const\nexport type SwitchableOutputTree = (typeof SWITCHABLE_OUTPUT_TREES)[number]\nexport type SwitchableOutputId = string\nexport type SwitchableOutputUnit = string | \"/Speed\" | \"/Temperature\" | \"/Volume\"\n\nexport interface SwitchableOutputState {\n tree: SwitchableOutputTree\n deviceId: SwitchingDeviceInstanceId\n outputId: SwitchableOutputId\n type: SwitchableOutputType\n validTypes: SwitchableOutputValidTypesBitmask\n status: SwitchableOutputStatus\n name: string\n customName: string\n group: string\n parentDeviceName: string\n showUIControl: SwitchableOutputVisibility\n auto: 0 | 1\n state: 0 | 1\n dimming?: number\n dimmingMin?: number\n dimmingMax?: number\n // NOTE: stepSize can be of any precision, respect the precision in the UI\n stepSize?: number\n measurement?: number\n unit: SwitchableOutputUnit\n decimals?: number\n // NOTE: JSON encoded string array\n labels: string\n lightControls: HSVWColorArray\n}\n\nexport interface SwitchableOutputProvider extends SwitchableOutputState {\n updateType: (type: SwitchableOutputType) => void\n updateAuto: (auto: 0 | 1) => void\n updateState: (state: 0 | 1) => void\n updateDimming: (dimming: number) => void\n updateLightControls: (hsvwa: HSVWColorArray) => void\n}\n\nexport function switchableOutputSupportsType(\n validType: SwitchableOutputValidTypesBitmask,\n type: SwitchableOutputType\n): boolean {\n return (validType & (1 << type)) !== 0\n}\n\nexport interface SwitchableOutputTopics extends Topics {\n type?: string\n validTypes?: string\n status?: string\n name?: string\n customName?: string\n group?: string\n showUIControl?: string\n auto?: string\n state?: string\n dimming?: string\n dimmingMin?: string\n dimmingMax?: string\n stepSize?: string\n measurement?: string\n unit?: string\n labels?: string[]\n}\n\nexport const getSwitchableOutputNameForDisplay = (state: SwitchableOutputState, switchingDeviceName: string) => {\n // when custom name defined, or group not overriden\n if (state.customName || state.group === \"\") {\n return state.customName || state.name\n }\n // otherwise prepend switching device name\n return `${switchingDeviceName} | ${state.name}`\n}\n\nexport const getSwitchableOutputStateTopics = (\n portalId: PortalId,\n tree: SwitchableOutputTree,\n deviceId: SwitchingDeviceInstanceId,\n outputId: SwitchableOutputId\n) => ({\n type: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Type`,\n validTypes: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/ValidTypes`,\n status: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Status`,\n name: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Name`,\n customName: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/CustomName`,\n group: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Group`,\n showUIControl: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/ShowUIControl`,\n auto: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Auto`,\n state: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/State`,\n dimming: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Dimming`,\n dimmingMin: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/DimmingMin`,\n dimmingMax: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/DimmingMax`,\n stepSize: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/StepSize`,\n measurement: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Measurement`,\n unit: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Unit`,\n decimals: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Decimals`,\n labels: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Labels`,\n lightControls: `N/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/LightControls`,\n})\n\nexport const getSwitchableOutputWriteTopics = (\n portalId: PortalId,\n tree: SwitchableOutputTree,\n deviceId: SwitchingDeviceInstanceId,\n outputId: SwitchableOutputId\n) => ({\n type: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Settings/Type`,\n auto: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Auto`,\n state: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/State`,\n dimming: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/Dimming`,\n lightControls: `W/${portalId}/${tree}/${deviceId}/SwitchableOutput/${outputId}/LightControls`,\n})\n\nexport function useSwitchableOutput(\n tree: SwitchableOutputTree,\n deviceId: SwitchingDeviceInstanceId,\n outputId: SwitchableOutputId\n): SwitchableOutputProvider {\n const mqtt = useMqtt()\n const topics = useMemo(\n () => getSwitchableOutputStateTopics(mqtt.portalId, tree, deviceId, outputId),\n [mqtt.portalId, deviceId, outputId]\n )\n const writeTopics = useMemo(\n () => getSwitchableOutputWriteTopics(mqtt.portalId, tree, deviceId, outputId),\n [mqtt.portalId, deviceId, outputId]\n )\n\n const updateType = (type: SwitchableOutputType) => mqtt.publish(writeTopics!.type, type)\n const updateAuto = (auto: 0 | 1) => mqtt.publish(writeTopics!.auto, auto)\n const updateState = (state: 0 | 1) => mqtt.publish(writeTopics!.state, state)\n const updateDimming = (dimming: number) => mqtt.publish(writeTopics!.dimming, dimming)\n const updateLightControls = (hsvwa: HSVWColorArray) =>\n mqtt.publish(writeTopics!.lightControls, { raw: hsvwArrayToJSON(hsvwa) })\n\n return {\n ...useTopicsState<SwitchableOutputState>(topics),\n tree: tree,\n updateType,\n updateAuto,\n updateState,\n updateDimming,\n updateLightControls,\n }\n}\n"]}
@@ -101,6 +101,8 @@ export declare const SWITCHABLE_OUTPUT_TYPE: {
101
101
  readonly RGBW_COLOR_WHEEL: 13;
102
102
  };
103
103
  export type SwitchableOutputType = (typeof SWITCHABLE_OUTPUT_TYPE)[keyof typeof SWITCHABLE_OUTPUT_TYPE];
104
+ export declare const SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK: { [K in keyof typeof SWITCHABLE_OUTPUT_TYPE]: number; };
105
+ export type SwitchableOutputValidTypesBitmask = (typeof SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK)[keyof typeof SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK];
104
106
  export declare const SWITCHABLE_OUTPUT_STATUS: {
105
107
  readonly STATUS_OFF: 0;
106
108
  readonly STATUS_ON: 9;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"/","sources":["src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAED,eAAO,MAAM,sBAAsB;;CAElC,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAe9B,CAAA;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAA;AAED,eAAO,MAAM,cAAc;;;;;CAK1B,CAAA;AAED,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,WAAW;;;;;CAKvB,CAAA;AAED,eAAO,MAAM,YAAY;;;CAGxB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;CAKzB,CAAA;AAED,eAAO,MAAM,+BAA+B,QAAQ,CAAA;AAEpD,eAAO,MAAM,8BAA8B;;;CAG1C,CAAA;AAED,eAAO,MAAM,cAAc;;CAE1B,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAA;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAa3B,CAAA;AAGD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;CAezB,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAA;AAGvG,eAAO,MAAM,wBAAwB;;;;;;;;;;CAU3B,CAAA;AAEV,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAA;AAG7G,eAAO,MAAM,4BAA4B;;;;;CAK/B,CAAA;AAEV,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,OAAO,4BAA4B,CAAC,CAAA;AAElF,eAAO,MAAM,KAAK;;;;;;;CAOjB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"/","sources":["src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAED,eAAO,MAAM,sBAAsB;;CAElC,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAe9B,CAAA;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAA;AAED,eAAO,MAAM,cAAc;;;;;CAK1B,CAAA;AAED,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,WAAW;;;;;CAKvB,CAAA;AAED,eAAO,MAAM,YAAY;;;CAGxB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;CAKzB,CAAA;AAED,eAAO,MAAM,+BAA+B,QAAQ,CAAA;AAEpD,eAAO,MAAM,8BAA8B;;;CAG1C,CAAA;AAED,eAAO,MAAM,cAAc;;CAE1B,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;CAKhC,CAAA;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAa3B,CAAA;AAGD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;CAezB,CAAA;AAEV,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAA;AAEvG,eAAO,MAAM,qCAAqC,EAE7C,GAAG,CAAC,IAAI,MAAM,OAAO,sBAAsB,GAAG,MAAM,GAAE,CAAA;AAE3D,MAAM,MAAM,iCAAiC,GAC3C,CAAC,OAAO,qCAAqC,CAAC,CAAC,MAAM,OAAO,qCAAqC,CAAC,CAAA;AAGpG,eAAO,MAAM,wBAAwB;;;;;;;;;;CAU3B,CAAA;AAEV,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAA;AAG7G,eAAO,MAAM,4BAA4B;;;;;CAK/B,CAAA;AAEV,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,OAAO,4BAA4B,CAAC,CAAA;AAElF,eAAO,MAAM,KAAK;;;;;;;CAOjB,CAAA"}
@@ -101,6 +101,10 @@ export var SWITCHABLE_OUTPUT_TYPE = {
101
101
  CCT_COLOR_WHEEL: 12,
102
102
  RGBW_COLOR_WHEEL: 13,
103
103
  };
104
+ export var SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK = Object.fromEntries(Object.entries(SWITCHABLE_OUTPUT_TYPE).map(function (_a) {
105
+ var key = _a[0], value = _a[1];
106
+ return [key, 1 << value];
107
+ }));
104
108
  // Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch
105
109
  export var SWITCHABLE_OUTPUT_STATUS = {
106
110
  STATUS_OFF: 0x00,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"/","sources":["src/utils/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const BATTERY_STATE = {\n IDLE: 0,\n CHARGING: 1,\n DISCHARGING: 2,\n}\n\nexport const DC_SOURCE_MONITOR_MODE = {\n WIND_GENERATOR: -8,\n}\n\nexport const VEBUS_SYSTEM_STATE = {\n OFF: 0,\n LOW_POWER: 1,\n FAULT_CONDITION: 2,\n BULK_CHARGING: 3,\n ABSORPTION_CHARGINNG: 4,\n FLOAT_CHARGING: 5,\n STORAGE_MODE: 6,\n EQUALISATION_CHARGING: 7,\n PASSTHRU: 8,\n INVERTING: 9,\n ASSISTING: 10,\n POWER_SUPPLY_MODE: 11,\n DISCHARGING: 256,\n SUSTAIN: 257,\n}\n\nexport const AC_SOURCE = {\n NOT_AVAILABLE: 0,\n GRID: 1,\n GENSET: 2,\n SHORE: 3,\n INVERTING_ISLAND_MODE: 240,\n}\n\nexport const AC_SOURCE_TYPE = {\n NOT_IN_USE: 0,\n GRID: 1,\n GENERATOR: 2,\n SHORE: 3,\n}\n\nexport const ACTIVE_INPUT = {\n INPUT_0: 0,\n INPUT_1: 1,\n NONE: 240, // Inverting\n}\n\nexport const SYSTEM_MODE = {\n CHARGER_ONLY: 1,\n INVERTER_ONLY: 2,\n ON: 3,\n OFF: 4,\n}\n\nexport const CHARGER_MODE = {\n OFF: 4,\n ON: 1,\n}\n\nexport const INVERTER_MODE = {\n ON: 2,\n VEBUS_ON: 3, // Vebus inverters use mode 3 in stead of 2 for ON.\n OFF: 4,\n ECO: 5,\n}\n\nexport const FISCHER_PANDA_GENSET_PRODUCT_ID = 45120 /// 0xB040 VE_PROD_ID_FISCHER_PANDA_GENSET\n\nexport const FISCHER_PANDA_GENSET_AUTOSTART = {\n DISABLED: 0,\n ENABLED: 1,\n}\n\nexport const RELAY_FUNCTION = {\n GENERATOR_START_STOP: 1,\n}\n\nexport const GENERATOR_START_STOP = {\n STOP: 0,\n START: 1,\n AUTO_ON: 1,\n AUTO_OFF: 0,\n}\n\nexport const TANK_FLUID_TYPE = {\n FUEL: 0,\n FRESH_WATER: 1,\n WASTE_WATER: 2,\n LIVE_WELL: 3,\n OIL: 4,\n BLACK_WATER: 5,\n GASOLINE: 5,\n DIESEL: 6,\n LPG: 7,\n LNG: 8,\n HYDRAULIC_OIL: 9,\n RAW_WATER: 10,\n}\n\n// Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch\nexport const SWITCHABLE_OUTPUT_TYPE = {\n MOMENTARY_SWITCH: 0,\n TOGGLE_SWITCH: 1,\n DIMMABLE: 2,\n TEMPERATURE_SETPOINT: 3,\n STEPPED_SWITCH: 4,\n SLAVE_MODE: 5,\n DROPDOWN: 6,\n SLIDER: 7,\n UNRANGED_SETPOINT: 8,\n THREE_STATE_SWITCH: 9,\n BILGE_PUMP_CONTROL: 10,\n RGB_COLOR_WHEEL: 11,\n CCT_COLOR_WHEEL: 12,\n RGBW_COLOR_WHEEL: 13,\n} as const\n\nexport type SwitchableOutputType = (typeof SWITCHABLE_OUTPUT_TYPE)[keyof typeof SWITCHABLE_OUTPUT_TYPE]\n\n// Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch\nexport const SWITCHABLE_OUTPUT_STATUS = {\n STATUS_OFF: 0x00,\n STATUS_ON: 0x09,\n STATUS_POWERED: 0x01,\n STATUS_TRIPPED: 0x02,\n STATUS_OVER_TEMPERATURE: 0x04,\n STATUS_OUTPUT_FAULT: 0x08,\n STATUS_SHORT_FAULT: 0x10,\n STATUS_DISABLED: 0x20,\n STATUS_BYPASSED: 0x40,\n} as const\n\nexport type SwitchableOutputStatus = (typeof SWITCHABLE_OUTPUT_STATUS)[keyof typeof SWITCHABLE_OUTPUT_STATUS]\n\n// Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch\nexport const SWITCHABLE_OUTPUT_VISIBILITY = {\n INVISIBLE: 0,\n VISIBLE: 1,\n VISIBLE_LOCAL_UI: 1 << 1,\n VISIBLE_REMOTE_UI: 1 << 2,\n} as const\n\nexport type SwitchableOutputVisibility =\n (typeof SWITCHABLE_OUTPUT_VISIBILITY)[keyof typeof SWITCHABLE_OUTPUT_VISIBILITY]\n\nexport const VIEWS = {\n CONNECTING: \"CONNECTING\",\n METRICS: \"METRICS\",\n INVERTER_CHARGER_INPUT_LIMIT_SELECTOR: \"INVERTER_CHARGER_INPUT_LIMIT_SELECTOR\",\n REMOTE_CONSOLE: \"REMOTE_CONSOLE\",\n MQTT_UNAVAILABLE: \"MQTT_UNAVAILABLE\",\n ERROR: \"ERROR\",\n}\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"/","sources":["src/utils/constants.ts"],"names":[],"mappings":"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","sourcesContent":["export const BATTERY_STATE = {\n IDLE: 0,\n CHARGING: 1,\n DISCHARGING: 2,\n}\n\nexport const DC_SOURCE_MONITOR_MODE = {\n WIND_GENERATOR: -8,\n}\n\nexport const VEBUS_SYSTEM_STATE = {\n OFF: 0,\n LOW_POWER: 1,\n FAULT_CONDITION: 2,\n BULK_CHARGING: 3,\n ABSORPTION_CHARGINNG: 4,\n FLOAT_CHARGING: 5,\n STORAGE_MODE: 6,\n EQUALISATION_CHARGING: 7,\n PASSTHRU: 8,\n INVERTING: 9,\n ASSISTING: 10,\n POWER_SUPPLY_MODE: 11,\n DISCHARGING: 256,\n SUSTAIN: 257,\n}\n\nexport const AC_SOURCE = {\n NOT_AVAILABLE: 0,\n GRID: 1,\n GENSET: 2,\n SHORE: 3,\n INVERTING_ISLAND_MODE: 240,\n}\n\nexport const AC_SOURCE_TYPE = {\n NOT_IN_USE: 0,\n GRID: 1,\n GENERATOR: 2,\n SHORE: 3,\n}\n\nexport const ACTIVE_INPUT = {\n INPUT_0: 0,\n INPUT_1: 1,\n NONE: 240, // Inverting\n}\n\nexport const SYSTEM_MODE = {\n CHARGER_ONLY: 1,\n INVERTER_ONLY: 2,\n ON: 3,\n OFF: 4,\n}\n\nexport const CHARGER_MODE = {\n OFF: 4,\n ON: 1,\n}\n\nexport const INVERTER_MODE = {\n ON: 2,\n VEBUS_ON: 3, // Vebus inverters use mode 3 in stead of 2 for ON.\n OFF: 4,\n ECO: 5,\n}\n\nexport const FISCHER_PANDA_GENSET_PRODUCT_ID = 45120 /// 0xB040 VE_PROD_ID_FISCHER_PANDA_GENSET\n\nexport const FISCHER_PANDA_GENSET_AUTOSTART = {\n DISABLED: 0,\n ENABLED: 1,\n}\n\nexport const RELAY_FUNCTION = {\n GENERATOR_START_STOP: 1,\n}\n\nexport const GENERATOR_START_STOP = {\n STOP: 0,\n START: 1,\n AUTO_ON: 1,\n AUTO_OFF: 0,\n}\n\nexport const TANK_FLUID_TYPE = {\n FUEL: 0,\n FRESH_WATER: 1,\n WASTE_WATER: 2,\n LIVE_WELL: 3,\n OIL: 4,\n BLACK_WATER: 5,\n GASOLINE: 5,\n DIESEL: 6,\n LPG: 7,\n LNG: 8,\n HYDRAULIC_OIL: 9,\n RAW_WATER: 10,\n}\n\n// Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch\nexport const SWITCHABLE_OUTPUT_TYPE = {\n MOMENTARY_SWITCH: 0,\n TOGGLE_SWITCH: 1,\n DIMMABLE: 2,\n TEMPERATURE_SETPOINT: 3,\n STEPPED_SWITCH: 4,\n SLAVE_MODE: 5,\n DROPDOWN: 6,\n SLIDER: 7,\n UNRANGED_SETPOINT: 8,\n THREE_STATE_SWITCH: 9,\n BILGE_PUMP_CONTROL: 10,\n RGB_COLOR_WHEEL: 11,\n CCT_COLOR_WHEEL: 12,\n RGBW_COLOR_WHEEL: 13,\n} as const\n\nexport type SwitchableOutputType = (typeof SWITCHABLE_OUTPUT_TYPE)[keyof typeof SWITCHABLE_OUTPUT_TYPE]\n\nexport const SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK = Object.fromEntries(\n Object.entries(SWITCHABLE_OUTPUT_TYPE).map(([key, value]) => [key, 1 << value])\n) as { [K in keyof typeof SWITCHABLE_OUTPUT_TYPE]: number }\n\nexport type SwitchableOutputValidTypesBitmask =\n (typeof SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK)[keyof typeof SWITCHABLE_OUTPUT_VALID_TYPES_BITMASK]\n\n// Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch\nexport const SWITCHABLE_OUTPUT_STATUS = {\n STATUS_OFF: 0x00,\n STATUS_ON: 0x09,\n STATUS_POWERED: 0x01,\n STATUS_TRIPPED: 0x02,\n STATUS_OVER_TEMPERATURE: 0x04,\n STATUS_OUTPUT_FAULT: 0x08,\n STATUS_SHORT_FAULT: 0x10,\n STATUS_DISABLED: 0x20,\n STATUS_BYPASSED: 0x40,\n} as const\n\nexport type SwitchableOutputStatus = (typeof SWITCHABLE_OUTPUT_STATUS)[keyof typeof SWITCHABLE_OUTPUT_STATUS]\n\n// Taken from: https://github.com/victronenergy/venus/wiki/dbus#switch\nexport const SWITCHABLE_OUTPUT_VISIBILITY = {\n INVISIBLE: 0,\n VISIBLE: 1,\n VISIBLE_LOCAL_UI: 1 << 1,\n VISIBLE_REMOTE_UI: 1 << 2,\n} as const\n\nexport type SwitchableOutputVisibility =\n (typeof SWITCHABLE_OUTPUT_VISIBILITY)[keyof typeof SWITCHABLE_OUTPUT_VISIBILITY]\n\nexport const VIEWS = {\n CONNECTING: \"CONNECTING\",\n METRICS: \"METRICS\",\n INVERTER_CHARGER_INPUT_LIMIT_SELECTOR: \"INVERTER_CHARGER_INPUT_LIMIT_SELECTOR\",\n REMOTE_CONSOLE: \"REMOTE_CONSOLE\",\n MQTT_UNAVAILABLE: \"MQTT_UNAVAILABLE\",\n ERROR: \"ERROR\",\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@victronenergy/mfd-modules",
3
- "version": "10.1.2",
3
+ "version": "10.2.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",