Universal Powerline Bus (UPB) Integration Setup Help

Tags: #<Tag:0x00007f326cfa62c0>

I am trying to integrate Universal Powerline Bus (UPB) with my HA.

Following the configuration instructions here I performed the following steps

  1. I downloaded UPStart software and used it to configure my UPB network
  2. Used UPSTART to create an Export File with the .upe extension
  3. Moved the .upe file into my home assistant director "/home/pi/homeassistant/filename.upe
  4. In HA went to Configurations, Integrations, and clicked the + button
  5. Entered my serial port and path info then hit SUBMIT

I get the following error

It is not clear if this is a file path issue or if the integration script is rejecting the .upe file for some reason.

  • I have already confirmed that my filepath is correct but perhaps the .upe file needs to be in a different sub-directory?
  • I did a little digging on the internet and found the UPSTART Export File Description. My .upe file matches the file description. Maybe the integration script is not seeing something in the file that its expecting to see?

I would greatly appreciate some help.

Setup Info:

  • Raspberry Pi 4 running Raspbian
  • HA running in Docker container

I have been looking through the files on GitHub but have not been able to find anything that would help with the error im getting. As far as I can tell my .upe file contains the correct information in the correct format. There is nothing that says that my filepath is incorrect but I expect that is the issue.

There is no README for the integration repository on GitHub and my python is not good enough to find the problem. I did look at the upb-lib README and see that its expecting a file name of upb.upe? I tried changing my file name to match but that did not fix the issue.

Still looking for any help that the community can provide.

@gwww If you could take a look at the issue im having it would be much appreciated.

The upe file is created using Export to file from UPStart. It appears that you have named your file filename.upe, which is a little curious name for the file. That name will work assuming that it is an export from UPStart.

The file should be copied to the root directory of where the Home Assistant config is on your RPI.
You should see files such as configuration.yaml there (among a number of other files).

To configure Home Assistant after the file is copied to the location as described above would be /filename.upe. The file is named relative to the root of the Home Assistant config.

Let us know how it goes.

@gwww sorry for the confusion. filename.upe was just for the example above. The actual file for my system is named TestExport.upe for now. Once I get things working I might give it a more descriptive name.

The TestExport.upe file is in the root directory for HA alongside the configuration.yaml and other root files.

I have to admit this was a bit of a forehead slap moment. Not sure why I did not try more iterations of the file path before looking for help. The /TestExport.upe did not work but TestExport.upe without the backslash did. I have it up and running now. Thank you for your help.

I think I was confused by the integration instructions that ask for the path and name of the file. The path seems to imply the full path to the file. That is why I was attempting to access the file through /home/pi/homeassistant/TestExport.upe

Thanks for the help!

Good to hear that you’ve got it working. /config/<file>.upe works for me.

Happy to have found this thread. I was getting the same error until I moved the .upe file to /config and provided only the file name in the third field. Now though, I am getting simply “Unexpected error”.

I had a look at the logs and see that python is throwing an exception. At the bottom of the stack is:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 109: invalid continuation byte

Not ideal, but at least I am making progress. The file is read.

I will try and regenerate the file tomorrow, but thought I would put it out there in case this has been seen before. Could this be a line ending issue?

The problem was due to my use of French characters in some of the names. I think UPStart may be exporting to ANSI instead of UTF-8. I have now managed to load the integration, but a few tests to turn on a UPB switch fails with a timeout while trying to talk to the PIM.

I followed the steps here (Move Bluetooth to mini-UART section) when I installed my hat, but haven’t yet found a way to enable the serial port given the absence of raspi-config. Any ideas?

Hello, I need some help. I’m new to HA. I’m running on a rPi 4B with 4GB of memory from an image. I have my 2020_Jan01.upe file on a usb stick loaded into the rPi and imported using HA OS import (reports successful).

I cannot get the path to be accepted when configuring the UPB module. I tried: /config/2020_Jan01.upe
and 2020_Jan01.upe
but none work. Any hints would be appreciated. Thank you.

The command “Import from USB” serves a very different purpose (importing configuration data for the Home Assistant Operating System) and is not how to transfer the UPE file to your Raspberry Pi.

If you have the Samba Add-on installed, your Raspberry Pi’s config directory becomes readily accessible to other networked computers on your home network. In other words, it allows you to copy files directly from your PC to the Raspberry Pi.

Thanks a lot. I found the Samba add in and was able to move the *.upe file into the /config directory and import it. I’m using a PulseWorx gateway and that requires a username and password to accept commands. As this is the case, none of the imported lights are controllable via HA. Can someone show me where to put the password in please?

As far as I know, that device isn’t officially supported.

Currently, the UPB integration supports a Pulseworx Powerline Interface Module (PIM), also called a Computer Interface Module (CIM) by Simply Automated in either the serial (RS-232) or USB model. It can support a PIM via Ethernet if used with the ser2net software (converts serial to Ethernet).

The Pulseworx Gateway is a different device. It was mentioned in this thread, including a brief proposal for how to go about supporting it. However, I don’t know how much progress was made (if any). As it stands, the device is not officially supported. I suggest you contact the individuals who discussed the proposed method of supporting the Gateway.

Thank you Taras. I appreciate the response. I have a USB PIM as well that I’ve plugged in to one of the 4 ports on the pi. Is there an easy way to tell which device name its using (e.g. /dev/ttyS1) I’ve moving through them one at a time, but its tedious.

If you are using a serial-to-USB adapter, and it’s the only thing plugged in, then it’s probably /dev/ttyUSB0

Alternately, if you are using either Home Assistant OS or Home Assistant Supervised, go to Supervisor > System > Host System > Overflow Menu (three dots) > Hardware.

It will display all hardware ports and your PIM will look something like this:


That address can also be used to specify the PIM’s port.

Taras, You, Sir, are a genius! The by-id path worked like a charm. Thank you

1 Like

You’re welcome! Glad to hear it’s working for you now.

Enjoy using the UPB integration. It will provide you with comprehensive control of your UPB devices.