Luis Moedinger
Luis Moedinger

Reputation: 41

paho MQTT on_message returning a funny message - python

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

Answers (1)

Jeff Lowrey
Jeff Lowrey

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

Related Questions