Boa noite, pela primeira vez posto aqui em busca de auxilio para fazer uma alteração no script que encontrei para monitorar automaticamente a tensão das minhas rb433ah que são alimentadas por fontes de energia alternativas.
Pesquisando encontrei os scripts voltreport e voltmonitor no seguinte endereço: Monitor input voltage on RB333/433AH - MikroTik Wiki
segui os passos e funcionou sem problemas, mais gostaria de adequar eles a minha necessidade, pois quando recebo o e-mail com o log das tensões de hora em hora e minima e máxima os valores da tensão minima e máxima se referem ao tempo total desde que o script passou a ser rodado no sistema e gostaria que estes valores fossem referentes as tensões minimas e máximas somente do dia, mais não tenho noção de como chegar a este resultado.
Agradeço qualquer ajuda, não tenho urgencia disto, mais gostaria de poder fazer desta maneira para porder ter uma noção melhor da capacidade de geração de energia que meu sistema tem.
Seguem abaixo os scripts:
voltmonitor
VoltreportCódigo :#set lowvoltalarm to desired alarm voltage in tenths of a volt. 125 = 12.5v :global lowvoltalarm 125 :global highvolt :global lowvolt :global starttime :global hivolttime :global lovolttime :global vh :local thisbox [/system identity get name] :global voltage [/system health get voltage] :local thistime [/system clock get time] :local thisdate [/system clock get date] :local thishour [:pick $thistime 0 2] :local emessage ($thisbox . " voltage is " . [:pick $voltage 0 2] . "." . [:pick $voltage 2 3]) :if ([:len $lowvolt] < 1) do={:set lowvolt 999; :set highvolt 0} # set your email address in the next line :if ($voltage <= $lowvoltalarm) do={/tool e-mail send to="[email protected]" subject="$thisbox low voltage" body=$emessage} :if ($voltage > $highvolt) do={:set highvolt $voltage; :set hivolttime ($thistime . " " . $thisdate)} :if ($voltage < $lowvolt) do={:set lowvolt $voltage; :set lovolttime ($thistime . " " . $thisdate)} :if ([:len $vh] > 0) do={:set vh ([:toarray $voltage] + $vh)} else={:set vh [:toarray $voltage]} :if ([:len $starttime] < 1) do={:set starttime ($thistime . " " . $thisdate)} :if ($thishour = "23") do={:execute voltreport}
Código ::global highvolt :global lowvolt :global hivolttime :global lovolttime :global starttime :global vh :local tvolt :local thisbox [/system identity get name] :local thisdate [/system clock get date] :local thishour :local emessage "Daily voltage report for $thisbox on $thisdate\n\n" :if ([:len $vh] > 0) do={ :for x from=0 to=([:len $vh]-1) step=1 do={ :set tvolt [:tostr [:pick $vh $x]] :set thishour [:tostr (23 - $x)] :while ([:len $thishour] < 2) do={:set thishour ("0" . $thishour)} :set emessage ($emessage . $thishour . ":00 = " . [:pick $tvolt 0 2] . "." . [:pick $tvolt 2 3] . "\n") } :set emessage ($emessage . "\nSince voltmonitor started on " . $starttime . "\n") :set tvolt [:tostr $highvolt] :set emessage ($emessage . "Maximum = " . [:pick $tvolt 0 2] . "." . [:pick $tvolt 2 3] . "v at " . $hivolttime . "\n") :set tvolt [:tostr $lowvolt] :set emessage ($emessage . "Minimum = " . [:pick $tvolt 0 2] . "." . [:pick $tvolt 2 3] . "v at " . $lovolttime . "\n") # set email address in next line /tool e-mail send to="[email protected]" subject="$thisbox Voltage Report" body=$emessage } # remark out the next line for testing to avoid resetting the voltage array :set vh