Reputation: 41
some help please :) I just started to play with MQTT in python. When I run the following program:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("watchdog/#")
def on_message(client, userdata, msg):
message = str(msg.payload)
print(msg.topic+" "+message)
client = mqtt.Client()
client.username_pw_set('XXXX', password='XXXXXXX')
client.on_connect = on_connect
client.on_message = on_message
client.connect("XXXX", XXXXX, 60)
client.loop_forever()
the payload always have the following text:
b'XXX'
XXX is the message, but the b' ' part ALWAYS appear. once i open the same message on off the shelf client, the message is fine... so i assume the problem is in the code, but i cannot find where.
any help or directions?
thanks!
Upvotes: 4
Views: 1476
Reputation: 51
As Moses Koledoye says, b is for bytes - this means that what you are printing is the string version of a set of bytes. If you changed the str(msg.payload) to simply msg.payload, you will get a different output.
But you haven't talked about what the message payload is, so you may still get gibberish out printing the msg.payload. For example, if the message being sent is actually a string of bytes...
Upvotes: 1