hyperion.ng/assets/webconfig/js/wizards/LedDevice_utils.js
LordGrey 4f1b95ec83
Add Home Assistant Lights support (#1763)
* New HomeAssistant LEDDevice

* Fix typos

* Ping Qt for Windows to 6.7 until aqtinstaller is fixed

* Fix HA default port handling

* HA - Update default latchtime and range

* Add HA Wizard and light selection

* Naming consistency

* Fix "Selected Hyperion instance is not running"

* CodeQL findings

* HA - allow to overwrite brightness by HA yes or no

* HA - Support switch off on black

* HA - Add transition time
2024-08-25 17:34:27 +02:00

72 lines
2.8 KiB
JavaScript

const ledDeviceWizardUtils = (() => {
// Layout positions
const positionMap = {
"top": { hmin: 0.15, hmax: 0.85, vmin: 0, vmax: 0.2 },
"topleft": { hmin: 0, hmax: 0.15, vmin: 0, vmax: 0.15 },
"topright": { hmin: 0.85, hmax: 1.0, vmin: 0, vmax: 0.15 },
"bottom": { hmin: 0.15, hmax: 0.85, vmin: 0.8, vmax: 1.0 },
"bottomleft": { hmin: 0, hmax: 0.15, vmin: 0.85, vmax: 1.0 },
"bottomright": { hmin: 0.85, hmax: 1.0, vmin: 0.85, vmax: 1.0 },
"left": { hmin: 0, hmax: 0.15, vmin: 0.15, vmax: 0.85 },
"lefttop": { hmin: 0, hmax: 0.15, vmin: 0, vmax: 0.5 },
"leftmiddle": { hmin: 0, hmax: 0.15, vmin: 0.25, vmax: 0.75 },
"leftbottom": { hmin: 0, hmax: 0.15, vmin: 0.5, vmax: 1.0 },
"right": { hmin: 0.85, hmax: 1.0, vmin: 0.15, vmax: 0.85 },
"righttop": { hmin: 0.85, hmax: 1.0, vmin: 0, vmax: 0.5 },
"rightmiddle": { hmin: 0.85, hmax: 1.0, vmin: 0.25, vmax: 0.75 },
"rightbottom": { hmin: 0.85, hmax: 1.0, vmin: 0.5, vmax: 1.0 },
"lightPosBottomLeft14": { hmin: 0, hmax: 0.25, vmin: 0.85, vmax: 1.0 },
"lightPosBottomLeft12": { hmin: 0.25, hmax: 0.5, vmin: 0.85, vmax: 1.0 },
"lightPosBottomLeft34": { hmin: 0.5, hmax: 0.75, vmin: 0.85, vmax: 1.0 },
"lightPosBottomLeft11": { hmin: 0.75, hmax: 1, vmin: 0.85, vmax: 1.0 },
"lightPosBottomLeft112": { hmin: 0, hmax: 0.5, vmin: 0.85, vmax: 1.0 },
"lightPosBottomLeft121": { hmin: 0.5, hmax: 1, vmin: 0.85, vmax: 1.0 },
"lightPosBottomLeftNewMid": { hmin: 0.25, hmax: 0.75, vmin: 0.85, vmax: 1.0 },
"lightPosTopLeft112": { hmin: 0, hmax: 0.5, vmin: 0, vmax: 0.15 },
"lightPosTopLeft121": { hmin: 0.5, hmax: 1, vmin: 0, vmax: 0.15 },
"lightPosTopLeftNewMid": { hmin: 0.25, hmax: 0.75, vmin: 0, vmax: 0.15 },
"lightPosEntire": { hmin: 0.0, hmax: 1.0, vmin: 0.0, vmax: 1.0 }
};
return {
//return editor Value
eV: function (vn, defaultVal = "") {
let editor = null;
if (vn) {
editor = conf_editor.getEditor("root.specificOptions." + vn);
}
if (editor === null) {
return defaultVal;
} else if (defaultVal !== "" && !isNaN(defaultVal) && isNaN(editor.getValue())) {
return defaultVal;
} else {
return editor.getValue();
}
},
assignLightPos: function (pos, name) {
// Retrieve the corresponding position object from the positionMap
const i = positionMap[pos] || positionMap["lightPosEntire"];
i.name = name;
return i;
},
getLayoutPositions: function () {
return Object.keys(positionMap);
},
getLayoutPositionsTitles: function () {
let layoutPositionTitles = [];
for (const layoutPosition of Object.keys(positionMap)) {
layoutPositionTitles.push($.i18n('conf_leds_layout_cl_' + layoutPosition));
}
return layoutPositionTitles;
}
};
})();
export { ledDeviceWizardUtils };