0

Integrating an Online Electricity Billing Tool with BrightSign for Real-Time Usage Display

Hi everyone,

I’m working on a project where we need to display real-time electricity usage and billing information on multiple BrightSign players located in different facilities. We already have an online electricity bill tool that tracks usage data, calculates costs, and provides alerts when usage thresholds are exceeded.

My goal is to integrate this data feed with BrightSign devices so that:

  • Current usage (kWh) and estimated cost for the day/week/month are shown on screen

  • Alerts (e.g., high usage) trigger visual changes in the BrightSign content

  • The display updates every 5–10 minutes without noticeable lag

So far, I’m thinking of pulling the billing data from our tool via a JSON API and using BrightAuthor or BSN.cloud to manage and update the content. However, I’m running into two questions:

  1. Best practice for periodic API calls: What’s the recommended approach for polling an external API regularly with minimal impact on network traffic and performance?

  2. Dynamic content layout suggestions: Has anyone created a templated HTML or ticker that works well for this type of numeric + alert data display?

If anyone has experience with integrating external billing or utility data into a BrightSign workflow—or if you’ve done something similar using BSN.cloud dashboards—I’d really appreciate pointers or examples.

Thanks in advance!

1 comment

  • 0
    Avatar
    Mark Richards

    I've not created a billing utility, but you could use a html page on the player that periodically refeshes itself to update the displayed data. Something like this works on Brightsigns:

     

    <!DOCTYPE html>
    <html>
    <head></head>
    <body>

    <p>I reload every every 10 seconds...

    <script>
    function timedRefresh(timeoutPeriod) {
        setTimeout(nextPage,timeoutPeriod);
    }

    function nextPage() {
        window.location.reload();
    }

    function updatePage() {
      // Timer to reload page
      timedRefresh(10000);
    }

    if (window.attachEvent) {window.attachEvent('onload', updatePage);}
    else if (window.addEventListener) {window.addEventListener('load', updatePage, false);}
    else {document.addEventListener('load', updatePage, false);}
    </script>

    </body>
    </html>

     

     

Please sign in to leave a comment.