我知道如何从客户端访问属性,但我想从thingsboard服务器端访问设备的属性。因此,在开发新的小部件时,我可以显示所有属性的列表,并在必要时更改它们。我怎么能这样做?
答案 0 :(得分:1)
我们必须非常清楚服务器端和客户端。 实际上,Thingsboard小部件在浏览器的客户端上运行。
据我了解,我们在窗口小部件中有两个用于属性访问的选项。
Thingsboard提供了使用HTTP-Api的便捷“服务”,我们可以像这样使用:
var entityId, attributeKey, myAttribute, attributeService;
entityId = ... // entity id from the widgets datasource.
attributeKey = 'MyAttribute';
myAttribute = {
key: attributeKey,
value: 'MyAttributeValue';
};
attributeService = self.ctx.$scope.$injector.get('attributeService');
// Access attributes.
attributeService.getEntityAttributesValues('DEVICE', entityId, 'SERVER_SCOPE', attributeKey)
.then(function success(attributes) {
// Use the attribute value.
});
// Write attributes.
attributeService.saveEntityAttributes(
'DEVICE', entityId, 'SERVER_SCOPE', [myAttribute]);
Http-Api有更多选项,甚至该服务都提供了更多方便的功能。查看sources of the service at thingsboard/ui/src/app/api/attribute.service.js