I have several responses:
a. running faster using the pi. not necessarily. But difference is not noticeable (usually). SmartThings does not run non-zigbee/z-wave devices locally. For the TP–Link devices, Paths:
Cloud: Phone -> ST Cloud -> Kasa Cloud -> device -> Kasa Cloud -> ST Cloud -> Phone
Node App: Phone -> ST Cloud -> ST Hub -> Node.js -> device -> Node.js -> ST Hub -> ST Cloud -> Phone
b. polling interval can be set in the preferences down to once per minute. That is the lowest periodic command available. There is another way by chaining ‘runIn’ commands but it is NOT recommended. If it ever fails, the command will fail and not run further. Another item is that each poll is a load on the ST Cloud with all the current users. Some more at bottom.
c. Advantage of the pi integration: With the pi integration, you can be off the TP-LInk cloud by switching the devices to remote control (local control) in the Kasa App. Some like that since TP-Link is a Chinese company with associated security perceptions (not saying there are any issues, just a perception).
TP-Link Integration Control and Status design
If a command is sent from the phone (i.e., on, off, or bulb states), the design will
a. Send the command
b. On receipt of a response, send a Refresh Command
c. Update the state based on the Refresh Command.
If someone controls the device via the Kasa App, the device will
a. NOT immediately know what has occurred.
b. Catch the change on the next refresh cycle (default time is every 10 minutes. The user can modify to 1, 5, 10, or 15 minutes in preferences
Amazon integration. If you have implemented SmartThings to Amazon integration, the update of the status is almost immediate. Essentially, it is the equivalent of the user controlling the device via their phone. EXCEPTION: If you have the Kasa Skill enabled in Amazon as well as the Amazon integration, some confusion can be caused and the Kasa Skill used to change the device state. Recommend that you disable the Kasa Skill if there all of your Kasa devices are controlled via SmartThings and you have the ST to Amazon interface implemented.
External Refresh. The refresh command is externally available to any SmartApp that has linked to the device. You could author a smartApp or other method to link to the device and then poll as frequently as you desire. Might be useful for the HS-100 for the external “getPower” command to look for a rise or drop in power level to cue notifications or other events.
Finally, the major cause of slow-down in the interface is (in my experieice) the final SmartThings to phone communications. I believe that ST cloud prioritizes device commands over status updates to the phones. Makes sense and explains what I occasionally see on the interface. (Note: I am transition off of SmartThings to Hubitat; however, I will still provide support here.)