I think you’re missing the point that it is working and they are intentionally breaking it.
I think you’re missing the point that it is working and they are intentionally breaking it.
After a water heater leak I just made my own. I run my HA on a Raspberry Pi, so I connected the GPIO pins to a current-limiting resistor and some wires that I put in the drip pan of my water heater. I made the two contacts using a screw connector, and hot glued it in the pan. You can also do this with an ESP chip. Additionally, I integrated my smoke detectors through an optoisolator and connected all my hard-wired door and window sensors to the GPIO. It’s been working great this way for me.
When I tried playing with omit in the template editor I got an error about omit being undefined so probably not built in. Bummer because that would be a very elegant solution to this. I’m going to put this down for the night and try picking it back up tomorrow. I really appreciate all the suggestions. Hopefully it will lead me to a solution.
It worked the same as your suggestion above. In cases the variable is used it does works as intended but in the situation the variable is not set it’s still sending data: just with a blank value.
To 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”
Is it possible to do this in a way that completely omits data: from the command if the variable isn’t defined?
And apathy is why so many businesses are getting away with anti consumer practices.