Eai gente, preciso de ajuda para puxar dados de uma api para o scadabr. Eu não consigo usar o data source recuperador http, e também não sei se a api está compatível com o scadabr.
A api está programada em json e só preciso puxar valores numérico específicos.
Se você puder fornecer mais informações sobre essa API e seu funcionamento pode ser mais fácil obter ajuda. Em tese, o ScadaBR 1.2 pode puxar dados por uma chamada HTTP GET ou POST e os Scripts no ScadaBR 1.2 podem usar o objeto Javascript JSON (parse e stringify).
Então, eu estudei tudo o que você me passou e ainda não tive resultado. Estou tentando usar a mesma programação do vídeo alterando apenas os parâmetros da URL mas não sei se é suficiente, segue o código:
function simpleGet(url, parameters) {
var respStatus = null;
var respString null;
var respErrors = null;
var geturl = url.replace(/V/$/,"") + "2";
for (var i in parameters) {
var paramKey = encodeURIComponent (parameters[i].key);
var paramValue = encodeURIComponent (parameters[i].value);
geturl += paramKey + "m" + paramvalue + "&";
}
var imports = Java Importer (org.apache.commons.httpclient.httpclient,
org.apache.commons.httpclient.methods.GetMethod,
org.apache.commons.httpclient.DefaultHttpMethodRetryHandler,
org.apache.commons.httpclient.params.HttpMethodParams,
java.io.*);
with (imports){
var client = new HttpClient();
var method = new GetMethod(getUrl);
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
try{
var statusCode = client.executeMethod(method);
respStatus = statusCode;
if (statusCode != 200) {
respErrors = "Method failed: " + string(nethod.getStatusLine());
} else {
var responseBody = method.getResponseBodyAsString();
respString = String (responseBody);
}
}catch (e) {
respErrors = "Error occurred: " + string(e);
}finally {
method.releaseConnection();
}
}
return ( status: respStatus, response: respString, errors: respErrors);
}
var url = "http://bs2g.com.br/api/telemetria";
var parametros = [
(key: "id", value: "2"),
(key: "cm", value: "m"),
(key: "data_final", value: "2021-12-02"),
(key: "data_final", value: "2021-12-02"),
(key: "token", value: "xxx"),
];
var obj = simpleGet(url, parametros);