diff --git a/utils/equipment.js b/utils/equipment.js index e5d0398..0ead667 100644 --- a/utils/equipment.js +++ b/utils/equipment.js @@ -3,17 +3,30 @@ console.log('Load equipment modules'); class Equipment { constructor(equipmentItem) { - console.info(`Initialization of eqipment ${equipmentItem.name} with type ${this.constructor.name}`); - // Set equipmentItem - this.equipmentItem = equipmentItem; + // Fetch item if provided equipmentItem is a string + if (typeof equipmentItem === 'string' || equipmentItem instanceof String) { + this.equipmentItem = items[equipmentItem]; + } else { + this.equipmentItem = equipmentItem; + } + + // Throw error if item is not existing + if (this.equipmentItem === null) { + throw(`Item ${equipmentItem} not existing`); + } + + // Throw error if item is not an equipment type + if (this.equipmentItem.semantics.semanticType != 'Equipment') { + throw(`Item ${this.equipmentItem.name} is not an equipment type`); + } + + console.info(`Initialization of equipment ${this.equipmentItem.name} with type ${this.constructor.name}`); // Initialization of properties this.name = this.equipmentItem.name; - this.watch = new Object(); - - // Set stateItem, toDo: error when no stateItem existing this.stateItem = items[this.getPropertyItemName('State')]; + this.watch = new Object(); // Check if equipment has LowBat item if (this.hasProperty('LowBat')) {