Skip to content
Snippets Groups Projects
Commit 0a582068 authored by René Schöne's avatar René Schöne
Browse files

Add manual mqtt message sending.

parent d8239c61
No related branches found
No related tags found
No related merge requests found
/venv/ /venv/
/.idea/ /.idea/
/__pycache__/
...@@ -76,6 +76,19 @@ app.layout = html.Div([ ...@@ -76,6 +76,19 @@ app.layout = html.Div([
rows=50, rows=50,
style={'width': '100%', 'height': '200px', 'font-family': 'Consolas, monospace'} style={'width': '100%', 'height': '200px', 'font-family': 'Consolas, monospace'}
), ),
dcc.Markdown("---"),
html.Div([
# html.Div([
html.P("Topic"),
dcc.Input(id='manual-mqtt-topic'),
html.P("Message"),
dcc.Input(id='manual-mqtt-message'),
# dcc.Textarea(id='manual-mqtt-message', style={'width': '50%', 'font-family': 'Consolas, monospace'}),
html.Button('Send', id='manual-mqtt-send')
# ], className="six columns"),
], className='row'),
# -- Invisible elements --
dcc.Interval( dcc.Interval(
id='every-1-second', id='every-1-second',
interval=1000, # in milliseconds interval=1000, # in milliseconds
...@@ -132,6 +145,17 @@ def button_clicked_to_add_to_mqtt_log(*_): ...@@ -132,6 +145,17 @@ def button_clicked_to_add_to_mqtt_log(*_):
return dash.no_update return dash.no_update
@app.callback(
Output('manual-mqtt-topic', 'value'),
Input('manual-mqtt-send', 'n_clicks'),
State('manual-mqtt-topic', 'value'),
State('manual-mqtt-message', 'value'),
)
def send_manual(n_clicks, topic, message):
if n_clicks:
mqttc.publish(topic=topic, payload=message)
def on_mqtt_connect(_client, _userdata, _flags, _rc, _properties=None): def on_mqtt_connect(_client, _userdata, _flags, _rc, _properties=None):
print('Connected at ' + datetime.datetime.now().isoformat()) print('Connected at ' + datetime.datetime.now().isoformat())
ready_event.set() ready_event.set()
...@@ -141,7 +165,7 @@ def on_mqtt_message(_client, _userdata, message): ...@@ -141,7 +165,7 @@ def on_mqtt_message(_client, _userdata, message):
max_mqtt_topic_length = max_topic.process_topic(message.topic) max_mqtt_topic_length = max_topic.process_topic(message.topic)
message_queue.put_nowait(utils.format_log_msg(message.topic, message_queue.put_nowait(utils.format_log_msg(message.topic,
max_mqtt_topic_length, max_mqtt_topic_length,
message.payload.decode("utf-8"))) message.payload.decode("utf-8")).replace("\n", " ~ "))
def publish_test_message(): def publish_test_message():
......
...@@ -28,6 +28,7 @@ def format_log_msg(topic: str, max_mqtt_topic_length: int, message: str, timesta ...@@ -28,6 +28,7 @@ def format_log_msg(topic: str, max_mqtt_topic_length: int, message: str, timesta
def parse_log_msg(entry: str): def parse_log_msg(entry: str):
print("Parsing >", entry, "<")
at_index = entry.index('@') at_index = entry.index('@')
closing_bracket_index = entry.index(']') closing_bracket_index = entry.index(']')
return entry[1:at_index].strip(), entry[at_index + 1:closing_bracket_index].strip(), entry[closing_bracket_index+2:] return entry[1:at_index].strip(), entry[at_index + 1:closing_bracket_index].strip(), entry[closing_bracket_index+2:]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment