Checked it on mine. Do you have a Device Label set for your device? The logging is doing:
logInfo "Switch for ${device.label} is ${value}"
logInfo "Level for ${device.label} is ${cmd.value}"
But I do not have any Device Label configured and so the true value for ${device.label} IS null (sounds like the same thing for yours).
So... working as intended, but not the prettiest.
UPDATED:
Mentioned the wrong developer name in here. This was by @codahq, sorry, it was right there in the listing but I have been talking to Bryan so much lately on other ones that I just automatically typed his handle.
The devices need labels. It's pretty much the standard for all apps and drivers to pull from the label. Some of them, as a courtesy, will pull from the name if there is no label (like the device page).
The name is meant to hold the model or description of what type of device it is. This is why the driver's "join" name goes in the name field. The label is specifically for the instance of the device or what the user wants to call it. Since Hubitat can't know what the user wants to call the device this is why the label is left blank. In my opinion it should be a required field at join but they would have to change the already fragile join process.
This is the a standard that is almost 100% adopted across ST and HE.