diff --git a/models/api_enedis.py b/models/api_enedis.py
index e3d71a3bd6b8e0608fa9471e1beb14229e2e5162..9715e231fa3ce4c653c0a641e2842664c1a226ca 100644
--- a/models/api_enedis.py
+++ b/models/api_enedis.py
@@ -3,6 +3,7 @@
 
 import requests
 import logging
+import pytz
 
 from datetime import datetime, date
 
@@ -190,30 +191,46 @@ class ApiEnedis(models.AbstractModel):
             if usage_point_name:
                 counter_id = self.env['enercoop.counter'].search([
                     ('name', '=', usage_point_name),
-                    ('enercoop_operation_id', '=', self.id)])
+                    ('enercoop_operation_ids', 'in', self.id)])
             type = curve['type']
             if counter_id:
                 name = counter_id.name + '_' + str(date_start) + '_' + str(date_end) + '_' + type
             else:
                 name = self.name + '_' + str(date_start) + '_' + str(date_end) + '_' + type
 
+            enercoop_enedis_cdc_ids = self.env['enercoop.enedis.cdc'].search([
+                ('date_slot', '>=', date_start),
+                ('date_slot', '<=', date_end),
+                ('enercoop_operation_id', '=', self.id),
+                '|', ('enercoop_counter_id', '=', counter_id.id), ('enercoop_counter_id', '=', False),
+                ('comp_data_type', '=',  type),
+            ])
+            record_created = False
+            timezone = self.env.context.get('tz') or self.env.user.tz
+            user_tz = pytz.timezone(timezone)
+
             for point in curve['interval_reading']:
-                date_slot = datetime.strptime(point['timestamp'], "%Y-%m-%dT%H:%M:%SZ")
-                self.env['enercoop.enedis.cdc'].create({
+                date_slot = pytz.utc.localize(datetime.strptime(point['timestamp'], "%Y-%m-%dT%H:%M:%SZ")).astimezone(user_tz).replace(tzinfo=None)
+
+                record = enercoop_enedis_cdc_ids.filtered(lambda l: l.date_slot == date_slot)
+                if not record:
+                    self.env['enercoop.enedis.cdc'].create({
+                        'name': name,
+                        'enercoop_operation_id': self.id,
+                        'enercoop_counter_id': counter_id.id or False,
+                        'comp_data_type': type,
+                        'power': point['value'],
+                        'date_slot': date_slot,
+                    })
+                    record_created = True
+
+            if record_created:
+                # Logs information loaded
+                self.env['enercoop.enedis.import.logs'].create({
                     'name': name,
                     'enercoop_operation_id': self.id,
-                    'enercoop_counter_id': counter_id.id or False,
-                    'comp_data_type': type,
-                    'power': point['value'],
-                    'date_slot': date_slot,
                 })
 
-            # Logs information loaded
-            self.env['enercoop.enedis.import.logs'].create({
-                'name': name,
-                'enercoop_operation_id': self.id,
-            })
-
     def perimeter(self):
         """ Fonction permettant d'appeler l'API Enedis et retourne le périmètre
             d'une opréation donées