Skip to content

Commit

Permalink
Fix bugs and add relay
Browse files Browse the repository at this point in the history
  • Loading branch information
Andreas Lydersen committed Apr 9, 2021
1 parent 0061685 commit 275ffbe
Show file tree
Hide file tree
Showing 10 changed files with 55 additions and 71 deletions.
3 changes: 3 additions & 0 deletions .homeychangelog.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,5 +91,8 @@
},
"0.4.3": {
"en": "Bugfixes for SDK 3 compatibility"
},
"0.4.4": {
"en": "Adding support for 6ch I/O Module (MSC06.432)"
}
}
16 changes: 12 additions & 4 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,25 +188,33 @@ class HDLSmartBus extends Homey.App {
// DIMMERS
this._dimmers[signal.sender.id] = signal.sender;
await this.homey.drivers.getDriver("dimmer").updateValues(signal).catch((error) => {
console.error(error);
if (error.message !== 'invalid_device') {
console.error(error.message);
}
});
} else if (await hdlRelays.isOne()) {
// RELAYS
this._relays[signal.sender.id] = signal.sender;
await this.homey.drivers.getDriver("relay").updateValues(signal).catch((error) => {
console.error(error);
if (error.message !== 'invalid_device') {
console.error(error.message);
}
});
} else if (await hdlMultisensors.isOne()) {
// MULTISENSORS
this._multisensors[signal.sender.id] = signal.sender;
await this.homey.drivers.getDriver("multisensor").updateValues(signal).catch((error) => {
console.error(error);
if (error.message !== 'invalid_device') {
console.error(error.message);
}
});
} else if (await hdlTempsensors.isOne()) {
// TEMPSENSORS
this._tempsensors[signal.sender.id] = signal.sender;
await this.homey.drivers.getDriver("tempsensor").updateValues(signal).catch((error) => {
console.error(error);
if (error.message !== 'invalid_device') {
console.error(error.message);
}
});
}
}
Expand Down
2 changes: 1 addition & 1 deletion app.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "com.github.alydersen.hdl-smartbus-homey",
"version": "0.4.3",
"version": "0.4.4",
"compatibility": ">=5.0.0",
"sdk": 3,
"name": {
Expand Down
30 changes: 11 additions & 19 deletions drivers/dimmer/driver.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,14 @@ class DimmerDriver extends Homey.Driver {
if (signal.sender.id == undefined) return;

let hdl_subnet = this.homey.settings.get("hdl_subnet");
let updateValueFunction = this;
let parent = this;
if (signal.data.channel != undefined) {
if (signal.data.level != undefined) {
try {
let homeyDevice = updateValueFunction.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${signal.data.channel}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: signal.data.channel
}).catch(error);
} catch (error) {
return;
}
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${signal.data.channel}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: signal.data.channel
});
if (typeof homeyDevice !== 'undefined') {
if (homeyDevice instanceof Error) return;
homeyDevice.updateLevel(signal.data.level);
Expand All @@ -35,15 +31,11 @@ class DimmerDriver extends Homey.Driver {
if (signal.data.channels != undefined) {
signal.data.channels.forEach(function(element) {
if (element.level != undefined) {
try {
let homeyDevice = updateValueFunction.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${element.number}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: element.number
}).catch(error);
} catch (error) {
return;
}
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${element.number}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: element.number
});
if (typeof homeyDevice !== 'undefined') {
if (homeyDevice instanceof Error) return;
homeyDevice.updateLevel(element.level);
Expand Down
11 changes: 3 additions & 8 deletions drivers/multisensor/driver.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,9 @@ class MultisensorDriver extends Homey.Driver {
if (signal.sender.id == undefined) return;

let hdl_subnet = this.homey.settings.get("hdl_subnet");
let parent = this;
try {
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}`
});
} catch (error) {
return;
}
let homeyDevice = this.getDevice({
id: `${hdl_subnet}.${signal.sender.id}`
});
if (typeof homeyDevice === 'undefined') {
return;
}
Expand Down
28 changes: 10 additions & 18 deletions drivers/relay/driver.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,11 @@ class RelayDriver extends Homey.Driver {
let parent = this;
if (signal.data.channel != undefined) {
if (signal.data.level != undefined) {
try {
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${signal.data.channel}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: signal.data.channel
});
} catch (error) {
return;
}
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${signal.data.channel}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: signal.data.channel
});
if (typeof homeyDevice !== 'undefined') {
if (homeyDevice instanceof Error) return;
homeyDevice.updateLevel(signal.data.level);
Expand All @@ -36,15 +32,11 @@ class RelayDriver extends Homey.Driver {
if (signal.data.channels != undefined) {
signal.data.channels.forEach(function(element) {
if (element.level != undefined) {
try {
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${element.number}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: element.number
});
} catch (error) {
return;
}
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${element.number}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: element.number
});
if (typeof homeyDevice !== 'undefined') {
if (homeyDevice instanceof Error) return;
homeyDevice.updateLevel(element.level);
Expand Down
15 changes: 5 additions & 10 deletions drivers/tempsensor/driver.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,11 @@ class TempsensorDriver extends Homey.Driver {
if (signal.sender.id == undefined) return;

let hdl_subnet = this.homey.settings.get("hdl_subnet");
let parent = this;
try {
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${signal.data.channel}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: signal.data.channel
});
} catch (error) {
return;
}
let homeyDevice = this.getDevice({
id: `${hdl_subnet}.${signal.sender.id}.${signal.data.channel}`,
address: `${hdl_subnet}.${signal.sender.id}`,
channel: signal.data.channel
});
if (typeof homeyDevice !== 'undefined') {
if (homeyDevice instanceof Error) return;
homeyDevice.setCapabilityValue("measure_temperature", signal.data.temperature);
Expand Down
18 changes: 8 additions & 10 deletions drivers/universal-switch/driver.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,20 @@ class HdlUniversalSwitchDriver extends Homey.Driver {
return; // RETURN IF THE SIGNAL IS FROM MYSELF

let hdl_subnet = this.homey.settings.get("hdl_subnet");
let parent = this;
try {
let homeyDevice = parent.getDevice({
id: `${hdl_subnet}.${signal.data.switch}`,
switch: signal.data.switch
});
} catch (error) {
return;
}
const homeyDevice = this.getDevice({
id: `${hdl_subnet}.${signal.data.switch}`,
switch: signal.data.switch
});
if (typeof homeyDevice !== 'undefined') {
if (homeyDevice instanceof Error) return;
homeyDevice
.setCapabilityValue("onoff", signal.data.status)
.catch(this.error);
.catch((error) => {
console.error(error);
});
homeyDevice.respondToSender(signal.sender);
}
return;
}

async onPairListDevices() {
Expand Down
1 change: 1 addition & 0 deletions hdl/hdl_relays.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class HdlRelays {

get list() {
return {
"363": { channels: 6 },
"423": { channels: 4 },
"425": { channels: 6 },
"426": { channels: 6 },
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "com.github.alydersen.homey-smartbus",
"version": "0.4.3",
"version": "0.4.4",
"main": "app.js",
"devDependencies": {
"@types/homey": "npm:homey-apps-sdk-v3-types@^0.1.0"
Expand Down

0 comments on commit 275ffbe

Please sign in to comment.