Pioreactor not showing up in UI

I tried updating my Pioreactor last night and starting a new experiment but the unit wouldn’t show up in the UI (http://pioreactor1.local/ or http://pioreactor1.local/pioreactors).

I had been running an old experiment, and when I tried to create a new experiment, it told me thermostat was already running when I tried to start it. I think this might have been because the job wasn’t properly terminated when I hit end experiment.

I am also not able to get the pioreactor to show up in the UI. I can access the UI, but the unit isn’t showing up in either http://pioreactor1.local/pioreactors or http://pioreactor1.local/. I have tried restarting the Pi as well.

I think I know the reason. Can you ssh into your Pi and provide the output of the following commands?

ls /tmp/pioreactorui_cache -al

tail /var/log/pioreactorui.log

tail /var/log/lighttpd/error.log

On http://pioreactor1.local, does an experiment show up as the title? Or is it like a “blank” page?

I think running the following on your RPi will fix it.

wget -O - https://gist.githubusercontent.com/CamDavidsonPilon/e65698643bf7b3a5a12ccb34b20aef1f/raw/4a05d46e7abcd2cb373197f1df150ddc161cf3af/update.sh | bash

Aside: what’s going on, why are there so many broken UIs lately?

We are working on making the RPi images more robust, and this means putting in changes which are not always backwards compatible out of the box, ie. require additional steps in the installation of new features. We try to catch these before pushing, but things slip through.

The fact of the matter is, the images are converging towards stability¹. However, I take responsibility for this bad user experience now. My deepest Canadian apologies.

¹In fact, I feel pretty good about them today and don’t expect more changes in the future.

1 Like

Thanks, this one did the trick.

If you start seeing something like this:

Do this:

sed -i 's/type: text/type: string/g' /var/www/pioreactorui/contrib/jobs/*.yaml

I hadn’t encountered it yet, but I did it just in case.

Quick question about that command. How does it perform the replacements? In ‘s/type: text/type: string/g’, what is replacing what? I wasn’t able to figure it out by looking through man sed or looking at the .yaml files (after running the command).

Also, another RPi related question. How do you input common or recently used file paths?

For example, I run the following commands:
ls /var/www/pioreactorui/contrib/jobs/
less /var/www/pioreactorui/contrib/jobs/00_stirring.yaml

Do I have to type that entire “/var/www/…” out each time I want to run a new command, or is there some sort of shortcut to copy the last used file path?

sed is a useful command that replaces text. With the command s/type: text/type: string/g, we are asking it to replace all instances of type: text with type: string. (We are deprecating text inplace of string). The -i does the change “inplace”.

How do you input common or recently used file paths?

hm, not one that I know of! I just have muscle memory on these common paths haha