improve all the things
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
a6351f0c30
commit
ac19187352
26
main.py
26
main.py
|
@ -29,24 +29,34 @@ def on_connect_ot(client, userdata, flags, rc):
|
|||
logging.info("connected to ot %s - %s", DST_MQTT_HOST, str(rc))
|
||||
|
||||
def on_publish_ot(client, userdata, rc):
|
||||
logging.info("published data to ot - %s", str(rc))
|
||||
logging.info("published data to ot")
|
||||
|
||||
def on_log(client, userdata, level, buf):
|
||||
logging_level = mqtt.LOGGING_LEVEL[level]
|
||||
logging.log(logging_level, buf)
|
||||
logging.info("got a log message for %s level %s: %s", str(userdata), level, str(buf))
|
||||
|
||||
# The callback for when a PUBLISH message is received from the server.
|
||||
def on_message_ttn(client, userdata, msg):
|
||||
data = json.loads(msg.payload)
|
||||
logging.info("message from ttn received for %s - #%s", data["dev_id"], data["counter"])
|
||||
#logging.info("received via gw %s", data["gateways"][0]["gtw_id"])
|
||||
logging.info("received via gw %s", data["metadata"]["gateways"][0]["gtw_id"])
|
||||
|
||||
if "latitude" in data["payload_fields"]:
|
||||
|
||||
# max is 4 volts, 3 volts is considered empty
|
||||
batpercent = round((data["payload_fields"]["batV"] - 3) * 100)
|
||||
|
||||
if data["payload_fields"]["latitude"]:
|
||||
# transform received data into OwnTracks format
|
||||
ot_data = json.dumps({
|
||||
"_type": "location",
|
||||
"lat": data["payload_fields"]["latitude"],
|
||||
"lon": data["payload_fields"]["longitude"],
|
||||
"batt": data["payload_fields"]["batV"],
|
||||
"batt": batpercent,
|
||||
"t": "p",
|
||||
"tid": OT_TID,
|
||||
"tst": int(datetime.timestamp(datetime.now())),
|
||||
"conn": "m",
|
||||
})
|
||||
|
||||
# publish to owntracks
|
||||
|
@ -69,12 +79,14 @@ def on_message_ttn(client, userdata, msg):
|
|||
"lat": data["payload_fields"]["latitude"],
|
||||
"lon": data["payload_fields"]["longitude"],
|
||||
"alarm": int(data["payload_fields"]["alarm"]),
|
||||
"counter": data["counter"],
|
||||
"airtime": data["metadata"]["airtime"],
|
||||
}
|
||||
}
|
||||
]
|
||||
)
|
||||
else:
|
||||
logging.info("no GPS data present")
|
||||
logging.info("no GPS data present - skipping")
|
||||
|
||||
logging.info("data processing done")
|
||||
|
||||
|
@ -97,15 +109,19 @@ influxdb = InfluxDBClient(
|
|||
|
||||
# Prepare MQTT
|
||||
client_ttn = mqtt.Client()
|
||||
client_ttn.enable_logger()
|
||||
client_ttn.on_connect = on_connect_ttn
|
||||
client_ttn.on_message = on_message_ttn
|
||||
client_ttn.on_log = on_log
|
||||
client_ttn.username_pw_set(SRC_MQTT_USER,SRC_MQTT_PASS)
|
||||
client_ttn.tls_set()
|
||||
client_ttn.connect(SRC_MQTT_HOST, 8883, 60)
|
||||
|
||||
client_ot = mqtt.Client()
|
||||
client_ot.enable_logger()
|
||||
client_ot.on_connect = on_connect_ot
|
||||
client_ot.on_publish = on_publish_ot
|
||||
client_ot.on_log = on_log
|
||||
client_ot.username_pw_set(DST_MQTT_USER,DST_MQTT_PASS)
|
||||
client_ot.tls_set()
|
||||
client_ot.connect(DST_MQTT_HOST, 8883, 60)
|
||||
|
|
Loading…
Reference in New Issue