From c8d171c4754efa0c08ae2df8f43f1ac283bc660f Mon Sep 17 00:00:00 2001
From: Franck Nijhof <git@frenck.dev>
Date: Fri, 13 May 2022 12:13:26 +0200
Subject: [PATCH] Remove deprecated Raspberry Pi GPIO integration (#71777)

---
 .coveragerc                                   |   1 -
 .github/workflows/wheels.yml                  |   1 -
 homeassistant/components/rpi_gpio/__init__.py |  68 ---------
 .../components/rpi_gpio/binary_sensor.py      | 109 --------------
 homeassistant/components/rpi_gpio/cover.py    | 139 ------------------
 .../components/rpi_gpio/manifest.json         |   9 --
 .../components/rpi_gpio/services.yaml         |   3 -
 homeassistant/components/rpi_gpio/switch.py   |  88 -----------
 machine/raspberrypi                           |   6 +-
 machine/raspberrypi2                          |   6 +-
 machine/raspberrypi3                          |   3 +-
 machine/raspberrypi3-64                       |   3 +-
 machine/raspberrypi4                          |   3 +-
 machine/raspberrypi4-64                       |   3 +-
 requirements_all.txt                          |   3 -
 script/gen_requirements_all.py                |   1 -
 16 files changed, 6 insertions(+), 440 deletions(-)
 delete mode 100644 homeassistant/components/rpi_gpio/__init__.py
 delete mode 100644 homeassistant/components/rpi_gpio/binary_sensor.py
 delete mode 100644 homeassistant/components/rpi_gpio/cover.py
 delete mode 100644 homeassistant/components/rpi_gpio/manifest.json
 delete mode 100644 homeassistant/components/rpi_gpio/services.yaml
 delete mode 100644 homeassistant/components/rpi_gpio/switch.py

diff --git a/.coveragerc b/.coveragerc
index 922c13e550c..ef7cd7b847c 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -993,7 +993,6 @@ omit =
     homeassistant/components/route53/*
     homeassistant/components/rova/sensor.py
     homeassistant/components/rpi_camera/*
-    homeassistant/components/rpi_gpio/*
     homeassistant/components/rtorrent/sensor.py
     homeassistant/components/russound_rio/media_player.py
     homeassistant/components/russound_rnet/media_player.py
diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml
index e43c397f3bc..70b6534df5e 100644
--- a/.github/workflows/wheels.yml
+++ b/.github/workflows/wheels.yml
@@ -134,7 +134,6 @@ jobs:
             sed -i "s|# pybluez|pybluez|g" ${requirement_file}
             sed -i "s|# bluepy|bluepy|g" ${requirement_file}
             sed -i "s|# beacontools|beacontools|g" ${requirement_file}
-            sed -i "s|# RPi.GPIO|RPi.GPIO|g" ${requirement_file}
             sed -i "s|# fritzconnection|fritzconnection|g" ${requirement_file}
             sed -i "s|# pyuserinput|pyuserinput|g" ${requirement_file}
             sed -i "s|# evdev|evdev|g" ${requirement_file}
diff --git a/homeassistant/components/rpi_gpio/__init__.py b/homeassistant/components/rpi_gpio/__init__.py
deleted file mode 100644
index 95e3ded1c64..00000000000
--- a/homeassistant/components/rpi_gpio/__init__.py
+++ /dev/null
@@ -1,68 +0,0 @@
-"""Support for controlling GPIO pins of a Raspberry Pi."""
-import logging
-
-from RPi import GPIO  # pylint: disable=import-error
-
-from homeassistant.const import (
-    EVENT_HOMEASSISTANT_START,
-    EVENT_HOMEASSISTANT_STOP,
-    Platform,
-)
-from homeassistant.core import HomeAssistant
-from homeassistant.helpers.typing import ConfigType
-
-DOMAIN = "rpi_gpio"
-PLATFORMS = [
-    Platform.BINARY_SENSOR,
-    Platform.COVER,
-    Platform.SWITCH,
-]
-
-_LOGGER = logging.getLogger(__name__)
-
-
-def setup(hass: HomeAssistant, config: ConfigType) -> bool:
-    """Set up the Raspberry PI GPIO component."""
-    _LOGGER.warning(
-        "The Raspberry Pi GPIO integration is deprecated and will be removed "
-        "in Home Assistant Core 2022.6; this integration is removed under "
-        "Architectural Decision Record 0019, more information can be found here: "
-        "https://github.com/home-assistant/architecture/blob/master/adr/0019-GPIO.md"
-    )
-
-    def cleanup_gpio(event):
-        """Stuff to do before stopping."""
-        GPIO.cleanup()
-
-    def prepare_gpio(event):
-        """Stuff to do when Home Assistant starts."""
-        hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, cleanup_gpio)
-
-    hass.bus.listen_once(EVENT_HOMEASSISTANT_START, prepare_gpio)
-    GPIO.setmode(GPIO.BCM)
-    return True
-
-
-def setup_output(port):
-    """Set up a GPIO as output."""
-    GPIO.setup(port, GPIO.OUT)
-
-
-def setup_input(port, pull_mode):
-    """Set up a GPIO as input."""
-    GPIO.setup(port, GPIO.IN, GPIO.PUD_DOWN if pull_mode == "DOWN" else GPIO.PUD_UP)
-
-
-def write_output(port, value):
-    """Write a value to a GPIO."""
-    GPIO.output(port, value)
-
-
-def read_input(port):
-    """Read a value from a GPIO."""
-    return GPIO.input(port)
-
-
-def edge_detect(port, event_callback, bounce):
-    """Add detection for RISING and FALLING events."""
-    GPIO.add_event_detect(port, GPIO.BOTH, callback=event_callback, bouncetime=bounce)
diff --git a/homeassistant/components/rpi_gpio/binary_sensor.py b/homeassistant/components/rpi_gpio/binary_sensor.py
deleted file mode 100644
index e183b463e45..00000000000
--- a/homeassistant/components/rpi_gpio/binary_sensor.py
+++ /dev/null
@@ -1,109 +0,0 @@
-"""Support for binary sensor using RPi GPIO."""
-from __future__ import annotations
-
-import asyncio
-
-import voluptuous as vol
-
-from homeassistant.components import rpi_gpio
-from homeassistant.components.binary_sensor import PLATFORM_SCHEMA, BinarySensorEntity
-from homeassistant.const import DEVICE_DEFAULT_NAME
-from homeassistant.core import HomeAssistant
-import homeassistant.helpers.config_validation as cv
-from homeassistant.helpers.entity_platform import AddEntitiesCallback
-from homeassistant.helpers.reload import setup_reload_service
-from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
-
-from . import DOMAIN, PLATFORMS
-
-CONF_BOUNCETIME = "bouncetime"
-CONF_INVERT_LOGIC = "invert_logic"
-CONF_PORTS = "ports"
-CONF_PULL_MODE = "pull_mode"
-
-DEFAULT_BOUNCETIME = 50
-DEFAULT_INVERT_LOGIC = False
-DEFAULT_PULL_MODE = "UP"
-
-_SENSORS_SCHEMA = vol.Schema({cv.positive_int: cv.string})
-
-PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
-    {
-        vol.Required(CONF_PORTS): _SENSORS_SCHEMA,
-        vol.Optional(CONF_BOUNCETIME, default=DEFAULT_BOUNCETIME): cv.positive_int,
-        vol.Optional(CONF_INVERT_LOGIC, default=DEFAULT_INVERT_LOGIC): cv.boolean,
-        vol.Optional(CONF_PULL_MODE, default=DEFAULT_PULL_MODE): cv.string,
-    }
-)
-
-
-def setup_platform(
-    hass: HomeAssistant,
-    config: ConfigType,
-    add_entities: AddEntitiesCallback,
-    discovery_info: DiscoveryInfoType | None = None,
-) -> None:
-    """Set up the Raspberry PI GPIO devices."""
-    setup_reload_service(hass, DOMAIN, PLATFORMS)
-
-    pull_mode = config[CONF_PULL_MODE]
-    bouncetime = config[CONF_BOUNCETIME]
-    invert_logic = config[CONF_INVERT_LOGIC]
-
-    binary_sensors = []
-    ports = config[CONF_PORTS]
-    for port_num, port_name in ports.items():
-        binary_sensors.append(
-            RPiGPIOBinarySensor(
-                port_name, port_num, pull_mode, bouncetime, invert_logic
-            )
-        )
-    add_entities(binary_sensors, True)
-
-
-class RPiGPIOBinarySensor(BinarySensorEntity):
-    """Represent a binary sensor that uses Raspberry Pi GPIO."""
-
-    async def async_read_gpio(self):
-        """Read state from GPIO."""
-        await asyncio.sleep(float(self._bouncetime) / 1000)
-        self._state = await self.hass.async_add_executor_job(
-            rpi_gpio.read_input, self._port
-        )
-        self.async_write_ha_state()
-
-    def __init__(self, name, port, pull_mode, bouncetime, invert_logic):
-        """Initialize the RPi binary sensor."""
-        self._name = name or DEVICE_DEFAULT_NAME
-        self._port = port
-        self._pull_mode = pull_mode
-        self._bouncetime = bouncetime
-        self._invert_logic = invert_logic
-        self._state = None
-
-        rpi_gpio.setup_input(self._port, self._pull_mode)
-
-        def edge_detected(port):
-            """Edge detection handler."""
-            self.hass.add_job(self.async_read_gpio)
-
-        rpi_gpio.edge_detect(self._port, edge_detected, self._bouncetime)
-
-    @property
-    def should_poll(self):
-        """No polling needed."""
-        return False
-
-    @property
-    def name(self):
-        """Return the name of the sensor."""
-        return self._name
-
-    @property
-    def is_on(self):
-        """Return the state of the entity."""
-        return self._state != self._invert_logic
-
-    def update(self):
-        """Update the GPIO state."""
-        self._state = rpi_gpio.read_input(self._port)
diff --git a/homeassistant/components/rpi_gpio/cover.py b/homeassistant/components/rpi_gpio/cover.py
deleted file mode 100644
index e4b07d3c577..00000000000
--- a/homeassistant/components/rpi_gpio/cover.py
+++ /dev/null
@@ -1,139 +0,0 @@
-"""Support for controlling a Raspberry Pi cover."""
-from __future__ import annotations
-
-from time import sleep
-
-import voluptuous as vol
-
-from homeassistant.components import rpi_gpio
-from homeassistant.components.cover import PLATFORM_SCHEMA, CoverEntity
-from homeassistant.const import CONF_COVERS, CONF_NAME
-from homeassistant.core import HomeAssistant
-import homeassistant.helpers.config_validation as cv
-from homeassistant.helpers.entity_platform import AddEntitiesCallback
-from homeassistant.helpers.reload import setup_reload_service
-from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
-
-from . import DOMAIN, PLATFORMS
-
-CONF_RELAY_PIN = "relay_pin"
-CONF_RELAY_TIME = "relay_time"
-CONF_STATE_PIN = "state_pin"
-CONF_STATE_PULL_MODE = "state_pull_mode"
-CONF_INVERT_STATE = "invert_state"
-CONF_INVERT_RELAY = "invert_relay"
-
-DEFAULT_RELAY_TIME = 0.2
-DEFAULT_STATE_PULL_MODE = "UP"
-DEFAULT_INVERT_STATE = False
-DEFAULT_INVERT_RELAY = False
-_COVERS_SCHEMA = vol.All(
-    cv.ensure_list,
-    [
-        vol.Schema(
-            {
-                CONF_NAME: cv.string,
-                CONF_RELAY_PIN: cv.positive_int,
-                CONF_STATE_PIN: cv.positive_int,
-            }
-        )
-    ],
-)
-
-PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
-    {
-        vol.Required(CONF_COVERS): _COVERS_SCHEMA,
-        vol.Optional(CONF_STATE_PULL_MODE, default=DEFAULT_STATE_PULL_MODE): cv.string,
-        vol.Optional(CONF_RELAY_TIME, default=DEFAULT_RELAY_TIME): cv.positive_int,
-        vol.Optional(CONF_INVERT_STATE, default=DEFAULT_INVERT_STATE): cv.boolean,
-        vol.Optional(CONF_INVERT_RELAY, default=DEFAULT_INVERT_RELAY): cv.boolean,
-    }
-)
-
-
-def setup_platform(
-    hass: HomeAssistant,
-    config: ConfigType,
-    add_entities: AddEntitiesCallback,
-    discovery_info: DiscoveryInfoType | None = None,
-) -> None:
-    """Set up the RPi cover platform."""
-    setup_reload_service(hass, DOMAIN, PLATFORMS)
-
-    relay_time = config[CONF_RELAY_TIME]
-    state_pull_mode = config[CONF_STATE_PULL_MODE]
-    invert_state = config[CONF_INVERT_STATE]
-    invert_relay = config[CONF_INVERT_RELAY]
-    covers = []
-    covers_conf = config[CONF_COVERS]
-
-    for cover in covers_conf:
-        covers.append(
-            RPiGPIOCover(
-                cover[CONF_NAME],
-                cover[CONF_RELAY_PIN],
-                cover[CONF_STATE_PIN],
-                state_pull_mode,
-                relay_time,
-                invert_state,
-                invert_relay,
-            )
-        )
-    add_entities(covers)
-
-
-class RPiGPIOCover(CoverEntity):
-    """Representation of a Raspberry GPIO cover."""
-
-    def __init__(
-        self,
-        name,
-        relay_pin,
-        state_pin,
-        state_pull_mode,
-        relay_time,
-        invert_state,
-        invert_relay,
-    ):
-        """Initialize the cover."""
-        self._name = name
-        self._state = False
-        self._relay_pin = relay_pin
-        self._state_pin = state_pin
-        self._state_pull_mode = state_pull_mode
-        self._relay_time = relay_time
-        self._invert_state = invert_state
-        self._invert_relay = invert_relay
-        rpi_gpio.setup_output(self._relay_pin)
-        rpi_gpio.setup_input(self._state_pin, self._state_pull_mode)
-        rpi_gpio.write_output(self._relay_pin, 0 if self._invert_relay else 1)
-
-    @property
-    def name(self):
-        """Return the name of the cover if any."""
-        return self._name
-
-    def update(self):
-        """Update the state of the cover."""
-        self._state = rpi_gpio.read_input(self._state_pin)
-
-    @property
-    def is_closed(self):
-        """Return true if cover is closed."""
-        return self._state != self._invert_state
-
-    def _trigger(self):
-        """Trigger the cover."""
-        rpi_gpio.write_output(self._relay_pin, 1 if self._invert_relay else 0)
-        sleep(self._relay_time)
-        rpi_gpio.write_output(self._relay_pin, 0 if self._invert_relay else 1)
-
-    def close_cover(self, **kwargs):
-        """Close the cover."""
-        if not self.is_closed:
-            self._trigger()
-
-    def open_cover(self, **kwargs):
-        """Open the cover."""
-        if self.is_closed:
-            self._trigger()
diff --git a/homeassistant/components/rpi_gpio/manifest.json b/homeassistant/components/rpi_gpio/manifest.json
deleted file mode 100644
index f8db41b1a31..00000000000
--- a/homeassistant/components/rpi_gpio/manifest.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "domain": "rpi_gpio",
-  "name": "Raspberry Pi GPIO",
-  "documentation": "https://www.home-assistant.io/integrations/rpi_gpio",
-  "requirements": ["RPi.GPIO==0.7.1a4"],
-  "codeowners": [],
-  "iot_class": "local_push",
-  "loggers": ["RPi"]
-}
diff --git a/homeassistant/components/rpi_gpio/services.yaml b/homeassistant/components/rpi_gpio/services.yaml
deleted file mode 100644
index 1858c5a9fa2..00000000000
--- a/homeassistant/components/rpi_gpio/services.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-reload:
-  name: Reload
-  description: Reload all rpi_gpio entities.
diff --git a/homeassistant/components/rpi_gpio/switch.py b/homeassistant/components/rpi_gpio/switch.py
deleted file mode 100644
index 040edd912c5..00000000000
--- a/homeassistant/components/rpi_gpio/switch.py
+++ /dev/null
@@ -1,88 +0,0 @@
-"""Allows to configure a switch using RPi GPIO."""
-from __future__ import annotations
-
-import voluptuous as vol
-
-from homeassistant.components import rpi_gpio
-from homeassistant.components.switch import PLATFORM_SCHEMA, SwitchEntity
-from homeassistant.const import DEVICE_DEFAULT_NAME
-from homeassistant.core import HomeAssistant
-import homeassistant.helpers.config_validation as cv
-from homeassistant.helpers.entity_platform import AddEntitiesCallback
-from homeassistant.helpers.reload import setup_reload_service
-from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
-
-from . import DOMAIN, PLATFORMS
-
-CONF_PULL_MODE = "pull_mode"
-CONF_PORTS = "ports"
-CONF_INVERT_LOGIC = "invert_logic"
-
-DEFAULT_INVERT_LOGIC = False
-
-_SWITCHES_SCHEMA = vol.Schema({cv.positive_int: cv.string})
-
-PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
-    {
-        vol.Required(CONF_PORTS): _SWITCHES_SCHEMA,
-        vol.Optional(CONF_INVERT_LOGIC, default=DEFAULT_INVERT_LOGIC): cv.boolean,
-    }
-)
-
-
-def setup_platform(
-    hass: HomeAssistant,
-    config: ConfigType,
-    add_entities: AddEntitiesCallback,
-    discovery_info: DiscoveryInfoType | None = None,
-) -> None:
-    """Set up the Raspberry PI GPIO devices."""
-    setup_reload_service(hass, DOMAIN, PLATFORMS)
-
-    invert_logic = config[CONF_INVERT_LOGIC]
-
-    switches = []
-    ports = config[CONF_PORTS]
-    for port, name in ports.items():
-        switches.append(RPiGPIOSwitch(name, port, invert_logic))
-    add_entities(switches)
-
-
-class RPiGPIOSwitch(SwitchEntity):
-    """Representation of a  Raspberry Pi GPIO."""
-
-    def __init__(self, name, port, invert_logic):
-        """Initialize the pin."""
-        self._name = name or DEVICE_DEFAULT_NAME
-        self._port = port
-        self._invert_logic = invert_logic
-        self._state = False
-        rpi_gpio.setup_output(self._port)
-        rpi_gpio.write_output(self._port, 1 if self._invert_logic else 0)
-
-    @property
-    def name(self):
-        """Return the name of the switch."""
-        return self._name
-
-    @property
-    def should_poll(self):
-        """No polling needed."""
-        return False
-
-    @property
-    def is_on(self):
-        """Return true if device is on."""
-        return self._state
-
-    def turn_on(self, **kwargs):
-        """Turn the device on."""
-        rpi_gpio.write_output(self._port, 0 if self._invert_logic else 1)
-        self._state = True
-        self.schedule_update_ha_state()
-
-    def turn_off(self, **kwargs):
-        """Turn the device off."""
-        rpi_gpio.write_output(self._port, 1 if self._invert_logic else 0)
-        self._state = False
-        self.schedule_update_ha_state()
diff --git a/machine/raspberrypi b/machine/raspberrypi
index 960e343792d..8ea2d08bba7 100644
--- a/machine/raspberrypi
+++ b/machine/raspberrypi
@@ -4,11 +4,7 @@ FROM homeassistant/armhf-homeassistant:$BUILD_VERSION
 RUN apk --no-cache add \
         raspberrypi \
         raspberrypi-libs \
-        usbutils \
-    && sed -i "s|# RPi.GPIO|RPi.GPIO|g" /usr/src/homeassistant/requirements_all.txt \
-    && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-        RPi.GPIO -c /usr/src/homeassistant/requirements_all.txt \
-        --use-deprecated=legacy-resolver
+        usbutils
 
 ##
 # Set symlinks for raspberry pi camera binaries.
diff --git a/machine/raspberrypi2 b/machine/raspberrypi2
index 225c45423a1..45f7a9c80d1 100644
--- a/machine/raspberrypi2
+++ b/machine/raspberrypi2
@@ -4,11 +4,7 @@ FROM homeassistant/armv7-homeassistant:$BUILD_VERSION
 RUN apk --no-cache add \
         raspberrypi \
         raspberrypi-libs \
-        usbutils \
-    && sed -i "s|# RPi.GPIO|RPi.GPIO|g" /usr/src/homeassistant/requirements_all.txt \
-    && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-        RPi.GPIO -c /usr/src/homeassistant/requirements_all.txt \
-        --use-deprecated=legacy-resolver
+        usbutils
 
 ##
 # Set symlinks for raspberry pi binaries.
diff --git a/machine/raspberrypi3 b/machine/raspberrypi3
index 6315cc3e885..9985b4a3b7a 100644
--- a/machine/raspberrypi3
+++ b/machine/raspberrypi3
@@ -5,9 +5,8 @@ RUN apk --no-cache add \
         raspberrypi \
         raspberrypi-libs \
         usbutils \
-    && sed -i "s|# RPi.GPIO|RPi.GPIO|g" /usr/src/homeassistant/requirements_all.txt \
     && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-        RPi.GPIO bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
+        bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
         --use-deprecated=legacy-resolver
 
 ##
diff --git a/machine/raspberrypi3-64 b/machine/raspberrypi3-64
index 51f41d68320..35c6eec77de 100644
--- a/machine/raspberrypi3-64
+++ b/machine/raspberrypi3-64
@@ -5,9 +5,8 @@ RUN apk --no-cache add \
         raspberrypi \
         raspberrypi-libs \
         usbutils \
-    && sed -i "s|# RPi.GPIO|RPi.GPIO|g" /usr/src/homeassistant/requirements_all.txt \
     && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-        RPi.GPIO bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
+        bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
         --use-deprecated=legacy-resolver
 
 ##
diff --git a/machine/raspberrypi4 b/machine/raspberrypi4
index 6315cc3e885..9985b4a3b7a 100644
--- a/machine/raspberrypi4
+++ b/machine/raspberrypi4
@@ -5,9 +5,8 @@ RUN apk --no-cache add \
         raspberrypi \
         raspberrypi-libs \
         usbutils \
-    && sed -i "s|# RPi.GPIO|RPi.GPIO|g" /usr/src/homeassistant/requirements_all.txt \
     && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-        RPi.GPIO bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
+        bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
         --use-deprecated=legacy-resolver
 
 ##
diff --git a/machine/raspberrypi4-64 b/machine/raspberrypi4-64
index 51f41d68320..35c6eec77de 100644
--- a/machine/raspberrypi4-64
+++ b/machine/raspberrypi4-64
@@ -5,9 +5,8 @@ RUN apk --no-cache add \
         raspberrypi \
         raspberrypi-libs \
         usbutils \
-    && sed -i "s|# RPi.GPIO|RPi.GPIO|g" /usr/src/homeassistant/requirements_all.txt \
     && pip3 install --no-cache-dir --no-index --only-binary=:all: --find-links "${WHEELS_LINKS}" \
-        RPi.GPIO bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
+        bluepy pybluez -c /usr/src/homeassistant/requirements_all.txt \
         --use-deprecated=legacy-resolver
 
 ##
diff --git a/requirements_all.txt b/requirements_all.txt
index e0c864fea9d..b572dca4f6f 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -49,9 +49,6 @@ PyViCare==2.16.1
 # homeassistant.components.xiaomi_aqara
 PyXiaomiGateway==0.13.4
 
-# homeassistant.components.rpi_gpio
-# RPi.GPIO==0.7.1a4
-
 # homeassistant.components.remember_the_milk
 RtmAPI==0.7.2
 
diff --git a/script/gen_requirements_all.py b/script/gen_requirements_all.py
index 1e93b8bba35..be94fdac22b 100755
--- a/script/gen_requirements_all.py
+++ b/script/gen_requirements_all.py
@@ -32,7 +32,6 @@ COMMENT_REQUIREMENTS = (
     "python-gammu",
     "python-lirc",
     "pyuserinput",
-    "RPi.GPIO",
     "tensorflow",
     "tf-models-official",
 )
-- 
GitLab