Skip to content

Commit

Permalink
fix: Fix too small frames leading to errors for Xiaomi ZNCWWSQ01LM Ko…
Browse files Browse the repository at this point in the history
  • Loading branch information
Koenkk committed Jan 19, 2024
1 parent 9b764ea commit 4737a3f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/lib/xiaomi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1496,6 +1496,11 @@ export const fromZigbee = {
Object.entries(msg.data).forEach(([key, value]) => {
switch (parseInt(key)) {
case 0xfff1: {
// @ts-expect-error
if (value.length < 8) {
meta.logger.debug(`zigbee-herdsman-converters:aqara_feeder: cannot handle ${value}, frame too small`);
return;
}
// @ts-expect-error
const attr = value.slice(3, 7);
// @ts-expect-error
Expand Down Expand Up @@ -1555,10 +1560,10 @@ export const fromZigbee = {
break;
case 0x080007d1: // ? 64
case 0x0d090055: // ? 00
meta.logger.warn(`zigbee-herdsman-converters:aqara_feeder: Unhandled attribute ${attr} = ${val}`);
meta.logger.debug(`zigbee-herdsman-converters:aqara_feeder: Unhandled attribute ${attr} = ${val}`);
break;
default:
meta.logger.warn(`zigbee-herdsman-converters:aqara_feeder: Unknown attribute ${attr} = ${val}`);
meta.logger.debug(`zigbee-herdsman-converters:aqara_feeder: Unknown attribute ${attr} = ${val}`);
}
break;
}
Expand All @@ -1568,7 +1573,7 @@ export const fromZigbee = {
meta.logger.debug(`zigbee-herdsman-converters:aqara_feeder: Unhandled key ${key} = ${value}`);
break;
default:
meta.logger.warn(`zigbee-herdsman-converters:aqara_feeder: Unknown key ${key} = ${value}`);
meta.logger.debug(`zigbee-herdsman-converters:aqara_feeder: Unknown key ${key} = ${value}`);
}
});
return result;
Expand Down
5 changes: 5 additions & 0 deletions test/xiaomi.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,11 @@ describe('lib/xiaomi', () => {
const result = fromZigbee.aqara_feeder.convert(null, {data: {'65521': data}}, null, null, {logger: {warn: jest.fn(), debug: jest.fn()}});
expect(result).toStrictEqual({ schedule: [ { days: 'everyday', hour: 1, minute: 1, size: 1 } ] });
});
it.only('Too small frame', () => {
const data = Buffer.from([128,2,2,48]);
const result = fromZigbee.aqara_feeder.convert(null, {data: {'65521': data}}, null, null, {logger: {warn: jest.fn(), debug: jest.fn()}});
expect(result).toStrictEqual({});
});
});
});
});

0 comments on commit 4737a3f

Please sign in to comment.