[APP][Pro] Vestaboard — Flagship, Note, Note Arrays and smart display automation

Hi all,

I’ve been working on a Homey app for Vestaboard.

The aim is to bring Vestaboard properly into Homey — not just as a simple “send message” action, but as a live smart display that can be controlled from Flows, dashboards and the Homey mobile app.

Homey App Store:

Supported Vestaboards

The app is built for:

  • Vestaboard Flagship — Cloud API or Local API
  • Vestaboard Note — Cloud API
  • Vestaboard Note Arrays — Cloud API

Supported Note Array layouts currently include:

  • Two Notes wide
  • Four Notes wide
  • Two Notes stacked
  • Four Notes stacked
  • A 2 × 2 Note Array

Homey detects the board model and layout automatically after connecting. Text capacity, character handling, image conversion, widgets and Flow behaviour are then adapted to the detected board.

The app has been tested with a Vestaboard Flagship. Note and Note Array support is implemented and covered by automated tests, but I’d particularly welcome feedback from owners using those products on real hardware.

What does it do?

The app brings each Vestaboard into Homey as its own device.

It currently supports:

  • Sending ordinary text
  • Horizontal and vertical alignment
  • Quotes with authors
  • Two-line layouts and lists
  • Labelled values
  • Colours and colour fills
  • Vestaboard character codes
  • VBML content
  • Transition effects and speeds
  • Images from secure URLs
  • Images supplied through Homey Image Flow Tags
  • Image brightness, contrast, fitting and dithering
  • Clocks and countdowns
  • Temporary messages with automatic restoration
  • Priority messages
  • Saved presets and scenes
  • Reusable text, templates, grids and visual layouts
  • Shared content across multiple boards
  • Per-board content
  • Restart-safe playlists
  • Random preset selection
  • Message history and undo
  • Connection and delivery status
  • Redacted diagnostics
  • Named groups of Vestaboards
  • Sending to one board, a group or every paired board

The current board is also rendered as an image on the Homey device tile.

Dashboard and mobile widget

The app includes a device-bound Vestaboard widget for Homey dashboards and the mobile app.

The widget provides:

  • A live split-flap board preview
  • Black and white board themes
  • Message composition
  • Colour selection
  • Direct send, clear, refresh and undo controls
  • Saved content
  • Visual layouts
  • Playlist management
  • Board groups
  • Delivery history
  • Connection testing
  • Redacted diagnostics

The widget adapts automatically to Flagship, Note and supported Note Array dimensions.

Flow support

This is where the app becomes useful as part of a wider smart home.

Triggers include:

  • Message changed
  • Board became blank
  • Board layout changed
  • Connection lost
  • Connection restored
  • Delivery failed
  • A queued message expired

Conditions include:

  • Message contains selected text
  • Board is blank

Actions include:

  • Send a message
  • Send a priority message
  • Send a temporary message and restore the previous board afterwards
  • Send aligned text, quotes, lists or labelled values
  • Display an image
  • Display a colour
  • Send VBML or raw character codes
  • Start or stop a clock
  • Show a countdown
  • Save or restore the current board
  • Save and display scenes
  • Display reusable content and templates
  • Start or stop a playlist
  • Undo the previous board change
  • Refresh or test the connection
  • Send to all boards or a named board group

Example automations

A few examples of what this enables:

  • Show a welcome message when someone arrives home
  • Display the weather and daily calendar each morning
  • Show a countdown to a holiday, birthday or event
  • Display an urgent alert temporarily, then restore the previous content
  • Send a family message to every Vestaboard in the house
  • Rotate between news, weather, reminders and saved content
  • Show an image or colour when a Flow is triggered
  • Display energy prices or other Homey values
  • Notify someone if the Vestaboard connection is lost
  • Use priority messages so an important alert cannot be replaced by lower-priority content
  • Resume a clock or playlist automatically after a temporary message ends

Cloud and Local API setup

For the Cloud API, you’ll need a Vestaboard Read/Write token with both Read and Write permissions.

The Cloud API supports:

  • Vestaboard Flagship
  • Vestaboard Note
  • Supported Note Arrays

For a Flagship using the Local API, you’ll need:

  • The board’s local IP address or hostname
  • A Vestaboard Local API key
  • The board and Homey to be reachable on the same network

Local mode communicates directly with the Flagship over your LAN.

Important notes

Vestaboard Note and Note Arrays should currently use the Cloud API. Local API support for Note hardware is not documented.

Vestaboard Note Arrays do not expose transition endpoints through the Cloud API, so transition actions are skipped or reported as unsupported for those layouts.

A Cloud API token does not expose a stable board identifier. Pairing the same token more than once may therefore create duplicate Homey devices, so each board token should only be paired once.

Message-content retention is disabled by default. Delivery history can record status and timing without storing the actual message. If content retention is enabled, it remains stored locally on Homey and can be removed again from the app settings.

Cloud tokens and Local API keys remain in Homey device settings and are excluded from diagnostics.

This is an independent community integration and is not affiliated with, authorised by, or endorsed by Vestaboard.

Feedback welcome

I’d really welcome feedback from other Vestaboard and Homey users.

I’m especially interested in:

  • Which product you use: Flagship, Note or Note Array
  • Whether Cloud pairing works smoothly
  • Whether Local API operation is reliable on Flagship
  • Whether Note and Note Array layouts render correctly
  • How images look across different board sizes
  • Whether playlists and temporary-message restoration behave as expected
  • Which Flow cards are most useful
  • What other content types or automations you’d like to see

For general discussion, feature ideas and bug reports, please reply here.

When reporting an issue, it helps to include the Vestaboard model, connection type, Homey model, app version and redacted diagnostics.

Thanks,
JZ

Hey there!

Guess, I am both: late, but early.

I just was about to start planning on a Vestaboard App for Homey, but then stumbled about yours - and wow, this sounds so amazing!

Unfortunately, I can not connect to my board.
Its a flagship vestaboard, I want to use the local API, but the adding of a vestaboard always gets an “Expected an array of rows, got columns”.

Is there any workaround or fix on this? If you would like to get diagnostics, you will find them here: 366c943f-9f98-4142-b98e-1ec2b9d9ece4

I am happy to provide any information neccessary!

Thank you for all your work so far!

Thanks for letting me know… just going to look at your crash file now!!! two secs

Vestaboard v1.1.3 is now live

The update is available in the Homey App Store.

Following the reported Local API pairing issue, I’ve improved the connection diagnostics and completed a wider API review and bug bash.

This release includes:

  • Better pairing and repair diagnostics: clearer errors and more useful information in Homey diagnostic reports, without logging credentials or message content.
  • Widget fixes: correct selection of the configured board, plus fixes for deleting saved content, playlists, groups and history.
  • More reliable API requests: timeouts now cover downloading the response as well as connecting.
  • VBML improvements: layouts default to the correct dimensions for your Note or Note Array.
  • Safer manual actions: invalid input preserves active clocks, rotations and temporary-message restoration.
  • Template and scene fixes, alongside improved error privacy.

The release passed 98 automated tests. I also checked the integration against Vestaboard’s current API documentation and verified that the public VBML composer returns correctly sized grids for all seven supported layouts.

@lukenukemmp3 — please update to v1.1.3 and retry Local API pairing. The original failure still needs confirmation on your board. If it fails again, submit a fresh Homey diagnostic report immediately after the attempt, before restarting the app, then share the report ID and exact error here.

Feedback from Flagship, Note and Note Array owners is welcome, particularly around pairing, widgets and scheduled content.

Your wish is my command.
The pairing still fails, this time the Local API can’t be called at all.

Diagnostics Code: f0bb8e4a-0875-414e-8ee8-274775e5b61e

Thank you for your super ultra fast help!

Thanks @lukenukemmp3 for trying the update and sending another diagnostic report.

Vestaboard 1.1.4 is now available on Homey Test and has been submitted for App Store certification. It will publish automatically to the stable channel once Homey approves it.

I reviewed the latest report and checked our implementation against Vestaboard’s current API documentation. The report confirms three Local API pairing failures, but the previous error handling hid the underlying cause. We haven’t yet established why your Homey cannot complete the request, so this remains an ongoing investigation.

This update adds:

  • Specific errors for hostname resolution, refused connections, timeouts, TLS, malformed API headers and runtime problems.
  • More useful connection diagnostics, while excluding actual hosts, credentials and board content.
  • Clearer IPv4 pairing guidance, corrected explicit port handling, and corrected named black/white colour actions on white boards using the Local API.
  • A Homey 12.9 minimum. Your reported Homey 13.5.1 already meets this requirement, so that change does not explain your failure.

Next steps:

  1. Install through the Test link above and confirm the app shows 1.1.4.
  2. Try the board’s IPv4 address from the Vestaboard app or router instead of vestaboard.local. Direct connections use HTTP on port 7000, with the API key returned after enablement—not the one-time enablement token. Local API setup documentation
  3. If pairing still fails, capture the exact new error and immediately submit a fresh Homey diagnostic report before restarting. Share the diagnostic code, your Homey model, and whether the IPv4 retry changes the result. Keep keys, tokens and addresses out of public screenshots.

Automated validation passed, including HTTP tests against a simulated board. Pairing on your physical board remains unverified. The next report should help distinguish network or hostname problems from an app-side request error and guide the next fix.

Thank you, here we go again!
Diagnostics Code: e934f04b-8f71-41b0-a9b6-38efc0ec4b49

  1. confirmed
  2. I always try IP adresses, I do not use mDNS at all in my network - and of course I used the API key. My network is not using the standard pattern of 192.168.x.x - but this does not seem to be the issue, because there is a connection to the board since try one, but it isn’t the one the app expects it to be.
  3. I have added the exact error to my diagnostic sending

If you may, you can also share the exact method with me, I can check the curls and responses directly against the board, so you do not have to push another version of the app.

Looking forward to solve this with you!

Thanks @lukenukemmp3 — the new diagnostic has given us something concrete to work with.

It confirms Homey received HTTP 200 in 281 ms, then rejected the response format. Your response contains a message array that our parser wasn’t handling.

I’ve released 1.1.5 to Homey Test to support that format while keeping the existing checks on board dimensions and character codes. It includes the improvements from 1.1.4 and has been submitted for certification.

Please update, confirm the app shows 1.1.5, and retry pairing with your existing IP address and API key.

If it works, please confirm the board dimensions are detected correctly and try sending a simple message. If pairing still fails, submit another diagnostic immediately afterwards, before restarting, and share the code and exact error.

Thanks for offering to run curl checks — let’s try this update first. If needed, we can use a read-only curl request to check the remaining response structure without changing the display.

This version works!

Thank you so much.

If I may: I had an idea as I was in concept state with my app roadmap, I would love to hear would you think. I thought, maybe in the app settings, there could be templates created with a visual editor and locked bits, so that the unlocked bits create a variables that could be used in flow cards. I know it sounds weird, I can draw you a picture for better understanding :smiley:

So far: thank you!

Thanks @lukenukemmp3 — great to hear that 1.1.5 fixed pairing. Your visual-template suggestion is now available to try in 1.2.0 on Homey Test, and the update has been submitted for certification.

Install the 1.2.0 Test version here

In app settings, you can design the fixed parts of the board and mark rectangular areas as named fields. For example, keep a weather heading and colours fixed while Homey Flow tokens supply the temperature and humidity.

The new Flow cards support one field, up to three fields together, or more through an advanced JSON option. Each action sends a complete design, so all fields need a supplied value or a saved default — previous values aren’t carried forward.

The update also includes starter templates, previews, shared and board-specific libraries, import/export, and widget controls. Existing templates and Flow cards are preserved.

Please confirm the app shows 1.2.0, then try creating a simple template and filling its fields from Flow tokens. I’d especially appreciate feedback on whether the actual display matches the preview and how easy the editor is to use. We still need real-world feedback across Flagship, Note and Note Arrays.

If something fails, please share your board model, Cloud/Local connection, exact error and a fresh Homey diagnostic code.

Your sketch would still be welcome — it could help refine the next iteration!

That was fast!

Just because I’m curious and your source link ends up nowhere: is this entire app vibe coded?

I am not asking, because it would make it bad, just because I think, apps that use vibe coding should be marked like that, so people can decide wether if they want to use it or not.

It’s a combination of my own engineering experience and AI-assisted development. Yes, AI is part of how I build and improve this app, and I’m happy to be transparent about that.

I run a large, forward-deployed engineering team for a major software company, working closely with customers to turn their needs into working software and services. My view is that engineering teams that aren’t adopting AI-assisted development are massively behind the curve and missing opportunities to serve their customers better.

The benefits are practical: faster investigation, broader test coverage, quicker iteration and more time spent addressing what users actually need. Your feedback here is a good example of how quickly we can move from a reported problem or an idea to something you can test.

I build integrations for products I own and use myself — including a Vestaboard. I want a great experience with it, and I share that work so other owners can get the best experience too. Community feedback helps make it better for everyone.

That still requires engineering judgement, review and validation. AI can make mistakes, and passing automated tests doesn’t prove every physical board behaves correctly. I remain responsible for the app and its releases, which is why I’m asking for real-world feedback on the Test version.

I also pay the AI subscription and token costs myself. That investment goes into developing and supporting this app for you and the wider community — it isn’t a cost I’m passing on to users.

Fair point about the source link: the repository is currently private. I’m happy to open it up; it simply hasn’t been a priority or something I’ve needed to do so far.

Thank you for your time and effort resulting in your explanation!
As I said: AI does not automatically (pun intended) make things bad, but I think a disclaimer is something we can agree on.

I habe no reason to not trust you - so I will do trust you on your backstory.

Thank you for all your effort - I will test this to the furthest, every moment I can sacrifice for it :slight_smile:

So I was trying 1.2.0 - but when I want to open the configuration of the app, I get a browser alert: “Error: VisualEditor is not defined”.

Did this work on your device?

Thanks for flagging this. My own Vestaboard is still connected through the Cloud API. I haven’t tried switching it to Local API mode yet, as I have several existing Flows I don’t want to disrupt. I can test that later.

For this particular error, my first suspicion is how the new editor’s JavaScript loads inside Homey’s configuration page. The script is included in the published app, but “VisualEditor is not defined” suggests it either hasn’t loaded or failed before the editor could start. I haven’t confirmed which yet.

The editor passed our browser checks, but those used a simulated Homey settings host. That doesn’t establish that it loads correctly in the installed app.

I’ll try to figure it out when I’m home tonight and next to my device.

Thanks for reporting the “VisualEditor is not defined” error. I reproduced it on my own Homey Pro.

The settings page was opening, but the editor code wasn’t becoming available inside Homey’s settings window. I fixed this by including the editor’s script and styles directly in the settings page. Testing also uncovered a confirmation-dialog issue that could leave the editor stuck after accepting an action; that is fixed too.

I’ve now verified opening the editor, previewing, saving and reopening a template, and deleting a test template. I then used a Homey Flow to populate two named fields and send the complete design to my Vestaboard. The photo below shows the physical result: QA TEST / FLOW OK.

I was going to take a big cheesy selfie in front of the board to prove I’m not an AI bot, but decided to spare you that in the end :slightly_smiling_face:

Version 1.2.2 is now live in the Homey App Store.

This was tested on my Flagship using the Cloud API. Feedback from Local API, Note and Note Array users is still welcome. If you encounter an issue, please share your app version, board model, connection type, exact error and a fresh diagnostic code.