How to run a binary in a script that needs dynamic libraries?

Hello there. This is my first post after using home assistant for about a year (KNX, home connect, logitech harmony, and other integrations).

This is the background of my question
I got a Tidbyt (https://tidbyt.com/) and want to display some data that is available in HA. The HA part is easy by simply calling the API via rest. The tricky part is at the Tidbyt.

This are the steps to get infromation displayed on the tidbyt:

1. I wrote a tidbyt script (which is python like) that gets the data from HA and arranges the data for the tidbyt (basically UI stuff).
2. This script needs to be compiled by a binary file that is provided by the Tidbyt devs (called pixlet) that takes that script as input and creates a gif or wepb file from it.
3. The file (webp in my case) now needs to be uploaded via a rest call. Then it will show up on my Tidbyt.

My problem:
I wanted to write a bash script that is periodically called by a HA automation and performs 2. and 3. a.k. a. compiling the scrpt with the pixlet binary and uploading it. Problem: the binary is only priveded for AMD but I need it for ARM as I am using a raspi4 ( GitHub - tidbyt/pixlet: Build apps for pixel-based displays.)
So what I did is I

  • got access to the HA os where docker is installed (to run HA)
  • created a docker container with arm64v8/golang as base image
  • started a bash there and compiled it myself. (I confirmed that it is running there)
  • copied the binary in the config folder and warted to run it

The problem is that the binary is not running on HA (I get ./pixlet: No such file or directory) - but it was actually running in the golang docker container.
I am not a linux / compile expert but I found out that this is due to missing dynamic libraries (with the help of “ldd”). It seems that some libs are missing and I tried to add them also in the config folder by copying them from the golang container but they seem not to by compatible.

Do you have any idead how to
a) get the binary running in a HA bash script
b) any other idea how to get the binary running

1 Like

Don’t use HA OS. Use some other install method, like Container, that allows you Host access.

Using an other install method, like container, would mean that I need to reinstall my whole HA, right?
I would only like to go that route if there is no other way than trying that. When I would do that - how do I get host access within a bash script in HA? Would I do an ssh command to get access to the host then?

That, exactly. You can do the same from HassOS if you have some other, always on, device where you could have the script executed.
You could technically do all on HassOS as well, but that’s tricky and unsupported. HassOS is very much a locked-down OS for HA users not doing what you trying to do :wink:

Hi!

Have you come to a conclusion?
I have tried this a bit and I’m a bit stuck in the same place as you are.
I have from another computer been able to render and push but it never updates

thanks in advance
agron

I solved to publish a temperature value from Home Assistant to Tidbyt from another PI

More or less created a shell script that runs the render and the push.
In the star file I do a rest call towards Home Assistant and read out the temperature from the sensor.

The shell script is ran by the cron tab every 5 minutes

I do this in an LXC container on my Proxmox VMhost. This can be done on a Pi or any device that can run pixlet.

I have a Now Playing applet that pulls data from an HA Media Player speaker, so it works with any speaker you have in HA. I use it with Sonos, so anything I play on my Sonos speaker (Spotify, Apple Music, Radio, etc), will show the artist, song and the album art. It pulls all data from HA.

I also control a Flight Tracker with HA presence sensors so I don’t overrun the API limit. Running the app locally also allows me to add my own tail logos instead of waiting for a full and convoluted process to approve an app. Known issue with Tidbyt.

I documented what I do here: GitHub - motoridersd/HomeAssistant-Tidbyt: A collection of .star files and scripts to integrate a Tidbyt with Home Assistant

I just discovered this project that looks promising. It does exactly what you need: GitHub - DouweM/pixbyt: Pixbyt is a self-hosted Tidbyt app server for advanced apps that aren't supported by the official community app server that you can access through Tidbyt's mobile app.