UNPKG

homebridge-hubitat-tonesto7

Version:
337 lines (306 loc) 17.6 kB
"use strict"; const inherits = require("util").inherits; module.exports = { registerWith: function(hap) { const Characteristic = hap.Characteristic; const Service = hap.Service; /// ///////////////////////////////////////////////////////////////////////// // ResetTotal /// ///////////////////////////////////////////////////////////////////////// Characteristic.ResetTotal = function() { Characteristic.call(this, "Reset Total", "E863F112-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.UINT32, unit: Characteristic.Units.SECONDS, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.ResetTotal, Characteristic); Characteristic.ResetTotal.UUID = "E863F112-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // HistoryStatus /// ///////////////////////////////////////////////////////////////////////// Characteristic.HistoryStatus = function() { Characteristic.call(this, "History Status", "E863F116-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.DATA, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.HistoryStatus, Characteristic); Characteristic.HistoryStatus.UUID = "E863F116-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // HistoryEntries /// ///////////////////////////////////////////////////////////////////////// Characteristic.HistoryEntries = function() { Characteristic.call(this, "History Entries", "E863F117-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.DATA, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.HistoryEntries, Characteristic); Characteristic.HistoryEntries.UUID = "E863F117-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // HistoryRequest /// ///////////////////////////////////////////////////////////////////////// Characteristic.HistoryRequest = function() { Characteristic.call(this, "History Request", "E863F11C-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.DATA, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.HistoryRequest, Characteristic); Characteristic.HistoryRequest.UUID = "E863F11C-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // SetTime /// ///////////////////////////////////////////////////////////////////////// Characteristic.SetTime = function() { Characteristic.call(this, "Set Time", "E863F121-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.DATA, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.SetTime, Characteristic); Characteristic.SetTime.UUID = "E863F121-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // LastActivation /// ///////////////////////////////////////////////////////////////////////// Characteristic.LastActivation = function() { Characteristic.call(this, "Last Activation", "E863F11A-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.UINT32, unit: Characteristic.Units.SECONDS, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.LastActivation, Characteristic); Characteristic.LastActivation.UUID = "E863F11A-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // TimesOpened /// ///////////////////////////////////////////////////////////////////////// Characteristic.TimesOpened = function() { Characteristic.call(this, "Times Opened", "E863F129-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.UINT32, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.TimesOpened, Characteristic); Characteristic.TimesOpened.UUID = "E863F129-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // OpenDuration /// ///////////////////////////////////////////////////////////////////////// Characteristic.OpenDuration = function() { Characteristic.call(this, "Open Duration", "E863F118-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.UINT32, unit: Characteristic.Units.SECONDS, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.OpenDuration, Characteristic); Characteristic.OpenDuration.UUID = "E863F118-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // ClosedDuration /// ///////////////////////////////////////////////////////////////////////// Characteristic.ClosedDuration = function() { Characteristic.call(this, "Closed Duration", "E863F119-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.UINT32, unit: Characteristic.Units.SECONDS, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY, Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.ClosedDuration, Characteristic); Characteristic.ClosedDuration.UUID = "E863F119-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // CurrentConsumption /// ///////////////////////////////////////////////////////////////////////// Characteristic.CurrentConsumption = function() { Characteristic.call(this, "Current Consumption", "E863F10D-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.FLOAT, unit: "W", perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.CurrentConsumption, Characteristic); Characteristic.CurrentConsumption.UUID = "E863F10D-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // TotalConsumption /// ///////////////////////////////////////////////////////////////////////// Characteristic.TotalConsumption = function() { Characteristic.call(this, "Total Consumption", "E863F10C-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.FLOAT, unit: "kWh", perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.TotalConsumption, Characteristic); Characteristic.TotalConsumption.UUID = "E863F10C-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // Volts /// ///////////////////////////////////////////////////////////////////////// Characteristic.Volts = function() { Characteristic.call(this, "Volts", "E863F10A-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.FLOAT, unit: "V", perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.Volts, Characteristic); Characteristic.Volts.UUID = "E863F10A-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // Amperes /// ///////////////////////////////////////////////////////////////////////// Characteristic.Amperes = function() { Characteristic.call(this, "Amperes", "E863F126-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.FLOAT, unit: "A", perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.Amperes, Characteristic); Characteristic.Amperes.UUID = "E863F126-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // ValvePosition /// ///////////////////////////////////////////////////////////////////////// Characteristic.ValvePosition = function() { Characteristic.call(this, "Valve Position", "E863F12E-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.UINT8, unit: Characteristic.Units.PERCENTAGE, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.ValvePosition, Characteristic); Characteristic.ValvePosition.UUID = "E863F12E-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // ProgramCommand /// ///////////////////////////////////////////////////////////////////////// Characteristic.ProgramCommand = function() { Characteristic.call(this, "Program Command", "E863F12C-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.DATA, perms: [Characteristic.Perms.WRITE], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.ProgramCommand, Characteristic); Characteristic.ProgramCommand.UUID = "E863F12C-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // ProgramData /// ///////////////////////////////////////////////////////////////////////// Characteristic.ProgramData = function() { Characteristic.call(this, "Program Data", "E863F12F-079E-48FF-8F27-9C2605A29F52"); this.setProps({ format: Characteristic.Formats.DATA, perms: [Characteristic.Perms.READ, Characteristic.Perms.NOTIFY], }); this.value = this.getDefaultValue(); }; inherits(Characteristic.ProgramData, Characteristic); Characteristic.ProgramData.UUID = "E863F12F-079E-48FF-8F27-9C2605A29F52"; /// ///////////////////////////////////////////////////////////////////////// // Outlet /// ///////////////////////////////////////////////////////////////////////// Service.Outlet = function(displayName, subtype) { Service.call(this, displayName, "00000047-0000-1000-8000-0026BB765291", subtype); // Required Characteristics this.addCharacteristic(Characteristic.On); this.addCharacteristic(Characteristic.OutletInUse); // Optional Characteristics EVE this.addOptionalCharacteristic(Characteristic.CurrentConsumption); this.addOptionalCharacteristic(Characteristic.TotalConsumption); this.addOptionalCharacteristic(Characteristic.Volts); this.addOptionalCharacteristic(Characteristic.Amperes); // Optional Characteristics this.addOptionalCharacteristic(Characteristic.Name); }; inherits(Service.Outlet, Service); Service.Outlet.UUID = "00000047-0000-1000-8000-0026BB765291"; /// ///////////////////////////////////////////////////////////////////////// // Thermostat /// ///////////////////////////////////////////////////////////////////////// Service.Thermostat = function(displayName, subtype) { Service.call(this, displayName, "0000004A-0000-1000-8000-0026BB765291", subtype); // Required Characteristics this.addCharacteristic(Characteristic.CurrentHeatingCoolingState); this.addCharacteristic(Characteristic.TargetHeatingCoolingState); this.addCharacteristic(Characteristic.CurrentTemperature); this.addCharacteristic(Characteristic.TargetTemperature); this.addCharacteristic(Characteristic.TemperatureDisplayUnits); // Optional Characteristics EVE this.addOptionalCharacteristic(Characteristic.ValvePosition); this.addOptionalCharacteristic(Characteristic.ProgramCommand); this.addOptionalCharacteristic(Characteristic.ProgramData); // Optional Characteristics this.addOptionalCharacteristic(Characteristic.CurrentRelativeHumidity); this.addOptionalCharacteristic(Characteristic.TargetRelativeHumidity); this.addOptionalCharacteristic(Characteristic.CoolingThresholdTemperature); this.addOptionalCharacteristic(Characteristic.HeatingThresholdTemperature); this.addOptionalCharacteristic(Characteristic.Name); }; inherits(Service.Thermostat, Service); Service.Thermostat.UUID = "0000004A-0000-1000-8000-0026BB765291"; /// ///////////////////////////////////////////////////////////////////////// // ContactSensor /// ///////////////////////////////////////////////////////////////////////// Service.ContactSensor = function(displayName, subtype) { Service.call(this, displayName, "00000080-0000-1000-8000-0026BB765291", subtype); // Required Characteristics this.addCharacteristic(Characteristic.ContactSensorState); // Optional Characteristics EVE this.addOptionalCharacteristic(Characteristic.TimesOpened); this.addOptionalCharacteristic(Characteristic.OpenDuration); this.addOptionalCharacteristic(Characteristic.ClosedDuration); this.addOptionalCharacteristic(Characteristic.LastActivation); // Optional Characteristics this.addOptionalCharacteristic(Characteristic.StatusActive); this.addOptionalCharacteristic(Characteristic.StatusFault); this.addOptionalCharacteristic(Characteristic.StatusTampered); this.addOptionalCharacteristic(Characteristic.StatusLowBattery); this.addOptionalCharacteristic(Characteristic.Name); }; inherits(Service.ContactSensor, Service); Service.ContactSensor.UUID = "00000080-0000-1000-8000-0026BB765291"; /// ///////////////////////////////////////////////////////////////////////// // MotionSensor /// ///////////////////////////////////////////////////////////////////////// Service.MotionSensor = function(displayName, subtype) { Service.call(this, displayName, "00000085-0000-1000-8000-0026BB765291", subtype); // Required Characteristics this.addCharacteristic(Characteristic.MotionDetected); // Optional Characteristics EVE this.addOptionalCharacteristic(Characteristic.LastActivation); // Optional Characteristics this.addOptionalCharacteristic(Characteristic.StatusActive); this.addOptionalCharacteristic(Characteristic.StatusFault); this.addOptionalCharacteristic(Characteristic.StatusTampered); this.addOptionalCharacteristic(Characteristic.StatusLowBattery); this.addOptionalCharacteristic(Characteristic.Name); }; inherits(Service.MotionSensor, Service); Service.MotionSensor.UUID = "00000085-0000-1000-8000-0026BB765291"; }, };