diff --git a/sensorflux/database_connector.py b/sensorflux/database_connector.py index 7227815..d482f9f 100644 --- a/sensorflux/database_connector.py +++ b/sensorflux/database_connector.py @@ -10,7 +10,8 @@ from datetime import datetime -from influxdb import InfluxDBClient +from influxdb_client import InfluxDBClient +from influxdb_client.client.write_api import ASYNCHRONOUS class DatabaseConnector: @@ -23,21 +24,19 @@ class DatabaseConnector: """ host = 'localhost' port = 8086 - username = 'admin' - password = 'admin' - database_name = 'sensorflux' + bucket = 'sensorflux' + token = 'admin' + org = 'admin' def __init__(self, measurement, device, fields): self._client = InfluxDBClient( - host=self.host, - port=self.port, - username=self.username, - password=self.password, - database=self.database_name) + url=f'http://{self.host}:{self.port}', + token=self.token, + org=self.org) + self.write_api = self.client.write_api(write_options=ASYNCHRONOUS) self._measurement = measurement self._device = device self._fields = fields - self._ensure_database() @property def client(self): @@ -55,11 +54,6 @@ def device(self): def fields(self): return self._fields - def _ensure_database(self): - db_list = (el['name'] for el in self.client.get_list_database()) - if self.database_name not in db_list: - self.client.create_database(self.database_name) - def check_data(self, data): """ Checks that the data is in a valid format. Returns true if yes. @@ -92,18 +86,14 @@ def data_to_point(self, data): def write(self, data): r""" - Sends data to influxdb. Returns true if successful. + Sends data to influxdb. :param dict data: measurement data as a dict optionally containing a timestamp in ISO 8601 format, and containing any of 'temp', 'atmo' or 'humi' values. - :rtype: bool """ if not self.check_data(data): return False point = self.data_to_point(data) - successful = self.client.write_points([point]) - return successful - - def delete_data(self): - self.client.delete_series(tags={'device': self.device}) + result = self.write_api.write(bucket=self.bucket, record=point) + result.get() diff --git a/setup.py b/setup.py index e21c3d6..260e80e 100644 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ def read(filename): ] }, - install_requires=['influxdb', 'pyserial-asyncio'], + install_requires=['influxdb-client', 'pyserial-asyncio'], setup_requires=['pytest-runner'], tests_require=['pytest'],