35 lines
1.5 KiB
Python
35 lines
1.5 KiB
Python
# Enter your python code.
|
|
import json
|
|
from common.Logger import logger
|
|
from quickfaas.remotebus import publish
|
|
import re, uuid
|
|
from paho.mqtt import client
|
|
|
|
lwtData = {
|
|
"init":False,
|
|
"client": client.Client(client_id=str(uuid.uuid4()), clean_session=True, userdata=None, protocol=client.MQTTv311, transport="tcp")
|
|
}
|
|
def lwt(mac):
|
|
try:
|
|
#if not lwtData["connected"]:
|
|
if not lwtData["init"]:
|
|
logger.info("INITIALIZING LWT CLIENT")
|
|
lwtData["client"].username_pw_set(username="admin", password="columbus")
|
|
lwtData["client"].will_set("meshify/db/194/_/mainHP/" + mac + ":00:00/connected",json.dumps({"value":False}))
|
|
lwtData["init"] = True
|
|
logger.info("Connecting to MQTT Broker for LWT purposes!!!!!!!")
|
|
lwtData["client"].connect("mq194.imistaway.net",1883, 600)
|
|
#publish("meshify/db/194/_/mainHP/00:18:05:1a:e5:37:00:00/connected", json.dumps({"value":True}), __qos__)
|
|
lwtData["client"].publish("meshify/db/194/_/mainHP/" + mac + ":00:00/connected", json.dumps({"value":True}))
|
|
except Exception as e:
|
|
logger.error("LWT DID NOT DO THE THING")
|
|
logger.error(e)
|
|
|
|
def sendData(message):
|
|
logger.debug(message)
|
|
mac = ':'.join(re.findall('..', '%012x' % uuid.getnode()))
|
|
lwt(mac)
|
|
for measure in message["measures"]:
|
|
publish(__topic__ + mac + ":01:99/" + measure["name"], json.dumps([{"value": measure["value"]}]), __qos__)
|
|
#publish(__topic__, json.dumps({measure["name"]: measure["value"]}), __qos__)
|
|
|