У меня есть Rspi с MQTT Paho Client. Я реализовал on_connect () ... on_diconnect () ... mqtt_service (), чтобы подписаться на topi c, установить sh соединение с брокером и сделать все oop .start и while1
client.loop_start()
# client.loop_forever() 19/12/19 Du coup si on veux lire les Inputs fo fair un loop
print("> client.connected_flag= ", client.connected_flag, ".")
print("> client.bad_connection_flag= ", client.bad_connection_flag, ".")
while not client.connected_flag and not client.bad_connection_flag: #wait coonnection to broker .. usefull ??
Print_savelog("[mqtt_service]: In wait loop to connect")
time.sleep(1)
Print_savelog('[mqtt_service]: client.connected_flag = ', client.connected_flag)
Print_savelog('[mqtt_service]: client.bad_connection_flag = ', client.bad_connection_flag)
if client.bad_connection_flag: # 20/12/19 PEUT etre là que ca ne reconnecte pas suite à coupure de jus et pas encore internet
Print_savelog("[mqtt_service]: aaa")
client.loop_stop() #Stop loop
sys.exit()
while 1:
if (rx_en_crs==0):
print("In the MQTT LOOP")
toto.chk_position()
#Print_savelog('> position [chk_position]2 = ', var.position_en_crs)
#print(">2 var.position_ancienne = ", var.position_ancienne, ".")
#print(">2 var.position_en_crs = ", var.position_en_crs, ".")
if ( (client.connected_flag == False) and (client.bad_connection_flag == True) ):
Print_savelog('[mqtt_service]: into connected_flag=false & bad_connection_flag=true')
if (var.position_ancienne!=var.position_en_crs ):
Print_savelog('[mqtt_service]: > PUBLISHING position = ', var.position_en_crs)
client.publish("mo/portail/position_portail",var.position_en_crs,1, True)
var.position_ancienne=var.position_en_crs
time.sleep(1)
else:
rx_en_crs=rx_en_crs
Иногда есть некоторое отключение [on_disconnect] по причине 1 ?? (я не знаю почему ...) Клиенту удалось выполнить переподключение [on_connect] с результатом 0. Но после этого невозможно получить какие-либо входящие Topi c.
. Мне нужно перезапустить вручную l oop ?? потому что переподключение является автоматическим c, но не l oop ??
Есть идеи?