Given there has been so much problems with the update and release notes I made a Node red sequence that will send you a notification with the breaking changes when the app updates.
- but I don't have Node red, it's just unnecessary overhead and my CPU and....
Too bad. This is for Node red, if you want to make something similar in HA then go ahead.
The reason I did this in Node red is because it’s easier to get data from dynamic sources, but it’s probably doable in HA.
This is a quick and dirty solution, it will look at the first three pages of releases and find the version you have, extract the breaking changes and send them to your phone as a notification.
You could easily just copy paste then nodes to make it look at more pages if you want.
[{"id":"f45b950aa1ab8fc8","type":"api-current-state","z":"ebaa69a9.649708","name":"","server":"4bbca37b.1700ec","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.andreas_current_version","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"version","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":380,"y":1200,"wires":[["c83873a7bbfa9b43"]]},{"id":"286ad732f3e943f1","type":"inject","z":"ebaa69a9.649708","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1200,"wires":[["f45b950aa1ab8fc8"]]},{"id":"c83873a7bbfa9b43","type":"http request","z":"ebaa69a9.649708","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://github.com/home-assistant/android/releases","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":690,"y":1200,"wires":[["b90d81dbfbdd93a4"]]},{"id":"21df4cebb637e8ef","type":"server-state-changed","z":"ebaa69a9.649708","name":"","server":"4bbca37b.1700ec","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.andreas_current_version","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"version","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":260,"y":1340,"wires":[["c83873a7bbfa9b43"]]},{"id":"b90d81dbfbdd93a4","type":"function","z":"ebaa69a9.649708","name":"","func":"\nmsg.version = msg.version.split(\"-\")[0];\nvar splitstr = '<a href=\"/home-assistant/android/releases/tag/VERSION\" data-view-component=\"true\" class=\"Link--primary\">VERSION</a>'.replaceAll(\"VERSION\", msg.version);\n\nif (msg.payload.includes(splitstr)){\n var release = msg.payload.split(splitstr)[1].split('</ul>')[0];\n\n if (release !== null){\n var changes = [];\n changes = release.match(/(Breaking Change:.*?<\\/a>)/gms);\n }else{\n return [null,msg]\n }\n\n msg.breaking = \"\"\n changes.forEach(function (value,index) {\n msg.breaking = msg.breaking + \"<br>\" + value.replace(/<\\/?[^>]+(>|$)/g, \"\");\n });\n msg.changes = changes;\n return [msg,null];\n}else{\n return [null,msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":1200,"wires":[["c503b73eb3434e9d","ead2bde3f5cc61af"],["11df3ae016a1583d"]]},{"id":"c503b73eb3434e9d","type":"debug","z":"ebaa69a9.649708","name":"debug 4","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1280,"y":1220,"wires":[]},{"id":"11df3ae016a1583d","type":"http request","z":"ebaa69a9.649708","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://github.com/home-assistant/android/releases?page=2","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":830,"y":1280,"wires":[["de747fc05c1d292e"]]},{"id":"ead2bde3f5cc61af","type":"api-call-service","z":"ebaa69a9.649708","name":"","server":"4bbca37b.1700ec","version":5,"debugenabled":false,"domain":"notify","service":"mobile_app_andreas","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"title\": \"New version of companion app\",\t \"message\": msg.breaking\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1380,"y":1320,"wires":[[]]},{"id":"de747fc05c1d292e","type":"function","z":"ebaa69a9.649708","name":"","func":"\nmsg.version = msg.version.split(\"-\")[0];\nvar splitstr = '<a href=\"/home-assistant/android/releases/tag/VERSION\" data-view-component=\"true\" class=\"Link--primary\">VERSION</a>'.replaceAll(\"VERSION\", msg.version);\n\nif (msg.payload.includes(splitstr)){\n var release = msg.payload.split(splitstr)[1].split('</ul>')[0];\n\n if (release !== null){\n var changes = [];\n changes = release.match(/(Breaking Change:.*?<\\/a>)/gms);\n }else{\n return [null,msg]\n }\n\n\n msg.breaking = \"\"\n changes.forEach(function (value,index) {\n msg.breaking = msg.breaking + \"<br>\" + value.replace(/<\\/?[^>]+(>|$)/g, \"\");\n });\n msg.changes = changes;\n return [msg,null];\n}else{\n return [null,msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":900,"y":1340,"wires":[["c503b73eb3434e9d","ead2bde3f5cc61af"],["77943c36beb9398b"]]},{"id":"3432389388f2eead","type":"function","z":"ebaa69a9.649708","name":"","func":"\nmsg.version = msg.version.split(\"-\")[0];\nvar splitstr = '<a href=\"/home-assistant/android/releases/tag/VERSION\" data-view-component=\"true\" class=\"Link--primary\">VERSION</a>'.replaceAll(\"VERSION\", msg.version);\n\nif (msg.payload.includes(splitstr)){\n var release = msg.payload.split(splitstr)[1].split('</ul>')[0];\n\n if (release !== null){\n var changes = [];\n changes = release.match(/(Breaking Change:.*?<\\/a>)/gms);\n }else{\n return [null,msg]\n }\n\n msg.breaking = \"\"\n changes.forEach(function (value,index) {\n msg.breaking = msg.breaking + \"<br>\" + value.replace(/<\\/?[^>]+(>|$)/g, \"\");\n });\n msg.changes = changes;\n return [msg,null];\n}else{\n return [null,msg];\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1160,"y":1480,"wires":[["c503b73eb3434e9d","ead2bde3f5cc61af"],[]]},{"id":"77943c36beb9398b","type":"http request","z":"ebaa69a9.649708","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://github.com/home-assistant/android/releases?page=3","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":1010,"y":1420,"wires":[["3432389388f2eead"]]},{"id":"4bbca37b.1700ec","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]