Version 1.0.0
Sheets Log Dispatcher is a lightweight logging helper for Homey Advanced Flows.
It receives log entries quickly, stores them in a RAM-based queue, and dispatches them one by one at a configurable interval. This helps prevent log messages from being overwritten by race conditions when multiple Flows fail or log at the same time.
Some logging solutions store logs on Homey itself, which may use storage space and can make the logs harder to access. Others rely on external servers or services. Sheets Log Dispatcher takes a different approach: it keeps the queue simple, fast and RAM-based, and lets you decide where the final log should be written.
Sheets Log Dispatcher works very well together with Google Sheets, but it does not write to Google Sheets directly. Instead, it triggers a “Log entry available” Flow card with ready-to-use tags for Sheets / CSV, Full Text and Type. Use the Sheets / CSV tag together with the Google Sheets app to write structured logs into Google Sheets. You can also use the Full Text tag for Timeline messages, notifications or other Flow actions.
You can configure which log types are enabled, how fast entries are dispatched, and which fields are included in each output format.
An additional retry helper can retry failed Flow actions a set number of times with a configurable delay before throwing a final error. This can be useful when a device is only temporarily unavailable.
To use Sheets Log Dispatcher, simply install it on your Homey.
If you want to write logs to Google Sheets, also install the Google Sheets app on your Homey.
Then create a spreadsheet in your Google account. Create or rename the tab where the logs should be written and share the spreadsheet as required by the Google Sheets app.
Follow the instructions for Google Sheets to give it access to your online sheets.
Sheets Log Dispatcher itself does not need access to your Google account and does not communicate with the Google Sheets API directly.
A basic central logging Flow listens for the “Log entry available” card and writes the Sheets / CSV tag to Google Sheets.
Every time Sheets Log Dispatcher dispatches a queued log entry, this Flow is triggered once.
The “Log entry available” card provides three tags:
Sheets / CSV
Full Text
Type
Use the Sheets / CSV tag when writing structured rows to Google Sheets. Use the Full Text tag for Timeline messages, notifications or readable debug output. Use the Type tag if you want to route different log types to different sheets, different tabs, or different follow-up actions.
With the following more complex flow you can write to different sheets or to different tabs on the same sheet depending on the type of message.
Once you have created a central logging Flow, you can log errors by connecting the red error path of a Flow card to the “Add log entry” card. Only Type and Message are mandatory. All other fields are optional.
The available fields are:
Type: Error, Alert, Warning, Info or Debug
Message: The log message. This can be plain text or text combined with Homey tags.
Flow: The name of the Flow. Homey does not provide this automatically, so you can enter it manually.
Trigger: What triggered the Flow or event. This is a dropdown list.
Card: Card 01 to Card 30. This helps identify which card in a Flow caused the log entry.
App: The app related to the log entry.
Zone: The concerned Homey zone.
Device: The concerned device.
Note about fields:
You can configure which fields are used and in which order in the app settings. These settings only affect the generated output tags. They do not change the fields shown in the “Add log entry” card.
If you fill in a field on the card but that field is not selected in the output settings, it will simply be ignored in that output format. If a field is selected in the output settings but left empty on the card, it will be output as “n/a”.
Semicolons inside field values are replaced automatically so that the Sheets / CSV structure is not broken.
Sheets Log Dispatcher is not limited to errors.
You can also use the “Add log entry” card on a normal Flow path to log events, status changes or important actions.
For example, you can log when a Flow starts, when a device changes state, when a value crosses a threshold, or when an automation has completed successfully.
The fields are the same as for error logging.
Sheets Log Dispatcher includes helper cards that allow you to retry failed Flow actions. This can be useful when a device is temporarily unavailable, when a service responds too slowly, or when a Flow depends on a condition that is not ready yet. Homey does not allow visible loops in Advanced Flows. You cannot directly connect the output of a later card back to an earlier card. To make retries possible, Sheets Log Dispatcher uses a Retry card together with a Retry triggered WHEN-card. When a Flow action fails, connect its red error path to the Retry card. The Retry card waits for the configured delay and then internally triggers the “Retry triggered” card with the same retry key. This starts the retry path again without creating a visible loop in the Flow editor.
The Retry card needs:
Retry key: A unique identifier for this retry loop.
Max retries: The number of additional retry attempts after the original failed attempt.
Delay seconds: The delay between retry attempts.
Error message: Optionally, the Error tag from the failed card.
The “Retry triggered” card must use exactly the same retry key. If Max retries is set to 3, the original action can run up to 4 times in total (First try + 3 retries).
If all retries fail, the Retry card throws a final error. This final error can be connected to the normal “Add log entry” card and written to your log.
Example Flow:
Please note:
The Retry card cannot automatically know when the retried action finally succeeds, because the Flow simply continues on the normal path. For this reason, the app includes an “End try” card. Add the “End try” card to the successful path of your Flow and use the same retry key. This immediately resets the retry counter and timer. As a safety fallback, the app also resets the retry counter automatically after the retry delay plus 60 seconds. However, if the same retry loop is triggered very frequently, the counter may still be active. For reliable behaviour, using “End try” on the successful path is strongly recommended.
Important: Unique IDs
Every retry loop needs its own unique retry key. All cards that belong to the same retry loop must use exactly the same key:
Retry card
Retry triggered card
End try card
Example: bathroom_trv_retry. Use simple names without special characters. Underscores are recommended. Be careful when duplicating Retry cards from one Flow to another. If two different retry loops use the same key, they will share the same retry counter and may affect each other.
Example of a log in Google Sheets