Good question, @DoctorBazinga , made me think “want that too”.
And This isn’t tested , whilst there’s no pending update at this time in the meantime.![]()
![]()
The tags are Homeyscript tags and will be created during the first run of the flow.
Here’s the importable flow incl. script (save the code as aflowname.homeyadvflow.json to import it using the ALT key):
{"type":"advanced","name":"Poll for firmware updates (Export)","cards":{"2e0bbb1d-37ae-4651-978d-15880cdb2f50":{"ownerUri":"homey:manager:cron","id":"homey:manager:cron:time_exactly","args":{"time":"15:01"},"type":"trigger","x":0,"y":40,"outputSuccess":["0f05bbb8-f231-47ff-bb5c-e10c0d97b0b6"]},"0f05bbb8-f231-47ff-bb5c-e10c0d97b0b6":{"ownerUri":"homey:app:com.athom.homeyscript","id":"homey:app:com.athom.homeyscript:runCodeReturnsString_v2","args":{"code":"// Poll Homey for new firmware updates\n// by @peter_kawa\n// Filtered out of the great \"System Overview\" script by @Caseda\n\nlet homeyVersion;\nawait Homey.system.getInfo()\n .then(result => {\n tag('Current Homey firmware version', '\"' + result.homeyVersion + '\"');\n })\n .catch(() => tag('Current Homey firmware version', 'Error fetching current firmware version'));\n\nawait Homey.updates.getUpdates()\n .then(result => {\n if(result.length > 0) {\n tag('Update available', `'${result[0].version}'`);\n //log(result[0].version);\n } else {\n tag('Update available', 'No');\n }\n })\n .catch(() => tag('Update available', 'Failed to get update info'));\n\n let undefined = 'true';\n return undefined;\n"},"type":"action","x":100,"y":140,"outputSuccess":["d531b62f-b769-4b2f-bafa-5eed87986926"],"outputError":["d531b62f-b769-4b2f-bafa-5eed87986926","e75059bf-a75c-46b4-8f19-e32f32ac10a3"]},"684655ba-f20c-4e6c-a3ef-3c96a7c948ea":{"ownerUri":"homey:manager:notifications","id":"homey:manager:notifications:create_notification","args":{"text":"Available firmware update: [[homey:app:com.athom.homeyscript|Update available]].\nCurrent version: [[homey:app:com.athom.homeyscript|Current Homey firmware version]]\n\nBackup status: \n[[homey:app:com.athom.homeyscript|Last succesful Backup]]\n.\n[Poll for firmware updates]"},"type":"action","x":660,"y":360},"9952ccde-9a09-411d-bf86-a835276a1628":{"ownerUri":"homey:manager:mobile","id":"homey:manager:mobile:push_text_critical","args":{"user":{"id":"__all_present__","name":"Everyone who's home"},"text":"Available firmware update:\n[[homey:app:com.athom.homeyscript|Update available]].\n(Current version: [[homey:app:com.athom.homeyscript|Current Homey firmware version]])\n\nChangelog: go to Timeline / email.\n\nBackup status: [[homey:app:com.athom.homeyscript|Last succesful Backup]]\n.\n[Poll for firmware updates]"},"type":"action","x":660,"y":720,"outputSuccess":["48a04cfa-26ab-470a-b29e-5bcfe551c612"],"outputError":["48a04cfa-26ab-470a-b29e-5bcfe551c612"]},"82b8cb1d-4c87-4f17-bf05-da71ab9c244a":{"type":"note","value":"Optional / for testing","color":"blue","x":920,"y":520,"width":null,"height":null},"3151ed23-b68f-4b88-8ec7-4f99fc419f30":{"ownerUri":"homey:manager:logic","id":"homey:manager:logic:equal","type":"condition","x":100,"y":420,"outputTrue":["684655ba-f20c-4e6c-a3ef-3c96a7c948ea"],"outputFalse":["db04ad30-2619-405d-aeef-33313bcfc1c1"],"droptoken":"homey:app:com.athom.homeyscript|Update available","args":{"comparator":"No\n"},"inverted":false},"db04ad30-2619-405d-aeef-33313bcfc1c1":{"ownerUri":"homey:manager:logic","id":"homey:manager:logic:http_advanced","type":"action","x":120,"y":640,"outputSuccess":["35b9ec1a-5517-4ec3-b29d-e08660bd99c2"],"args":{"method":"get","url":"https://ota-api.homeypro.net/api/v1/changelog"}},"defa349e-98bd-49ab-8843-3b7ccd765bca":{"type":"note","value":"Changelog Pro 2023 and up:\nhttps://ota-api.homeypro.net/api/v1/changelog","color":"green","x":0,"y":540,"width":null,"height":null},"025baa89-4cb7-4931-afaf-9bde9baca8f1":{"ownerUri":"homey:manager:logic","id":"homey:manager:logic:http_advanced","type":"action","x":1280,"y":960,"args":{"method":"get","url":"https://firmware.athom.com/api/update/changelog/"}},"66e3b7f2-002f-4c94-841c-62dd9585bd6e":{"type":"note","value":"Changelog Pro 2019 and earlier:\nhttps://firmware.athom.com/api/update/changelog/","color":"green","x":1160,"y":880,"width":null,"height":null},"35b9ec1a-5517-4ec3-b29d-e08660bd99c2":{"ownerUri":"homey:manager:logic","id":"homey:manager:logic:get_string_from_json","type":"action","x":120,"y":820,"droptoken":"action::db04ad30-2619-405d-aeef-33313bcfc1c1::response","args":{"path":"$.0"},"outputSuccess":["69d67232-4e6a-4287-9eaa-7979c972da9e"]},"48a04cfa-26ab-470a-b29e-5bcfe551c612":{"ownerUri":"homey:manager:notifications","id":"homey:manager:notifications:create_notification","args":{"text":"Firmware update available.\nChangelog: [[action::69d67232-4e6a-4287-9eaa-7979c972da9e::string]]\n\nCurrent version: [[homey:app:com.athom.homeyscript|Current Homey firmware version]]\n\n[Poll for firmware updates]"},"type":"action","x":660,"y":1060},"d531b62f-b769-4b2f-bafa-5eed87986926":{"ownerUri":"homey:app:com.athom.homeyscript","id":"homey:app:com.athom.homeyscript:runCodeReturnsString_v2","args":{"code":"// backup results\n\nconst lAstbackup = await Homey.backup.getOptionLastSuccessfulBackup();\nawait tag ('Last succesful Backup', `'${lAstbackup.value}'`);\n\nreturn String(lAstbackup.value);"},"type":"action","x":100,"y":260,"outputSuccess":["3151ed23-b68f-4b88-8ec7-4f99fc419f30","f7fc550d-0b8e-49c9-a3e6-ec7d55c574a1","e68be1ac-87a9-45ab-9207-03d2d579a38e"],"outputError":["fab7f485-1793-41cd-8868-c92d3db07373"]},"e68be1ac-87a9-45ab-9207-03d2d579a38e":{"ownerUri":"homey:manager:logic","id":"homey:manager:logic:contains","droptoken":"action::d531b62f-b769-4b2f-bafa-5eed87986926::string","args":{"comparator":"null"},"type":"condition","x":660,"y":260,"outputTrue":["16c20741-5cca-4621-a95d-9d55b5cc880e"],"outputFalse":[]},"16c20741-5cca-4621-a95d-9d55b5cc880e":{"ownerUri":"homey:manager:mobile","id":"homey:manager:mobile:push_text_critical","args":{"user":{"id":"6b333a3e-288a-4099-a0fb-f3903a605c74","name":"Peter Kawa","image":"https://api.athom.com/user/5f5748a6f5b9f00c9af4ee2a/avatar","athomId":"5f5748a6f5b9f00c9af4ee2a"},"text":"Backup errors: [[homey:app:com.athom.homeyscript|Last succesful Backup]]\n\n[Poll for firmware updates]"},"type":"action","x":1280,"y":180},"69d67232-4e6a-4287-9eaa-7979c972da9e":{"ownerUri":"homey:app:com.athom.homeyscript","id":"homey:app:com.athom.homeyscript:runCodeWithArgReturnsString_v2","args":{"code":"//Cut HTML tags\nvar htmllogNotagsA = (args[0]).replace(/<[^>]*>/g, '');\nvar htmllogNotagsB = htmllogNotagsA.replace(/\\\\r|{|}|[|]|[[|]]/g, '');\nvar htmllogNotagsC = htmllogNotagsB.replace(/\\\\n\\\\n/g, ' - ');\nvar htmllogNotags = htmllogNotagsC.replace(/\\\\n/g, '');\nlog(htmllogNotags);\n//console.log(args[0]);\n\nreturn String(htmllogNotags);","argument":"[[action::35b9ec1a-5517-4ec3-b29d-e08660bd99c2::created_tag]]"},"type":"action","x":120,"y":940,"outputSuccess":["9952ccde-9a09-411d-bf86-a835276a1628"]},"f7fc550d-0b8e-49c9-a3e6-ec7d55c574a1":{"ownerUri":"homey:manager:logic","id":"homey:manager:logic:contains","droptoken":"action::d531b62f-b769-4b2f-bafa-5eed87986926::string","args":{"comparator":"failed"},"type":"condition","x":660,"y":180,"outputTrue":["16c20741-5cca-4621-a95d-9d55b5cc880e"],"outputFalse":[]},"9d33d26f-476d-4c11-bee4-89b2751aba66":{"ownerUri":"homey:app:com.athom.homeyscript","id":"homey:app:com.athom.homeyscript:runCodeReturnsString_v2","args":{"code":"// backup status 2016-2019 models\nconst sTate = await Homey.backup.getState();\nlet ePoch = sTate.$lastUpdated;\nlet dAte = new Date(ePoch);\n// make it readable\nlet jSon1 = JSON.stringify(sTate).replace(/{|}|\\\"/g, \"\");\nlet jSon2 = jSon1.replace(/,/g, \"\\; \");\nlet lastBackup = jSon2.replace(/:/g, \"\\: \");\nawait tag('Last Backup Status', `'${lastBackup}; Date: ${dAte}'`);\n\nreturn String(`'${lastBackup}; Date: ${dAte}'`);"},"type":"action","x":1280,"y":1160,"outputSuccess":[]},"b5c8ec0b-f426-4330-83d1-99560c77a60a":{"type":"note","value":"Backup results for Pro 2019 and earlier","color":"green","x":1160,"y":1080,"width":null,"height":null},"fab7f485-1793-41cd-8868-c92d3db07373":{"ownerUri":"homey:manager:notifications","id":"homey:manager:notifications:create_notification","args":{"text":"Backup (script) error: [[card::d531b62f-b769-4b2f-bafa-5eed87986926::error]]\n[Poll for firmware updates]"},"type":"action","x":1280,"y":560},"e75059bf-a75c-46b4-8f19-e32f32ac10a3":{"ownerUri":"homey:manager:notifications","id":"homey:manager:notifications:create_notification","args":{"text":"Poll for updates (script) error: [[card::0f05bbb8-f231-47ff-bb5c-e10c0d97b0b6::error]]\n[Poll for firmware updates]"},"type":"action","x":1280,"y":420}}}
in here
// Poll Homey for new firmware updates
// by @peter_kawa
// Filtered out of the great "System Overview" script by @Caseda
let homeyVersion;
await Homey.system.getInfo()
.then(result => {
tag('Current Homey firmware version', '"' + result.homeyVersion + '"');
})
.catch(() => log('Current Homey firmware version', 'Error fetching current firmware version'));
await Homey.updates.getUpdates()
.then(result => {
if(result.length > 0) {
tag('Update available', result[0].version);
} else {
tag('Update available', 'No');
}
})
.catch(() => tag('Update available', 'Failed to get updates'));
let undefined = 'true';
return undefined;
Full “Homey Overview Script” here.
@J.W_Hoogervorst To email:

