ha-location-exporter/lib/dawarich.py

47 lines
1.7 KiB
Python

import logging
import requests
_logger = logging.getLogger('MAIN').getChild('DAWARICH')
def send_to_dawarich(entity_id, timestamp, latitude, longitude, gps_accuracy, vertical_accuracy, altitude, battery, speed_kph, config_data):
url = f'{config_data["dawarich"]["host"]}/api/v1/overland/batches?api_key={config_data["dawarich"]["api_key"]}'
data = {
"locations": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
longitude,
latitude
]
},
"properties": {
"api_key": config_data['dawarich']['api_key'],
"timestamp": timestamp.isoformat(),
"altitude": altitude,
"speed": speed_kph,
"horizontal_accuracy": gps_accuracy,
"vertical_accuracy": vertical_accuracy,
"motion": [],
"pauses": False,
"activity": "",
"desired_accuracy": 0,
"deferred": 0,
"significant_change": "unknown",
"locations_in_payload": 1,
"device_id": entity_id,
"wifi": "unknown",
"battery_state": "unknown",
"battery_level": battery
}
}
]
}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=data, headers=headers)
if response.status_code != 201:
_logger.error(f'Failed to send data to dawarich for entity "{entity_id}": {response.status_code} -- {response.text}')