1er commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
mqtt_config.json
|
||||
11
README.md
Normal file
11
README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Programme test MQTT
|
||||
|
||||
- S'abonne à un topic
|
||||
- Récupère la partie "data" du JSON
|
||||
- Parse et afficher les données encodées en Cayenne LPP puis en base64
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
- Copier le fichier mqtt_config_sample.json en mqtt_config.json
|
||||
- Éxécuter le script
|
||||
47
mqtt.py
Normal file
47
mqtt.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import paho.mqtt.client as mqtt
|
||||
import json
|
||||
import base64
|
||||
from cayennelpp import LppFrame
|
||||
import datetime
|
||||
|
||||
def on_connect(client, userdata, flags, rc):
|
||||
if rc == 0:
|
||||
print("Connected to MQTT broker")
|
||||
client.subscribe(topic)
|
||||
else:
|
||||
print("Failed to connect, return code %d\n", rc)
|
||||
|
||||
def on_message(client, userdata, message):
|
||||
#print("Received message: ", str(message.payload.decode("utf-8")))
|
||||
parsed_json = json.loads(str(message.payload.decode("utf-8")))
|
||||
data_part = parsed_json["data"]
|
||||
# print("Data:", data_part)
|
||||
decoded_data = base64.b64decode(data_part)
|
||||
#print("data :", decoded_data.hex())
|
||||
bytearray_data = bytearray.fromhex(decoded_data.hex())
|
||||
frame = LppFrame().from_bytes(bytearray_data)
|
||||
print(datetime.datetime.now())
|
||||
for d in frame.data:
|
||||
print(d)
|
||||
print("---------------------------------")
|
||||
|
||||
def read_config(config_file):
|
||||
with open(config_file, 'r') as f:
|
||||
config = json.load(f)
|
||||
return config
|
||||
|
||||
if __name__ == "__main__":
|
||||
config = read_config('mqtt_config.json')
|
||||
|
||||
broker_address = config['broker_address']
|
||||
port = config['port']
|
||||
topic = config['topic']
|
||||
|
||||
client = mqtt.Client()
|
||||
client.on_connect = on_connect
|
||||
client.on_message = on_message
|
||||
|
||||
client.connect(broker_address, port)
|
||||
|
||||
client.loop_forever()
|
||||
|
||||
6
mqtt_config_sample.json
Normal file
6
mqtt_config_sample.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"broker_address": "",
|
||||
"port": 1883,
|
||||
"topic": ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user