Add support for more Orange Pi devices (#28109)
* Bump OPi.GPIO to 0.4.0 * Move imports to top-level
This commit is contained in:
parent
09b4f65515
commit
37bf577284
4 changed files with 44 additions and 26 deletions
|
@ -6,6 +6,8 @@ from OPi import GPIO
|
|||
|
||||
from homeassistant.const import EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP
|
||||
|
||||
from .const import PIN_MODES
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
DOMAIN = "orangepi_gpio"
|
||||
|
@ -23,33 +25,13 @@ async def async_setup(hass, config):
|
|||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, cleanup_gpio)
|
||||
|
||||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, prepare_gpio)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def setup_mode(mode):
|
||||
"""Set GPIO pin mode."""
|
||||
_LOGGER.debug("Setting GPIO pin mode as %s", mode)
|
||||
if mode == "pc":
|
||||
import orangepi.pc
|
||||
|
||||
GPIO.setmode(orangepi.pc.BOARD)
|
||||
elif mode == "zeroplus":
|
||||
import orangepi.zeroplus
|
||||
|
||||
GPIO.setmode(orangepi.zeroplus.BOARD)
|
||||
elif mode == "zeroplus2":
|
||||
import orangepi.zeroplus
|
||||
|
||||
GPIO.setmode(orangepi.zeroplus2.BOARD)
|
||||
elif mode == "duo":
|
||||
import nanopi.duo
|
||||
|
||||
GPIO.setmode(nanopi.duo.BOARD)
|
||||
elif mode == "neocore2":
|
||||
import nanopi.neocore2
|
||||
|
||||
GPIO.setmode(nanopi.neocore2.BOARD)
|
||||
_LOGGER.debug("Setting GPIO pin mode as %s", PIN_MODES[mode])
|
||||
GPIO.setmode(PIN_MODES[mode])
|
||||
|
||||
|
||||
def setup_input(port):
|
||||
|
|
|
@ -1,5 +1,23 @@
|
|||
"""Constants for Orange Pi GPIO."""
|
||||
|
||||
from nanopi import duo, neocore2
|
||||
from orangepi import (
|
||||
lite,
|
||||
lite2,
|
||||
one,
|
||||
oneplus,
|
||||
pc,
|
||||
pc2,
|
||||
pcplus,
|
||||
pi3,
|
||||
plus2e,
|
||||
prime,
|
||||
r1,
|
||||
winplus,
|
||||
zero,
|
||||
zeroplus,
|
||||
zeroplus2,
|
||||
)
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
|
@ -8,12 +26,30 @@ CONF_INVERT_LOGIC = "invert_logic"
|
|||
CONF_PIN_MODE = "pin_mode"
|
||||
CONF_PORTS = "ports"
|
||||
DEFAULT_INVERT_LOGIC = False
|
||||
PIN_MODES = ["pc", "zeroplus", "zeroplus2", "deo", "neocore2"]
|
||||
PIN_MODES = {
|
||||
"lite": lite.BOARD,
|
||||
"lite2": lite2.BOARD,
|
||||
"one": one.BOARD,
|
||||
"oneplus": oneplus.BOARD,
|
||||
"pc": pc.BOARD,
|
||||
"pc2": pc2.BOARD,
|
||||
"pcplus": pcplus.BOARD,
|
||||
"pi3": pi3.BOARD,
|
||||
"plus2e": plus2e.BOARD,
|
||||
"prime": prime.BOARD,
|
||||
"r1": r1.BOARD,
|
||||
"winplus": winplus.BOARD,
|
||||
"zero": zero.BOARD,
|
||||
"zeroplus": zeroplus.BOARD,
|
||||
"zeroplus2": zeroplus2.BOARD,
|
||||
"duo": duo.BOARD,
|
||||
"neocore2": neocore2.BOARD,
|
||||
}
|
||||
|
||||
_SENSORS_SCHEMA = vol.Schema({cv.positive_int: cv.string})
|
||||
|
||||
PORT_SCHEMA = {
|
||||
vol.Required(CONF_PORTS): _SENSORS_SCHEMA,
|
||||
vol.Required(CONF_PIN_MODE): vol.In(PIN_MODES),
|
||||
vol.Required(CONF_PIN_MODE): vol.In(PIN_MODES.keys()),
|
||||
vol.Optional(CONF_INVERT_LOGIC, default=DEFAULT_INVERT_LOGIC): cv.boolean,
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"name": "Orangepi GPIO",
|
||||
"documentation": "https://www.home-assistant.io/integrations/orangepi_gpio",
|
||||
"requirements": [
|
||||
"OPi.GPIO==0.3.6"
|
||||
"OPi.GPIO==0.4.0"
|
||||
],
|
||||
"dependencies": [],
|
||||
"codeowners": [
|
||||
|
|
|
@ -41,7 +41,7 @@ HAP-python==2.6.0
|
|||
Mastodon.py==1.5.0
|
||||
|
||||
# homeassistant.components.orangepi_gpio
|
||||
OPi.GPIO==0.3.6
|
||||
OPi.GPIO==0.4.0
|
||||
|
||||
# homeassistant.components.essent
|
||||
PyEssent==0.13
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue