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 homeassistant.const import EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP
|
||||||
|
|
||||||
|
from .const import PIN_MODES
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
DOMAIN = "orangepi_gpio"
|
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_STOP, cleanup_gpio)
|
||||||
|
|
||||||
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, prepare_gpio)
|
hass.bus.async_listen_once(EVENT_HOMEASSISTANT_START, prepare_gpio)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def setup_mode(mode):
|
def setup_mode(mode):
|
||||||
"""Set GPIO pin mode."""
|
"""Set GPIO pin mode."""
|
||||||
_LOGGER.debug("Setting GPIO pin mode as %s", mode)
|
_LOGGER.debug("Setting GPIO pin mode as %s", PIN_MODES[mode])
|
||||||
if mode == "pc":
|
GPIO.setmode(PIN_MODES[mode])
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
def setup_input(port):
|
def setup_input(port):
|
||||||
|
|
|
@ -1,5 +1,23 @@
|
||||||
"""Constants for Orange Pi GPIO."""
|
"""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
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.helpers import config_validation as cv
|
from homeassistant.helpers import config_validation as cv
|
||||||
|
@ -8,12 +26,30 @@ CONF_INVERT_LOGIC = "invert_logic"
|
||||||
CONF_PIN_MODE = "pin_mode"
|
CONF_PIN_MODE = "pin_mode"
|
||||||
CONF_PORTS = "ports"
|
CONF_PORTS = "ports"
|
||||||
DEFAULT_INVERT_LOGIC = False
|
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})
|
_SENSORS_SCHEMA = vol.Schema({cv.positive_int: cv.string})
|
||||||
|
|
||||||
PORT_SCHEMA = {
|
PORT_SCHEMA = {
|
||||||
vol.Required(CONF_PORTS): _SENSORS_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,
|
vol.Optional(CONF_INVERT_LOGIC, default=DEFAULT_INVERT_LOGIC): cv.boolean,
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"name": "Orangepi GPIO",
|
"name": "Orangepi GPIO",
|
||||||
"documentation": "https://www.home-assistant.io/integrations/orangepi_gpio",
|
"documentation": "https://www.home-assistant.io/integrations/orangepi_gpio",
|
||||||
"requirements": [
|
"requirements": [
|
||||||
"OPi.GPIO==0.3.6"
|
"OPi.GPIO==0.4.0"
|
||||||
],
|
],
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"codeowners": [
|
"codeowners": [
|
||||||
|
|
|
@ -41,7 +41,7 @@ HAP-python==2.6.0
|
||||||
Mastodon.py==1.5.0
|
Mastodon.py==1.5.0
|
||||||
|
|
||||||
# homeassistant.components.orangepi_gpio
|
# homeassistant.components.orangepi_gpio
|
||||||
OPi.GPIO==0.3.6
|
OPi.GPIO==0.4.0
|
||||||
|
|
||||||
# homeassistant.components.essent
|
# homeassistant.components.essent
|
||||||
PyEssent==0.13
|
PyEssent==0.13
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue