Skip to content

Commit

Permalink
fix: TS refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
Koenkk committed Jun 6, 2023
1 parent 4e96286 commit 5394cfb
Show file tree
Hide file tree
Showing 19 changed files with 288 additions and 251 deletions.
9 changes: 4 additions & 5 deletions src/devices/atlantic.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import {assertString} from '../lib/utils2';
import fz from '../converters/fromZigbee';
import tz from '../converters/toZigbee';
import * as exposes from '../lib/exposes';
import * as reporting from '../lib/reporting';
import utils from '../lib/utils';
import * as utils from '../lib/utils';
import assert from 'assert';
const e = exposes.presets;
const ea = exposes.access;
Expand All @@ -28,7 +27,7 @@ const tzLocal = {
ac_louver_position: {
key: ['ac_louver_position'],
convertSet: async (entity, key, value, meta) => {
assertString(value, 'ac_louver_position');
utils.assertString(value, 'ac_louver_position');
utils.validateValue(value, Object.keys(thermostatPositions));
const index = thermostatPositions[value.toLowerCase()];
await entity.write('hvacThermostat', {0x4273: {value: index, type: 0x30}}, {manufacturerCode: 0x125b});
Expand All @@ -38,7 +37,7 @@ const tzLocal = {
preset: {
key: ['preset'],
convertSet: async (entity, key, value, meta) => {
assertString(value, 'preset');
utils.assertString(value, 'preset');
value = value.toLowerCase();
utils.validateValue(value, ['activity', 'boost', 'eco', 'none']);
const activity = value === 'activity' ? 1 : 0;
Expand All @@ -55,7 +54,7 @@ const tzLocal = {
swingMode: {
key: ['swing_mode'],
convertSet: async (entity, key, value, meta) => {
assertString(value, 'swing_mode');
utils.assertString(value, 'swing_mode');
value = value.toLowerCase();
utils.validateValue(value, ['on', 'off']);
await entity.write('hvacThermostat', {0x4274: {value: value === 'on' ? 1 : 0, type: 0x10}}, {manufacturerCode: 0x125b});
Expand Down
5 changes: 2 additions & 3 deletions src/devices/aurora_lighting.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@ import tz from '../converters/toZigbee';
import * as reporting from '../lib/reporting';
import extend from '../lib/extend';
const e = exposes.presets;
import utils from '../lib/utils';
import {assertString} from '../lib/utils2';
import * as utils from '../lib/utils';
const ea = exposes.access;

const tzLocal = {
aOneBacklight: {
key: ['backlight_led'],
convertSet: async (entity, key, value, meta) => {
assertString(value, 'backlight_led');
utils.assertString(value, 'backlight_led');
const state = value.toLowerCase();
utils.validateValue(state, ['toggle', 'off', 'on']);
const endpoint = meta.device.getEndpoint(3);
Expand Down
41 changes: 20 additions & 21 deletions src/devices/bosch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,9 @@ import * as exposes from '../lib/exposes';
import fz from '../converters/fromZigbee';
import tz from '../converters/toZigbee';
import * as reporting from '../lib/reporting';
import utils from '../lib/utils';
import * as utils from '../lib/utils';
import * as constants from '../lib/constants';
import ota from '../lib/ota';
import {assertEndpoint, assertNumber, assertString, getFromLookup} from '../lib/utils2';
const e = exposes.presets;
const ea = exposes.access;

Expand Down Expand Up @@ -85,7 +84,7 @@ const tzLocal = {
],
convertSet: async (entity, key, value, meta) => {
if (key === 'state') {
assertString(value, 'state');
utils.assertString(value, 'state');
const state = value.toLowerCase();
utils.validateValue(state, ['toggle', 'off', 'on', 'open', 'close', 'stop']);
if ( state === 'on' || state === 'off' || state === 'toggle') {
Expand All @@ -98,32 +97,32 @@ const tzLocal = {
}
} else if ( state === 'open' || state === 'close' || state === 'stop') {
const lookup = {'open': 'upOpen', 'close': 'downClose', 'stop': 'stop', 'on': 'upOpen', 'off': 'downClose'};
await entity.command('closuresWindowCovering', getFromLookup(value, lookup), {}, utils.getOptions(meta.mapped, entity));
await entity.command('closuresWindowCovering', utils.getFromLookup(value, lookup), {}, utils.getOptions(meta.mapped, entity));
}
}
if (key === 'device_type') {
const index = getFromLookup(value, stateDeviceType);
const index = utils.getFromLookup(value, stateDeviceType);
await entity.write(0xFCA0, {0x0000: {value: index, type: 0x30}}, boschManufacturer);
return {state: {device_type: value}};
}
if (key === 'switch_type') {
const index = getFromLookup(value, stateSwitchType);
const index = utils.getFromLookup(value, stateSwitchType);
await entity.write(0xFCA0, {0x0001: {value: index, type: 0x30}}, boschManufacturer);
return {state: {switch_type: value}};
}
if (key === 'child_lock') {
const index = getFromLookup(value, stateOffOn);
const index = utils.getFromLookup(value, stateOffOn);
await entity.write(0xFCA0, {0x0008: {value: index, type: 0x10}}, boschManufacturer);
return {state: {child_lock: value}};
}
if (key === 'calibration_closing_time') {
assertNumber(value, 'calibration_closing_time');
utils.assertNumber(value, 'calibration_closing_time');
const index = value *10;
await entity.write(0xFCA0, {0x0002: {value: index, type: 0x23}}, boschManufacturer);
return {state: {calibration_closing_time: value}};
}
if (key === 'calibration_opening_time') {
assertNumber(value, 'calibration_opening_time');
utils.assertNumber(value, 'calibration_opening_time');
const index = value *10;
await entity.write(0xFCA0, {0x0003: {value: index, type: 0x23}}, boschManufacturer);
return {state: {calibration_opening_time: value}};
Expand Down Expand Up @@ -158,7 +157,7 @@ const tzLocal = {
key: ['alarm_on_motion', 'test'],
convertSet: async (entity, key, value, meta) => {
if (key === 'alarm_on_motion') {
const index = getFromLookup(value, stateOffOn);
const index = utils.getFromLookup(value, stateOffOn);
await entity.write(0xFCAC, {0x0003: {value: index, type: 0x10}}, boschManufacturer);
return {state: {alarm_on_motion: value}};
}
Expand All @@ -177,18 +176,18 @@ const tzLocal = {
key: ['window_open', 'boost', 'system_mode', 'pi_heating_demand', 'remote_temperature'],
convertSet: async (entity, key, value, meta) => {
if (key === 'window_open') {
const index = getFromLookup(value, stateOffOn);
const index = utils.getFromLookup(value, stateOffOn);
await entity.write('hvacThermostat', {0x4042: {value: index, type: herdsman.Zcl.DataType.enum8}}, boschManufacturer);
return {state: {window_open: value}};
}
if (key === 'boost') {
const index = getFromLookup(value, stateOffOn);
const index = utils.getFromLookup(value, stateOffOn);
await entity.write('hvacThermostat', {0x4043: {value: index, type: herdsman.Zcl.DataType.enum8}}, boschManufacturer);
return {state: {boost: value}};
}
if (key === 'system_mode') {
// Map system_mode (Off/Auto/Heat) to Bosch operating mode
assertString(value, 'system_mode');
utils.assertString(value, 'system_mode');
value = value.toLowerCase();

let opMode = operatingModes.manual; // OperatingMode 1 = Manual (Default)
Expand All @@ -208,7 +207,7 @@ const tzLocal = {
return {state: {pi_heating_demand: value}};
}
if (key === 'remote_temperature') {
assertNumber(value, 'remote_temperature');
utils.assertNumber(value, 'remote_temperature');
const remoteTemperature = Number((Math.round(Number((value * 2).toFixed(1))) / 2).toFixed(1)) * 100;
await entity.write('hvacThermostat',
{0x4040: {value: remoteTemperature, type: herdsman.Zcl.DataType.int16}}, boschManufacturer);
Expand Down Expand Up @@ -242,7 +241,7 @@ const tzLocal = {
key: ['display_orientation', 'display_ontime', 'display_brightness', 'child_lock', 'displayed_temperature'],
convertSet: async (entity, key, value, meta) => {
if (key === 'display_orientation') {
const index = getFromLookup(value, displayOrientation);
const index = utils.getFromLookup(value, displayOrientation);
await entity.write('hvacUserInterfaceCfg', {0x400b: {value: index, type: herdsman.Zcl.DataType.uint8}}, boschManufacturer);
return {state: {display_orientation: value}};
}
Expand All @@ -260,7 +259,7 @@ const tzLocal = {
return {state: {child_lock: value}};
}
if (key === 'displayed_temperature') {
const index = getFromLookup(value, displayedTemperature);
const index = utils.getFromLookup(value, displayedTemperature);
await entity.write('hvacUserInterfaceCfg', {0x4039: {value: index, type: herdsman.Zcl.DataType.enum8}}, boschManufacturer);
return {state: {displayed_temperature: value}};
}
Expand Down Expand Up @@ -291,18 +290,18 @@ const tzLocal = {
key: ['sensitivity', 'pre_alarm', 'self_test', 'alarm', 'heartbeat'],
convertSet: async (entity, key, value, meta) => {
if (key === 'sensitivity') {
const index = getFromLookup(value, smokeSensitivity);
const index = utils.getFromLookup(value, smokeSensitivity);
await entity.write('manuSpecificBosch', {0x4003: {value: index, type: 0x21}}, boschManufacturer);
return {state: {sensitivity: value}};
}
if (key === 'pre_alarm') {
const index = getFromLookup(value, stateOffOn);
const index = utils.getFromLookup(value, stateOffOn);
await entity.write('manuSpecificBosch5', {0x4001: {value: index, type: 0x18}}, boschManufacturer);
return {state: {pre_alarm: value}};
}
if (key === 'heartbeat') {
const endpoint = meta.device.getEndpoint(12);
const index = getFromLookup(value, stateOffOn);
const index = utils.getFromLookup(value, stateOffOn);
await endpoint.write('manuSpecificBosch7', {0x5005: {value: index, type: 0x18}}, boschManufacturer);
return {state: {heartbeat: value}};
}
Expand All @@ -313,8 +312,8 @@ const tzLocal = {
}
if (key === 'alarm') {
const endpoint = meta.device.getEndpoint(12);
const index = getFromLookup(value, sirenState);
assertEndpoint(entity);
const index = utils.getFromLookup(value, sirenState);
utils.assertEndpoint(entity);
if (index == 0) {
await entity.commandResponse('genAlarms', 'alarm', {alarmcode: 0x16, clusterid: 0xe000}, {direction: 1});
await entity.commandResponse('genAlarms', 'alarm', {alarmcode: 0x14, clusterid: 0xe000}, {direction: 1});
Expand Down
8 changes: 6 additions & 2 deletions src/devices/danfoss.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,15 @@ const definitions: Definition[] = [
{
// eTRV0100 is the same as Hive TRV001 and Popp eT093WRO. If implementing anything, please consider
// changing those two too.
zigbeeModel: ['eTRV0100', 'eTRV0101', 'eTRV0103'],
zigbeeModel: ['eTRV0100', 'eTRV0101', 'eTRV0103', 'TRV001', 'TRV003', 'eT093WRO', 'eT093WRG'],
model: '014G2461',
vendor: 'Danfoss',
description: 'Ally thermostat',
whiteLabel: [{vendor: 'Danfoss', model: '014G2463'}],
whiteLabel: [
{vendor: 'Danfoss', model: '014G2463'},
{vendor: 'Hive', model: 'UK7004240', description: 'Radiator valve', fingerprint: [{modelID: 'TRV001'}, {modelID: 'TRV003'}]},
{vendor: 'Popp', model: '701721', description: 'Smart thermostat', fingerprint: [{modelID: 'eT093WRO'}, {modelID: 'eT093WRG'}]},
],
meta: {thermostat: {dontMapPIHeatingDemand: true}},
fromZigbee: [fz.battery, fz.thermostat, fz.thermostat_weekly_schedule, fz.hvac_user_interface,
fz.danfoss_thermostat, fz.danfoss_thermostat_setpoint_scheduled],
Expand Down
7 changes: 0 additions & 7 deletions src/devices/hive.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const tz = require('../converters/toZigbee');
const globalStore = require('../lib/store');
const reporting = require('../lib/reporting');
const extend = require('../lib/extend');
const {extendDevice} = require('../lib/utils');
const e = exposes.presets;
const ea = exposes.access;

Expand Down Expand Up @@ -157,12 +156,6 @@ module.exports = [
}
},
},
extendDevice(require('./danfoss'), '014G2461', {
zigbeeModel: ['TRV001', 'TRV003'],
model: 'UK7004240',
vendor: 'Hive',
description: 'Radiator valve based on Danfoss Ally (014G2461)',
}),
{
zigbeeModel: ['SLR1'],
model: 'SLR1',
Expand Down
2 changes: 1 addition & 1 deletion src/devices/insta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as legacy from '../lib/legacy';
import tz from '../converters/toZigbee';
import ota from '../lib/ota';
import * as reporting from '../lib/reporting';
import utils from '../lib/utils';
import * as utils from '../lib/utils';
const e = exposes.presets;

const definitions: Definition[] = [
Expand Down
2 changes: 1 addition & 1 deletion src/devices/osram.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as legacy from '../lib/legacy';
import ota from '../lib/ota';
import * as reporting from '../lib/reporting';
import extend from '../lib/extend';
import utils from '../lib/utils';
import * as utils from '../lib/utils';
import * as ledvance from '../lib/ledvance';
const e = exposes.presets;

Expand Down
10 changes: 0 additions & 10 deletions src/devices/popp.js

This file was deleted.

Loading

0 comments on commit 5394cfb

Please sign in to comment.