Skip to content

Commit

Permalink
Attempt to fix persisted OTA of Xiaomi SRTS-A01. Koenkk/zigbee2mqtt#1…
Browse files Browse the repository at this point in the history
  • Loading branch information
Koenkk committed Mar 5, 2023
1 parent d1510ef commit e15715e
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
5 changes: 5 additions & 0 deletions devices/xiaomi.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,11 @@ const fzLocal = {
result['schedule_settings'] = trv.stringifySchedule(schedule);
break;
}
case 0x00EE: {
meta.device.meta.aqaraFileVersion = value;
meta.device.save();
break;
}
case 0xfff2:
case 0x00ff: // 4e:27:49:bb:24:b6:30:dd:74:de:53:76:89:44:c4:81
case 0x027c: // 0x00
Expand Down
16 changes: 15 additions & 1 deletion lib/ota/zigbeeOTA.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,26 @@ async function getImageMeta(current, logger, device) {
};
}

async function isNewImageAvailable(current, logger, device, getImageMeta) {
if (device.modelID === 'lumi.airrtc.agl001') {
// The current.fileVersion which comes from the device is wrong.
// Use the `aqaraFileVersion` which comes from the aqaraOpple.attributeReport instead.
// https://github.com/Koenkk/zigbee2mqtt/issues/16345#issuecomment-1454835056
if (!device.meta.aqaraFileVersion) {
throw new Error(`Did not receive a current fileVersion from 'lumi.airrtc.agl001' yet, please wait some hours and try again`);
}
current = {...current, fileVersion: device.meta.aqaraFileVersion};
}

return common.isNewImageAvailable(current, logger, device, getImageMeta);
}

/**
* Interface implementation
*/

async function isUpdateAvailable(device, logger, requestPayload=null) {
return common.isUpdateAvailable(device, logger, common.isNewImageAvailable, requestPayload, getImageMeta);
return common.isUpdateAvailable(device, logger, isNewImageAvailable, requestPayload, getImageMeta);
}

async function updateToLatest(device, logger, onProgress) {
Expand Down

0 comments on commit e15715e

Please sign in to comment.