Selecionar atributos no workflow node Wegnology API "Device: Get state"

Bom dia,

Existe alguma forma de obter somente determinados atributos ao utilizar o workflow node “Wegnology API” com a função “Device: Get State”?
image

Estou utilizando este nó para obter os dados de um determinado período e, com base nisso, realizar alguns cálculos com o function node. Porém, se o período for muito grande, o function node acaba sendo limitado pelo tamanho de 5MB:

Abaixo, print do retorno da API, contendo todos os atributos de cada state, sendo que preciso de somente dois deles:
image

Então criei o node mutate para reduzir os dados do array para conter somente esses dois atributos:


função utilizada no mutate node:

[
{{#each working.device_reports.result}}
 {
  "data": {
    "cycle_time":{{this.data.cycle_time}},
    "gas_volume":{{this.data.gas_volume}}
  },
  "time": "{{this.time}}"
}
{{#unless @last}},{{/unless}}
{{/each}}
]

Assim conseugi reduzir o tamanho do objeto para utilizar na function node, porém, dependendo do tamanho do objeto atingi o limite de iterações do helper #each:

Teria alguma outra forma de conseguir obter somente determinados atributos do device, ou outra forma de tratar quantidades expressivas de dados?

Att,
Gabriel Linhares

Bom dia @linhares,

Existem algumas alternativas, uma delas seria utilizar o node Data: Time Series Node, com agregação None, que permite selecionar e retornar somente os atributos desejados.

Outra forma, seria utilizar o Loop Node, para iterar entre os pontos retornados, e utilizar um bloco Mutate, ou a operação Pick do bloco Object, para selecionar somente os atributos desejados, e então utilizar isso como saída do Loop, gerando assim um novo array de points, somente com os atributos desejados.

Em anexo um flow com alguns exemplos de possibilidades.

state_points.zip (1,6,KB)

Espero ter ajudado.

2 Curtidas

Muito obrigado pelos exemplos! O Pick object me atendeu perfeitamente.