Repository: plugwise/python-plugwise (language: python)

Issue:
Bump radon from 5.1.0 to 6.0.1
Bumps [radon](https://github.com/rubik/radon) from 5.1.0 to 6.0.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/rubik/radon/blob/master/CHANGELOG">radon's changelog</a>.</em></p>
<blockquote>
<h2>6.0.1 (Mar 26, 2023)</h2>
<ul>
<li>Prevent tomllib error when the <code>toml</code> module is not available</li>
</ul>
<h2>6.0.0 (Mar 26, 2023)</h2>
<ul>
<li>Fix typo in changelog, by <a href="https://github.com/cclauss"><code>@​cclauss</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/229">#229</a></li>
<li>Add support for <code>match</code> pattern in Python 3.10+, by <a href="https://github.com/DolajoCZ"><code>@​DolajoCZ</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/227">#227</a></li>
<li>Fix typo in Markdown export, reported by <a href="https://github.com/huornlmj"><code>@​huornlmj</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/231">#231</a></li>
<li>Remove unnecessary &quot;future&quot; dependency, by <a href="https://github.com/mgorny"><code>@​mgorny</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/234">#234</a></li>
<li>Add <code>pyproject.toml</code> support, by <a href="https://github.com/ajslater"><code>@​ajslater</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/236">#236</a></li>
<li>Allow Mando v0.7.1, by <a href="https://github.com/ajslater"><code>@​ajslater</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/237">#237</a></li>
<li>Fix HCHarvester JSON results format, by <a href="https://github.com/benabel"><code>@​benabel</code></a>: <a href="https://redirect.github.com/rubik/radon/issues/240">#240</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/rubik/radon/commit/5061d86a649223bdc5490c5dcc113743cc5b47f5"><code>5061d86</code></a> chore(release): bump to v6.0.1</li>
<li><a href="https://github.com/rubik/radon/commit/1be986d219f7ea5419f685e3ebacb42ec0f589fd"><code>1be986d</code></a> fix: tomllib name error when not supported</li>
<li><a href="https://github.com/rubik/radon/commit/864c4610b04c8b1211bd7142d4f938210f19f888"><code>864c461</code></a> chore(release): bump to v6.0.0</li>
<li><a href="https://github.com/rubik/radon/commit/e6e5152073970407423f9cef5ccd971d555f26f3"><code>e6e5152</code></a> chore: add pyproject.toml and poetry.lock</li>
<li><a href="https://github.com/rubik/radon/commit/786ac37f60fccfd564ed3709ece999ea21c87aef"><code>786ac37</code></a> fix: tests across versions</li>
<li><a href="https://github.com/rubik/radon/commit/a2359cef956ca44389f1f55db527c37a786bbffd"><code>a2359ce</code></a> chore: improve documentation around pyproject.toml usage</li>
<li><a href="https://github.com/rubik/radon/commit/5f65de3c655cf0ce96080b636402afcda5526a8f"><code>5f65de3</code></a> feat: pyproject.toml support (<a href="https://redirect.github.com/rubik/radon/issues/236">#236</a>)</li>
<li><a href="https://github.com/rubik/radon/commit/4ac025c82b81cbb366019c21161ecfd8ca7f3b28"><code>4ac025c</code></a> feat: add support for match pattern (<a href="https://redirect.github.com/rubik/radon/issues/227">#227</a>)</li>
<li><a href="https://github.com/rubik/radon/commit/84db76719de98259e09cacd33953ab786b4ac283"><code>84db767</code></a> chore: mando 0.7 support (<a href="https://redirect.github.com/rubik/radon/issues/237">#237</a>)</li>
<li><a href="https://github.com/rubik/radon/commit/27b78d1a266b8c788b39dd0a74bc8c7b3075bfa0"><code>27b78d1</code></a> fix: HCHarvester JSON results format (<a href="https://redirect.github.com/rubik/radon/issues/240">#240</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/rubik/radon/compare/v5.1.0...v6.0.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=radon&package-manager=pip&previous-version=5.1.0&new-version=6.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>


Discussion / hints:

Fix patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b98b2cba6..e1a804761 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,7 @@
 # Changelog
 
+# v0.18.3: Smile: move solution for pw-beta #280 into backend
+
 # v0.18.2: Smile: fix for https://github.com/plugwise/python-plugwise/issues/187
 
 # v0.18.1: Smile Adam: don't show vacation-preset, as not shown in the Plugwise App or on the local Adam-website
diff --git a/plugwise/__init__.py b/plugwise/__init__.py
index a431d5154..3e759c565 100644
--- a/plugwise/__init__.py
+++ b/plugwise/__init__.py
@@ -1,6 +1,6 @@
 """Plugwise module."""
 
-__version__ = "0.18.2"
+__version__ = "0.18.3"
 
 from plugwise.smile import Smile
 from plugwise.stick import Stick
diff --git a/plugwise/smile.py b/plugwise/smile.py
index 37a548abc..abccc98bc 100644
--- a/plugwise/smile.py
+++ b/plugwise/smile.py
@@ -482,10 +482,18 @@ async def _set_schedule_state_legacy(self, name: str, status: str) -> None:
 
         await self._request(uri, method="put", data=data)
 
-    async def set_schedule_state(self, loc_id: str, name: str, state: str) -> None:
-        """Set the Schedule, with the given name, on the relevant Thermostat.
+    async def set_schedule_state(
+        self, loc_id: str, name: str | None, state: str
+    ) -> None:
+        """Activate/deactivate the Schedule, with the given name, on the relevant Thermostat.
         Determined from - DOMAIN_OBJECTS.
+        In HA Core used to set the hvac_mode: in practice switch between schedule on - off.
         """
+        # Do nothing when name == None, meaning no schedule to activate / deactivate
+        # Also, don't show an error, as doing nothing is the correct action in this scenario.
+        if name is None:
+            return
+
         if self._smile_legacy:
             await self._set_schedule_state_legacy(name, state)
             return


Test patch:
diff --git a/tests/test_smile.py b/tests/test_smile.py
index 75928607f..7fd6849f4 100644
--- a/tests/test_smile.py
+++ b/tests/test_smile.py
@@ -458,48 +458,53 @@ async def tinker_switch(
         """Turn a Switch on and off to test functionality."""
         _LOGGER.info("Asserting modifying settings for switch devices:")
         _LOGGER.info("- Devices (%s):", dev_id)
-        switch_change = False
+        tinker_switch_passed = False
         for new_state in [False, True, False]:
             _LOGGER.info("- Switching %s", new_state)
             try:
                 await smile.set_switch_state(dev_id, members, model, new_state)
-                switch_change = True
+                tinker_switch_passed = True
             except pw_exceptions.PlugwiseError:
                 _LOGGER.info("  + locked, not switched as expected")
             except (
                 pw_exceptions.ErrorSendingCommandError,
                 pw_exceptions.ResponseError,
             ):
-                switch_change = False
+                tinker_switch_passed = False
                 if unhappy:
                     _LOGGER.info("  + failed as expected")
                 else:  # pragma: no cover
                     _LOGGER.info("  - failed unexpectedly")
                     raise self.UnexpectedError
-        return switch_change
+        return tinker_switch_passed
 
     @pytest.mark.asyncio
     async def tinker_thermostat_temp(self, smile, loc_id, unhappy=False):
         """Toggle temperature to test functionality."""
         _LOGGER.info("Asserting modifying settings in location (%s):", loc_id)
+        tinker_temp_passed = False
         for new_temp in [20.0, 22.9]:
             _LOGGER.info("- Adjusting temperature to %s", new_temp)
             try:
                 await smile.set_temperature(loc_id, new_temp)
+                tinker_temp_passed = True
                 _LOGGER.info("  + worked as intended")
             except (
                 pw_exceptions.ErrorSendingCommandError,
                 pw_exceptions.ResponseError,
             ):
+                tinker_temp_passed = False
                 if unhappy:
                     _LOGGER.info("  + failed as expected")
                 else:  # pragma: no cover
                     _LOGGER.info("  - failed unexpectedly")
                     raise self.UnexpectedError
+        return tinker_temp_passed
 
     @pytest.mark.asyncio
     async def tinker_thermostat_preset(self, smile, loc_id, unhappy=False):
         """Toggle preset to test functionality."""
+        tinker_preset_passed = False
         for new_preset in ["asleep", "home", "!bogus"]:
             warning = ""
             if new_preset[0] == "!":
@@ -508,6 +513,7 @@ async def tinker_thermostat_preset(self, smile, loc_id, unhappy=False):
             _LOGGER.info("%s", f"- Adjusting preset to {new_preset}{warning}")
             try:
                 await smile.set_preset(loc_id, new_preset)
+                tinker_preset_passed = True
                 _LOGGER.info("  + worked as intended")
             except pw_exceptions.PlugwiseError:
                 _LOGGER.info("  + found invalid preset, as expected")
@@ -515,26 +521,33 @@ async def tinker_thermostat_preset(self, smile, loc_id, unhappy=False):
                 pw_exceptions.ErrorSendingCommandError,
                 pw_exceptions.ResponseError,
             ):
+                tinker_preset_passed = False
                 if unhappy:
                     _LOGGER.info("  + failed as expected")
                 else:  # pragma: no cover
                     _LOGGER.info("  - failed unexpectedly")
                     raise self.UnexpectedError
+        return tinker_preset_passed
 
     @pytest.mark.asyncio
     async def tinker_thermostat_schedule(
         self, smile, loc_id, state, good_schedules=None, unhappy=False
     ):
+        tinker_schedule_passed = False
         if good_schedules != []:
-            good_schedules.append("!VeryBogusScheduleNameThatNobodyEverUsesOrShouldUse")
+            if good_schedules != [None]:
+                good_schedules.append(
+                    "!VeryBogusScheduleNameThatNobodyEverUsesOrShouldUse"
+                )
             for new_schedule in good_schedules:
                 warning = ""
-                if new_schedule[0] == "!":
+                if new_schedule is not None and new_schedule[0] == "!":
                     warning = " Negative test"
                     new_schedule = new_schedule[1:]
                 _LOGGER.info("- Adjusting schedule to %s", f"{new_schedule}{warning}")
                 try:
                     await smile.set_schedule_state(loc_id, new_schedule, state)
+                    tinker_schedule_passed = True
                     _LOGGER.info("  + found invalid schedule, as intended")
                 except pw_exceptions.PlugwiseError:
                     _LOGGER.info("  + failed as expected")
@@ -542,13 +555,14 @@ async def tinker_thermostat_schedule(
                     pw_exceptions.ErrorSendingCommandError,
                     pw_exceptions.ResponseError,
                 ):
+                    tinker_schedule_passed = False
                     if unhappy:
                         _LOGGER.info("  + failed as expected before intended failure")
                     else:  # pragma: no cover
                         _LOGGER.info("  - succeeded unexpectedly for some reason")
                         raise self.UnexpectedError
-        else:  # pragma: no cover
-            _LOGGER.info("- Skipping schedule adjustments")
+            return tinker_schedule_passed
+        _LOGGER.info("- Skipping schedule adjustments")  # pragma: no cover
 
     @pytest.mark.asyncio
     async def tinker_thermostat(
@@ -558,18 +572,20 @@ async def tinker_thermostat(
         if good_schedules is None:  # pragma: no cover
             good_schedules = ["Weekschema"]
 
-        await self.tinker_thermostat_temp(smile, loc_id, unhappy)
-        await self.tinker_thermostat_preset(smile, loc_id, unhappy)
-        await self.tinker_thermostat_schedule(
+        result_1 = await self.tinker_thermostat_temp(smile, loc_id, unhappy)
+        result_2 = await self.tinker_thermostat_preset(smile, loc_id, unhappy)
+        result_3 = await self.tinker_thermostat_schedule(
             smile, loc_id, "on", good_schedules, unhappy
         )
         if schedule_on:
-            await self.tinker_thermostat_schedule(
+            result_4 = await self.tinker_thermostat_schedule(
                 smile, loc_id, "off", good_schedules, unhappy
             )
-            await self.tinker_thermostat_schedule(
+            result_5 = await self.tinker_thermostat_schedule(
                 smile, loc_id, "on", good_schedules, unhappy
             )
+            return result_1 and result_2 and result_3 and result_4 and result_5
+        return result_1 and result_2 and result_3
 
     @staticmethod
     async def tinker_regulation_mode(smile):
@@ -660,18 +676,19 @@ async def test_connect_legacy_anna(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=[
                 "Thermostat schedule",
             ],
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=[
@@ -679,6 +696,7 @@ async def test_connect_legacy_anna(self):
             ],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -748,18 +766,19 @@ async def test_connect_legacy_anna_2(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=[
                 "Thermostat schedule",
             ],
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=[
@@ -767,6 +786,7 @@ async def test_connect_legacy_anna_2(self):
             ],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -928,23 +948,25 @@ async def test_connect_anna_v4(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "eb5309212bf5407bb143e5bfa3b18aee",
             schedule_on=False,
             good_schedules=["Standaard", "Thuiswerken"],
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "eb5309212bf5407bb143e5bfa3b18aee",
             schedule_on=False,
             good_schedules=["Standaard", "Thuiswerken"],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -1022,23 +1044,25 @@ async def test_connect_anna_v4_dhw(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "eb5309212bf5407bb143e5bfa3b18aee",
             schedule_on=False,
             good_schedules=["Standaard", "Thuiswerken"],
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "eb5309212bf5407bb143e5bfa3b18aee",
             good_schedules=["Standaard", "Thuiswerken"],
             schedule_on=False,
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -1065,23 +1089,25 @@ async def test_connect_anna_v4_no_tag(self):
 
         await self.device_test(smile, testdata)
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "eb5309212bf5407bb143e5bfa3b18aee",
             schedule_on=False,
             good_schedules=["Standaard", "Thuiswerken"],
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "eb5309212bf5407bb143e5bfa3b18aee",
             schedule_on=False,
             good_schedules=["Standaard", "Thuiswerken"],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -1145,19 +1171,21 @@ async def test_connect_anna_without_boiler_fw3(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile, "c34c6864216446528e95d88985e714cc", good_schedules=["Test", "Normal"]
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=["Test", "Normal"],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -1221,19 +1249,21 @@ async def test_connect_anna_without_boiler_fw4(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile, "c34c6864216446528e95d88985e714cc", good_schedules=["Test", "Normal"]
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=["Test", "Normal"],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -1297,19 +1327,21 @@ async def test_connect_anna_without_boiler_fw42(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile, "c34c6864216446528e95d88985e714cc", good_schedules=["Normal"]
         )
+        assert result
         await smile.close_connection()
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c34c6864216446528e95d88985e714cc",
             good_schedules=["Normal"],
             unhappy=True,
         )
+        assert not result
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -1419,9 +1451,10 @@ async def test_connect_adam_plus_anna(self):
         await self.device_test(smile, testdata)
         assert not self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile, "009490cc2f674ce6b576863fbb64f867", good_schedules=["Weekschema"]
         )
+        assert result
         switch_change = await self.tinker_switch(
             smile, "aa6b0002df0a46e1b1eb94beb61eddfe"
         )
@@ -1430,12 +1463,13 @@ async def test_connect_adam_plus_anna(self):
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "009490cc2f674ce6b576863fbb64f867",
             good_schedules=["Weekschema"],
             unhappy=True,
         )
+        assert not result
         switch_change = await self.tinker_switch(
             smile, "aa6b0002df0a46e1b1eb94beb61eddfe", unhappy=True
         )
@@ -1641,11 +1675,12 @@ async def test_connect_adam_plus_anna_new(self):
 
         await self.device_test(smile, testdata)
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "f2bf9048bef64cc5b6d5110154e33c81",
             good_schedules=["Weekschema", "Badkamer", "Test"],
         )
+        assert result
 
         switch_change = await self.tinker_switch(
             smile,
@@ -2055,12 +2090,14 @@ async def test_connect_adam_zone_per_device(self):
         assert "af82e4ccf9c548528166d38e560662a4" in self.notifications
         await smile.delete_notification()
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile, "c50f167537524366a5af7aa3942feb1e", good_schedules=["GF7  Woonkamer"]
         )
-        await self.tinker_thermostat(
+        assert result
+        result = await self.tinker_thermostat(
             smile, "82fa13f017d240daa0d0ea1775420f24", good_schedules=["CV Jessie"]
         )
+        assert result
         switch_change = await self.tinker_switch(
             smile, "675416a629f343c495449970e2ca37b5"
         )
@@ -2070,19 +2107,20 @@ async def test_connect_adam_zone_per_device(self):
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c50f167537524366a5af7aa3942feb1e",
             good_schedules=["GF7  Woonkamer"],
             unhappy=True,
         )
-
-        await self.tinker_thermostat(
+        assert not result
+        result = await self.tinker_thermostat(
             smile,
             "82fa13f017d240daa0d0ea1775420f24",
             good_schedules=["CV Jessie"],
             unhappy=True,
         )
+        assert not result
 
         try:
             await smile.delete_notification()
@@ -2474,12 +2512,14 @@ async def test_connect_adam_multiple_devices_per_zone(self):
 
         assert "af82e4ccf9c548528166d38e560662a4" in self.notifications
 
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile, "c50f167537524366a5af7aa3942feb1e", good_schedules=["GF7  Woonkamer"]
         )
-        await self.tinker_thermostat(
+        assert result
+        result = await self.tinker_thermostat(
             smile, "82fa13f017d240daa0d0ea1775420f24", good_schedules=["CV Jessie"]
         )
+        assert result
         switch_change = await self.tinker_switch(
             smile, "675416a629f343c495449970e2ca37b5"
         )
@@ -2488,18 +2528,22 @@ async def test_connect_adam_multiple_devices_per_zone(self):
         await self.disconnect(server, client)
 
         server, smile, client = await self.connect_wrapper(raise_timeout=True)
-        await self.tinker_thermostat(
+        result = await self.tinker_thermostat(
             smile,
             "c50f167537524366a5af7aa3942feb1e",
             good_schedules=["GF7  Woonkamer"],
             unhappy=True,
         )
-        await self.tinker_thermostat(
+        assert not result
+
+        result = await self.tinker_thermostat(
             smile,
             "82fa13f017d240daa0d0ea1775420f24",
             good_schedules=["CV Jessie"],
             unhappy=True,
         )
+        assert not result
+
         await smile.close_connection()
         await self.disconnect(server, client)
 
@@ -2719,6 +2763,14 @@ async def test_adam_plus_jip(self):
 
         await self.device_test(smile, testdata)
 
+        result = await self.tinker_thermostat(
+            smile,
+            "d58fec52899f4f1c92e4f8fad6d8c48c",
+            schedule_on=False,
+            good_schedules=[None],
+        )
+        assert result
+
         await smile.close_connection()
         await self.disconnect(server, client)