* Adjust FlowResult result type
* Adjust tests
* Adjust return_type
* Use StrEnum for base device_class
* Add test for device_class
* Add and use SentinelValues.DEVICE_CLASS
* Remove duplicate device_class
* Cleanup return-type
* Drop inheritance check from device_class
* Add caching for class methods
* Improve tests
* Adjust duplicate checks
* Adjust tests
* Fix rebase