Even though msg.payload is "(INP 8)", the switch node sends the message on. I tried the same thing with state on the Home Assistant node, and it never did the comparison correctly there either.
Here is the debug output showing the value of msg.payload.
What gives? It's just a simple string. I do string caparisons in switches elsewhere without a problem. Same for state.
For grins, I setup an inject node to send msg.payload = "(INP 8)". With that, it works. My guess now is there are either hidden characters in the state I'm receiving from my device, or there is a character set issue. How can I see that?
If I just wanted to check that particular string, I'd send it to a Write file node and then display the contents with od -bc filename (print as octal chars and printable/escape chars)