From df640403c61e6d8b85ce2ab2ba2e71850ef658b5 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 5 Jun 2023 08:43:51 +0200 Subject: [PATCH] publish to traccar --- rak2171.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/rak2171.py b/rak2171.py index 0150a68..a99b741 100644 --- a/rak2171.py +++ b/rak2171.py @@ -18,7 +18,7 @@ DST_MQTT_PASS = os.getenv("DST_MQTT_PASS") DST_TRACCAR_URL = os.getenv("DST_TRACCAR_URL") PUSHOVER_TOKEN = os.getenv("PUSHOVER_TOKEN") PUSHOVER_USER_KEY = os.getenv("PUSHOVER_USER_KEY") -VERSION = "v1.1" +VERSION = "v1.2" OT_TOPIC_PREFIX = "owntracks/things/" @@ -85,16 +85,21 @@ def on_message_ttn(client, userdata, msg): batt = data["uplink_message"]["decoded_payload"].get("batt", 0) if fix == 1: logging.info("got payload with a fix") + latitude = data["uplink_message"]["decoded_payload"].get("lat", 0.0) + longitude = data["uplink_message"]["decoded_payload"].get("lng", 0.0) + timestamp = data["uplink_message"]["decoded_payload"].get("time", 0) + accuracy = data["uplink_message"]["decoded_payload"].get("acc", 0) + battery = data["uplink_message"]["decoded_payload"].get("batt", 0) ot_data = json.dumps( { "_type": "location", - "acc": data["uplink_message"]["decoded_payload"].get("acc", 0), - "lat": data["uplink_message"]["decoded_payload"].get("lat", 0.0), - "lon": data["uplink_message"]["decoded_payload"].get("lng", 0.0), - "batt": data["uplink_message"]["decoded_payload"].get("batt", 0), + "acc": accuracy, + "lat": latitude, + "lon": longitude, + "batt": battery, "t": "p", "tid": device_id, - "tst": data["uplink_message"]["decoded_payload"].get("time", 0), + "tst": timestamp, "conn": "m", } ) @@ -112,12 +117,16 @@ def on_message_ttn(client, userdata, msg): check_batt(batt=batt, device_id=device_id) # send to traccar - # logging.info("publishing data to traccar") - # traccar_url = f"{DST_TRACCAR_URL}/?id={device_id}&lat={latitude}&lon={longitude}×tamp={timestamp}&hdop={hdop}&altitude={altitude}&speed=0" - # requests.get(traccar_url) + logging.info("publishing data to traccar") + traccar_url = f"{DST_TRACCAR_URL}/?id={device_id}&lat={latitude}&lon={longitude}×tamp={timestamp}&accuracy={accuracy}&batt={battery}" + requests.get(traccar_url) + elif sos == 0: + logging.info("got payload with a sos") + push_msg(msg=f"Knopf 5 mal gedrückt - deaktiviert", device_id=device_id) elif sos == 1: logging.info("got payload with a sos") - push_msg(msg=f"Knopf 5 mal gedrückt", device_id=device_id) + push_msg(msg=f"Knopf 5 mal gedrückt - aktiviert", device_id=device_id) + # TODO publish geo:// URL elif alarm == 1: logging.info("got payload with an alarm") else: