Skip to content

New Share your ideas with the AWTRIX community. Keep your creations together in your account.

Sign in

Privacy policy

This page explains what happens to your information when you browse the Hub, sign in, draw an icon, share a creation or join a discussion. Public contributions and private account data are handled differently, as explained below.

1. Who is responsible

The controller under the General Data Protection Regulation (GDPR) is:
Stephan Mühl Softwareentwicklung
Sole proprietor: Stephan Mühl
Weinbergstraße 10
63477 Maintal, Germany
admin@blueforcer.de

You can use this e-mail address for privacy questions and requests.

2. Visiting the site

Your browser sends your IP address, the requested address, the time, browser identification and, where supplied, the referring page. The server uses this information to deliver pages. Since 12 September 2026, routine web-server access logging is disabled for the Hub. Technical warning and error logs may still contain an IP address, the requested address, response status and error details. Application error logs also record the account identifier of a signed-in visitor. Request addresses may contain query parameters, including sign-in callback parameters.

When a script on your AWTRIX signs in to another service, that service sends your browser back through awtrix.de/oauth/callback. The Hub passes the sign-in code straight on to your clock in your own network and stores nothing. Like any requested address, it can appear in error logs.

Your AWTRIX also contacts the Hub directly, for example to load the icon catalogue, check for script updates or download files with your connection key. The same technical data, including your network's public IP address, is processed.

Purpose and legal basis: operating the site, diagnosing faults and preventing abuse, under Art. 6 (1) (f) GDPR. Our legitimate interest is a reliable and secure service. Application error logs are retained for 14 days. The Hub's separate web-server error log rotates daily and keeps the current daily file plus 13 previous daily files. Older infrastructure logs and connection errors recorded before the server identifies the requested site can remain in shared system logs. Those records require a separate review for necessity and any specific security investigation; the new rotation does not erase older logs.

Temporary request counters limit repeated requests and spam. Depending on the function, they use an IP address, account identifier or request category and expire when their rate-limit window ends. They are not used for advertising. The legal basis is Art. 6 (1) (f) GDPR, our interest in preventing misuse.

3. Page content and external links

The Hub serves its fonts, scripts, styles, provider logos and icon editor from its own server. It does not use advertising trackers, third-party analytics or social media plugins. The hosting provider necessarily processes technical requests to deliver the site; see section 7.

Links to documentation, GitHub, Discord and other websites take you to services with their own privacy policies. A sign-in provider receives information when you choose its sign-in button. Details are in sections 5.2 and 7.

4. Cookies and browser storage

The Hub uses first-party cookies for sessions, sign-in and form security. They may be set when you open a page, including before sign-in. Storage needed to provide a function you request is used under § 25 (2) no. 2 TDDDG. Being first-party does not by itself make storage exempt from consent; its purpose and necessity are what matter. The Hub does not set advertising or analytics cookies.

NamePurposeLifetime
awtrix-flows-session Keeps your session, form messages and sign-in state. It also links a sign-in callback to the browser that started it. If you choose your AWTRIX without signing in, the session keeps that choice. 30 days of inactivity
XSRF-TOKEN Protects form submissions against cross-site request forgery. Same as the session
edit_token_… Remembers a legacy flow edit link after you use it. It is removed when the flow is attached to an account. 30 days

Administrators who sign in to the moderation area and choose to stay signed in also receive a login cookie for that purpose.

The following preferences and work are stored in your browser when you use the relevant features:

Browser preferences have no fixed expiry. They remain until removed by you or your browser. Device addresses are used by your browser to contact your display directly for installation or live preview. While signed in, device names, encrypted local addresses, last-seen firmware versions and last-use times are also saved in your Hub account so that the same device list is available throughout the Hub and on your other browsers. With each use, the Hub also keeps what the device reported about itself: its model (for example ESP32 or TC002), its panel size and which features it has, such as sound or a gamepad. Device usernames and passwords are never saved or sent to the Hub. Drafts are also saved in your account while you are signed in, as described in section 5.4. The legal basis for the device list is Art. 6 (1) (b) GDPR: providing the device list and installation you use.

When you choose your AWTRIX at the top of the page, the Hub remembers that choice so that its lists show what runs on it: a model from the list, or what your AWTRIX reported about itself (its name, model, panel size and features, never its address). Without signing in it stays in your session; while signed in it is saved in your account. A link from your AWTRIX's own web interface carries the same facts in its address and is remembered the same way when you have not chosen a device yet. Choosing All devices removes the choice. The legal basis is Art. 6 (1) (b) GDPR: providing the filter you ask for.

Signing out ends the current login session; it does not erase local drafts or preferences. Delete drafts in the editor, forget devices in account settings, or clear this site's browser data to remove local copies. Clearing browser data may also sign you out and remove unsynchronised work. Other browsers and devices keep their own local copies; account-synchronised devices return after the next sign-in.

5. Accounts, creations and discussions

5.1 Flows and icons

Browsing, searching and enlarged previews are public. Publishing requires an account. Flow code, original icon downloads and flow icon packs require a signed-in session or Hub connection key. This covers viewing, copying and downloading flow code, flow files, and the source and sounds of a script. Home Assistant blueprints are an exception: they are also published in our public GitHub repository so that Home Assistant can import them (see section 7).

When you publish, we store the contribution's name, description, author name, code or image files, selected categories and device compatibility. For icons, we also record dimensions, frame count, file size, checksum, source editor or client and version information. Names, descriptions, previews and catalogue information may be read by anyone and indexed by search engines. Flow code, original icon files and the sounds of a script are available to authenticated users and clients. Pictures and sounds you add while filling in the form are kept privately until you save. If you leave the form without saving, they are deleted right away; anything left behind, for example after a browser crash, is deleted after one day.

Cover and gallery pictures are public. We store them resized and in several sizes; photos are saved again as JPEG, which removes camera and location data, and optional metadata is removed from GIF, PNG and MP3 files. A sound's file name becomes the name under which the script plays it. A script's name, release notes, declared needs and sound names are public in the update information that AWTRIX devices check.

Your contribution is published under your account display name. For flows, the name at the time you publish or edit is stored with the flow; icon pages always show your current display name. We separately keep the link to the owning account and, for flow and icon publication, the accepted terms version and acceptance time. These internal account and acceptance records are not part of the public contribution. Choose a pseudonym as your display name if you do not want to publish your real name, and do not include passwords or unnecessary personal information in your contributions.

Purpose and legal basis: hosting and sharing the work you ask us to publish, under Art. 6 (1) (b) GDPR. We keep it while it is published; section 5.3 explains removal. Internal acceptance records document the applicable publishing agreement. View counters only hold totals per contribution. To count each visit only once, a visitor who already has a session keeps a note in it of which flows and icons it has viewed; the note disappears with the session (see section 4). Likes, installs and downloads are described in section 5.6.

Legacy flows can be managed with their secret edit link. The database stores a SHA-256 hash of the link's secret, not the secret itself. Attaching a flow to an account removes that hash and permanently disables the old edit link.

5.2 Your account and Hub connection key

On your first sign-in, we create an account using the identity information supplied by your chosen provider. We store:

We do not store your password, your profile picture or the access token supplied by the sign-in provider. Its token is used during sign-in and then discarded. Your e-mail address is not shown to other visitors. Accounts without an e-mail address can use the Hub too.

You can connect another provider from the settings of an account you are already signed in to. A matching e-mail address alone never links a new provider to an existing account. The provider records listed above then exist for each connected provider.

If you create a Hub connection key, we store its cryptographic hash and the time it was last used. The new key is briefly held in your session so that you can copy it once. It identifies your account when your AWTRIX or an app downloads flows, scripts and their sounds, or icons, or publishes icons from your AWTRIX. You can revoke or replace it in account settings. A connection key does not allow posting comments; that requires signing in on the website.

Purpose and legal basis: providing your account, authenticated downloads and control over your work, under Art. 6 (1) (b) GDPR. Security checks, last-use information and abuse prevention also serve our legitimate interest in protecting accounts under Art. 6 (1) (f) GDPR. Account information is retained while the account exists; a revoked key's hash is removed.

You do not have to provide personal data. Without signing in, we cannot provide an account, publishing, downloads, likes or discussions.

5.3 Removing contributions and deleting an account

Removing an individual flow or icon makes it disappear from public view, and its image files are removed. The database initially retains the removed contribution's record, including flow text and the author name shown on the flow. This allows us to investigate misuse and content reports and avoid assigning an old icon ID to a different work. Public removal therefore does not mean that every internal record has been erased.

When you delete your account, you choose whether your published flows and icons should be removed from public view or left online. If you leave them online, they are assigned to a deleted account. A flow keeps the author name it shows, icons are shown as by "Deleted account", and you lose the ability to edit the work through that account. You can still contact us to exercise your privacy rights.

If you choose Delete everything when deleting your account, we also clear your flow code, descriptions, release notes and author names from the retained contribution records, replace contribution names with neutral labels, delete the names of script sounds and flow icon files, and remove icon aliases and search text. This includes contributions you had already removed from public view, together with any of their pictures, sounds and files that were still stored. Their identifiers remain reserved, including the short name in an icon's address, so old links and installed icons cannot be assigned to someone else's work.

This additional cleanup applies to account deletions from 12 September 2026. Records retained from earlier account deletions are not automatically changed. Contact us if you want personal information in those older records reviewed for erasure.

In either case, your account and connected provider records, Hub connection key, saved devices, your device choice, private server drafts, own comments, likes and install records are deleted, as are pictures and sounds not yet saved to a contribution (their files are removed within about a day). Replies by other people remain without a link to a deleted parent comment. Reporting records are separate and can retain a reported comment's text and name as explained in section 6. Logs and local browser copies are not erased by the account-delete button. Deletion here does not delete an account at GitHub, Google or Discord.

Where internal records are still needed for a specific dispute, legal obligation or claim, access is restricted to that purpose under Art. 6 (1) (c) or (f) GDPR. You can request erasure of personal information that is no longer necessary. We cannot recall copies downloaded by others or entries in a public repository's history. Please contact us if a third-party copy needs to be addressed.

5.4 Private icon drafts

The editor saves your drawing, project name, frames, layers and revision information in your browser. While signed in, it also automatically saves a private copy in your Hub account so you can continue in another browser. Other visitors cannot read these drafts. Publishing is a separate action. Deleting a draft removes the server copy and the copy in that browser; another browser may still hold its own copy.

The legal basis is Art. 6 (1) (b) GDPR: providing the drawing and saving functions you use. Server drafts remain until you delete them or your account.

5.5 Comments and replies

Posting requires a signed-in account. We store your plain-text comment, the account that wrote it, its flow or icon, any link to a parent comment, and the posting and editing times. The comment, your account display name and its time are public. Readers do not need an account. Do not post confidential information.

When someone replies to your comment or comments on your flow or icon, the bell at the top of the page tells you. For that we store which comment it was, for whom, and whether you have opened it; names and texts are read from the comment itself. A notification is deleted with its comment or your account, and after 90 days at the latest. The legal basis is Art. 6 (1) (b) GDPR: the discussion feature you use.

You can edit or delete your own comments in their discussion or under My comments in your account. That account view also works when the flow or icon is no longer public. Deleted comments are removed from the discussion and the comments table; replies from others remain without the parent link. If a flow or icon is hidden or removed from public view, its discussion is hidden too. Permanently deleting that contribution also deletes its discussion. Reports can retain a separate copy for moderation. We do not send comment or reply notifications by e-mail or to Discord.

Purpose and legal basis: publishing the discussion you request, under Art. 6 (1) (b) GDPR; protecting participants and moderating misuse, under Art. 6 (1) (f) GDPR. Comments remain until you or a moderator deletes them, your account is deleted, or their contribution is permanently deleted.

5.6 Likes, installs and download counts

While signed in, you can like a flow or an icon once. We store which account liked which contribution and when, so that you can take your like back and nobody can like twice. Only the number of likes is public; nobody else can see who liked what. A like remains until you take it back, your account is deleted or the contribution is permanently deleted. Your likes are included in your account export.

Each flow shows how many accounts have installed it. An install is counted when a flow's file or icon pack is downloaded, when your AWTRIX fetches a script with your connection key, or when your browser reports that it has written a script to your AWTRIX. The Hub does not learn your device's address from that report. Each account counts once per flow, however often it installs or updates it. For this we keep a note of the account, the flow and the time of the first install, without an IP address. Only the number of installs is public; nobody else can see who installed what. The note remains until your account is deleted or the flow is permanently deleted; the total stays. Your installs are included in your account export.

Each icon shows how often it was downloaded. A download is counted when your browser or your AWTRIX fetches the icon's file, at most once per account, icon and day. For this we keep a note of the account, the icon and the date, without a time or IP address. It is deleted after about two days (at most about 52 hours), or earlier with your account or the icon; then only the total remains.

Deleted notes can remain in our encrypted recovery backups until those expire after 14 days.

Purpose and legal basis: showing the likes you give and counts that cannot be inflated. For likes this is Art. 6 (1) (b) GDPR; for counting installs and downloads it is Art. 6 (1) (f) GDPR, our interest in reliable popularity figures. No cookie or browser storage is used for either. Repeated liking is limited by the temporary request counters described in section 2.

5.7 The AWTRIX NG app

The AWTRIX NG app for iOS and Android keeps its data on your phone: the clocks you add, their addresses and names, your settings and rules, and your connection key and any clock passwords in the phone's secure storage. It talks to your clocks directly in your local network. Notifications, music information, voice announcements, shared pictures and texts are sent only to the clocks you choose, never to us. On Android, notifications are read on the phone only for the apps you select.

The app contacts the Hub when you open its Hub pages, which are the pages described in this policy, when it loads the public icon catalogue, and when you use your connection key to sign in or to publish an icon. A published icon is handled as described in section 5.1. To show the name and symbol of an iPhone app in a notification rule, the app asks Apple's public App Store lookup service for that app's identifier.

The app contains no advertising, no analytics and no tracking. Removing the app removes its data from your phone.

5.8 AWTRIX NG on the Ulanzi TC002

AWTRIX NG counts how many Ulanzi TC002 run it. The count helps the development of the project and is the basis for a planned cooperation with Ulanzi, in which Ulanzi would support the project for every counted TC002. To count the clocks, the clock's web UI asks once whether the clock may be counted. Only if you agree does the TC002 report to the Hub, one time. We only learn how many TC002 run AWTRIX NG, nothing about you or how you use your clock. Agreeing is voluntary and has no disadvantage for you: AWTRIX NG works exactly the same either way, and nothing is unlocked or blocked by it. Your clock sends the report only to the Hub, never to Ulanzi. Ulanzi only receives from us what is described below.

The report contains one value and nothing else: a one-way hash (SHA-256) of a fixed label and the identifier that the TC002's memory chip reports for each device. The identifier itself never leaves your clock, and the hash cannot be turned back into it. The Hub hashes the value again with a secret key and stores only that result together with the quarter of the first report, for example 2026-Q4. We store no IP address, no time, no account, no location, no settings and no usage data with it, and it is not linked to a Hub account. A clock that reports again changes nothing. While the request is processed, your network's public IP address is handled as described in section 2.

Ulanzi receives at most the number of new devices per quarter. This number contains no personal data. Only if a cooperation with Ulanzi has been agreed can Ulanzi check the number for a quarter: it can then receive the stored values of that quarter and the key. If Ulanzi recorded the identifiers of its devices during production, it can then tell which of those devices were counted in that quarter. We hand these over only under a contract that allows Ulanzi to use them for that check alone, forbids linking them to customers or other people, and requires Ulanzi to delete them and the key after the check (see section 7). We cannot tell from a stored value who owns a device or which device it belongs to. Because Ulanzi can match the values to devices, we still treat them as pseudonymised personal data.

We keep the stored values for as long as the Hub counts TC002 clocks, because they make sure that a device is counted only once. When the counting ends, we delete them. If a cooperation with Ulanzi has been agreed, we delete them as soon as its last quarter has been settled and checked, and no later than one year after the counting ends. The quarterly numbers contain no personal data and are kept.

Purpose and legal basis: knowing how many TC002 run AWTRIX NG, for the development of the project and as the basis for the planned cooperation with Ulanzi, and settling that cooperation once it has been agreed. Reading the identifier on your clock and sending the report rest on your consent in the web UI (§ 25 (1) TDDDG and Art. 6 (1) (a) GDPR). Keeping the stored values rests on Art. 6 (1) (f) GDPR; our legitimate interest is counting each device only once. Giving them to Ulanzi for a check rests on Art. 6 (1) (f) GDPR as well; the legitimate interest, ours and Ulanzi's, is a correct and verifiable settlement of an agreed cooperation.

You can withdraw your consent at any time, with effect for the future. Before your clock has sent the report, withdrawing stops it; the AWTRIX NG documentation explains how. The clock sends the report as soon as it is online, normally right after your answer. A report that has been sent cannot be taken back: we cannot assign a stored value to you or your clock, so we cannot find a single report on request (Art. 11 GDPR). If you can give us information that identifies your clock's entry, your rights described in section 8 apply to it, including objection and erasure.

6. Reports and direct contact

The reporting form stores your explanation, the contribution concerned, a reference number, any name or e-mail address you supply, your good-faith confirmation, and the moderation decision. Contact details are optional. A report is not automatically linked to your account. Reporting a comment also stores a snapshot of its text, author's display name and link, together with its comment identifier and a reference to the author's account for handling privacy requests. The account reference is removed when that account is deleted. That snapshot remains if the comment or account is later deleted or the text is edited.

Purpose and legal basis: handling unlawful-content notices under Art. 6 (1) (c) GDPR together with Art. 16 and 17 DSA; handling rule violations and documenting decisions under Art. 6 (1) (f) GDPR. Our legitimate interest is a fair moderation process and the ability to deal with complaints and legal claims. Reports are not published. Moderators use any contact details you provide to follow up where needed.

New reports submitted from 12 September 2026 are normally kept for three years from submission, then removed by a daily cleanup. If a specific legal obligation, dispute or claim requires longer retention, we record the reason and a new end date. Earlier reports require individual retention review. Three years is our retention policy, not a period required by the GDPR. Deleting your account does not erase reporting records automatically. If you contact us directly, we also process your message and contact details to answer it, under Art. 6 (1) (b), (c) or (f) GDPR depending on whether it concerns your account, a legal obligation or another enquiry.

7. Recipients and external services

Hosting and administration

The Hub is hosted by Contabo GmbH on a server in a data centre in Germany, under a data processing agreement. The hosting service processes the technical requests and stored data needed to run the site. Authorised administrators may access private data to operate the service, handle support and moderate reports. Data may also be disclosed when required by law or needed to establish or defend legal claims. We do not sell personal data.

E-mail

Messages to admin@blueforcer.de and flows@blueforcer.de are received and stored on our own mail server. It runs on a separate Contabo server in the European Union, in France. No other e-mail provider is involved.

Recovery backups

To recover from technical failures or accidental data loss, we create encrypted backups of the Hub's database and uploaded files. Access is restricted to authorised administrators. Scheduled backups normally expire after 14 days; the latest successful copy is retained if replacement backups fail. Older manual recovery copies are reviewed separately. Deleted data may remain in these restricted copies until they expire. After a recovery, subsequent erasures and access revocations must be reapplied before public access resumes. The legal basis is Art. 6 (1) (f) GDPR, our interest in keeping the service recoverable and protecting its data.

Ulanzi

Ulanzi, the manufacturer of the TC002, may receive the quarterly number of new devices described in section 5.8; this number contains no personal data. Only if a cooperation has been agreed and Ulanzi asks to check a quarter does it also receive the stored values of that quarter and the key needed to check them. Ulanzi is based in China, a country without an EU adequacy decision. We hand over these values only after Ulanzi has agreed to the EU standard contractual clauses (Art. 46 (2) (c) GDPR). You can ask us for a copy. Ulanzi receives no IP addresses, account data or other information about visitors or users.

Sign-in providers

When you select a sign-in button, your browser visits that provider. It receives your IP address, browser information and the sign-in request. It returns the identity information described in section 5.2. This exchange is needed to carry out the sign-in you request under Art. 6 (1) (b) GDPR. The provider is separately responsible for its own service and may process data outside the EEA, including in the United States. Its privacy notice explains that processing and the transfer mechanisms it uses:

These providers describe reliance on applicable adequacy decisions, including the EU–U.S. Data Privacy Framework, and standard contractual clauses for their international transfers. This is not a claim that every possible transfer is covered by the same agreement. You can contact us for information about the safeguards relevant to your use of the Hub.

Publication announcements and blueprint mirror

New flows are announced in our Discord community. The announcement includes the flow's name, short description, author name, type, category, platform, a link and its cover picture, which Discord loads from the Hub. It contains no visitor data or private account information. Discord Inc. may process it in the United States (see Sign-in providers above for Discord's safeguards). An announcement stays in the channel when the flow is later changed or deleted; write to us if it should be removed. The purpose is sharing newly published work with the community; the legal basis is Art. 6 (1) (f) GDPR, our interest in making contributions discoverable. You may object to this processing. Icons, comments and private drafts are not announced.

Home Assistant blueprints are mirrored in our public GitHub repository blueforcer/flows_blueprints so Home Assistant can import them. When you publish or edit a blueprint, the Hub copies its YAML text there unchanged, as a file named after the flow's identifier. The Hub adds no account data; changes are recorded in the name of AWTRIX Hub. Whatever you wrote into the blueprint itself, such as an author line, is public on GitHub. The repository is public by design, because Home Assistant imports blueprints from there. GitHub, Inc. may process the file in the United States (see Sign-in providers above for GitHub's safeguards). This provides the publication and import function under Art. 6 (1) (b) GDPR. When a blueprint is deleted, its file is removed from the repository; repository history and copies made by others may remain.

8. Your rights

Subject to the conditions of the GDPR, you can request access, correction, erasure, restriction of processing and data portability (Articles 15–18 and 20). You can object to processing based on legitimate interests under Article 21. If processing is based on consent, you can withdraw that consent for the future.

Write to admin@blueforcer.de. Your account settings also let you change your display name, export account data and delete your account. The export is a convenient starting point; it does not replace your right to request information about other records, such as reports or logs. Tell us which account or contribution your request concerns. We may need proportionate information to verify your identity. Do not send passwords or connection keys.

We respond to rights requests without undue delay and normally within one month. If a permitted extension is necessary, we will explain it within that period. You can complain to a supervisory authority, including in the country where you live or work. Our local authority is:

Der Hessische Beauftragte für Datenschutz und Informationsfreiheit
datenschutz.hessen.de

9. Children and automated decisions

The Hub is a community for AWTRIX users and is not specifically directed at children. Please contact us if a child has published personal information that needs to be removed. We do not use profiling or automated decisions producing legal or similarly significant effects under Art. 22 GDPR. A person decides whether reported flows, icons or comments should be restricted or removed.

10. Changes

We update this policy when the service or its processing changes. The date below identifies this version. Significant changes will be brought to users' attention.

Last updated: 23 October 2026