Screenly Forum

Question about customized user's graphics display


I’m in development of my first product in market. I’m looking for an efficient way to display Ads and device’s interactive graphics in interoperable way.

The device measures Human weight/height on coin insert, displays the results to the display. which is currently ‘7 segments display’.

My application is running on ESP32,

However, I’m investigating how can I add display to the device running adds, which could be interrupted from the application MCU to display interactive graphics/texts (weight / height).

The MCU could send message/command through I2C/SPI/UART to RPI.
RPI can read this message.

But I don’t know how to complete the cycle with display/Screenly.

Let’s summarize it by a sequence :

  • Display is displaying ads.
  • Human measures weight/height.
  • A command to display weight/height that is being read by RPI.
  • RPI decides to gently shut off ads, And display some graphics that’s related to the data/command came from MCU.
  • RPI returns playing Ads.

And All of this need to be done locally, with no requirement of Internet access to accomplish this.

Any thoughts?

Duplicate of #1485 on GitHub.

Please don’t double post.

Hi, Thanks for your response there, I’ll follow up soon.

But the forum and github issues are 2 separate things, knocking all doors isn’t duplication.



You have to remember Github Issues are for issues with Screenly-OSE, you aren’t reporting an issue, you are asking questions that are about helping you with something you are trying to do, which isn’t an issue and more of a “asking for help/suggestions” type of post, which the forums would be the ideal place for, not Github, so while I do understand you want to “knock on all doors”, I have to agree with viktor on this one that they are duplicate and further, not an issue for Github.

Now, to your questions:

Where can I read interfacing with Screenly APIs/Docs from this kind of service ?

You can see how the API commands function here:

I am simplifying this response for obvious reasons but you would probably need to write in your ESP32 your own custom code which includes something that sends the is_enabled: 0 API PUT command to the specific assets the Pi running Screenly-OSE has so that it disables the Ads that you have already setup to run, and then send the is_enabled: 1 API PUT command to the specific asset that you want the screen to show once the screen needs to show the human weight stuff you’re mentioning.
If the display/asset that will be shown with the measurement stuff is always going to be new depending on the human that is being measured, then you would need the API POST command rather than a PUT, and then a DELETE when the display showing the measurement is to be removed, and the ads back to being displayed.

I am also going to be nice and helpful enough to link you to a side project I am helping some students with that sort of describes this type of Ads on and off situation you have, maybe you can find something useful based on reading my guide for this type of API stuff:

Good luck.

1 Like

Thanks for your input.

I’ve read that API, seems interesting.
However, There’s just one bit in the cycle.

It seems that the assets are preloaded to the RPi,
What do you suggest for dynamically creating graphics (related to measurements) that could be integrated with Screenly OSE easily ?


Not sure what you mean by “assets are preloaded” on the RPi… assets are created dynamically based on what API command you sent to the RPi running screenly, these API commands take in the HTTP request and turn it into whatever you chose as the asset type, if you have a dynamically changing website, you would simply make that website asset active upon execution of the person being measured, etc…

I think you need to familiarize yourself much more with how screenly works in terms of the assets and everything it does and how, and then based on your idea of what you want to do, you have to combined both together and find a way to make this workflow/process work, which as I said, is completely possible, it just depends on how you’re setting it up.

With regards to what I suggest for creating graphics, I have no idea because I dont have any experience developing actively changing content on a website based on live input from a measurement board… but, as I think I mentioned, if you create your measurement graphics page, running on a server on the ESP32, and this page can be accessed from a browser, then you literally simply need to execute the API command from your ESP32 via curl or javascript that POST this asset on screenly/Pi, makes it active, and disables the other assets on the playlist…

Got that, It requires a webserver to accomplish this.
And so the graphics is just a web-page thing. the same web-page I can view on browser.

For Screenly OSE, Does it support local videos as it’s available in Screenly Pro ?


Thanks for your informative reply.

As long as you upload the videos to the /home/pi/screenly_assets/ directory, and properly add this into the assets playlist/database, then yes it would work…
An easy way for example, would be to upload the videos you want via the assets dashboard, then with the help of the API, you would retrieve a JSON list of all the assets and their corresponding asset_id’s, thus whenever you want to activate and play a locally loaded video, you simply communicate this is_active = 1 API request to the proper asset_id and this video becomes actively playing, of course the command needs to come from the Pi device itself, or from the ESP32 as long as they are both on the same internal network because even if there is no outside internet access, the devices do need to communicate via TCP/IP through HTTP requests…

Does this shed a bit more light on the way this works?

I do want to add that Screenly Pro does allow you to manage your content in more advanced ways from a GUI perspective of course, and Screenly-OSE is a do-it-yourself type of setup, with configurations and scripts etc that must be built by you, thus if you were to get the Pro version, this comes with the tech support that would most likely work with you and get the exact process you’re trying to accomplish done by helping you work it out with their knowledge of the software/methods to accomplish such task. Since you are talking about a product for market, I suggest the cost of going Pro and it’s support might simply help you get your product out to market faster.
@vpetersson , if you want to add something or correct anything said on this paragraph pls feel free.

1 Like