[–] [S] 1 point 1 month ago

Yes, my usw case just considers one Valve leading outwards that I need to shut and bleed. Don't need multiple freezing points for hight presure/isolated pipes. One fits all for me. The loop could be modified for those things. Now it is set to "2". Not even considering °C or °F (°C in my case). Home Assistenten takes care of that

  • source
  • parent
  • context
  •  

    Hey Folks. I was wondering how to warn me before my whole water stuff outside freezes and bursts cause I forget to check the weather. The Solutions I found while searching the web did not click with me so here is what I came up with:

    old solution:

    alias: Freezing Warning
    description: ''
    triggers:
      - trigger: time
        at: '07:00:00'
    conditions: []
    actions:
      - variables:
          message: Your message to go out and close those Vales and empty the hoses
          mtittle: Freezing Alarm!
          minTemp: 2
      - action: weather.get_forecasts
        metadata: {}
        target:
          device_id: ChangeMe
        data:
          type: daily
        response_variable: daily
      - if:
          - condition: template
            value_template: |-
              {% set ns = namespace(freezing=false) %}
              {% for day in daily['weather.forecast_home'].forecast %}
                {% if day.templow < minTemp %}
                  {% set ns.freezing = true %}
                {% endif %}
              {% endfor %}
              {{ ns.freezing }}
        then:
          - action: notify.send_message
            metadata: {}
            target:
              device_id: ChangeMe
            data:
              title: '{{ mtittle }}'
              message: '{{ message }}'
    mode: single
    

    Just a simple Automation. No editing template.yaml files. Could add a condition with a helper var like "I closed the vales etc" and don't remind me every day. Guess I'll do that... Be sure to change the ID of you location and ID of you mobile device for the message.

    have fun, bye

    Edit: here I am posting the new refined solution (now you have to suffer with my german stuff inside the vars and stuff):

    You will need a helper like: input_boolean.wasser_bereit_fur_den_winter

    Automation to check the Weather and create a Mobile-App warning with action item:

    alias: Freezing Warning
    description: ''
    triggers:
      - trigger: time
        at: '07:00:05'
    conditions: []
    actions:
      - variables:
          messageCold: Es wird in den nächsten 6 Tagen Frieren!
          mtittleCold: Freezing Alarm!
          minTemp: 2
          maxTemp: 8
          messageWarm: Es ist wieder warm genug für Wasser draußen
          mtittleWarm: Wasser für draußen
      - action: weather.get_forecasts
        metadata: {}
        target:
          device_id: CHANGEME
        data:
          type: daily
        response_variable: daily
      - if:
          - condition: template
            value_template: |-
              {{ (daily['weather.forecast_home'].forecast
                  | map(attribute='templow') | min) < minTemp }}
          - condition: switch.is_off
            target:
              entity_id: input_boolean.wasser_bereit_fur_den_winter
            options:
              behavior: any
              for: '00:00:00'
        then:
          - action: notify.mobile_app_handy_artur
            metadata: {}
            data:
              message: '{{ messageCold }}'
              title: '{{ mtittleCold }}'
              data:
                actions:
                  - action: closed_outdoor_valve
                    title: Dunezo!
        alias: check for freezing
      - if:
          - condition: template
            value_template: |-
              {{ (daily['weather.forecast_home'].forecast
                  | map(attribute='templow') | min) > maxTemp }}
          - condition: switch.is_on
            target:
              entity_id: input_boolean.wasser_bereit_fur_den_winter
            options:
              behavior: any
              for: '00:00:00'
        then:
          - action: notify.mobile_app_CHANGEME
            metadata: {}
            data:
              message: '{{ messageWarm }}'
              title: '{{ mtittleWarm }}'
              data:
                actions:
                  - action: opend_outdoor_valve
                    title: Dunezo!
        alias: check for warm
    mode: single
    

    Automation for the Mobile action:

    alias: Mobile Actions
    mode: parallel
    max: 10
    triggers:
      - event_type: mobile_app_notification_action
        id: mobile_action_closed_outdoor_valve
        event_data:
          action: closed_outdoor_valve
        trigger: event
      - event_type: mobile_app_notification_action
        id: mobile_action_opend_outdoor_valve
        event_data:
          action: opend_outdoor_valve
        trigger: event
    conditions: []
    actions:
      - if:
          - condition: trigger
            id:
              - mobile_action_closed_outdoor_valve
        then:
          - action: input_boolean.turn_on
            metadata: {}
            target:
              entity_id: input_boolean.wasser_bereit_fur_den_winter
            data: {}
      - if:
          - condition: trigger
            id:
              - mobile_action_opend_outdoor_valve
        then:
          - action: input_boolean.turn_off
            metadata: {}
            target:
              entity_id: input_boolean.wasser_bereit_fur_den_winter
            data: {}