Activate LWT for mqtt-json mode
This commit is contained in:
parent
1b31d2aeb2
commit
7e12539166
|
@ -62,6 +62,7 @@ if reporting_mode == 'mqtt-json':
|
||||||
mqtt_client = mqtt.Client()
|
mqtt_client = mqtt.Client()
|
||||||
mqtt_client.on_connect = on_connect
|
mqtt_client.on_connect = on_connect
|
||||||
mqtt_client.on_publish = on_publish
|
mqtt_client.on_publish = on_publish
|
||||||
|
mqtt_client.will_set('{}/$announce'.format(topic_prefix), payload='{}', retain=True)
|
||||||
if config['MQTT'].get('username'):
|
if config['MQTT'].get('username'):
|
||||||
mqtt_client.username_pw_set(config['MQTT'].get('username'), config['MQTT'].get('password', None))
|
mqtt_client.username_pw_set(config['MQTT'].get('username'), config['MQTT'].get('password', None))
|
||||||
try:
|
try:
|
||||||
|
@ -74,9 +75,7 @@ if reporting_mode == 'mqtt-json':
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
mqtt_client.loop_start()
|
mqtt_client.loop_start()
|
||||||
sleep(0.5) # some slack to establish the connection
|
sleep(1.0) # some slack to establish the connection
|
||||||
mqtt_client.publish('{}/$announce'.format(topic_prefix), payload='{}', retain=True)
|
|
||||||
sleep(0.5) # some slack for the publish roundtrip and callback function
|
|
||||||
|
|
||||||
sd_notifier.notify('READY=1')
|
sd_notifier.notify('READY=1')
|
||||||
|
|
||||||
|
@ -102,9 +101,10 @@ for [name, mac] in config['Sensors'].items():
|
||||||
print()
|
print()
|
||||||
|
|
||||||
# Discovery Announcement
|
# Discovery Announcement
|
||||||
print('Announcing MiFlora devices to MQTT broker for auto-discovery ...')
|
if reporting_mode == 'mqtt-json':
|
||||||
flores_info = dict()
|
print('Announcing MiFlora devices to MQTT broker for auto-discovery ...')
|
||||||
for [flora_name, flora_poller] in flores.items():
|
flores_info = dict()
|
||||||
|
for [flora_name, flora_poller] in flores.items():
|
||||||
flora_info = dict()
|
flora_info = dict()
|
||||||
flora_info['mac'] = flora_poller._mac
|
flora_info['mac'] = flora_poller._mac
|
||||||
flora_info['topic'] = '{}/{}'.format(topic_prefix, flora_name)
|
flora_info['topic'] = '{}/{}'.format(topic_prefix, flora_name)
|
||||||
|
@ -112,8 +112,9 @@ for [flora_name, flora_poller] in flores.items():
|
||||||
flora_info['refresh'] = sleep_period
|
flora_info['refresh'] = sleep_period
|
||||||
flora_info['location'] = ''
|
flora_info['location'] = ''
|
||||||
flores_info[flora_name] = flora_info
|
flores_info[flora_name] = flora_info
|
||||||
mqtt_client.publish('{}/$announce'.format(topic_prefix), json.dumps(flores_info), retain=True)
|
mqtt_client.publish('{}/$announce'.format(topic_prefix), json.dumps(flores_info), retain=True)
|
||||||
sleep(0.5) # some slack for the publish roundtrip and callback function
|
sleep(0.5) # some slack for the publish roundtrip and callback function
|
||||||
|
print()
|
||||||
|
|
||||||
sd_notifier.notify('STATUS=Initialization complete, starting MQTT publish loop')
|
sd_notifier.notify('STATUS=Initialization complete, starting MQTT publish loop')
|
||||||
|
|
||||||
|
@ -153,6 +154,7 @@ while True:
|
||||||
sleep(sleep_period)
|
sleep(sleep_period)
|
||||||
print()
|
print()
|
||||||
else:
|
else:
|
||||||
|
print('Execution finished in non-daemon-mode.')
|
||||||
sd_notifier.notify('STATUS=Execution finished in non-daemon-mode')
|
sd_notifier.notify('STATUS=Execution finished in non-daemon-mode')
|
||||||
if reporting_mode == 'mqtt-json':
|
if reporting_mode == 'mqtt-json':
|
||||||
mqtt_client.disconnect()
|
mqtt_client.disconnect()
|
||||||
|
|
Loading…
Reference in New Issue