diff --git a/homeassistant/components/bluetooth/manifest.json b/homeassistant/components/bluetooth/manifest.json
index f81e1324da4..783d4ce7df2 100644
--- a/homeassistant/components/bluetooth/manifest.json
+++ b/homeassistant/components/bluetooth/manifest.json
@@ -9,7 +9,7 @@
     "bleak==0.18.1",
     "bleak-retry-connector==2.1.3",
     "bluetooth-adapters==0.6.0",
-    "bluetooth-auto-recovery==0.3.3",
+    "bluetooth-auto-recovery==0.3.4",
     "dbus-fast==1.24.0"
   ],
   "codeowners": ["@bdraco"],
diff --git a/homeassistant/components/fibaro/__init__.py b/homeassistant/components/fibaro/__init__.py
index 9c2d252d77f..08ee4658107 100644
--- a/homeassistant/components/fibaro/__init__.py
+++ b/homeassistant/components/fibaro/__init__.py
@@ -650,8 +650,8 @@ class FibaroDevice(Entity):
                 attr[ATTR_BATTERY_LEVEL] = int(
                     self.fibaro_device.properties.batteryLevel
                 )
-            if "fibaroAlarmArm" in self.fibaro_device.interfaces:
-                attr[ATTR_ARMED] = bool(self.fibaro_device.properties.armed)
+            if "armed" in self.fibaro_device.properties:
+                attr[ATTR_ARMED] = self.fibaro_device.properties.armed.lower() == "true"
         except (ValueError, KeyError):
             pass
 
diff --git a/homeassistant/components/frontend/manifest.json b/homeassistant/components/frontend/manifest.json
index 6f243da444a..98b978964a6 100644
--- a/homeassistant/components/frontend/manifest.json
+++ b/homeassistant/components/frontend/manifest.json
@@ -2,7 +2,7 @@
   "domain": "frontend",
   "name": "Home Assistant Frontend",
   "documentation": "https://www.home-assistant.io/integrations/frontend",
-  "requirements": ["home-assistant-frontend==20221006.0"],
+  "requirements": ["home-assistant-frontend==20221010.0"],
   "dependencies": [
     "api",
     "auth",
diff --git a/homeassistant/components/gtfs/manifest.json b/homeassistant/components/gtfs/manifest.json
index 8dfb37ad551..9e9eb6a5585 100644
--- a/homeassistant/components/gtfs/manifest.json
+++ b/homeassistant/components/gtfs/manifest.json
@@ -2,7 +2,7 @@
   "domain": "gtfs",
   "name": "General Transit Feed Specification (GTFS)",
   "documentation": "https://www.home-assistant.io/integrations/gtfs",
-  "requirements": ["pygtfs==0.1.6"],
+  "requirements": ["pygtfs==0.1.7"],
   "codeowners": [],
   "iot_class": "local_polling",
   "loggers": ["pygtfs"]
diff --git a/homeassistant/components/hassio/manifest.json b/homeassistant/components/hassio/manifest.json
index b087eb25807..5de80fdbd19 100644
--- a/homeassistant/components/hassio/manifest.json
+++ b/homeassistant/components/hassio/manifest.json
@@ -6,6 +6,5 @@
   "after_dependencies": ["panel_custom"],
   "codeowners": ["@home-assistant/supervisor"],
   "iot_class": "local_polling",
-  "quality_scale": "internal",
-  "integration_type": "system"
+  "quality_scale": "internal"
 }
diff --git a/homeassistant/components/hive/manifest.json b/homeassistant/components/hive/manifest.json
index 406b32d86f8..b7e5b3fa9ea 100644
--- a/homeassistant/components/hive/manifest.json
+++ b/homeassistant/components/hive/manifest.json
@@ -6,7 +6,7 @@
     "models": ["HHKBridge*"]
   },
   "documentation": "https://www.home-assistant.io/integrations/hive",
-  "requirements": ["pyhiveapi==0.5.13"],
+  "requirements": ["pyhiveapi==0.5.14"],
   "codeowners": ["@Rendili", "@KJonline"],
   "iot_class": "cloud_polling",
   "loggers": ["apyhiveapi"]
diff --git a/homeassistant/components/homekit_controller/climate.py b/homeassistant/components/homekit_controller/climate.py
index 2c4d2e3871d..41788eb4cb2 100644
--- a/homeassistant/components/homekit_controller/climate.py
+++ b/homeassistant/components/homekit_controller/climate.py
@@ -565,6 +565,14 @@ class HomeKitClimateEntity(HomeKitBaseClimateEntity):
         # This characteristic describes the current mode of a device,
         # e.g. a thermostat is "heating" a room to 75 degrees Fahrenheit.
         # Can be 0 - 2 (Off, Heat, Cool)
+
+        # If the HVAC is switched off, it must be idle
+        # This works around a bug in some devices (like Eve radiator valves) that
+        # return they are heating when they are not.
+        target = self.service.value(CharacteristicsTypes.HEATING_COOLING_TARGET)
+        if target == HeatingCoolingTargetValues.OFF:
+            return HVACAction.IDLE
+
         value = self.service.value(CharacteristicsTypes.HEATING_COOLING_CURRENT)
         return CURRENT_MODE_HOMEKIT_TO_HASS.get(value)
 
diff --git a/homeassistant/components/netatmo/device_trigger.py b/homeassistant/components/netatmo/device_trigger.py
index b037f45533f..c6a519a37d0 100644
--- a/homeassistant/components/netatmo/device_trigger.py
+++ b/homeassistant/components/netatmo/device_trigger.py
@@ -38,10 +38,10 @@ from .const import (
 CONF_SUBTYPE = "subtype"
 
 DEVICES = {
-    "NACamera": INDOOR_CAMERA_TRIGGERS,
-    "NOC": OUTDOOR_CAMERA_TRIGGERS,
-    "NATherm1": CLIMATE_TRIGGERS,
-    "NRV": CLIMATE_TRIGGERS,
+    "Smart Indoor Camera": INDOOR_CAMERA_TRIGGERS,
+    "Smart Outdoor Camera": OUTDOOR_CAMERA_TRIGGERS,
+    "Smart Thermostat": CLIMATE_TRIGGERS,
+    "Smart Valve": CLIMATE_TRIGGERS,
 }
 
 SUBTYPES = {
diff --git a/homeassistant/components/switchbot/manifest.json b/homeassistant/components/switchbot/manifest.json
index 1d245d3fd81..282bf6aa447 100644
--- a/homeassistant/components/switchbot/manifest.json
+++ b/homeassistant/components/switchbot/manifest.json
@@ -2,7 +2,7 @@
   "domain": "switchbot",
   "name": "SwitchBot",
   "documentation": "https://www.home-assistant.io/integrations/switchbot",
-  "requirements": ["PySwitchbot==0.19.13"],
+  "requirements": ["PySwitchbot==0.19.15"],
   "config_flow": true,
   "dependencies": ["bluetooth"],
   "codeowners": [
diff --git a/homeassistant/components/unifi/manifest.json b/homeassistant/components/unifi/manifest.json
index eeb974242e9..365ce086fb0 100644
--- a/homeassistant/components/unifi/manifest.json
+++ b/homeassistant/components/unifi/manifest.json
@@ -3,7 +3,7 @@
   "name": "UniFi Network",
   "config_flow": true,
   "documentation": "https://www.home-assistant.io/integrations/unifi",
-  "requirements": ["aiounifi==38"],
+  "requirements": ["aiounifi==39"],
   "codeowners": ["@Kane610"],
   "quality_scale": "platinum",
   "ssdp": [
diff --git a/homeassistant/components/zha/manifest.json b/homeassistant/components/zha/manifest.json
index 426ac24bbe3..7067491a12a 100644
--- a/homeassistant/components/zha/manifest.json
+++ b/homeassistant/components/zha/manifest.json
@@ -10,8 +10,8 @@
     "zha-quirks==0.0.82",
     "zigpy-deconz==0.19.0",
     "zigpy==0.51.3",
-    "zigpy-xbee==0.16.1",
-    "zigpy-zigate==0.10.1",
+    "zigpy-xbee==0.16.2",
+    "zigpy-zigate==0.10.2",
     "zigpy-znp==0.9.1"
   ],
   "usb": [
diff --git a/homeassistant/const.py b/homeassistant/const.py
index 588cd972966..012a633947d 100644
--- a/homeassistant/const.py
+++ b/homeassistant/const.py
@@ -8,7 +8,7 @@ from .backports.enum import StrEnum
 APPLICATION_NAME: Final = "HomeAssistant"
 MAJOR_VERSION: Final = 2022
 MINOR_VERSION: Final = 10
-PATCH_VERSION: Final = "2"
+PATCH_VERSION: Final = "3"
 __short_version__: Final = f"{MAJOR_VERSION}.{MINOR_VERSION}"
 __version__: Final = f"{__short_version__}.{PATCH_VERSION}"
 REQUIRED_PYTHON_VER: Final[tuple[int, int, int]] = (3, 9, 0)
diff --git a/homeassistant/generated/integrations.json b/homeassistant/generated/integrations.json
index cccbd162e57..4fd58cd88f3 100644
--- a/homeassistant/generated/integrations.json
+++ b/homeassistant/generated/integrations.json
@@ -1690,6 +1690,11 @@
       "iot_class": "local_polling",
       "name": "Harman Kardon AVR"
     },
+    "hassio": {
+      "config_flow": false,
+      "iot_class": "local_polling",
+      "name": "Home Assistant Supervisor"
+    },
     "haveibeenpwned": {
       "config_flow": false,
       "iot_class": "cloud_polling",
diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt
index 92b535f0d6f..183a0205762 100644
--- a/homeassistant/package_constraints.txt
+++ b/homeassistant/package_constraints.txt
@@ -13,7 +13,7 @@ bcrypt==3.1.7
 bleak-retry-connector==2.1.3
 bleak==0.18.1
 bluetooth-adapters==0.6.0
-bluetooth-auto-recovery==0.3.3
+bluetooth-auto-recovery==0.3.4
 certifi>=2021.5.30
 ciso8601==2.2.0
 cryptography==38.0.1
@@ -21,7 +21,7 @@ dbus-fast==1.24.0
 fnvhash==0.1.0
 hass-nabucasa==0.56.0
 home-assistant-bluetooth==1.3.0
-home-assistant-frontend==20221006.0
+home-assistant-frontend==20221010.0
 httpx==0.23.0
 ifaddr==0.1.7
 jinja2==3.1.2
diff --git a/pyproject.toml b/pyproject.toml
index cb32075133e..8b6d4707521 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
 
 [project]
 name        = "homeassistant"
-version     = "2022.10.2"
+version     = "2022.10.3"
 license     = {text = "Apache-2.0"}
 description = "Open-source home automation platform running on Python 3."
 readme      = "README.rst"
diff --git a/requirements_all.txt b/requirements_all.txt
index 921f36cc597..857a8a0395a 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -40,7 +40,7 @@ PyRMVtransport==0.3.3
 PySocks==1.7.1
 
 # homeassistant.components.switchbot
-PySwitchbot==0.19.13
+PySwitchbot==0.19.15
 
 # homeassistant.components.transport_nsw
 PyTransportNSW==0.1.1
@@ -276,7 +276,7 @@ aiosyncthing==0.5.1
 aiotractive==0.5.4
 
 # homeassistant.components.unifi
-aiounifi==38
+aiounifi==39
 
 # homeassistant.components.vlc_telnet
 aiovlc==0.1.0
@@ -438,7 +438,7 @@ bluemaestro-ble==0.2.0
 bluetooth-adapters==0.6.0
 
 # homeassistant.components.bluetooth
-bluetooth-auto-recovery==0.3.3
+bluetooth-auto-recovery==0.3.4
 
 # homeassistant.components.bond
 bond-async==0.1.22
@@ -865,7 +865,7 @@ hole==0.7.0
 holidays==0.16
 
 # homeassistant.components.frontend
-home-assistant-frontend==20221006.0
+home-assistant-frontend==20221010.0
 
 # homeassistant.components.home_connect
 homeconnect==0.7.2
@@ -1586,7 +1586,7 @@ pyfttt==0.3
 pygatt[GATTTOOL]==4.0.5
 
 # homeassistant.components.gtfs
-pygtfs==0.1.6
+pygtfs==0.1.7
 
 # homeassistant.components.hvv_departures
 pygti==0.9.3
@@ -1601,7 +1601,7 @@ pyheos==0.7.2
 pyhik==0.3.0
 
 # homeassistant.components.hive
-pyhiveapi==0.5.13
+pyhiveapi==0.5.14
 
 # homeassistant.components.homematic
 pyhomematic==0.1.77
@@ -2604,10 +2604,10 @@ ziggo-mediabox-xl==1.1.0
 zigpy-deconz==0.19.0
 
 # homeassistant.components.zha
-zigpy-xbee==0.16.1
+zigpy-xbee==0.16.2
 
 # homeassistant.components.zha
-zigpy-zigate==0.10.1
+zigpy-zigate==0.10.2
 
 # homeassistant.components.zha
 zigpy-znp==0.9.1
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index 8112bef68b0..49b17f021c1 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -36,7 +36,7 @@ PyRMVtransport==0.3.3
 PySocks==1.7.1
 
 # homeassistant.components.switchbot
-PySwitchbot==0.19.13
+PySwitchbot==0.19.15
 
 # homeassistant.components.transport_nsw
 PyTransportNSW==0.1.1
@@ -251,7 +251,7 @@ aiosyncthing==0.5.1
 aiotractive==0.5.4
 
 # homeassistant.components.unifi
-aiounifi==38
+aiounifi==39
 
 # homeassistant.components.vlc_telnet
 aiovlc==0.1.0
@@ -352,7 +352,7 @@ bluemaestro-ble==0.2.0
 bluetooth-adapters==0.6.0
 
 # homeassistant.components.bluetooth
-bluetooth-auto-recovery==0.3.3
+bluetooth-auto-recovery==0.3.4
 
 # homeassistant.components.bond
 bond-async==0.1.22
@@ -645,7 +645,7 @@ hole==0.7.0
 holidays==0.16
 
 # homeassistant.components.frontend
-home-assistant-frontend==20221006.0
+home-assistant-frontend==20221010.0
 
 # homeassistant.components.home_connect
 homeconnect==0.7.2
@@ -1123,7 +1123,7 @@ pyhaversion==22.8.0
 pyheos==0.7.2
 
 # homeassistant.components.hive
-pyhiveapi==0.5.13
+pyhiveapi==0.5.14
 
 # homeassistant.components.homematic
 pyhomematic==0.1.77
@@ -1799,10 +1799,10 @@ zha-quirks==0.0.82
 zigpy-deconz==0.19.0
 
 # homeassistant.components.zha
-zigpy-xbee==0.16.1
+zigpy-xbee==0.16.2
 
 # homeassistant.components.zha
-zigpy-zigate==0.10.1
+zigpy-zigate==0.10.2
 
 # homeassistant.components.zha
 zigpy-znp==0.9.1
diff --git a/tests/components/homekit_controller/test_climate.py b/tests/components/homekit_controller/test_climate.py
index c5cad7015d8..0f669c9c51f 100644
--- a/tests/components/homekit_controller/test_climate.py
+++ b/tests/components/homekit_controller/test_climate.py
@@ -619,6 +619,27 @@ async def test_hvac_mode_vs_hvac_action(hass, utcnow):
     assert state.attributes["hvac_action"] == "heating"
 
 
+async def test_hvac_mode_vs_hvac_action_current_mode_wrong(hass, utcnow):
+    """Check that we cope with buggy HEATING_COOLING_CURRENT."""
+    helper = await setup_test_component(hass, create_thermostat_service)
+
+    await helper.async_update(
+        ServicesTypes.THERMOSTAT,
+        {
+            CharacteristicsTypes.TEMPERATURE_CURRENT: 22,
+            CharacteristicsTypes.TEMPERATURE_TARGET: 21,
+            CharacteristicsTypes.HEATING_COOLING_CURRENT: 1,
+            CharacteristicsTypes.HEATING_COOLING_TARGET: 0,
+            CharacteristicsTypes.RELATIVE_HUMIDITY_CURRENT: 50,
+            CharacteristicsTypes.RELATIVE_HUMIDITY_TARGET: 45,
+        },
+    )
+
+    state = await helper.poll_and_get_state()
+    assert state.state == "off"
+    assert state.attributes["hvac_action"] == "idle"
+
+
 def create_heater_cooler_service(accessory):
     """Define thermostat characteristics."""
     service = accessory.add_service(ServicesTypes.HEATER_COOLER)
diff --git a/tests/components/netatmo/test_device_trigger.py b/tests/components/netatmo/test_device_trigger.py
index 25b86f8410e..f7a3772b404 100644
--- a/tests/components/netatmo/test_device_trigger.py
+++ b/tests/components/netatmo/test_device_trigger.py
@@ -47,10 +47,10 @@ def calls(hass):
 @pytest.mark.parametrize(
     "platform,device_type,event_types",
     [
-        ("camera", "NOC", OUTDOOR_CAMERA_TRIGGERS),
-        ("camera", "NACamera", INDOOR_CAMERA_TRIGGERS),
-        ("climate", "NRV", CLIMATE_TRIGGERS),
-        ("climate", "NATherm1", CLIMATE_TRIGGERS),
+        ("camera", "Smart Outdoor Camera", OUTDOOR_CAMERA_TRIGGERS),
+        ("camera", "Smart Indoor Camera", INDOOR_CAMERA_TRIGGERS),
+        ("climate", "Smart Valve", CLIMATE_TRIGGERS),
+        ("climate", "Smart Thermostat", CLIMATE_TRIGGERS),
     ],
 )
 async def test_get_triggers(
@@ -105,15 +105,15 @@ async def test_get_triggers(
 
 @pytest.mark.parametrize(
     "platform,camera_type,event_type",
-    [("camera", "NOC", trigger) for trigger in OUTDOOR_CAMERA_TRIGGERS]
-    + [("camera", "NACamera", trigger) for trigger in INDOOR_CAMERA_TRIGGERS]
+    [("camera", "Smart Outdoor Camera", trigger) for trigger in OUTDOOR_CAMERA_TRIGGERS]
+    + [("camera", "Smart Indoor Camera", trigger) for trigger in INDOOR_CAMERA_TRIGGERS]
     + [
-        ("climate", "NRV", trigger)
+        ("climate", "Smart Valve", trigger)
         for trigger in CLIMATE_TRIGGERS
         if trigger not in SUBTYPES
     ]
     + [
-        ("climate", "NATherm1", trigger)
+        ("climate", "Smart Thermostat", trigger)
         for trigger in CLIMATE_TRIGGERS
         if trigger not in SUBTYPES
     ],
@@ -183,12 +183,12 @@ async def test_if_fires_on_event(
 @pytest.mark.parametrize(
     "platform,camera_type,event_type,sub_type",
     [
-        ("climate", "NRV", trigger, subtype)
+        ("climate", "Smart Valve", trigger, subtype)
         for trigger in SUBTYPES
         for subtype in SUBTYPES[trigger]
     ]
     + [
-        ("climate", "NATherm1", trigger, subtype)
+        ("climate", "Smart Thermostat", trigger, subtype)
         for trigger in SUBTYPES
         for subtype in SUBTYPES[trigger]
     ],
@@ -262,7 +262,7 @@ async def test_if_fires_on_event_with_subtype(
 
 @pytest.mark.parametrize(
     "platform,device_type,event_type",
-    [("climate", "NAPLUG", trigger) for trigger in CLIMATE_TRIGGERS],
+    [("climate", "NAPlug", trigger) for trigger in CLIMATE_TRIGGERS],
 )
 async def test_if_invalid_device(
     hass, device_reg, entity_reg, platform, device_type, event_type