I have a BMP280 temp+pressure sensor wired up directly to the RPi that I have HASS installed on. Previously, I was able to get the sensor values in Home Assistant via the official integration, but I recently updated the home assistant version, and found that this integration had been deprecated. The main GPIO integration seems to have been picked up by a member of the community and seems to now available as a custom integration.
I was wondering whether this has been done for the BMP280 integration as well? If not, how would I go about moving the integration code from the older version of HASS to a custom integration?
I figured out the method for taking the deprecated integration and running it by placing the files in config/custom_components. I took the files for the bmp280 integration from a previous version of Home Assistant. The manifest.json looks like this:
The issue I’m having is that the RPi.GPIO installation is failing, seemingly because gcc can’t be found?
2023-07-25 21:49:09.373 ERROR (SyncWorker_2) [homeassistant.util.package] Unable to install package RPi.GPIO==0.7.1a4: error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/RPi
copying RPi/__init__.py -> build/lib.linux-x86_64-cpython-311/RPi
creating build/lib.linux-x86_64-cpython-311/RPi/GPIO
copying RPi/GPIO/__init__.py -> build/lib.linux-x86_64-cpython-311/RPi/GPIO
running build_ext
building 'RPi._GPIO' extension
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/source
gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fno-semantic-interposition -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DTHREAD_STACK_SIZE=0x100000 -fPIC -I/usr/local/include/python3.11 -c source/c_gpio.c -o build/temp.linux-x86_64-cpython-311/source/c_gpio.o
error: command 'gcc' failed: No such file or directory
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for RPi.GPIO
ERROR: Could not build wheels for RPi.GPIO, which is required to install pyproject.toml-based projects
I also tried RPi.GPIO==0.7.1, same error.
Any ideas why gcc can’t be found during the installation process?
Here’s the full procedure for anyone stumbling across this in the future. Could probably also get the BME280 working by tweaking these instructions a bit.
Edit the manifest.json file, and add "version": "1.0.0" to the JSON file.
Copy the bmp280 folder to config/custom_components of your HASS install
This integration seems to need additional packages when building, which we will install now. Go to the terminal (install Home Assistant Community Add-on: Advanced SSH & Web Terminal if you haven’t already), and enter the command docker exec -it homeassistant bash
Now inside the Home Assistant container shell, enter apk add build-base
Next, I2C needs to be enabled on the Raspberry Pi. Use your favourite method, here are the official instructions (there also seems to be an add-on that achieves this, but I haven’t personally used it). DON’T FORGET TO REBOOT HOST TWICE AFTER COMPLETING THIS STEP
Everything should () be working at this point, so just follow the integration documentation here (web archive link since this documentation isn’t available anymore) to set up the integration. Any errors will pop up at this point, when you go to verify your configuration.
Some caveats:
This integration may break if you update your Home Assistant, and you may need to run apk add build-base inside the HASS container to fix this
Future updates might potentially break the install in some other way