device refactored

This commit is contained in:
2023-01-28 14:28:07 +01:00
parent ad21e10686
commit 30a8fe0732
2 changed files with 88 additions and 5 deletions

View File

@@ -9,8 +9,9 @@ import struct
def mqttOnConnectCallback(client, userdata, flags, rc):
logger.info("mqtt connected")
client.subscribe(config['MQTT_IN_TOPIC'])
logger.info(f"subscribed to {config['MQTT_IN_TOPIC']}")
mqtt_in_topic = f"v3/{config['APPLICATION_TENANT']}/devices/+/up"
client.subscribe(mqtt_in_topic)
logger.info(f"subscribed to {mqtt_in_topic}")
def mqttOnMessageCallback(client, userdata, message):
try:
@@ -18,13 +19,14 @@ def mqttOnMessageCallback(client, userdata, message):
payload = message.payload
logger.debug(f"mqtt message received: {topic} -> {payload}")
parse_payload = json.loads(payload)
device_id = parse_payload['end_device_ids']['device_id']
frame = base64.b64decode(parse_payload['uplink_message']['frm_payload'])
logger.info(f"{frame=}")
status = struct.unpack('<H', frame[0:2])[0]
logger.info(f"{status=}")
if (status == 4):
logger.info("Start up message received")
logger.info(f"Start up message received from {device_id}")
# send downlink message with labels
sensor_addrs = []
for i in range(0, 4):
@@ -34,7 +36,7 @@ def mqttOnMessageCallback(client, userdata, message):
logger.debug(f"sensor {i}: 0x{sensor_addrs[i]:016x}")
else:
logger.info("Regular message received")
logger.info(f"Regular message received from {device_id}")
# continue to parse and process message
sensor_addrs = []
sensor_values = []
@@ -63,7 +65,7 @@ REQUIRED_CONFIG_OPTIONS = [
'MQTT_BROKER',
'MQTT_PORT',
'MQTT_CA',
'MQTT_IN_TOPIC'
'APPLICATION_TENANT'
]
config = {}