How do you use "is defined" in a script?
How do you use "is defined" in a script?
I'm trying to get a script built. I want to check if a variable exist and include it if it does. Just really struggling to figure out the formatting. Something like
script:
sequence:
target:
entity_id: "{{ entity }}"
{% if variable is defined %}
data: "{{ variable }}"
{% endif %}
Permanently Deleted
5 0 ReplyThis looks like the right answer, since OP's jinja is correct.
OP, you can go to developer tools to test your template syntax against the live data in HA.
2 0 ReplyIs it possible to do this in a way that completely omits data: from the command if the variable isn't defined?
2 0 ReplyPermanently Deleted
3 0 ReplyTo give more context I'm working on a media control dashboard. The script or rather scripts I have to send commands to kodi is as follows
kodi_control: sequence: - service: kodi.call_method target: entity_id: '{{ kodi_entity }}' data: method: '{{ kodi_method }}' kodi_control_playback: sequence: - service: kodi.call_method target: entity_id: '{{ kodi_entity }}' data: method: '{{ kodi_method }}' playerid: '{{ kodi_playerid }}' kodi_control_subtitles: sequence: - service: kodi.call_method target: entity_id: '{{ kodi_entity }}' data: method: '{{ kodi_method }}' action: '{{ kodi_action }}' kodi_control_seek: sequence: - service: kodi.call_method target: entity_id: '{{ kodi_entity }}' data: method: '{{ kodi_method }}' playerid: '{{ kodi_playerid }}' value: '{{ kodi_value }}' kodi_control_playlist: sequence: - service: kodi.call_method target: entity_id: '{{ kodi_entity }}' data: method: '{{ kodi_method }}' window: '{{ kodi_window }}' parameters: '{{ [ kodi_parameters ] }}'
I would like to condense all of this down to a single script using "is defined" to omit the parts not needed for certain commands so something like
kodi_control: sequence: - service: kodi.call_method target: entity_id: '{{ kodi_entity }}' data: >- method: '{{ kodi_method }}' {% if kodi_playerid is defined %} playerid: '{{ kodi_playerid }}' {% endif %} {% if kodi_action is defined %} action: '{{ kodi_action }}' {% endif %} {% if kodi_value is defined %} value: '{{ kodi_value }}' {% endif %} {% if kodi_window is defined %} window: '{{ kodi_window }}' {% endif %} {% if kodi_parameters is defined %} parameters: '{{ [ kodi_parameters ] }}' {% endif %}
Problem with the above is I get "result is not a dictionary"
2 0 Reply
{% if variable %} data: {{ variable }} {% endif %}
1 0 Reply