Collecting user data in Homey (Community) Apps

With the new service, I can only push notifications to all installations on a specific version. So I don’t know which installations are yours :wink:

I might even publish the source code for the backend on GitHub so that other devs can implement it as well, and users can be sure that no IPs are saved. I’m sure there are more developers interested in a remote notifications/telemetry solution.

It is. It sends unknown device types and unexpected errors as well, which can help me improve the app and add new devices more quickly. Some of my apps apps already do this, but I want to add it for all apps.

You can find all of them here:

You can remove them or disable auto update if you don’t want to receive the new update

Most of the apps will get the new service, but not all of them. The devices that are relatively stable probably won’t get the new telemetry, as each installation costs server resources as well

How about your app, flow history.

Will it work offline, locally only?

Yes, all apps work fine without the service. Not being able to connect to telemetry doesn’t block the app from working

However, I’m not even sure if I’ll add the telemetry to Flow Version History in the first place, since it uses an official API which is very stable

I agree with most people here. However good your intentions are about improving your apps, you just can not send and collect telemetry / track data from your apps without user consent.

Good thing is, that this whole discussion just opened a whole can of worms.

Having in the past installed apps in good faith, that faith is gone completely. I now wonder what trojans I have lurking on my Homey just now. - And everybody should wonder.

I will definitely contact Athom and ask them to have a close look into that topic. They should issue developer guidelines for telemetry and make compliance to these guidelines mandatory for app approval. For test as well as for release.
Because in the end it is their platform that might be used to spy upon users, which is bad publicity and should absolutely not be in their interest. - On the other hand they are a subsidiary of LG… :thinking:

Since this is very heated discussion and very right one, I asked for independent analysis… I will park it here and probably not continue in the discussion :wink:

Reviewing the discussion from a GDPR and ePrivacy perspective, there are several important legal distinctions worth clarifying.

First, collecting telemetry is not inherently illegal under GDPR, and GDPR does not universally require opt-in consent for every form of diagnostic data collection. Under Article 6(1)(f), legitimate interests may provide a lawful basis for certain limited operational telemetry, provided the processing is necessary, proportionate, transparent, and supported by a proper balancing assessment.

However, GDPR is not the only legislation that matters here.

Article 5(3) of the ePrivacy Directive, as implemented in national law, also regulates storing information on or accessing information from users’ terminal equipment. This can apply even when the information itself is not personal data. For optional analytics or installation tracking, prior consent may therefore be required unless a specific exemption applies.

A few observations regarding the implementation described in this thread:

  1. Random installation UUIDs are not automatically anonymous. A persistent identifier that allows one installation to be recognized and tracked over time may constitute personal data, particularly when combined with IP addresses, diagnostic information, or other reasonably available data. Random generation and the absence of a user’s name do not, by themselves, make such information anonymous. See GDPR Article 4(1), Article 4(5), and Recital 26.

  2. IP address processing matters even if the IP is not permanently stored. Sending an IP address to an external GeoIP service involves processing and potentially disclosure to a third party. Retaining only the resulting country information does not eliminate the legal implications of the preceding processing.

  3. Transparency is mandatory. Where personal data is collected directly from users, GDPR Articles 12–13 require appropriate information about the controller, purposes, lawful basis, recipients, retention, and data-subject rights. Publishing a privacy policy is an important step, but a privacy policy alone does not establish a lawful basis for processing.

  4. Default-on telemetry is not automatically compliant simply because an opt-out exists. An opt-out may be compatible with certain processing based on legitimate interests under GDPR, but it does not replace prior consent where ePrivacy rules require it.

  5. The distinction between necessary functionality and optional telemetry is particularly relevant. The developer has stated that the applications function without the telemetry service. This does not automatically make the telemetry unlawful, but it makes it more difficult to argue that all the described tracking is strictly necessary to provide the service requested by the user.

  6. Responsibility cannot simply be transferred to Athom. An independent community developer deciding why and how telemetry is collected will generally be a data controller for that processing. Athom’s own privacy policy does not automatically cover independent telemetry infrastructure operated by third-party developers. Depending on their actual roles, external service providers may also have separate obligations under GDPR.

Regarding the proposed replacement using WebSocket connections and installation identifiers: removing GeoIP lookups is a positive data-minimization measure, but it does not automatically resolve the remaining legal questions. Persistent identifiers, connection metadata, targeted messaging, and error reporting still require appropriate assessment.

Both extreme positions are legally inaccurate: it is incorrect to claim that GDPR prohibits telemetry without explicit consent in every situation, but it is equally incorrect to assume that randomly generated UUIDs, a lack of directly identifying details, or the mere installation of an app automatically make telemetry lawful.

For optional community-app telemetry, the legally safer approach would be to:

  • Provide a clear and accessible privacy notice before personal data collection begins.

  • Collect only what is genuinely necessary for clearly defined purposes.

  • Avoid persistent identifiers where anonymous or aggregated statistics would be sufficient.

  • Document the applicable lawful basis and perform a legitimate interests assessment where relevant.

  • Assess whether ePrivacy rules require prior consent, rather than assuming that legitimate interests under GDPR are sufficient.

  • Provide genuine opt-in consent where legally required, together with an effective withdrawal mechanism.

  • Ensure that declining optional telemetry does not unnecessarily affect the application’s core functionality.

  • Define appropriate retention periods and clarify the responsibilities of any external service providers.

For reference:

Ultimately, compliance depends on the actual technical implementation, the purposes of processing, the information provided to users, and the applicable legal requirements — not merely on whether the developer considers the collected data anonymous or the telemetry harmless.

The intention here is not to discourage legitimate diagnostics or improvements to community applications, but to ensure that telemetry is implemented in a way that respects users’ privacy and the legal obligations applicable to developers operating within the EU.

:+1: Well spoken and - at least to my knowlegde - absolutely correct.

I have been through the process of making an IT company compliant to all this and I can only say that by complying you will not loose any of the information you really need to develop and maintain your product.
It just does not satisfy your personal curiosity as it did before :wink:

I don’t understand at all why you see basic diagnostic data, which literally every single app on your phone collects, would be “spying”. Are you still on Windows 98? There you probably don’t have diagnostics or telemetry.

All modern software, websites and internet-connected devices collect basic telemetric data. You can’t get around it. And in my opinion, my apps collect very little data. I have another smart home cloud platform (website) which collects far, far more data (including, but not limited to, usage and interaction data, all historic sensor values and logs)

Just asking. Because the flow app is using external url for export of the flows, and cloud connection.
So it will not work without internet.

And the only thing I can think of why you need an exturnal url, for flow export is to track users for some reason.
I might be wrong

But at least you are open about it

The reason it’s using an external URL is because the app stores it as <random-uuid>.json in the userdata folder, but since Homey needs a .homeystdflow or .homeyadvflow file, the simple GitHub webpage downloads the file from the URL in the query params, and then saves it as a <flow-name>.homeystdflow or <flow-name>.homeyadvflow

So you didn’t research it properly it seems, which is just hilarious since if you would just take a few seconds to look at what github.io actually is, you’ll find that github.io URLs are always linked to a GitHub repository, where all the code is public. You can find it here (and yes, this page is vibecoded)

To save from app to disk you can use the blob function.
Then it is not needed to have any connection to the internet.

You app..
I don’t use it since i don’t need it.

Like I said, you are at least open about it.

But the Homey settings view does not allow downloading that way (probably due to security rules), I’ve tried that before. Didn’t work

Just for my info: does that mean that the information that is included in flows (including potential private info) is temporary publicly accessible via the GitHub webpage, during the back up process? Or is that information secured/encrypted?

Not at all. The GitHub webpage downloads the file straight from Athom’s relay service (https://<cloudid>.connect.athom.com/) and then uses the name provided in the URL as the filename. GitHub Pages websites can’t store anything without using another service anyway, they are just static pages.

I’m glad I’m not the only user here recognizing a problem on this topic. Some very usefull information is posted here on legislation and more importantly gut feeling of several users. To bad to see this leads to users possibly losing trust and faith in the Homey ecosystem, that’s imo the biggest conceren here and I do hope Athom notices this and takes action.

One more remake before I will stop responind to this topic:

A ‘Ja maar hij…’ reactie is never a justification to do anything, that’s a ‘kleuterschool niveau’ reactie.

(Sorry for the Dutch here, some AI can perfectly clarify it, I felt it necessary to get the point across)