* Add toggle service to climate
* Fix mqtt test
* Add comments
* Fix rebase
* Remove not needed properties
* Fix toggle service
* Fix test
* Test
* Mod mqtt test
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Make context in data entry flow possible to modify for subclasses
* mypy
* Make get_context
* base view
* Review comments
* Remove context from options flow
* Add media player play file option
* Add media playback from HA
* Remove volume capability
* Add missing imports
* Apply suggestions from code review
* Update homeassistant/components/dunehd/media_player.py
* Apply suggestions from code review
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Fix recorder ws_info blocking the event loop
Fixes
```
2024-02-15 06:37:55.423 WARNING (MainThread) [asyncio] Executing <Task pending name=websocket_api.async:ws_info coro=<_handle_async_response() running at /usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py:26> wait_for=<_GatheringFuture pending cb=[Task.task_wakeup()] created at /usr/local/lib/python3.12/asyncio/tasks.py:712> cb=[set.remove()] created at /usr/src/homeassistant/homeassistant/core.py:653> took 0.332 seconds
```
* no instance did not actually work
fixes
```
File "/usr/src/homeassistant/homeassistant/components/elkm1/__init__.py", line 416, in _set_time_service
_getelk(service).panel.set_time(dt_util.now())
File "/usr/local/lib/python3.11/site-packages/elkm1_lib/panel.py", line 55, in set_time
self._connection.send(rw_encode(datetime))
File "/usr/local/lib/python3.11/site-packages/elkm1_lib/connection.py", line 152, in send
self._send(QueuedWrite(msg.message, msg.response_command), priority_send)
File "/usr/local/lib/python3.11/site-packages/elkm1_lib/connection.py", line 148, in _send
self._check_write_queue.set()
File "/usr/local/lib/python3.11/asyncio/locks.py", line 192, in set
fut.set_result(True)
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 763, in call_soon
self._check_thread()
File "/usr/local/lib/python3.11/asyncio/base_events.py", line 800, in _check_thread
raise RuntimeError(
RuntimeError: Non-thread-safe operation invoked on an event loop other than the current one
```
We only called format_mac on the mac address if we connected
to the device during entry creation. Since the format of the
mac address from DHCP discovery did not match the format saved
in the unique id, the IP would not get updated and a second
discovery would appear
Thankfully the creation path does format the mac so we did not
create any entries with an inconsistantly formatted unique id
fixes#110460