unidade

Situação da unidade

A meta central nunca é enviada. Cada vigência vai com meta: null e só limite_inferior/limite_superior (set point − tolerância inferior / + tolerância superior). Com a meta preenchida, a Intelup ignora a banda no gráfico e no Event Manager.

Agendamento

A execução agendada processa o dia civil de hoje (Brasília) e é idempotente: pode rodar várias vezes ao dia, nada duplica. Cada ponto do set point vira uma vigência que vale até 1 s antes do ponto seguinte; o último ponto vale a duração configurada. Com prune, vigências do período sem ponto correspondente são apagadas.

Conexão e credenciais

Origem é a instância onde o set point é lido. Destino (opcional) é onde os pontos são replicados e a meta é gravada; vazio = a meta é gravada de volta na própria origem. Os valores ficam guardados no banco e são exibidos nesta tela (ambiente de teste).

Metas (set point → meta com banda)

Uma linha por par. Tag set point é lida na origem; tag pontos (opcional) recebe a cópia dos pontos no destino; tag meta recebe a faixa de operação com a banda. Tolerâncias em % (obrigatórias, > 0).

Unidades

Usuários do portal

Perfil admin acessa tudo; perfil operação vê apenas Execução (acompanha as execuções e as metas configuradas) e Ajuda. As senhas são guardadas com hash no banco.

Executar agora

A prévia lê a origem e mostra o que seria criado/atualizado/apagado sem gravar nada. Enviar replica os pontos e grava as vigências no destino (pede confirmação). Reexecutar o mesmo período não duplica nada.

Metas configuradas

Execuções

Clique numa execução para ver o detalhe por meta e o log completo.

Como funciona

O fluxo

  1. Lê o set point na origem: GET /public/data_export/points da tag configurada (ex.: VAZ_CLARI_FAB_TOTAL_BME) no período.
  2. Replica os pontos (opcional) no destino: POST /public/data_entry/points só do que ainda não existe lá (mesmo timestamp e valor são pulados).
  3. Calcula a banda: para cada ponto, limite_inferior = valor × (1 − tol_inf%) e limite_superior = valor × (1 + tol_sup%). Ex.: 500 com 10 %/10 % → 450 e 550.
  4. Grava a meta na tag de meta do destino: garante a faixa de operação vinculada (operating-range + operating-range-tag) e cria/atualiza uma vigência por ponto (operating-range-validity), valendo do horário do ponto até 1 s antes do ponto seguinte. Sempre meta: null.
  5. Verifica com GET /public/data_export/goal?group-by=hour.

Por que a meta central não é enviada

Se o campo meta for preenchido, a Intelup não considera a banda nem no gráfico nem no Event Manager: a prévia recebe só value, desenha uma linha única e o evento abre ao cruzar a meta, ignorando os limites. Com meta nula e limites, devolve superior/inferior, desenha as duas linhas e abre evento só fora da banda (verificado em QA em 12/09/2026). Por isso as tolerâncias são obrigatórias e vigências antigas com meta preenchida são corrigidas com PUT {"meta": null}.

Regras da API respeitadas

  • Autenticação por três headers: token, code e unit-code.
  • meta e limites não podem ir na mesma requisição (HTTP 400); o PUT é parcial, então vão em chamadas separadas.
  • A API recusa vigência sobreposta respondendo HTTP 200 sem id; por isso o prune apaga antes de criar e a vigência anterior é encurtada quando avança sobre o primeiro ponto do período.
  • data_inicio/data_fim são gravados em UTC (a API guarda o texto verbatim e trata como UTC na exportação) — mesmo instante do ponto.
  • HTTP 500 intermitente é repetido até 3 vezes, exceto no envio de pontos (a API aceita timestamp repetido e a repetição duplicaria dados).
  • Tags de meta/pontos precisam existir no destino; a faixa de operação é criada se não houver. Tag ausente é reportada e a meta é pulada (execução parcial).

Origem e destino

Cada unidade guarda as credenciais da origem (onde o set point é lido) e, opcionalmente, de um destino diferente (ex.: Lins → Demo para testes). Sem destino, a meta é gravada de volta na própria origem — o caso da operação real, em que o set point _BME e a tag medida estão na mesma instância. Use o botão Testar para conferir as credenciais e se as tags configuradas existem no cadastro.

Execuções e agendamento

  • Prévia (dry-run) não grava nada; Enviar grava. Ambas ficam no histórico com contadores (pontos enviados, vigências criadas/atualizadas/iguais/apagadas/recusadas) e o log de cada chamada.
  • O agendamento roda o dia civil de hoje (Brasília) — diariamente num horário ou a cada N minutos. Só uma execução por unidade de cada vez.
  • Perfil operação acompanha as execuções e as metas; executar e configurar é do admin.

Linha de comando

Os scripts em scripts/ continuam funcionando com o .env (sync_goal.py, sync_daily.py, compare_goal.py, dump_goals.py) — mesma regra, sem o portal.

Datas em dd-mm-aaaa e horas com segundos (24h), no fuso de Brasília. Vigências são gravadas em UTC, no mesmo instante do ponto. A meta central nunca é enviada — só a banda.