I am using the built-in Kasa integration and everything works fine.
I am trying to get a physical event on an HS200, but all events come in as digital, whether triggered from the hub or not. I was expecting a behaviour similar to the Lutron integration (where it guesses "physical" for any even not originating from the hub).
Many drivers do it simply by setting a state variable when the on/off commands are issued from the hub, then you can assume the next state change is digital. Anything else defaults to physical.