# Thingsboard - Update entity attributes in a custom widget * Use attributeService * `self.ctx.attributeService` * [Check how many methods in attributeService](https://github.com/thingsboard/thingsboard/blob/13e6b10b7ab830e64d31b99614a9d95a1a25928a/ui-ngx/src/app/core/http/attribute.service.ts#L28) * Create a latestValue-type widget * Use `getEntityAttributes` method to get the entity attributes * Use `saveEntityAttributes` method to update the entity attributes ```javascript self.onInit = function() { const entityId = self.ctx.data[0].datasource.entity .id; if (self.ctx.data[0].dataKey.type !== "function") { // use getEntityAttributes method to get the entity attributes self.ctx.attributeService .getEntityAttributes(entityId, 'SERVER_SCOPE', ["tempSet", "washTimes"] ).subscribe(( attributes) => { console.log(attributes); }); // use saveEntityAttributes method to update the entity attributes self.ctx.attributeService.saveEntityAttributes( entityId, 'SERVER_SCOPE', [{ key: "tempSet", value: 25 }, { key: "washTimes", value: 1 }] ).subscribe((res) => { console.log(res); }) } } ``` >[!Note] >* ==Remember to add subscribe to to make it work== >* When use the attributeService: >* para => entityId is an object not an id string >* entityId example >* `{entityType: 'DEVICE', id: '11111abc'}` ``` saveEntityAttributes(entityId: EntityId, attributeScope: AttributeScope, attributes: Array<AttributeData>, config?:RequestConfig): Observable<any> ``` --- * If you want to use attributeService in custom action `let attributeService = widgetContext.attributeService;` or ``` let $injector = widgetContext.$scope.$injector; let attributeService = $injector.get( widgetContext.servicesMap.get('attributeService')); ``` <br/><br/> ## Reference * [attribute.service.ts](https://github.com/thingsboard/thingsboard/blob/13e6b10b7ab830e64d31b99614a9d95a1a25928a/ui-ngx/src/app/core/http/attribute.service.ts#L28) * [Saving entity attributes in custom widget #6820](https://github.com/thingsboard/thingsboard/issues/6820) * [Widget to change attribute values on dashboard #574](https://github.com/thingsboard/thingsboard/issues/574)