chore: remove generate.js [skip ci]

This commit is contained in:
Luke Bonaccorsi 2024-03-20 22:56:36 +00:00
parent 475126c497
commit ebdf2007dc
1 changed files with 0 additions and 206 deletions

View File

@ -1,206 +0,0 @@
const fs = require("fs/promises");
const path = require("path");
const ROBOVAC_SERIES = {
C: [
"T2103",
"T2117",
"T2118",
"T2119",
"T2120",
"T2123",
"T2128",
"T2130",
"T2132",
],
G: [
"T1250",
"T2250",
"T2251",
"T2252",
"T2253",
"T2254",
"T2150",
"T2255",
"T2256",
"T2257",
"T2258",
"T2259",
"T2270",
"T2272",
"T2273",
],
L: ["T2181", "T2182", "T2190", "T2192", "T2193", "T2194"],
X: ["T2261", "T2262", "T2320"],
};
const HAS_MAP_FEATURE = [
"T2253",
...ROBOVAC_SERIES["L"],
...ROBOVAC_SERIES["X"],
];
const HAS_CONSUMABLES = [
"T1250",
"T2181",
"T2182",
"T2190",
"T2193",
"T2194",
"T2253",
"T2256",
"T2258",
"T2261",
"T2273",
"T2320",
];
const ROBOVAC_SERIES_FEATURES = {
C: ["RoboVacEntityFeature.EDGE", "RoboVacEntityFeature.SMALL_ROOM"],
G: [
"RoboVacEntityFeature.CLEANING_TIME",
"RoboVacEntityFeature.CLEANING_AREA",
"RoboVacEntityFeature.DO_NOT_DISTURB",
"RoboVacEntityFeature.AUTO_RETURN",
],
L: [
"RoboVacEntityFeature.CLEANING_TIME",
"RoboVacEntityFeature.CLEANING_AREA",
"RoboVacEntityFeature.DO_NOT_DISTURB",
"RoboVacEntityFeature.AUTO_RETURN",
"RoboVacEntityFeature.ROOM",
"RoboVacEntityFeature.ZONE",
"RoboVacEntityFeature.BOOST_IQ",
],
X: [
"RoboVacEntityFeature.CLEANING_TIME",
"RoboVacEntityFeature.CLEANING_AREA",
"RoboVacEntityFeature.DO_NOT_DISTURB",
"RoboVacEntityFeature.AUTO_RETURN",
"RoboVacEntityFeature.ROOM",
"RoboVacEntityFeature.ZONE",
"RoboVacEntityFeature.BOOST_IQ",
],
};
const ROBOVAC_SERIES_FAN_SPEEDS = {
C: ["No_suction", "Standard", "Boost_IQ", "Max"],
G: ["Standard", "Turbo", "Max", "Boost_IQ"],
L: ["Quiet", "Standard", "Turbo", "Max"],
X: ["Pure", "Standard", "Turbo", "Max"],
};
const commands = [
"CLEANING_AREA",
"CLEANING_TIME",
"AUTO_RETURN",
"DO_NOT_DISTURB",
"BOOST_IQ",
"CONSUMABLES",
];
const allModels = [];
Object.entries(ROBOVAC_SERIES).forEach(([series, models]) => {
models.forEach((model) => {
allModels.push(model);
const robovac_features = [...ROBOVAC_SERIES_FEATURES[series]];
const homeassistant_features = [
"VacuumEntityFeature.BATTERY",
"VacuumEntityFeature.CLEAN_SPOT",
"VacuumEntityFeature.FAN_SPEED",
"VacuumEntityFeature.LOCATE",
"VacuumEntityFeature.PAUSE",
"VacuumEntityFeature.RETURN_HOME",
"VacuumEntityFeature.SEND_COMMAND",
"VacuumEntityFeature.START",
"VacuumEntityFeature.STATE",
"VacuumEntityFeature.STOP",
];
if (HAS_MAP_FEATURE.includes(model)) {
homeassistant_features.push("VacuumEntityFeature.MAP");
robovac_features.push("RoboVacEntityFeature.MAP");
}
if (HAS_CONSUMABLES.includes(model)) {
robovac_features.push("RoboVacEntityFeature.CONSUMABLES");
}
const extra_commands = commands
.filter((command) =>
robovac_features.includes(`RoboVacEntityFeature.${command}`)
)
.map((command) => `# RobovacCommand.${command}: 0,`);
if (extra_commands.length > 0) {
extra_commands.unshift("# These commands need codes adding");
}
const file = `from homeassistant.components.vacuum import VacuumEntityFeature
from .base import RoboVacEntityFeature, RobovacCommand
class ${model}:
homeassistant_features = (
${homeassistant_features.join("\n | ")}
)
robovac_features = ${robovac_features.join(" | ")}
commands = {
RobovacCommand.START_PAUSE: 2,
RobovacCommand.DIRECTION: {
"code": 3,
"values": ["forward", "back", "left", "right"],
},
RobovacCommand.MODE: {
"code": 5,
"values": ["auto", "SmallRoom", "Spot", "Edge", "Nosweep"],
},
RobovacCommand.STATUS: 15,
RobovacCommand.RETURN_HOME: 101,
RobovacCommand.FAN_SPEED: {
"code": 102,
"values": ${JSON.stringify(ROBOVAC_SERIES_FAN_SPEEDS[series])},
},
RobovacCommand.LOCATE: 103,
RobovacCommand.BATTERY: 104,
RobovacCommand.ERROR: 106,${
extra_commands.length > 0
? `\n ${extra_commands.join("\n ")}`
: ""
}
}
`;
fs.writeFile(
path.join(
__dirname,
"custom_components",
"robovac",
"vacuums",
`${model}.py`
),
file
);
});
});
const initFile = `${allModels
.map((model) => `from .${model} import ${model}`)
.join("\n")}
ROBOVAC_MODELS = {
${allModels.map((model) => ` "${model}": ${model}`).join(",\n")}
}`;
fs.writeFile(
path.join(
__dirname,
"custom_components",
"robovac",
"vacuums",
`__init__.py`
),
initFile
);