1
|
import logging
|
2
|
|
3
|
from paho.mqtt.client import MQTTMessage
|
4
|
|
5
|
from aswi2021vochomurka.model.Message import Message
|
6
|
|
7
|
|
8
|
class ParseException(Exception):
|
9
|
pass
|
10
|
|
11
|
|
12
|
def parse_mqtt_message(message: MQTTMessage) -> Message:
|
13
|
data = message.payload.decode("utf-8")
|
14
|
parts = data.split(";")
|
15
|
logging.debug('Parsing message: ' + data + ', parts: ' + str(len(parts)))
|
16
|
if len(parts) != 4:
|
17
|
raise ParseException
|
18
|
|
19
|
try:
|
20
|
return Message(
|
21
|
message.topic,
|
22
|
int(parts[2]),
|
23
|
parts[0],
|
24
|
parts[1],
|
25
|
float(parts[3])
|
26
|
)
|
27
|
except Exception as error:
|
28
|
raise ParseException from error
|