Control Info-beamer playback from another Pi running Home Asssitant

Hi all, I have just started using Home Assistant and ESP Home and so far am hugely impressed with what can be done.

What I would like to achieve now is to setup a user account for Home Assistant running on a Pi with a simple touchscreen interface that allows a user to control the output of a playlist/setup of a Pi running info-beamer.
For example a scenario where there’s a playlist of several tutorial videos that play from the Pi running info-beamer to one or more displays and the user has a simple touchscreen interface which would allow them to select or skip to another video.

Has anyone done this? I’m guessing that it should be possible to control the GPIO pins of the Pi running Home Assistant to provide a signal to the Pi running info-beamer.

Any suggestions appreciated. Thanks

That should be possible. Here’s how the integration with info-beamer might work: In Home Assistant’s configuration.yaml, add this:

rest_command:
 setup_1:
   url: "https://info-beamer.com/api/v1/device/28887"
   method: post
   headers:
     authorization: "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
   content_type: "application/x-www-form-urlencoded"
   payload: "setup_id=230348"

This uses the RESTful Command integration to call info-beamer’s API. In that case it uses the Update device API to assign setup 230348 to device 28887. Be sure to replace xxxxxx with an info-beamer API key. I highly recommend creating a limited API key using the permission system, so Home Assistent is limited to changing assigned setups and cannot delete devices or otherwise wreck havoc in your info-beamer account.

You can then trigger this service on an Home Assistant dashboard by adding a button and setting the configuration to values like this. Note the setup_1 service which was given to the above yaml configuration:

As for how to configure the Home Assistant Pi to use touch: I don’t know how that works.

Hi Florian, thanks for the prompt reply.

I was thinking more of physically triggering the GPIO pin on the info-beamer pi from either the Pi running Home Assitant or an Arduino linked to the Home Assistant via ESP Home.

For example I have currently created a simple setup for testing Home Assistant and an ESP32 board and can trigger an output on the ESP32 board from Home Assistant ( devices on the same local network ).
So I was thinking about running a lead from the ESP32 output to the info-beamer pi GPIO pin as a trigger.
Your suggestion is probably better and software based compared to my clumsy approach!

I need to give this some thought, and should probably researched this more before making a post, but great to get help with this.

Actually, if I were run info-beamer on a pi4 and configure it to run dual 1080p outputs, is it possible to create a playlist that runs the videos on one monitor and have the second monitor as a touchscreen display which when touched can trigger the input and switch the playlist?

This way I wouldn’t even need Home Assistant etc.

I’ve just been playing around with the Touch Screen Player and this may actually work for what I need.

Is there any way to reposition the touch areas after they have been dragged/dropped initially?

I was thinking that for the index page I could create an image that would have icons that would act as ‘buttons’ and I could postion the touch area`over these icons to aid with navigation for the user, and all subsequent pages could have a full screen touch area to take the user back to the index page.

It may be possible to just initially drag out a touch area ‘over’ these button icons, but could be frustrating if not done accurately as there’s currently no way to reposition that I can see.


Is this Content Configuration box supposed to simulate the touchscreen?

I was hoping to test out the setup on my screen but don’t have a touchscreen monitor at the moment.

When I click in the white box I do see a ‘command sent’ notification popup but nothing happens to the content and it doesn’t switch pages.

It should. Although it assumes that your display’s output is set to FullHD (1920x1080) resolution. So clicking the top left results in a touch event at 0, 0, while clicking the bottom right would be 1920,1080. If your Pi uses any other resolution, the results will be off.

Hi, yes I’ve set it to 1920x1080 output in the device settings, maybe I’ve not created the touch screen setup correctly, but clicking where the ‘button’ should be doesn’t have any effect.

Oh. I think an update a while back broke that. Can you update your package and see if that fixed it?

Yes, just updated, rebooted and now it’s working, thank you :slight_smile:

It looks really promising, could I run this from any Pi, even a Pi Zero W and use an HDMI splitter to duplicate the output into multiple outputs, and send one to a small touchscreen 1920x1080 display that can be used to actually control the touchscreen package?

Maybe even use HDMI to ethernet transmitters/receivers if the displays are too far for an HDMI cable run?

From what I understand the touchscreen display will have a USB connection that would need to be plugged into the Pi ( so maybe need a USB to Micro USB adapter if using a Pi Zero )

Sure. That’ll work.

That’s at least how the touchscreen work that I’ve seen. They present themselves as basically USB input devices. Hopefully there are none that instead decide that inventing their own crappy USB protocol is a better idea. In that case they will not work.

Thank you for your help with this.

I’ve added a timeout to the main index screen so that it plays a ‘screensaver’ video if there’s no touch activity or other pages playing.

However it would be great if there was a way to set in a custom timeout time, as I’d probably want it around 10mins or more rather than just hte max of 60 seconds as it currently has.
Also, I need an option for what happens once the current page has finished playing, and so an option to play the current page x number of times and then return to index would be fantastic.

Is there any way that this could be added?

Oops sorry, looks like I missed the option to configure the page to play a number of loops

So I guess the only thing that would be nice to have would be the ability to set a custom time to switch between pages, as at the moment there’s only a limited choice of durations, so being able to set a custom delay in seconds or minutes would be great.