• 1 Post
  • 6 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle

  • 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.




  • 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"