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/esm/main.js CHANGED
@@ -4811,18 +4811,25 @@ async function setInstanceOfflineStates(id) {
4811
4811
  * Check for updatable OS packages and register them as notification
4812
4812
  */
4813
4813
  async function listUpdatableOsPackages() {
4814
- if (tools.isDocker()) {
4814
+ if (tools.isDocker() || !states) {
4815
4815
  return;
4816
4816
  }
4817
4817
  const packManager = new PacketManager();
4818
4818
  await packManager.ready();
4819
4819
  const packages = await packManager.listUpgradeablePackages();
4820
+ const packageStateId = `${hostObjectPrefix}.osPackageUpdates`;
4821
+ const packagesState = await states.getState(packageStateId);
4822
+ await states.setState(packageStateId, { val: JSON.stringify(packages), ack: true });
4820
4823
  if (!packages.length) {
4821
4824
  await notificationHandler.clearNotifications('system', 'packageUpdates', `system.host.${hostname}`);
4822
4825
  return;
4823
4826
  }
4827
+ const knownPackages = typeof packagesState?.val === 'string' ? JSON.parse(packagesState.val) : [];
4828
+ const hasNewPackage = packages.some(pack => !knownPackages.includes(pack));
4829
+ if (!hasNewPackage) {
4830
+ return;
4831
+ }
4824
4832
  await notificationHandler.addMessage('system', 'packageUpdates', packages.join('\n'), `system.host.${hostname}`);
4825
- await states.setState(`${hostObjectPrefix}.osPackageUpdates`, { val: JSON.stringify(packages), ack: true });
4826
4833
  }
4827
4834
  /**
4828
4835
  * Upgrade given operating system packages