How to install Odoo on a Raspberry Pi

For those that may be interested, here are the steps to get the OpenEMS Odoo add-on working on a Raspberry Pi 4 running Bookworm. If there is a better place to post this, please let me know.

This may work for other Linux-based installations but I have not tested. This is the on-premise installation of Odoo, version 16. In my case, I installed it on the same Pi that is running the OpenEMS Backend. I am also running the OpenEMS UI on this Backend server. I am running OpenEMS Edge on a separate Raspberry Pi 5.

The first few steps originated from Odoo Install. Check that link for details/reasons for each command. From the Raspberry Pi run the following commands using remote SSH or from Terminal on the Pi:

sudo apt update -y && sudo apt upgrade -y
sudo apt install postgresql -y
wget -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/16.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
sudo apt update -y
sudo apt install odoo -y

You should now be able to access the Odoo login page from a browser at http://{ip address}:8069. You can use http://localhost:8069 if you don’t know the IP address. You should be able to get the IP address using this command on the Pi:

ifconfig

From there, you will be asked to set various authentication credentials such as Master Password and Database Name. Be sure to store or write them down as they are critical later on.

  • Enter your new credentials and selections
  • Click Create Database

You should now see the Odoo login page:

  • Enter your previously set credentials
  • Click Log in

From the Apps screen, go ahead and Activate an app such as the CRM app. For some reason, this is necessary in order to have additional options enabled that we will need later. Once you refresh the page, you should now see that there are more options but we’ll come back to this in a bit.

Once the page refreshes, you should now see that there are more options:

  • Click the icon at the top left of the screen and then select Settings
  • Scroll all the way down and click on “Activate the developer mode”

Go back to Terminal and create custom add-on directory and download the OpenEMS Odoo-openems repository using git or some other method:

cd /etc/odoo
sudo mkdir custom_addons
cd
sudo mkdir Development
cd Development
git clone https://github.com/OpenEMS/odoo-openems.git
cd odoo-openems
sudo cp -r openems/ /etc/odoo/custom_addons/

Add the new addons path to your Odoo config:

sudo nano /etc/odoo/odoo.conf

Add or change the item “addons_path” to show and save the file:

addons_path = /etc/odoo/custom_addons

Retart Odoo:

sudo systemctl restart odoo.service

There are a couple of modules that are needed in order to use the odoo-openems add-on so we you should go ahead and install them now. Using the same technique as above for adding odoo-openems to the /etc/odoo/custom_addons folder, add these prerequisites. Be sure to pick the most recent version closest to your Odoo version:

Go back to Odoo in the browser and refresh the page.

  • Click the icon at the top left, again, and select Apps
  • Click “Update Apps List” at the top of the page. This will restart Odoo.

In the App search box, type in and Activate the following modules, after clearing any filters, in this order:

  • partner_firstname
  • web_m2x_options
  • openems

After activation, you can click on the icon at the top left and you should see an OpenEMS option in the menu. Click it. From here you may be able to create new Devices but I have had varying levels of success. Specifically, the Name field is sometimes not accessible and I believe the field is required. I would assume that the name you enter here would be something like “edge0”. There is also a field named API-Key that should be populated with a unique key that can later be referenced from the OpenEMS Edge Apache Felix Configuration where you activate a Controller Api Backend entry for communication with the Backend.

From Odoo, you can also create new users and associate them with Edge devices.

Now, go to your OpenEMS Backend Apache Felix configuration manager:

  • Set and save the Metadata.Odoo configuration using the credentials used at the beginning of this process
  • Delete or disable any other Metadata configs

Next, open your OpenEMS UI, which is running on your Backend server, and log in using one of the user credentials you created in Odoo.

That’s it.

As mentioned above, I have had some difficulties with associating Edge devices with Users in Odoo and therefore do not see the devices listed when I log in through the OpenEMS UI. But, it’s a start.

I hope this helps.

2 Likes