diff --git a/pi_mqtt_gpio/server.py b/pi_mqtt_gpio/server.py
index 5f725d1016c127651bbbeecd89ac084bcb7bec92..f16c68ac5e6a53e240e44b4ccd1fd20f68533411 100644
--- a/pi_mqtt_gpio/server.py
+++ b/pi_mqtt_gpio/server.py
@@ -155,13 +155,16 @@ def handle_set(msg):
     output_config = output_by_name(output_name)
     if output_config is None:
         return
-    if msg.payload not in (
+    payload = msg.payload.decode("utf8")
+    if payload not in (
             output_config["on_payload"], output_config["off_payload"]):
         _LOG.warning(
-            "Payload %r does not relate to configured on/off values.",
-            msg.payload)
+            "Payload %r does not relate to configured on/off values %r and %r",
+            payload,
+            output_config["on_payload"],
+            output_config["off_payload"])
         return
-    set_pin(output_config, msg.payload == output_config["on_payload"])
+    set_pin(output_config, payload == output_config["on_payload"])
 
 
 def handle_set_ms(msg, value):