Skip to content

Commit

Permalink
Add SwitchBot Meter Plus
Browse files Browse the repository at this point in the history
  • Loading branch information
mrbungle64 committed Jul 15, 2022
1 parent c1b44b3 commit e67276c
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 6 deletions.
2 changes: 2 additions & 0 deletions lib/adapterHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ function getProductName(model) {
return 'SwitchBot Smart Humidifier';
} else if (model === 'T') { // WoSensorTH
return 'SwitchBot Meter';
} else if (model === 'i') { // WoMeterPlus
return 'SwitchBot Meter Plus';
} else if (model === 'c') { // WoCurtain
return 'SwitchBot Curtain';
} else if (model === 's') { // WoMotion
Expand Down
10 changes: 5 additions & 5 deletions lib/adapterObjects.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const helper = require('./adapterHelper');
*
* @param {Object} adapter
* @param {{address: String, rssi: Number, id: String,
* serviceData: {model: 'H'|'T'|'c'|'s'|'d', modelName: String, battery: Number, state: Boolean, mode: Boolean,
* serviceData: {model: 'H'|'T'|'c'|'s'|'d'|'i', modelName: String, battery: Number, state: Boolean, mode: Boolean,
* temperature: {c: Number, f: Number}, humidity: Number,
* position: Number, calibration: Number, lightLevel: String, movement: Boolean, doorState: String}}} data
*/
Expand Down Expand Up @@ -63,8 +63,8 @@ async function createBotObjects(adapter, data) {
data.address + '.control.turnOff', 'Turn off the Bot',
'boolean', 'button', true, false, '');
}
} else if (data.serviceData.model === 'T') {
// SwitchBot Meter
} else if ((data.serviceData.model === 'T') || (data.serviceData.model === 'i')) {
// SwitchBot Meter (Plus)
await adapter.createObjectNotExists(
data.address + '.temperature', 'Temperature value',
'number', 'value.temperature', false, data.serviceData.temperature.c, '°C');
Expand Down Expand Up @@ -138,7 +138,7 @@ async function createBotObjects(adapter, data) {
*
* @param {Object} adapter
* @param {{address: String, rssi: Number, id: String,
* serviceData: {model: 'H'|'T'|'c'|'s'|'d', modelName: String, battery: Number, state: Boolean, mode: Boolean,
* serviceData: {model: 'H'|'T'|'c'|'s'|'d'|'i', modelName: String, battery: Number, state: Boolean, mode: Boolean,
* temperature: {c: Number, f: Number}, humidity: Number,
* position: Number, calibration: Number, lightLevel: String, movement: Boolean, doorState: String}}} data
*/
Expand All @@ -163,7 +163,7 @@ async function setAdvertisementData(adapter, data) {
adapter.switchbotDevice[data.address].on = adapter.getOnStateValue(data);
adapter.setStateConditional(data.address + '.on', adapter.switchbotDevice[data.address].on, true);
}
} else if (data.serviceData.model === 'T') {
} else if ((data.serviceData.model === 'T') || (data.serviceData.model === 'i')) {
// SwitchBot Meter (WoSensorTH)
adapter.setStateConditional(data.address + '.temperature', data.serviceData.temperature.c, true);
adapter.setStateConditional(data.address + '.temperatureF', data.serviceData.temperature.f, true);
Expand Down
2 changes: 1 addition & 1 deletion main.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class SwitchbotBle extends utils.Adapter {

/**
* @type {{[mac: String]: {address: String, rssi: Number, id: String,
* serviceData: {model: 'H'|'T'|'c'|'s'|'d', modelName: String, battery: Number, state: Boolean, mode: Boolean,
* serviceData: {model: 'H'|'T'|'c'|'s'|'d'|'i', modelName: String, battery: Number, state: Boolean, mode: Boolean,
* temperature: {c: Number, f: Number}, humidity: Number,
* position: Number, calibration: Number, lightLevel: Number, movement: Boolean, doorState: String},
* on: Boolean}}}
Expand Down

0 comments on commit e67276c

Please sign in to comment.