on_publish и on_message paho mqtt

есть вот такой код. Сначала устанавливаю соединение mqtt.connect() потом подписываюсь на топики, если подключение прошло успешно запускаю telebot. Все отлично работает, но когда я публикую сообщение срабатывает on_message и мое сообщение пересылается мне обратно в бота, вопрос: как этого избежать?

Заранее спасибо!

import paho.mqtt.client as mqtt
import telebot
import sys
import time


client = mqtt.Client()
mqtt_options = {'username': "main_client", 'password': "__", 'host': "__", 'port': 1883, 'topics': ["send_data"]} 

client.username_pw_set(mqtt_options['username'], mqtt_options['password'])


bot = telebot.TeleBot("__")

chatId = '__'

def on_connect(client, userdata, flags, rc):
    print ("Connected!"  + str(rc))

    for topic in mqtt_options['topics']:
      client.subscribe(topic)
    
def on_message(client, userdata, message):
  print("message received  ", str(message.payload.decode("utf-8")), "topic",message.topic,"retained ",message.retain, 'mid', message.mid)
    
  if message.retain == 1:
      print("This is a retained message")

  bot.send_message(chatId, message.payload)    

def on_publish(client,userdata,result):          
    print("data published \n")  

client.on_connect = on_connect
client.on_message = on_message 
client.on_publish = on_publish

try:
  client.connect(mqtt_options['host'] , mqtt_options['port'])
except TypeError:
  client.disconnect()
  print("Connection error")
  sys.exit(0)

@bot.message_handler(content_types=['text'])
def send(message):
  client.publish('send_data', message.text)


while True:
  client.loop_start()
  bot.polling()
    

Ответы (0 шт):