{%- for each_cond in conditional if each_cond.unique_id == order -%}
{{form_conditional.csrf_token}} {{form_conditional.function_id(class_='form-control', value=each_cond.unique_id)}} {{form_conditional.function_type(class_='form-control', value='conditional')}}
{{form_conditional.name(class_='form-control', value=each_cond.name, **{'title': dict_translation['name']['phrase']})}}
{%- if each_cond.is_activated %} {{form_conditional.deactivate_cond(class_='form-control btn btn-primary btn-sm')}} {%- else %} {{form_conditional.activate_cond(class_='form-control btn btn-primary btn-sm')}} {%- endif -%}
{{form_conditional.save_conditional(class_='form-control btn btn-primary btn-sm')}}
{{form_conditional.delete_conditional(class_='form-control btn btn-primary btn-sm', **{'onclick':'return confirm("Are you sure you want to delete this?")'})}}
{{form_conditional.test_all_actions(class_='form-control btn btn-primary btn-sm')}}
{{form_conditional.order_up(class_='form-control btn btn-primary btn-sm')}}
{{form_conditional.order_down(class_='form-control btn btn-primary btn-sm')}}
{{_('Help')}}
Conditional Controllers allow the execution of Python 3 code as well as the use of Conditions and Actions that interact with Mycodo. Conditions typically acquire data from Mycodo, such as Input measurements, and Actions typically affect Mycodo, such as actuating an Output or pausing a PID controller. Each Condition and Action you add will have its own description and example code to demonstrate how to use it in your Conditional Statement code. Notes: 1) Timeout must be set longer than it takes your Conditional Statement to execute (if Timeout is set too low, only part of your Conditional Statement may execute), 2) Period must be set longer than the time it takes for your Conditional Statement to execute, otherwise it will execute again before the previous execution has finished.
{{form_conditional.conditional_statement.label(class_='control-label')}}
{{form_conditional.period.label(class_='control-label')}}
{{form_conditional.period(class_='form-control', value=each_cond.period, **{'title':_('The duration between checking whether the conditional is true')})}}
{{form_conditional.start_offset.label(class_='control-label')}}
{{form_conditional.start_offset(class_='form-control', value=each_cond.start_offset, **{'title':_('The duration (seconds) to wait before the first operation')})}}
{{form_conditional.pyro_timeout.label(class_='control-label')}}
{{form_conditional.pyro_timeout(class_='form-control', value=each_cond.pyro_timeout, **{'title':_('The timeout (seconds) for the execution of the Conditional Statement')})}}
{{form_conditional.log_level_debug.label(class_='control-label')}}
{{form_conditional.message_include_code.label(class_='control-label')}}
{{_('Conditions')}}
{{form_conditional.csrf_token}} {{form_conditional.function_id(class_='form-control', value=each_cond.unique_id)}} {{form_conditional.function_type(class_='form-control', value='conditional')}}
{{form_conditional.condition_type(class_='form-control')}}
{{form_conditional.add_condition(class_='form-control btn btn-primary btn-sm')}}
{% for each_condition in conditional_conditions if each_condition.conditional_id == each_cond.unique_id %}
{{form_conditional_conditions.csrf_token}} {{form_conditional_conditions.conditional_id(class_='form-control', value=each_cond.unique_id)}} {{form_conditional_conditions.conditional_condition_id(class_='form-control', value=each_condition.unique_id)}}
{{form_conditional_conditions.save_condition(class_='form-control btn btn-primary btn-sm')}}
{{form_conditional_conditions.delete_condition(class_='form-control btn btn-primary btn-sm', **{'onclick':'return confirm("Are you sure you want to delete this?")'})}}
{% if each_condition.condition_type == 'measurement' %} {% include 'pages/function_options/conditional_options/measurement.html' %} {% elif each_condition.condition_type == 'measurement_past_average' %} {% include 'pages/function_options/conditional_options/measurement_past_average.html' %} {% elif each_condition.condition_type == 'measurement_past_sum' %} {% include 'pages/function_options/conditional_options/measurement_past_sum.html' %} {% elif each_condition.condition_type == 'measurement_dict' %} {% include 'pages/function_options/conditional_options/measurement_dict.html' %} {% elif each_condition.condition_type == 'gpio_state' %} {% include 'pages/function_options/conditional_options/gpio_state.html' %} {% elif each_condition.condition_type == 'output_state' %} {% include 'pages/function_options/conditional_options/output_state.html' %} {% elif each_condition.condition_type == 'output_duration_on' %} {% include 'pages/function_options/conditional_options/output_duration_on.html' %} {% elif each_condition.condition_type == 'controller_status' %} {% include 'pages/function_options/conditional_options/controller_status.html' %} {% endif %}
{% endfor %}
{{_('Actions')}}
{{form_conditional.csrf_token}} {{form_conditional.function_id(class_='form-control', value=each_cond.unique_id)}} {{form_conditional.function_type(class_='form-control', value='conditional')}}
{{form_conditional.action_type(class_='form-control')}}
{{form_conditional.add_action(class_='form-control btn btn-primary btn-sm')}}
{% for each_action in actions if each_action.function_id == each_cond.unique_id %}
{{form_actions.csrf_token}} {{form_actions.function_type(class_='form-control', value='conditional')}} {{form_actions.function_id(class_='form-control', value=each_cond.unique_id)}} {{form_actions.function_action_id(class_='form-control', value=each_action.unique_id)}}
{{form_actions.save_action(class_='form-control btn btn-primary btn-sm')}}
{{form_actions.delete_action(class_='form-control btn btn-primary btn-sm', **{'onclick':'return confirm("Are you sure you want to delete this?")'})}}
{% include 'pages/function_options/action_options/'+each_action.action_type+'.html' %}
{% endfor %}
{%- endfor -%}