<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actiona" version="3.10.1" scriptVersion="1.1.0" os="GNU/Linux"/>
    <actions>
        <action name="ActionTimeCondition" version="1.0.0"/>
        <action name="ActionCode" version="1.0.0"/>
    </actions>
    <parameters/>
    <resources/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionCode" comment="var ss_mmm">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">var ss_mmm = &quot;50.000&quot;;</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="continue_at_time()">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">// Input: HH:MM:SS.nnn
function timestr2date(ts) {
	var vt = ts.split(/[:.]/);
	var d = new Date();
	d.setHours(vt[0]);
	d.setMinutes(vt[1]);
	d.setSeconds(vt[2]);
	// Note: 1 =&gt; 001 , 10 =&gt; 010 etc.
	d.setMilliseconds((&quot;00&quot; + vt[3]).substr(-3));
	// Increment to next day if time has passed.
	if (d.getTime() &lt; Date.now())
		d.setDate(d.getDate() + 1);
	return d;
}
function continue_at_time(str_time, print_sleep_amount) {
	var t_time = timestr2date(str_time);
	if (print_sleep_amount) {
		var sleep = t_time.getTime() - Date.now();
		Console.print(&quot;Sleep: &quot; + sleep + &quot;ms&quot;);
	}
	// Calculate on call
	Execution.sleep(t_time.getTime() - Date.now());
}


</subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Test continue_at_time()">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">function test_timer(print_time_on_continue) {
	var t_now = new Date();
	// Use the global ss_mmm variable for seconds / millseconds
	var t_exec = [t_now.getHours(), t_now.getMinutes(), ss_mmm].join(':');
	continue_at_time(t_exec, true);
	if (print_time_on_continue) {
		Console.print(&quot;Continuing at: &quot; + (new Date()).toISOString());
	}
}

test_timer(true);
</subParameter>
            </parameter>
        </action>
        <action name="ActionTimeCondition" enabled="false">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="date">
                <subParameter name="value" code="0">06/02/2021 06:00:00</subParameter>
            </parameter>
            <parameter name="ifAfter">
                <subParameter name="action" code="0">wait</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
            <parameter name="ifBefore">
                <subParameter name="action" code="0">do_nothing</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
            <parameter name="ifNow">
                <subParameter name="action" code="0">do_nothing</subParameter>
                <subParameter name="line" code="0"></subParameter>
            </parameter>
        </action>
        <action name="ActionCode" comment="Next script, print &quot;time now&quot;">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="code">
                <subParameter name="value" code="1">(function () {
	var t_now = new Date();
	Console.print(&quot;Next script: &quot; + t_now.toISOString());
})();
</subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
