Skip to content

Commit

Permalink
feat(vendor.viomi): Fetch and display firmware version
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Mar 4, 2022
1 parent 7ec1e5d commit 7f08743
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions backend/lib/robots/viomi/ViomiValetudoRobot.js
Expand Up @@ -6,6 +6,7 @@ const LinuxWifiScanCapability = require("../common/linuxCapabilities/LinuxWifiSc
const Logger = require("../../Logger");
const miioCapabilities = require("../common/miioCapabilities");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const ValetudoRobot = require("../../core/ValetudoRobot");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");
const ViomiMapParser = require("./ViomiMapParser");
const zlib = require("zlib");
Expand Down Expand Up @@ -544,6 +545,49 @@ class ViomiValetudoRobot extends MiioValetudoRobot {
]
};
}

/**
* @private
* @returns {string | null}
*/
getFirmwareVersion() {
try {
const os_release = fs.readFileSync("/etc/YMsave01/os-release").toString();
const parsedFile = /^VIOMI_VERSION=(?<version>[\d._]*)$/m.exec(os_release);

if (parsedFile !== null && parsedFile.groups && parsedFile.groups.version) {
return parsedFile.groups.version.split("_")?.[1];
} else {
return null;
}
} catch (e) {
Logger.warn("Unable to determine the Firmware Version", e);

return null;
}
}

/**
* @return {object}
*/
getProperties() {
const superProps = super.getProperties();
const ourProps = {};

if (this.config.get("embedded") === true) {
const firmwareVersion = this.getFirmwareVersion();

if (firmwareVersion) {
ourProps[ValetudoRobot.WELL_KNOWN_PROPERTIES.FIRMWARE_VERSION] = firmwareVersion;
}
}

return Object.assign(
{},
superProps,
ourProps
);
}
}

ViomiValetudoRobot.DEVICE_CONF_PATH = "/etc/miio/device.conf";
Expand Down

0 comments on commit 7f08743

Please sign in to comment.