Validação e gravação
Ao gravar, todas as funções alteradas são verificadas:
- Entrada obrigatória sem ligação — uma porta obrigatória não tem fonte atribuída.
- Incompatibilidade de tipos — uma ligação cujos tipos não coincidem (sem conversão selecionada).
- Destino não permitido — uma saída direcionada para um objeto onde não deve escrever.
- Ciclo sem bloco de temporização — um ciclo de retroação que executaria indefinidamente; insira um bloco de temporização para o validar.
A gravação é sempre permitida — contudo, uma função que falhe a validação é gravada desativada ("desativada por validação") e não será executada até ser corrigida. O resultado é indicado ("Gravado. Uma função apresenta problemas e permanece desligada.") e o painel de validação lista cada problema, apontando para o bloco, porta ou ligação exata.
📘 Nota: Isto é intencional: pode gravar um esquema incompleto no final do dia de trabalho sem interromper o que já está em funcionamento.

Monitorização e manutenção
Alterne a área de trabalho para Monitor para acompanhar a execução da lógica: os valores em tempo real surgem nas portas e ligações, e cada bloco recebe um rodapé de estado:
| Estado | Significado |
|---|---|
| OK | Em funcionamento normal; apresenta a hora da última execução. |
| SUSPENDED | Uma sobreposição manual a partir da aplicação colocou-a em pausa (um utilizador acionou o estore manualmente). Apresenta a contagem decrescente e um botão Retomar agora. |
| DISABLED | Desligada — manualmente ou pelo processo de validação. |
| ERROR | Ocorrência de erro descrita de forma explícita — por exemplo, uma entrada sem sinal: "sensor sem comunicação há 18 min — saída retida". |
Histórico de execução. Abra o histórico de uma função para consultar as execuções recentes — cada uma com os valores de entrada e as saídas geradas — e exporte o registo. Esta é a resposta direta para "porque é que os estores fecharam às 14:02?".
Disparo de teste / simulação. Para testar sem aguardar pelas condições reais, force o valor de uma entrada:
- Abra a janela de disparo de teste da função e selecione a porta de entrada.
- Introduza o valor forçado e a duração em Reverter após (predefinição: 15 minutos, máximo: 1 hora).
- Clique em Forçar o valor. A porta é marcada como SIM; a ligação real subjacente permanece inalterada.
O servidor reverte o valor forçado através do seu próprio temporizador — fechar o separador do navegador não deixará uma simulação ativa — e o início e o fim da simulação são ambos registados no histórico de execução.
Eliminar uma função. A eliminação apresenta primeiro uma janela de impacto: quais as funções que consomem as suas saídas e quais os widgets materializados criados — para cada widget, pode optar por mantê-lo (permanecendo como um dispositivo virtual normal) ou eliminá-lo também.

Mecanismos de segurança
O motor lógico protege a instalação contra erros de configuração:
- Interrupção de ciclos — um limite de profundidade de propagação impede que cadeias em ciclo através de dispositivos sejam executadas indefinidamente.
- Limitação de taxa — uma função descontrolada (20 execuções em 10 segundos) é automaticamente suspensa durante 60 segundos e sinalizada no modo de Monitorização, evitando a sobrecarga do barramento.
- Dimensionamento — a recomendação indicativa é de cerca de 200 funções por instalação. Acima desse valor, deve consolidar a lógica (por exemplo, um bloco de Valor Calculado com 8 entradas em vez de uma árvore de somas) e avaliar se parte da lógica deve residir nos próprios atuadores.
📘 Nota: Estes mecanismos limitam danos, mas não substituem o projeto. Funções críticas de segurança (vento, gelo) devem ser configuradas obrigatoriamente nos parâmetros do próprio atuador.