diff --git a/pyatv/mrp/__init__.py b/pyatv/mrp/__init__.py
index e03f8790..26f85ffb 100644
--- a/pyatv/mrp/__init__.py
+++ b/pyatv/mrp/__init__.py
@@ -110,6 +110,8 @@ _FIELD_FEATURES = {
     FeatureName.Position: "elapsedTimeTimestamp",
 }  # type: Dict[FeatureName, str]
 
+DELAY_BETWEEN_COMMANDS = 0.1
+
 
 def _cocoa_to_timestamp(time):
     delta = datetime.datetime(2001, 1, 1) - datetime.datetime(1970, 1, 1)
@@ -527,6 +529,7 @@ class MrpPower(Power):
     async def turn_off(self, await_new_state: bool = False) -> None:
         """Turn device off."""
         await self.remote.home(InputAction.Hold)
+        await asyncio.sleep(DELAY_BETWEEN_COMMANDS)
         await self.remote.select()
 
         if await_new_state and self.power_state != PowerState.Off:

diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index c06a3e99..121c427b 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -23,6 +23,8 @@ jobs:
           - 3.9
     steps:
     - uses: actions/checkout@v2
+      with:
+        fetch-depth: 2
     - name: Set up Python ${{ matrix.python-version }}
       uses: actions/setup-python@v2
       with:
@@ -62,7 +64,7 @@ jobs:
       run: tox -q -p auto -e regression
       if: matrix.python-version == '3.8' && runner.os == 'Linux'
     - name: Upload coverage to Codecov
-      uses: codecov/codecov-action@v1.0.13
+      uses: codecov/codecov-action@v1.2.1
       with:
         token: ${{ secrets.CODECOV_TOKEN }}
         file: ./coverage.xml
diff --git a/tests/mrp/test_mrp_functional.py b/tests/mrp/test_mrp_functional.py
index 7cce3130..23f2493b 100644
--- a/tests/mrp/test_mrp_functional.py
+++ b/tests/mrp/test_mrp_functional.py
@@ -1,5 +1,6 @@
 """Functional tests using the API with a fake Apple TV."""
 
+import math
 import logging
 from ipaddress import IPv4Address
 from aiohttp.test_utils import unittest_run_loop
@@ -19,7 +20,7 @@ from pyatv.conf import AirPlayService, MrpService, AppleTV
 from pyatv.mrp.protobuf import CommandInfo_pb2
 
 from tests import common_functional_tests
-from tests.utils import until, faketime
+from tests.utils import until, faketime, stub_sleep
 from tests.fake_device import FakeAppleTV
 from tests.fake_device.mrp import APP_NAME, PLAYER_IDENTIFIER
 from tests.fake_device.airplay import DEVICE_CREDENTIALS
@@ -247,6 +248,7 @@ class MRPFunctionalTest(common_functional_tests.CommonFunctionalTests):
 
         # Check if power state changes after turn_off command
         await self.atv.power.turn_off()
+        assert math.isclose(stub_sleep(), 0.1)
         await until(lambda: self.atv.power.power_state == PowerState.Off)
         await until(lambda: listener.old_state == PowerState.On)
         await until(lambda: listener.new_state == PowerState.Off)

Since tvOS 14 turn_off SOMETIMES only open the lateral menu, maybe just timing issue...
Since tvOS 14 (I cannot easily know if it was already the case with 14.0.1, or even 14.0.0, but with tvOS 13 this issue never came into light), the turn_off command I send using atvremote sometimes only open the lateral menu, and don't validate the sleep command.

A simple select command works or a second turn_off does the job every time though.

System Setup:
 - OS: Mac OS X Mojave 10.14.6
 - Python: 3.8.3
 - pyatv: 0.7.5 (using atvremote)
- Apple TV: Apple TV 4 tvOS 14.0.2 build 18J411

tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_power_state
tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_always_available_features tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_basic_device_info tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_down tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_down_actions tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_home tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_left tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_left_actions tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_menu tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_menu_actions tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_next tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_pause tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_play tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_play_pause tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_previous tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_right tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_right_actions tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_select tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_select_actions tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_stop tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_suspend tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_top_menu tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_up tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_up_actions tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_volume_down tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_volume_up tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_button_wakeup tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_close_connection tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_connect_invalid_protocol tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_connect_missing_device_id tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_features_artwork tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_features_play_url tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_features_when_playing tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_features_with_supported_commands tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_invalid_airplay_credentials_format tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_invalid_credentials_format tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_item_id_hash tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_item_updates tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_artwork tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_artwork_cache tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_artwork_id tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_artwork_id_no_identifier tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_artwork_none_if_not_available tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_artwork_width_and_height tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_device_id tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_loading tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_music_paused tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_music_playing tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_none_type_when_not_playing tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_playback_rate_device_state tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_seeking tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_video_paused tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_metadata_video_playing tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_pair_missing_service tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_play_local_file tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_play_pause_emulation tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_play_url tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_play_url_authenticated tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_play_url_not_authenticated_error tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_playing_app tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_playing_immutable tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_power_state_acknowledgement tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_push_updater_active tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_push_updates tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_repeat_state tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_seek_in_playing_media tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_set_repeat tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_set_shuffle_albums tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_set_shuffle_common tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_shuffle_state_albums tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_shuffle_state_common tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_skip_forward_backward tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_update_client_before_setstate tests/mrp/test_mrp_functional.py::MRPFunctionalTest::test_volume_controls