* Add support for multiple mbus devices in dsmr
A dsmr meter can have 4 mbus devices.
Support them all and also add support for a water meter on the mbus
device.
* Apply suggestions from code review
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Rewrite old gas sensor to new mbus sensor
* No force updates + fix mbus entity unique_id
* Remove old gas device
* Add additional tests
* Fix remarks from last review + move migrated 5b gas meter to new device_id
* Fix ruff error
* Last fixes
---------
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Fix 5B Gas meter in dsmr
In commit 1b73219 the gas meter broke for 5B.
As the change can't be reverted easily without removing the peak usage
sensors, we implement a workaround.
The first MBUS_METER_READING2 value will contain the gas meter data just
like the previous BELGIUM_5MIN_GAS_METER_READING did.
But this without the need to touch dsmr_parser (version).
Fixes: #103306, #103293
* Use parametrize
* Apply suggestions from code review
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Add additional tests + typo fix
---------
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
* Withing trigger a call to coordinator after init
* Stop discovery task on STOP event
* Stop dsmr connection task on STOP
* Use autospec in modem_serial tests
close on AioSerial is non async, and should not be mocked as a coroutine
* Make sure responder is specced correctly
tests/components/emulated_hue/test_init.py::test_setup_works
/Users/joakim/src/hass/home-assistant/homeassistant/components/emulated_hue/__init__.py:119: RuntimeWarning: coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
protocol.close()
* Don't assume Pymodbus is the only thing logging
* Use gather instead of wait
```
homeassistant/components/homeassistant/__init__.py:208: DeprecationWarning: The explicit passing of coroutine objects to asyncio.wait() is deprecated since Python 3.8, and scheduled for removal in Python 3.11.
```
* Increase wait time for automation tests
Assuming exit within 1 seconds is unreasonable on a potentially loaded
test machine.
* Avoid changing app state after startup
* Fix exception when shutting down DSMR
* Update homeassistant/components/dsmr/sensor.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add support for Swedish smart electricity meters to DSMR
* Use Swedish protocol support from dsmr_parser
* Update tests
* Bump dsmr_parser to 0.30
* Remove last_reset attribute from Swedish energy sensors