how to automate or verify smart home devices
Actually it depends on two things:
1- How the devices are calling each other. And whats is the main controller.
2- Whats you purpose of testing? Testing the devices themselves or testing the functionality of the control panel and softwares?
About CP and softwares:
If the system using API > Of course api-testing is required
If there are a panel and you can access it with browser> Using selenium for desktop and chromedriver for mobile browser
If there are a mobile app, using Appium
etc.
For the system itself, it is completely another field and responsibility of the electronic and robot engineers. And depends on hardwares. But the general way is I/O checking. Means that engineers check the input signal with device actions and vice-versa.
Hope this helps.
Automation of Smart Home devices 
To verify smart home devices like end-to-end (from mobile App to smart home devices).
what are the automation framework you suggests.

Mobile App - developed Appium with python and Robot
Product - REST
API calls.  Smart Devices - Verification of lights ON/OFF, color
change, etc

Can you please suggest or add any better methods to verify end-to-end.
EG: Image comparison, any other method.