* Add default device class display precision for Sensor
* Renaming, docstrings, cleanup
* Simplify units list
* Fix tests
* Fix missing precision when suggested is specified
* Update snapshots
* Fix when unit of measurement is not valid
* Fix tests
* Fix deprecated unit usage
* Fix goalzero tests
The sensor native_value method was accessing the data dict and trowing,
since the mock did not have any data for the sensors.
Since now the precision is always specified (it was missing for those
sensors), the throw was hitting async_update_entity_options in _update_suggested_precision.
Previously, async_update_entity_options was not called since it had no
precision.
* Fix metoffice
* Fix smartthings
* Add default sensor data for Tesla Wall Connector tests
* Update snapshots
* Revert spaces
* Update smartthings snapshots
* Add missing sensor mock for tesla wall connector
* Address review comments
* Add doc comment
* Add cap to doc comment
* Update comment
* Update snapshots
* Update comment
* Improve error logging on invalid MQTT entity state
* Explain not hanlding TpeError and ValueError
* Move length check closer to source
* use _LOGGER.exception
* Only call `async_ha_write_state` on changes.
* Make helper class
* Use UndefinedType
* Remove del
* Integrate monitor into MqttEntity
* Track extra state attributes and availability
* Add `__slots__`
* Add monitor to MqttAttributes and MqttAvailability
* Write out loop
* Add test
* Make common test and parameterize
* Add test for last_reset attribute
* MqttMonitorEntity base class
* Rename attr and update docstr `track` method.
* correction doct
* Implement as a decorator
* Move tracking functions into decorator
* Rename decorator
* Follow up comment
* Set has_entity_name if device_name is set
* revert unneeded formatting change
* Add image platform
* Follow up comment
* Don't set `has_entity_name` without device name
* Only set has_entity_name if a valid name is set
* Follow device_class name and add tests
* Follow up comments add extra tests
* Move to helper - Log a warning
* fix test
* Allow to assign None as name explictly
* Refactor
* Log info messages when device name is not set
* Revert scene schema change - no device link
* Always set has_entity_name with device mapping
* Always set `_attr_has_entity_name`
* Cleanup
* Suppress ValueError on date parsing of MQTT sensor
* Simplify, but not update state on invalid payload
* Still raise an an invalid date
* Make datetime state unknown on invalid format
* remove unrelated added new line
* Apply MQTT fixture types on platform tests
* Add caplog type hint
* Add hass_ws_client type hint
* Add tmp_path type hint
* Add hass_client_no_auth type hint
* Allow `None` for numeric sensor, ignore empty val
* Add test case with omitting a value
* Use _numeric_state_expected property
* Only respect None if numeric state is expected