#!/usr/bin/python3
# ===================================================================
# test MSTT publish
#
# enter topic or subtopic followed by a value
# ===================================================================
from replace_commas_amd_split import *
import user_interface as ui
import paho.mqtt.client as mqtt
import re
broker = 'localhost'
instance = 'tom'
topic_default = 'light'
subtopic_root = '/test/house'
# ---- running Python3?
if not ui.running_python3():
print()
print('Must run Python3 - exit program')
print()
sys.exit()
# ---- display working environment
ui.clear_screen()
print()
print(f'Broker : {broker}')
print(f'topic_default: {topic_default}')
print(f'subtopic_root: {subtopic_root}')
print()
print(f'creating new client instance {instance}')
client = mqtt.Client(instance)
print(f'connecting to broker at {broker}')
client.connect(broker)
while True: # loop
# ---- get ueser input and verify it
print()
s = ui.get_user_input('Enter topic + value: ')
if not s: # empty string?
break
l = replace_commas_and_split(s)
if len(l) != 2:
print(f'Error: Bad input {s}')
continue
# ---- test if a topic or subtopic was entered?
if re.search('^/',l[0]):
tt = l[0] # topic
else:
tt = f'{subtopic_root}/{l[0]}' # subtopic
# ---- publish
print()
print(f'publish "{l[1]}" to "{tt}"')
client.publish(tt,l[1])