I used lvm with SSD cache few years, but time to time I have problems with loads after reboot. If forgot about reboots all work great with LVM raid + LVM cache. Cache can be configured without raid. And you can add or remove cache in any time. Docs: https://man.archlinux.org/man/lvmcache.7
The industry has not acquired a single standard by now. In this regard, there are many different devices on different protocols. Many manufacturers generally link their devices only to their own cloud.
Of the popular open standards, I would recommend zigbee. But in order for the device to be correctly identified, its sensors and parameters must be supported by the server. Zigbee2MQTT is a good choice. I use it myself. But the compatibility is not complete and you need to check the support on the developer’s website ( https://www.zigbee2mqtt.io/supported-devices/ ) or buy one device for the test.
I recommend Tuya company. I have about 12 switches from this company and they work pretty well with zigbee2mqtt.
The complete scheme is as follows: zigbee device <-> radio channel <-> zigbee coordimator <-> zigbee2mqtt <-> mqtt <-> homeassistant. For connect devices to zigbee2mqtt you need coordinator. SONOFF ZBDongle-E for example. Add zigbee routers if you have big square. If you server not in good place you can use wifi2zigbee coordinator. HamGeek poe zigbee 3.0 for example.