homebridge#Formats TypeScript Examples
The following examples show how to use
homebridge#Formats.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: default-characteristic.ts From homebridge-tapo-p100 with Apache License 2.0 | 6 votes |
export default function defaultCharacteristic(
Characteristic: typeof CharacteristicClass,
): typeof CharacteristicClass {
return class DefaultCharacteristic extends Characteristic {
constructor(
displayName: string,
UUID: string,
props?: MarkOptional<CharacteristicProps, 'format' | 'perms'>,
) {
const combinedProps = {
format: Formats.FLOAT,
minValue: 0,
maxValue: 65535,
perms: [Perms.PAIRED_READ, Perms.NOTIFY],
...props,
};
super(displayName, UUID, combinedProps);
this.value = this.getDefaultValue();
}
};
}
Example #2
Source File: temperatureAccessory.ts From homebridge-screenlogic with MIT License | 6 votes |
constructor(
private readonly platform: ScreenLogicPlatform,
private readonly accessory: PlatformAccessory,
) {
// set accessory information
const accessoryInfo = platform.accessoryInfo()
this.accessory
.getService(this.platform.Service.AccessoryInformation)!
.setCharacteristic(this.platform.Characteristic.Manufacturer, accessoryInfo.manufacturer)
.setCharacteristic(this.platform.Characteristic.Model, accessoryInfo.model)
.setCharacteristic(this.platform.Characteristic.SerialNumber, accessoryInfo.serialNumber)
// get the TemperatureSensor service if it exists, otherwise create a new TemperatureSensor service
this.service =
this.accessory.getService(this.platform.Service.TemperatureSensor) ||
this.accessory.addService(this.platform.Service.TemperatureSensor)
// set the service name, this is what is displayed as the default name on the Home app
this.service.setCharacteristic(this.platform.Characteristic.Name, this.context.displayName)
this.service.getCharacteristic(this.platform.Characteristic.CurrentTemperature).setProps({
format: Formats.FLOAT,
minValue: -40,
maxValue: 60,
})
// trigger refresh if needed when HomeKit asks for this value
this.platform.triggersRefreshIfNeded(
this.service,
this.platform.Characteristic.CurrentTemperature,
)
}
Example #3
Source File: index.ts From homebridge-zigbee-nt with Apache License 2.0 | 5 votes |
export function initCustomCharacteristics(homebridge: API): void {
HAP.Service = homebridge.hap.Service;
HAP.Characteristic = homebridge.hap.Characteristic;
HAP.PlatformAccessory = homebridge.platformAccessory;
HAP.FakeGatoHistoryService = fakegato(homebridge);
HAP.CurrentPowerConsumption = class CurrentPowerConsumption extends HAP.Characteristic {
public static readonly UUID: string = 'E863F10D-079E-48FF-8F27-9C2605A29F52';
constructor() {
super('CurrentConsumption', CurrentPowerConsumption.UUID, {
format: Formats.UINT16,
unit: 'watts' as Units, // ??
maxValue: 100000,
minValue: 0,
minStep: 1,
perms: [Perms.PAIRED_READ, Perms.NOTIFY],
});
}
};
HAP.CurrentVoltage = class CurrentVoltage extends HAP.Characteristic {
public static readonly UUID: string = 'E863F10A-079E-48FF-8F27-9C2605A29F52';
constructor() {
super('CurrentVoltage', CurrentVoltage.UUID, {
format: Formats.UINT16,
unit: 'volts' as Units, // ??
maxValue: 1000,
minValue: 0,
minStep: 1,
perms: [Perms.PAIRED_READ, Perms.NOTIFY],
});
}
};
HAP.CurrentConsumption = class CurrentConsumption extends HAP.Characteristic {
public static readonly UUID: string = 'E863F126-079E-48FF-8F27-9C2605A29F52';
constructor() {
super('CurrentConsumption', CurrentConsumption.UUID, {
format: Formats.UINT16,
unit: 'ampere' as Units, // ??
maxValue: 1000,
minValue: 0,
minStep: 1,
perms: [Perms.PAIRED_READ, Perms.NOTIFY],
});
}
};
HAP.TotalConsumption = class TotalConsumption extends HAP.Characteristic {
public static readonly UUID: string = 'E863F10C-079E-48FF-8F27-9C2605A29F52';
constructor() {
super('TotalConsumption', TotalConsumption.UUID, {
format: Formats.FLOAT,
unit: 'kWh' as Units, // ??
minValue: 0,
minStep: 0.001,
perms: [Perms.PAIRED_READ, Perms.NOTIFY],
});
}
};
}
Example #4
Source File: thermostatAccessory.ts From homebridge-screenlogic with MIT License | 5 votes |
constructor(
private readonly platform: ScreenLogicPlatform,
private readonly accessory: PlatformAccessory,
) {
// set accessory information
const accessoryInfo = platform.accessoryInfo()
this.accessory
.getService(this.platform.Service.AccessoryInformation)!
.setCharacteristic(this.platform.Characteristic.Manufacturer, accessoryInfo.manufacturer)
.setCharacteristic(this.platform.Characteristic.Model, accessoryInfo.model)
.setCharacteristic(this.platform.Characteristic.SerialNumber, accessoryInfo.serialNumber)
// get the Thermostat service if it exists, otherwise create a new Thermostat service
this.service =
this.accessory.getService(this.platform.Service.Thermostat) ||
this.accessory.addService(this.platform.Service.Thermostat)
// set the service name, this is what is displayed as the default name on the Home app
this.service.setCharacteristic(this.platform.Characteristic.Name, this.context.displayName)
// register handlers for the TargetTemperature Characteristic
this.service
.getCharacteristic(this.platform.Characteristic.TargetTemperature)
.on('set', this.setTargetTemperature.bind(this))
// register handlers for the TargetTemperature Characteristic
this.service
.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState)
.on('set', this.setTargetHeatingCoolingState.bind(this))
this.service.getCharacteristic(this.platform.Characteristic.TargetTemperature).setProps({
format: Formats.FLOAT,
minValue: this.context.minSetPoint,
maxValue: this.context.maxSetPoint,
})
this.service.getCharacteristic(this.platform.Characteristic.CurrentTemperature).setProps({
format: Formats.FLOAT,
minValue: -18,
maxValue: 60,
})
this.service.getCharacteristic(this.platform.Characteristic.TemperatureDisplayUnits).setValue(1)
// trigger refresh if needed when HomeKit asks for this value
this.platform.triggersRefreshIfNeded(
this.service,
this.platform.Characteristic.CurrentTemperature,
)
// trigger refresh if needed when HomeKit asks for this value
this.platform.triggersRefreshIfNeded(
this.service,
this.platform.Characteristic.TargetTemperature,
)
}