UNPKG

lib-comfoair

Version:

Library to communicate with Zehnder ComfoAirQ ventilation unit through the ComfoControl gateway

300 lines (299 loc) 17.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VentilationUnitProperties = exports.UnitTypes = exports.ErrorCodes = exports.NodeTypes = void 0; const deviceProperties_1 = require("./deviceProperties"); var NodeTypes; (function (NodeTypes) { NodeTypes[NodeTypes["VENTILATION_UNIT"] = 1] = "VENTILATION_UNIT"; NodeTypes[NodeTypes["OPTION_BOX"] = 2] = "OPTION_BOX"; NodeTypes[NodeTypes["COMFOCONTROL_GATEWAY"] = 55] = "COMFOCONTROL_GATEWAY"; })(NodeTypes || (exports.NodeTypes = NodeTypes = {})); var ErrorCodes; (function (ErrorCodes) { ErrorCodes[ErrorCodes["NO_ERROR"] = 0] = "NO_ERROR"; ErrorCodes[ErrorCodes["UNKNOWN_COMMAND"] = 11] = "UNKNOWN_COMMAND"; ErrorCodes[ErrorCodes["UNKNOWN_UNIT"] = 12] = "UNKNOWN_UNIT"; ErrorCodes[ErrorCodes["UNKNOWN_SUBUNIT"] = 13] = "UNKNOWN_SUBUNIT"; ErrorCodes[ErrorCodes["UNKNOWN_PROPERTY"] = 14] = "UNKNOWN_PROPERTY"; ErrorCodes[ErrorCodes["TYPE_CANNOT_HAVE_RANGE"] = 15] = "TYPE_CANNOT_HAVE_RANGE"; ErrorCodes[ErrorCodes["VALUE_NOT_IN_RANGE"] = 30] = "VALUE_NOT_IN_RANGE"; ErrorCodes[ErrorCodes["PROPERTY_NOT_GETTABLE_OR_SETTABLE"] = 32] = "PROPERTY_NOT_GETTABLE_OR_SETTABLE"; ErrorCodes[ErrorCodes["INTERNAL_ERROR"] = 40] = "INTERNAL_ERROR"; ErrorCodes[ErrorCodes["INTERNAL_ERROR_COMMAND_WRONG"] = 41] = "INTERNAL_ERROR_COMMAND_WRONG"; })(ErrorCodes || (exports.ErrorCodes = ErrorCodes = {})); /** * Enum representing different node types. */ var UnitTypes; (function (UnitTypes) { /** NODE: Represents the general node with attributes like serial nr, etc. (1 SubUnit) */ UnitTypes[UnitTypes["NODE"] = 1] = "NODE"; /** COMFOBUS: Unit responsible for comfobus-communication. Probably stores the ID's of connected devices. (1 SubUnit) */ UnitTypes[UnitTypes["COMFOBUS"] = 2] = "COMFOBUS"; /** ERROR: Stores errors, allows errors to be reset (1 SubUnit) */ UnitTypes[UnitTypes["ERROR"] = 3] = "ERROR"; /** SCHEDULE: Responsible for managing Timers, the schedule, etc. Check here for level, bypass etc. (10 SubUnits) */ UnitTypes[UnitTypes["SCHEDULE"] = 21] = "SCHEDULE"; /** VALVE: ??? Bypass PreHeater and Extract (2 SubUnits) */ UnitTypes[UnitTypes["VALVE"] = 22] = "VALVE"; /** FAN: Represents the two fans (supply, exhaust) (2 SubUnits) */ UnitTypes[UnitTypes["FAN"] = 23] = "FAN"; /** POWERSENSOR: Counts the actual wattage of ventilation and accumulates to year and since factory reset (1 SubUnit) */ UnitTypes[UnitTypes["POWERSENSOR"] = 24] = "POWERSENSOR"; /** PREHEATER: Represents the optional preheater (1 SubUnit) */ UnitTypes[UnitTypes["PREHEATER"] = 25] = "PREHEATER"; /** HMI: Represents the Display + Buttons (1 SubUnit) */ UnitTypes[UnitTypes["HMI"] = 26] = "HMI"; /** RFCOMMUNICATION: Wireless-communication with attached devices (1 SubUnit) */ UnitTypes[UnitTypes["RFCOMMUNICATION"] = 27] = "RFCOMMUNICATION"; /** FILTER: Counts the days since last filter change (1 SubUnit) */ UnitTypes[UnitTypes["FILTER"] = 28] = "FILTER"; /** TEMPHUMCONTROL: Controls the target temperature, if its cooling or heating period and some settings (1 SubUnit) */ UnitTypes[UnitTypes["TEMPHUMCONTROL"] = 29] = "TEMPHUMCONTROL"; /** VENTILATIONCONFIG: Responsible for managing various configuration options of the ventilation (1 SubUnit) */ UnitTypes[UnitTypes["VENTILATIONCONFIG"] = 30] = "VENTILATIONCONFIG"; /** NODECONFIGURATION: Manages also some options (1 SubUnit) */ UnitTypes[UnitTypes["NODECONFIGURATION"] = 32] = "NODECONFIGURATION"; /** TEMPERATURESENSOR: Represents the 6 temperature sensors in the ventilation (6 SubUnits) */ UnitTypes[UnitTypes["TEMPERATURESENSOR"] = 33] = "TEMPERATURESENSOR"; /** HUMIDITYSENSOR: Represents the 6 humidity sensors (6 SubUnits) */ UnitTypes[UnitTypes["HUMIDITYSENSOR"] = 34] = "HUMIDITYSENSOR"; /** PRESSURESENSOR: Represents both pressure sensors (2 SubUnits) */ UnitTypes[UnitTypes["PRESSURESENSOR"] = 35] = "PRESSURESENSOR"; /** PERIPHERALS: Stores the ID of the ComfoCool attached, can reset peripheral errors here (1 SubUnit) */ UnitTypes[UnitTypes["PERIPHERALS"] = 36] = "PERIPHERALS"; /** ANALOGINPUT: Provides data and functionality for the analog inputs, also the scaling for the voltages (4 SubUnits) */ UnitTypes[UnitTypes["ANALOGINPUT"] = 37] = "ANALOGINPUT"; /** COOKERHOOD: "Dummy" unit, probably represents the ComfoHood if attached (1 SubUnit) */ UnitTypes[UnitTypes["COOKERHOOD"] = 38] = "COOKERHOOD"; /** POSTHEATER: Represents the optional post heater attached (temperature sens, config) (1 SubUnit) */ UnitTypes[UnitTypes["POSTHEATER"] = 39] = "POSTHEATER"; /** COMFOFOND: "Dummy" unit, represents the optional comfofond (1 SubUnit) */ UnitTypes[UnitTypes["COMFOFOND"] = 40] = "COMFOFOND"; })(UnitTypes || (exports.UnitTypes = UnitTypes = {})); /** * Known properties of each subunit. */ exports.VentilationUnitProperties = { NODE: { // "UNKNOWN_1": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x01, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_2": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x02, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_3": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x03, dataType: PropertyDataType.CN_UINT8 }, SERIAL_NUMBER: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x04, dataType: deviceProperties_1.PropertyDataType.CN_STRING, access: 'ro', }, // "UNKNOWN_5": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x05, dataType: PropertyDataType.CN_UINT8 }, FIRMWARE_VERSION: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x06, dataType: deviceProperties_1.PropertyDataType.CN_UINT32, access: 'ro', }, // "UNKNOWN_7": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x07, dataType: PropertyDataType.CN_UINT32 }, MODEL_NUMBER: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x08, dataType: deviceProperties_1.PropertyDataType.CN_STRING, access: 'ro', }, // "UNKNOWN_9": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x09, dataType: PropertyDataType.CN_UINT32 }, // "UNKNOWN_10": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x0A, dataType: PropertyDataType.CN_UINT32 }, ARTICLE_NUMBER: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x0b, dataType: deviceProperties_1.PropertyDataType.CN_STRING, access: 'ro', }, // "UNKNOWN_12": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x0C, dataType: PropertyDataType.CN_STRING }, CURRENT_COUNTRY: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x0d, dataType: deviceProperties_1.PropertyDataType.CN_STRING, access: 'ro', }, VENTILATION_UNIT_NAME: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODE, propertyId: 0x14, dataType: deviceProperties_1.PropertyDataType.CN_STRING, access: 'ro', }, }, TEMPHUMCONTROL: { // "UNKNOWN_1": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x01, dataType: PropertyDataType.CN_UINT8 }, RMOT_HEATING_PERIOD: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x02, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, RMOT_COOLING_PERIOD: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x03, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, PASSIVE_TEMPERATURE_CONTROL: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x04, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, access: 'rw', }, // "UNKNOWN_5": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x05, dataType: PropertyDataType.CN_UINT8, access: "rw" }, HUMIDITY_COMFORT_CONTROL: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x06, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, access: 'rw', }, HUMIDITY_PROTECTION: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x07, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, access: 'rw', }, // "UNKNOWN_8": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x08, dataType: PropertyDataType.CN_UINT8, access: "rw" }, TARGET_TEMPERATURE_HEATING: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x0a, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, TARGET_TEMPERATURE_NORMAL: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x0b, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, TARGET_TEMPERATURE_COOLING: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x0c, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, // "UNKNOWN_13": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.TEMPHUMCONTROL, propertyId: 0x0D, dataType: PropertyDataType.CN_UINT8 }, }, VENTILATIONCONFIG: { // "UNKNOWN_1": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x01, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_2": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x02, dataType: PropertyDataType.CN_UINT8 }, VENTILATION_SPEED_AWAY: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x03, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, VENTILATION_SPEED_LOW: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x04, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, VENTILATION_SPEED_MEDIUM: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x05, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, VENTILATION_SPEED_HIGH: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x06, dataType: deviceProperties_1.PropertyDataType.CN_INT16, access: 'rw', }, HEIGHT_ABOVE_SEA_LEVEL: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x07, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, }, // "UNKNOWN_8": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x08, dataType: PropertyDataType.CN_INT16 }, VENTILATION_CONTROL_MODE: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x09, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, }, // "UNKNOWN_10": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x0A, dataType: PropertyDataType.CN_INT16 }, BATHROOM_SWITCH_ACTIVATION_DELAY: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x0b, dataType: deviceProperties_1.PropertyDataType.CN_INT16, }, BATHROOM_SWITCH_DEACTIVATION_DELAY: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x0c, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, }, BATHROOM_SWITCH_MODE: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x0d, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, }, // "UNKNOWN_14": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x0E, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_15": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x0F, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_17": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x11, dataType: PropertyDataType.CN_INT16 }, UNBALANCE: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x12, dataType: deviceProperties_1.PropertyDataType.CN_INT16, }, // "UNKNOWN_19": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x13, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_20": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x14, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_21": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x15, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_22": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x16, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_23": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x17, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_24": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x18, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_25": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x19, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_26": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x1A, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_27": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x1B, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_28": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x1C, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_29": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x1D, dataType: PropertyDataType.CN_INT16 }, // "UNKNOWN_30": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.VENTILATIONCONFIG, propertyId: 0x1E, dataType: PropertyDataType.CN_INT16 }, }, NODECONFIGURATION: { // "UNKNOWN_1": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x01, dataType: PropertyDataType.CN_UINT8 }, MAINTAINER_PASSWORD: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x03, dataType: deviceProperties_1.PropertyDataType.CN_STRING, }, ORIENTATION: { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x04, dataType: deviceProperties_1.PropertyDataType.CN_UINT8, }, // "UNKNOWN_5": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x05, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_6": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x06, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_7": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x07, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_8": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x08, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_10": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x0A, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_11": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x0B, dataType: PropertyDataType.CN_UINT8 }, // "UNKNOWN_12": { node: NodeTypes.VENTILATION_UNIT, unit: UnitTypes.NODECONFIGURATION, propertyId: 0x0C, dataType: PropertyDataType.CN_UINT8 }, }, };