Skip to content

Commit

Permalink
Hotfix (#79)
Browse files Browse the repository at this point in the history
* fixing update again
  • Loading branch information
hjelev authored Feb 11, 2024
1 parent 4800899 commit adfc000
Showing 1 changed file with 28 additions and 13 deletions.
41 changes: 28 additions & 13 deletions src/rpi-cpu2mqtt.py
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ def on_connect(client, userdata, flags, rc):


def create_mqtt_client():
client = paho.Client(client_id="rpi-mqtt-monitor-" + hostname)
client = paho.Client(client_id="rpi-mqtt-monitor-" + hostname + str(int(time.time())))
client.username_pw_set(config.mqtt_user, config.mqtt_password)
client.on_log = on_log
client.on_connect = on_connect
Expand All @@ -355,7 +355,7 @@ def publish_update_status_to_mqtt(git_update):

client = create_mqtt_client()
if client is None:
return
print("Error: Unable to connect to MQTT broker")

client.loop_start()
if config.git_update:
Expand All @@ -367,7 +367,13 @@ def publish_update_status_to_mqtt(git_update):
if config.update:
if config.discovery_messages:
client.publish("homeassistant/update/" + hostname + "/config",
config_json('update'), qos=config.qos)
config_json('update'), qos=1)

# Wait for all messages to be delivered
while len(client._out_messages) > 0:
time.sleep(0.1)
client.loop()

client.loop_stop()
client.disconnect()

Expand Down Expand Up @@ -446,6 +452,9 @@ def publish_to_mqtt(cpu_load=0, cpu_temp=0, used_space=0, voltage=0, sys_clock_s
if config.discovery_messages:
client.publish("homeassistant/button/" + config.mqtt_topic_prefix + "/" + hostname + "_restart/config",
config_json('restart_button'), qos=config.qos)
while len(client._out_messages) > 0:
time.sleep(0.1)
client.loop()

client.loop_stop()
# disconnect from mqtt server
Expand All @@ -467,7 +476,11 @@ def bulk_publish_to_mqtt(cpu_load=0, cpu_temp=0, used_space=0, voltage=0, sys_cl

# publish monitored values to MQTT
client.publish(config.mqtt_topic_prefix + "/" + hostname, values, qos=config.qos, retain=config.retain)

while len(client._out_messages) > 0:
time.sleep(0.1)
client.loop()

client.loop_stop()
# disconnect from mqtt server
client.disconnect()

Expand Down Expand Up @@ -601,29 +614,31 @@ def on_message(client, userdata, msg):
args = parse_arguments();

if args.service:
client = create_mqtt_client()
if client is None:
print("Error: Unable to connect to MQTT broker")
sys.exit(1)

client.loop_start()
client = paho.Client()
client.username_pw_set(config.mqtt_user, config.mqtt_password)
client.on_message = on_message

try:
client.connect(config.mqtt_host, int(config.mqtt_port))
except Exception as e:
print("Error connecting to MQTT broker:", e)
sys.exit(1) # Exit the script

client.subscribe("homeassistant/update/" + hostname + "/command") # Replace with your MQTT topic
print("Listening to topic : " + "homeassistant/update/" + hostname + "/command")

client.loop_start() # Start the MQTT client loop in a new thread
# Start the gather_and_send_info function in a new thread
thread1 = threading.Thread(target=gather_and_send_info)
thread1.daemon = True # Set the daemon attribute to True
thread1.start()


if config.update:
# Start the update_status function in a new thread
thread2 = threading.Thread(target=update_status)
thread2.daemon = True # Set the daemon attribute to True
thread2.start()

client.loop_start() # Start the MQTT client loop in a new thread

# Check the exit flag in the main thread
while True:
if exit_flag:
Expand Down

0 comments on commit adfc000

Please sign in to comment.