Estou atualmente projetando uma solução para sincronizar um relógio em um equipamento. Cada vez que o equipamento é ligado após um poweroff, o seu relógio é exatamente "01:01".
Para sincronizar este equipamento, eu tenho um controle remoto NEXA e um duo Telldus. O Telldus duo está conectado a um servidor que é um servidor NTP com fonte GPS e PPS.
Agora, para o problema:
Atualmente, o relógio sincroniza simplesmente desligando a energia programada às 01:00 e ligando a energia 01:01, fazendo com que o relógio do equipamento esteja sempre correto.
Mas o problema está nos dias de alteração do horário de verão. Se houver um dia de alteração do horário de verão que diga que o relógio deve ser movido para a frente por 1 hora, das 02:00 às 03:00, o relógio do equipamento ficará atrasado em 1 hora em um dia inteiro.
Se houver um dia de alteração do horário de verão que diga que o relógio deve ser movido de VOLTA 1 hora, o equpment estará funcionando 1 hora mais rápido.
Assim, nos Dias de Desvio do DST, preciso Agendar o Equipamento para desligar às 00:00 e ligar às 00:01. Então o equipamento será 01:01 quando o relógio for 00:01. Quando o relógio é 02:00 e é alterado para 03:00, então o equipamento já será às 03:00, assim, o equipamento só terá relógio incorreto por 2 horas.
E nos Dias de Retorno do DST, eu preciso Agendar o Equipamento para desligar às 02:00 e ligar às 02:01. Assim, o Equipamento será 02:00 quando o Relógio for 03:00 e será DST'ed de volta às 02:00, portanto, neste caso, o Relógio do Equipamento estará incorreto somente por 1 hora.
Eu tenho a total capacidade de escrever um script que irá realizar isso, DADA ISSO:
Eu conheço um comando, que pode me dizer, se HOJE for o dia em que uma mudança de horário de verão ocorrerá e em qual direção (de 02:00 a 03:00 ou de 03:00 a 02:00) ocorrerá .
Isso significa que eu preciso de algum comando DST dedicado OU uma possibilidade de "olhar no futuro", como "O que é o Relógio quando decorreram 4 horas contando DST?".
(Então eu poderia verificar se a diferença entre agora e o relógio retornado é de 3 horas, então é um dia DST-BACK, 4 horas, então é um dia NO-DST e 5 horas depois é um dia DST-FORWARD)
Alguém que tenha uma ideia de tal comando?