Values not persistent/remaining when changed in custom device

I’m attempting to write a device handler for some RGB strips. In order to control them from other sources (like google home, etc) I’m implementing the “brightness” slider (switch.level) as a “mode select”, ie, user picks 5% brightness, it tells the RGB strip to use light mode 5. This is all working fine. Each mode has text associated with it for the user to know which mode they’ve chosen (example “Flashing”, “Fade”, etc).

What I can’t solve is the following: the slider is not staying updated when changed. Using livelogging I’m positive that everything’s being done correctly in the background. Checking the device in the IDE shows the values being changed immediately. But in the app, nothing changes. I have to exit the device, then go back into the device’s detail page for it to update (it shows the old values for a moment, then updates).

This wasn’t happening earlier. I don’t know what I changed (or if it was even my changes) that causes the device screen not to update.

Is there a way to force the device page to update? For instance after the user selects a new number, can I force a refresh so that the slider shows its new value and my text box shows the “name” of the mode?

Again, it all works if I let it eventually update (either waiting a long time, or going out then back into the device screen).