So, I’ve been off in the GPIO library salt mines for a while, but am now ready to circle back and document how to get GPIO inputs and outputs working in Home Assistant. This now works on both Raspberry Pi and OrangePi, assuming that my patch gets merged.
First off, let’s talk about GPIO outputs. This is something which has been working for a while on both platforms (a while being a week or so, assuming you’ve patched Home Assistant with my pull request, but you’re all doing that right?).
To configure an output in Home Assistant, you would add the following to configuration.yaml:
rpi_gpio:
board_family: orange_pi
switch:
- platform: rpi_gpio
ports:
PA7: LED
Where board_family can be either “raspberry_pi” or “orange_pi”. Note that for Raspberry Pis, the pin numbers are always numbers whereas for OrangePi we are using “SUNXI” numbering, which is of the form “PA7”.
The circuit for this LED is really simple:
Now we have a switch we can control in Home Assistant:
GPIO inputs are similar. The configuration looks like this:
rpi_gpio:
board_family: orange_pi
binary_sensor:
- platform: rpi_gpio
invert_logic: true
ports:
PA7: PUSHYBUTTON
With a circuit like this:
invert_logic set to true is required because our circuit sends the value of PA7 to ground when the button is pressed.
Noting that sensors look different to switches in Home Assistant, you can see the binary sensor at the top right of the image, with its history being displayed in the dialog box in the foreground.