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:
Pascal Roeleven 2019-10-22 17:23:39 +02:00 committed by Paulus Schoutsen
parent 09b4f65515
commit 37bf577284
4 changed files with 44 additions and 26 deletions

View file

@ -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):

View file

@ -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,
}

View file

@ -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": [

View file

@ -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