Add info to the update notification

When an app gets an update, homey shows an update notification. That is nice, but it does not tell what is updated… Every update comes with a changelog, it would be nice to add the changelog to that notification.

5 Likes

I created this service:

It doesn’t show the changelog in the notification (yet), but you can click it to easily open the App Store page for an app when it’s updated. You can also get notified of new apps.

2 Likes

That is nice, but I only want notifications of the apps I have installed, not all the apps that exist…

I have made a Homey script that grabs and publishes the changelog to the notification center, a few weeks ago.
It is taylored for the dutch translation of Homey.
But you can alter it to your own set language (or make it universal in a way).

The script is triggered by this flow:
https://homey.app/f/l-XS2R/

let input = args[0];
let debug = false;

function logDebug(msg, data) {
  if (debug) console.log(msg, data || "");
}

// Stap 1: Extractie appnaam
const match = /(.*?) is automatisch bijgewerkt/.exec(input);
if (!match) return "Input niet in verwacht format.";

const appName = match[1].trim();
logDebug("Appnaam:", appName);

// Stap 2: Haal appId + versie
async function getAppInfo(name) {
  const apps = await Homey.apps.getApps();
  const lower = name.toLowerCase();

  for (const app of Object.values(apps)) {
    if (app.name.toLowerCase() === lower) {
      return { id: app.id, version: app.version };
    }
  }
  return null;
}

// Stap 3: Haal changelog
async function getChangelogEntry(appId, version) {
  const url = `https://apps-api.athom.com/api/v1/app/${appId}/changelog`;
  logDebug("API URL:", url);

  const res = await fetch(url);
  if (!res.ok) return { error: `API request failed: ${res.status}` };

  const changelog = await res.json();
  const entry = changelog[version];

  if (!entry) {
    return { error: "Versie niet gevonden", available: Object.keys(changelog) };
  }

  const date = new Date(entry.createdAt).toLocaleDateString("nl-NL", {
    day: "numeric",
    month: "short",
    year: "numeric"
  });

  const text = entry.changelog.en || "(geen tekst beschikbaar)";
  return `Versie ${version} (${date})\n${text}`;
}

// Stap 4: Uitvoeren
const appInfo = await getAppInfo(appName);
if (!appInfo) return "App niet gevonden.";

const changelogEntry = await getChangelogEntry(appInfo.id, appInfo.version);
logDebug("Resultaat:", changelogEntry);

// Timeline notificatie
await Homey.flow.runFlowCardAction({
  uri: "homey:manager:notifications",
  id: "homey:manager:notifications:create_notification",
  args: { text: changelogEntry }
});

return changelogEntry;
2 Likes

I have a Dutch version , Flemish to be exact. Maybe that is why some translations are not the same? Shared Flow | Homey

1 Like

I can release my private app Changelogs if interested. It provides the following cards:

EDIT: Changelogs | Homey

This app polls every 5 minutes if an app update has happened.

EDIT 2: Fastest approval in history, now live: Changelogs | Homey

5 Likes

Nice,

But the script that Sebastiaan shared works perfectly!
So no need for a new app :slight_smile:

1 Like

@BasMilius Fastest install after a new app released in history (for me)! Using it with your Lists app to create to do items for myself when there’s a new app update. Thank you!

For Flemish you have to use “is automatisch geüpdatet”. Or make it work for both: “is automatisch”:
const match = /(.*?) is automatisch/.exec(input);

1 Like

Works great , thank you. Is it possible to get changelogs for homey firmware/software updates?

Yes it is! Please follow the link on top of this preview:

.