diff --git a/src/logic/database/Crud.py b/src/logic/database/Crud.py
index 052f85d8609cd1d71d02da59ba50bbdae6b0f272..5c8ffb726f9e73a76d750daea9eef57d148def21 100644
--- a/src/logic/database/Crud.py
+++ b/src/logic/database/Crud.py
@@ -31,7 +31,7 @@ def get_devices(db: Session, skip: int = 0, limit: int = 100):
     return db.query(Models.Device).offset(skip).limit(limit).all()
 
 
-def get_device(db: Session, deviceId: int):
+def get_device(db: Session, deviceId: int) -> Models.Device:
     return db.query(Models.Device).filter(Models.Device.id == deviceId).first()
 
 
@@ -48,6 +48,15 @@ def create_device(db: Session, device: Schemas.DeviceCreate):
     return dbDevice
 
 
+@notify_backup_service(BACKUP_SERVICE)
+def update_device(db: Session, deviceId: int, device: Schemas.DeviceCreate):
+    existingDevice = get_device(db, deviceId)
+    existingDevice.name = device.name
+    db.commit()
+    db.refresh(existingDevice)
+    return existingDevice
+
+
 @notify_backup_service(BACKUP_SERVICE)
 def delete_device(db: Session, device: Schemas.Device):
     db.delete(device)
diff --git a/src/logic/routers/DeviceRouter.py b/src/logic/routers/DeviceRouter.py
index 74a3bf73f5a80e6aceb7d91395b24def8faa056e..1d384f9e30b1556b7adfc49f32f2fa77525ca0da 100644
--- a/src/logic/routers/DeviceRouter.py
+++ b/src/logic/routers/DeviceRouter.py
@@ -40,6 +40,17 @@ async def create_device(device: Schemas.DeviceCreate, db: Session = Depends(get_
     return Crud.create_device(db=db, device=device)
 
 
+@router.put('/{deviceId}', response_model=Schemas.Device,
+            summary='Updates a  device',
+            responses={404: {'description': 'Device not found'}},
+            dependencies=[Depends(check_api_key)])
+async def update_device(deviceId: int, device: Schemas.DeviceCreate, db: Session = Depends(get_database)):
+    createdDevice = Crud.get_device_by_name(db, device.name)
+    if createdDevice:
+        raise HTTPException(status_code=404, detail='Device not found')
+    return Crud.update_device(db=db, deviceId=deviceId, device=device)
+
+
 @router.delete('/{deviceId}', response_model=Status,
                summary='Deletes a specific device',
                description='All corresponding sensors and measurements will be deleted too.',