iobroker.js-controller 6.0.10 → 6.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/cjs/main.js CHANGED
@@ -3943,18 +3943,25 @@ async function setInstanceOfflineStates(id) {
3943
3943
  }
3944
3944
  }
3945
3945
  async function listUpdatableOsPackages() {
3946
- if (import_js_controller_common.tools.isDocker()) {
3946
+ if (import_js_controller_common.tools.isDocker() || !states) {
3947
3947
  return;
3948
3948
  }
3949
3949
  const packManager = new import_js_controller_cli.PacketManager();
3950
3950
  await packManager.ready();
3951
3951
  const packages = await packManager.listUpgradeablePackages();
3952
+ const packageStateId = `${hostObjectPrefix}.osPackageUpdates`;
3953
+ const packagesState = await states.getState(packageStateId);
3954
+ await states.setState(packageStateId, { val: JSON.stringify(packages), ack: true });
3952
3955
  if (!packages.length) {
3953
3956
  await notificationHandler.clearNotifications("system", "packageUpdates", `system.host.${hostname}`);
3954
3957
  return;
3955
3958
  }
3959
+ const knownPackages = typeof packagesState?.val === "string" ? JSON.parse(packagesState.val) : [];
3960
+ const hasNewPackage = packages.some((pack) => !knownPackages.includes(pack));
3961
+ if (!hasNewPackage) {
3962
+ return;
3963
+ }
3956
3964
  await notificationHandler.addMessage("system", "packageUpdates", packages.join("\n"), `system.host.${hostname}`);
3957
- await states.setState(`${hostObjectPrefix}.osPackageUpdates`, { val: JSON.stringify(packages), ack: true });
3958
3965
  }
3959
3966
  async function upgradeOsPackages(packages) {
3960
3967
  const packManager = new import_js_controller_cli.PacketManager();