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}')