Skip to content

Instantly share code, notes, and snippets.

@MankiniChykan
Last active April 1, 2024 03:59
Show Gist options
  • Save MankiniChykan/e3500837b81117ae9f117d04776be41b to your computer and use it in GitHub Desktop.
Save MankiniChykan/e3500837b81117ae9f117d04776be41b to your computer and use it in GitHub Desktop.
TTS: Full Text Weather Report, BOM Australia Integration, Extract Weather Warning Data & Other Text

Thanks @StormyKnight17 I thought I would place a few examples down on how I used your template examples. It actually took me a number of years to find, as this post does not come up easily in Google Search. This post has been made to help others point to the closed Severe Weather Alert Issue #37

# Template Weather Warning Phase Text - Act as trigger for lovelace conditional card

Note: to prevent early execution of 'elif' statement:

  • (new and renewal) may need to change to (new and wal). or just (new)
  • (upgrade and downgrade) may need to change to (up and down) or just (grade)
  - platform: template
    sensors:
      weather_warning_phase:
        entity_id: sensor.devonport_warnings
        friendly_name: "Weather Warning Phase"
        value_template: >-
          {%- for state in state_attr('sensor.devonport_warnings', 'warnings') -%}
          {%- if 'new' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'renewal' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'update' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'upgrade' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'downgrade' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'final' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'cancelled' in state.phase %}
          {{state.phase | upper}}
          {%- endif -%}
          {%- endfor -%}

THE SIX SENSORS BELOW MAKE ONE FULL WEATHER REPORT.

I did have it as one complete code in my configuration.yaml but it kept breaking, I had to divide it up. (obviously too long to parse)

Combining all templates in a Custom: Mushroom Template Card results in the below. This will parse as a complete code.

image Card changes colour, Crimson for Major or Minor warning_group_type.

NOTE: sensor.text_dewpoint_comfort_outside is created using Weather Word Descriptions from Dew Point, Temperature, VOC & Tado (Simple Air Comfort Card)

Template to place in Mushroom Template Card shown above:

type: custom:mushroom-template-card
primary: >-
  {%- for state in state_attr('sensor.devonport_warnings', 'warnings') %} {%- if
  'major' in state.warning_group_type -%}  {{state.warning_group_type | upper}}
  {{ state.title | upper}} {%- endif -%} {%- endfor -%}
secondary: >-
  {%- for state in state_attr('sensor.devonport_warnings', 'warnings') %} {%- if
  'minor' in state.warning_group_type -%} {{state.warning_group_type | upper}}
  {{ state.title | upper}} {%- endif -%} {%- endfor -%} {{-('. Currently it is
  ')-}}  {{- states('sensor.netatmo_devonport_tas_indoor_outdoor_temperature',
  with_unit=true) -}} {{-(' but feels like ')-}} {{-
  states('sensor.outside_feels_like_temperature', with_unit=true)-}} {{-(', it
  is ')-}} {{- states('sensor.text_dewpoint_comfort_outside', with_unit=true)  |
  lower-}} {{-(' and ')-}} {{- states('sensor.text_temperature_comfort_outside',
  with_unit=true) | lower-}} {{-(' outside. The ')-}}  {{-
  states('sensor.devonport_now_now_label', with_unit=true) -}} {{-(' is ')-}}
  {{- states('sensor.devonport_now_temp_now', with_unit=true) -}} {{-(', ')-}}
  {{- states('sensor.devonport_now_later_label', with_unit=true) -}} {{-(' will
  be ')-}} {{- states('sensor.devonport_now_temp_later', with_unit=true) -}}
  {{-('. Conditions are ')-}} {{- states('sensor.weather_report_conditions') -}}
  {{- states('sensor.weather_report_conditions_2') -}} {%- if
  is_state('sensor.devonport_rain_chance_0', '0') %} {{-(' There is No Rain
  Forecast, with ')-}} {{- states('sensor.devonport_airport_rain_since_9am',
  with_unit=true) -}} {{-('since 9am. ')-}} {%- else %} {{-(' There is a ')-}}
  {{- states('sensor.devonport_rain_chance_0', with_unit=true) -}} {{-(' chance
  of ')-}} {{- states('sensor.devonport_rain_amount_range_0', with_unit=true)
  -}} {{-(' mm rain, with ')-}} {{-
  states('sensor.devonport_airport_rain_since_9am', with_unit=true) -}} {{-('
  since 9am. ')-}} {%- endif -%} {%- if
  is_state('sensor.devonport_fire_danger_0', 'unknown') %} {{-(' Fire Danger is
  LOW, ')-}} {%- else -%} {{-(' Fire Danger Rating is ')-}}
  {{-states('sensor.devonport_fire_danger_0') | upper -}} {%- endif -%} {%- if
  is_state('sensor.devonport_uv_category_0', 'unknown') %} {{-(' and NO UV ')-}}
  {%- else %} {{-(' and UV is ')-}} {{- states('sensor.devonport_uv_category_0')
  | upper -}} {%- endif -%}   
icon: null
entity: button.weather_report
multiline_secondary: true
tap_action:
  action: toggle
fill_container: true
icon_color: ''
card_mod:
  style: |
    ha-card  {
       --card-primary-font-size: 20px !important;
       --card-primary-line-height: 1.2
    }
    ha-card  {
       --card-secondary-font-size: 20px !important;
       --card-secondary-line-height: 1.2
    }
    ha-card  {
       {%- for state in state_attr('sensor.devonport_warnings', 'warnings') %} 
       {%- if ('major' or 'minor') in state.warning_group_type -%} 
       background: radial-gradient(circle, black, black, crimson)
       {%- endif -%} 
       {%- endfor -%}
    }

    }


For use in Node Red The state from the sensors below are recombined into the full weather report that can be sent to TTS.

NOTE: There is a 255 Character limit on the condition report. This will return 'unknown' if the state of the BOM Extended Text Weather Report exceeds this limit.

NOTE: The state from 'sensor.your_location_extended_text_0' has been split to two sensors at 230 characters each. This includes room for text prior the condition report.

image

# Template Weather Report Text- BOM Current Feel - Temperature Report - TTS Input

  - platform: template
    sensors:
      weather_report_temperature:
        entity_id: sensor.weather_report_temperature
        friendly_name: "Weather Report Temperature"
        value_template: >-
          {{'Currently it is'}}
          {{ states('sensor.netatmo_devonport_tas_indoor_outdoor_temperature', with_unit=true) }}
          {{'but feels like'}}
          {{ states('sensor.outside_feels_like_temperature',with_unit=true) }}
          {{', it is'}}
          {{ states('sensor.text_dewpoint_comfort_outside', with_unit=true)  | lower }}
          {{'and'}}
          {{states('sensor.text_temperature_comfort_outside', with_unit=true) | lower}}
          {{'outside. The '}}
          {{ states('sensor.devonport_now_now_label', with_unit=true) }}
          {{'is'}}
          {{ states('sensor.devonport_now_temp_now', with_unit=true) }}
          {{','}}
          {{ states('sensor.devonport_now_later_label', with_unit=true) }}
          {{'will be'}}
          {{ states('sensor.devonport_now_temp_later', with_unit=true) }}

# Template Weather Report Text- BOM Current Feel - Temp and Conditions Report - TTS Input - To avoid 255 character limit spilt over two sensors.

NOTE: The state from 'sensor.your_location_extended_text_0' has been split to two sensors at 230 characters each. This includes room for text prior the condition report.

  - platform: template
    sensors:
      weather_report_conditions:
        entity_id: sensor.weather_report_conditions
        friendly_name: "Weather Report Conditions"
        value_template: >-
          {{'. Conditions are'}}
          {% set details = state_attr('sensor.devonport_extended_text_0', 'state') %}
          {{ details[:230] if state | length < 230 else '' -}}
      weather_report_conditions_2:
        entity_id: sensor.weather_report_conditions_2
        friendly_name: "Weather Report Conditions_2"
        value_template: >-
          {%- set details = state_attr('sensor.devonport_extended_text_0', 'state') %}
          {{- details[230:] if state | length < 230 else '' }}

# Template Weather Report Text - BOM Current rain and chance of rain - TTS Input

  - platform: template
    sensors:
      weather_report_rain:
        entity_id: sensor.weather_report_rain
        friendly_name: "Weather Report Rain"
        value_template: >-
          {%- if is_state('sensor.devonport_rain_chance_0', '0') %}
          {{'There is No Rain Forecast, with'}}
          {{states('sensor.devonport_airport_rain_since_9am', with_unit=true) }}
          {{'since 9 AM.'}}
          {%- else %}
          {{'There is a'}}
          {{ states('sensor.devonport_rain_chance_0', with_unit=true) }}
          {{'chance of'}}
          {{ states('sensor.devonport_rain_amount_range_0', with_unit=true) }}
          {{'mm rain, with'}}
          {{ states('sensor.devonport_airport_rain_since_9am', with_unit=true) }}
          {{'since 9 AM.'}}
          {%- endif -%}

# Template Weather Report Text - BOM Current Fire Danger and UV - TTS Input

  - platform: template
    sensors:
      weather_report_fire_uv:
        entity_id: sensor.weather_report_fire_uv
        friendly_name: "Weather Report Fire UV"
        value_template: >-
          {%- if is_state('sensor.devonport_fire_danger_0', 'unknown') %}
          {{'Fire Danger is LOW,'}}
          {%- else %}
          {{'Fire Danger Rating is'}}
          {{ states('sensor.devonport_fire_danger_0') | upper }}
          {%- endif -%}
          {%- if is_state('sensor.devonport_uv_category_0', 'unknown') %}
          {{'and NO UV'}}
          {%- else %}
          {{'and UV is'}}
          {{ states('sensor.devonport_uv_category_0') | upper }}
          {%- endif -%}

# Template Weather Report Text - BOM Current weather warnings - TTS Input

  - platform: template
    sensors:
      weather_report_warnings:
        entity_id: sensor.weather_report_warnings
        friendly_name: "Weather Report Warnings"
        value_template: >-
          {%- for state in state_attr('sensor.devonport_warnings', 'warnings') %}
          {%- if 'cancelled' in state.phase %}
            NO WEATHER WARNINGS 
          {%- elif 'minor' in state.warning_group_type%}
            . 
          {{ state.warning_group_type | upper}} {{ state.title | upper }}
          {%- elif 'major' in state.warning_group_type%}
            . 
          {{ state.warning_group_type | upper}} {{ state.title | upper }}
          {%- endif %}
          {%- endfor -%}

To enter all of the above sensors into your configuration.yaml file just copy the below. Ensure it is under the -platform: template section. You will have to change the sensor names to your own entities. # ALL BOM TEXT SENSORS

  - platform: template
    sensors:
# Template Weather Warning Phase Text - Act as trigger for lovelace conditional card
      weather_warning_phase:
        entity_id: sensor.devonport_warnings
        friendly_name: "Weather Warning Phase"
        value_template: >-
          {%- for state in state_attr('sensor.devonport_warnings', 'warnings') -%}
          {%- if 'new' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'renewal' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'update' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'upgrade' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'downgrade' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'final' in state.phase %}
          {{state.phase | upper}}
          {%- elif 'cancelled' in state.phase %}
          {{state.phase | upper}}
          {%- endif -%}
          {%- endfor -%}
# Template Weather Report Text- BOM Current Feel - Temp Report - TTS Input
      weather_report_temperature:
        entity_id: sensor.weather_report_temperature
        friendly_name: "Weather Report Temperature"
        value_template: >-
          {{'Currently it is'}}
          {{ states('sensor.netatmo_devonport_tas_indoor_outdoor_temperature', with_unit=true) }}
          {{'but feels like'}}
          {{ states('sensor.outside_feels_like_temperature',with_unit=true) }}
          {{', it is'}}
          {{ states('sensor.text_dewpoint_comfort_outside', with_unit=true)  | lower }}
          {{'and'}}
          {{states('sensor.text_temperature_comfort_outside', with_unit=true) | lower}}
          {{'outside. The '}}
          {{ states('sensor.devonport_now_now_label', with_unit=true) }}
          {{'is'}}
          {{ states('sensor.devonport_now_temp_now', with_unit=true) }}
          {{','}}
          {{ states('sensor.devonport_now_later_label', with_unit=true) }}
          {{'will be'}}
          {{ states('sensor.devonport_now_temp_later', with_unit=true) }}
# Template Weather Report Text- BOM Current Conditions - TTS Input - To avoid 255 character limit spilt over two sensors.
      weather_report_conditions:
        entity_id: sensor.weather_report_conditions
        friendly_name: "Weather Report Conditions"
        value_template: >-
          {{'. Conditions are'}}
          {% set details = state_attr('sensor.devonport_extended_text_0', 'state') %}
          {{ details[:230] if state | length < 230 else '' -}}
      weather_report_conditions_2:
        entity_id: sensor.weather_report_conditions_2
        friendly_name: "Weather Report Conditions_2"
        value_template: >-
          {%- set details = state_attr('sensor.devonport_extended_text_0', 'state') %}
          {{- details[230:] if state | length < 230 else '' }}
# Template Weather Report Text - BOM Current rain and chance of rain - TTS Input
      weather_report_rain:
        entity_id: sensor.weather_report_rain
        friendly_name: "Weather Report Rain"
        value_template: >-
          {%- if is_state('sensor.devonport_rain_chance_0', '0') %}
          {{'There is No Rain Forecast, with'}}
          {{states('sensor.devonport_airport_rain_since_9am', with_unit=true) }}
          {{'since 9am.'}}
          {%- else %}
          {{'There is a'}}
          {{ states('sensor.devonport_rain_chance_0', with_unit=true) }}
          {{'chance of'}}
          {{ states('sensor.devonport_rain_amount_range_0', with_unit=true) }}
          {{'mm rain, with'}}
          {{ states('sensor.devonport_airport_rain_since_9am', with_unit=true) }}
          {{'since 9am.'}}
          {%- endif -%}
# Template Weather Report Text - BOM Current Fire Danger and UV - TTS Input
      weather_report_fire_uv:
        entity_id: sensor.weather_report_fire_uv
        friendly_name: "Weather Report Fire UV"
        value_template: >-
          {%- if is_state('sensor.devonport_fire_danger_0', 'unknown') %}
          {{'Fire Danger is LOW,'}}
          {%- else %}
          {{'Fire Danger Rating is'}}
          {{ states('sensor.devonport_fire_danger_0') | upper }}
          {%- endif -%}
          {%- if is_state('sensor.devonport_uv_category_0', 'unknown') %}
          {{'and NO UV'}}
          {%- else %}
          {{'and UV is'}}
          {{ states('sensor.devonport_uv_category_0') | upper }}
          {%- endif -%}
# Template Weather Report Text - BOM Current weather warnings - TTS Input
      weather_report_warnings:
        entity_id: sensor.weather_report_warnings
        friendly_name: "Weather Report Warnings"
        value_template: >-
          {%- for state in state_attr('sensor.devonport_warnings', 'warnings') %}
          {%- if 'cancelled' in state.phase %}
            NO WEATHER WARNINGS 
          {%- elif 'minor' in state.warning_group_type%}
            . 
          {{ state.warning_group_type | upper}} {{ state.title | upper }}
          {%- elif 'major' in state.warning_group_type%}
            . 
          {{ state.warning_group_type | upper}} {{ state.title | upper }}
          {%- endif %}
          {%- endfor -%}
[{"id":"60be9160.d8815","type":"tab","label":"BOM Weather TTS","disabled":false,"info":""},{"id":"b10568117bd2249f","type":"group","z":"60be9160.d8815","name":"BOM WEATHER REPORTS","style":{"fill":"#bfdbef","fill-opacity":"0.5","label":true},"nodes":["52f23ec3.3b5e2","436314631faa644c","8e72667a7b8a53fb","8c03099508090358","e9250718e596a7a0","8e6a4b4896846515","8f9e710269a1ce06","6c339547ecab3316"],"x":68,"y":53,"w":1638,"h":574},{"id":"436314631faa644c","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"Send at Set Times or by button entity attached to mushroom template card.","style":{"label":true},"nodes":["7dabf8e3.27a638","6ad03f6fcb89fbcf","474339c540df3139","6cad931ac5e45a2f","3d638cc8a92265d7"],"x":94,"y":79,"w":473,"h":322},{"id":"8e72667a7b8a53fb","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"Current state of template sensors.","style":{"label":true},"nodes":["8e62e35b.288c1","3f68e608c8a43e22","fbf8ad71d2094160","b51ad8c87f4478b2","e27ab99566eba5a6","36c183f0734f2a6d"],"x":394,"y":119,"w":432,"h":382},{"id":"8c03099508090358","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"Delay messages in order","style":{"label":true},"nodes":["3eb8859467fdea12","70b0190cf16a65b0","4f888875dd178dfd","d4a20e9115d79bfb","8bdc113a65ce9153"],"x":1034,"y":119,"w":192,"h":382},{"id":"e9250718e596a7a0","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"Join and send after 5","style":{"label":true},"nodes":["dc53debf5e0f3a1f"],"x":1254,"y":119,"w":232,"h":82},{"id":"8e6a4b4896846515","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"Change abbreviations","style":{"label":true},"nodes":["c8812fd4f0b26ac8"],"x":1274,"y":219,"w":212,"h":82},{"id":"8f9e710269a1ce06","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"Output to TTS Speaker Group","style":{"label":true},"nodes":["306336766891dd5e"],"x":1414,"y":339,"w":252,"h":82},{"id":"6c339547ecab3316","type":"group","z":"60be9160.d8815","g":"b10568117bd2249f","name":"If state exceed 254 characters and returns 'unknown', read the BOM Extended Text 0 instead. Two Sensor Split should not require this.","style":{"label":true,"fill":"#ff0000","fill-opacity":"0.42","color":"#000000"},"nodes":["ab3edfca4a37ee06","9876127b964a1dcd"],"x":594,"y":519,"w":842,"h":82},{"id":"7dabf8e3.27a638","type":"inject","z":"60be9160.d8815","g":"436314631faa644c","name":"08:00","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 08 * * 1,2,3,4,5","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":185,"y":180,"wires":[["8e62e35b.288c1","3f68e608c8a43e22","fbf8ad71d2094160","b51ad8c87f4478b2","e27ab99566eba5a6","36c183f0734f2a6d"]],"l":false},{"id":"52f23ec3.3b5e2","type":"debug","z":"60be9160.d8815","g":"b10568117bd2249f","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1610,"y":100,"wires":[]},{"id":"8e62e35b.288c1","type":"api-current-state","z":"60be9160.d8815","g":"8e72667a7b8a53fb","name":"","server":"84a85f6b.8d261","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_conditions","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":600,"y":220,"wires":[["ab3edfca4a37ee06"],[]]},{"id":"306336766891dd5e","type":"api-call-service","z":"60be9160.d8815","g":"8f9e710269a1ce06","name":"TTS Speaker Group","server":"84a85f6b.8d261","version":5,"debugenabled":true,"domain":"tts","service":"cloud_say","areaId":[],"deviceId":[],"entityId":["media_player.speaker_group"],"data":"{ \"message\": msg.payload }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1540,"y":380,"wires":[[]]},{"id":"dc53debf5e0f3a1f","type":"join","z":"60be9160.d8815","g":"e9250718e596a7a0","name":"Weather Report","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"","joinerType":"str","accumulate":false,"timeout":"","count":"6","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1370,"y":160,"wires":[["c8812fd4f0b26ac8"]]},{"id":"3f68e608c8a43e22","type":"api-current-state","z":"60be9160.d8815","g":"8e72667a7b8a53fb","name":"","server":"84a85f6b.8d261","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_rain","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":580,"y":340,"wires":[["70b0190cf16a65b0"],[]]},{"id":"fbf8ad71d2094160","type":"api-current-state","z":"60be9160.d8815","g":"8e72667a7b8a53fb","name":"","server":"84a85f6b.8d261","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_fire_uv","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":590,"y":400,"wires":[["4f888875dd178dfd"],[]]},{"id":"b51ad8c87f4478b2","type":"api-current-state","z":"60be9160.d8815","g":"8e72667a7b8a53fb","name":"","server":"84a85f6b.8d261","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_warnings","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":600,"y":460,"wires":[["d4a20e9115d79bfb"],[]]},{"id":"c8812fd4f0b26ac8","type":"change","z":"60be9160.d8815","g":"8e6a4b4896846515","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"°C","fromt":"str","to":"degrees","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"km/h","fromt":"str","to":"kilometers per hour","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"mm","fromt":"str","to":"millimeters","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"Max","fromt":"str","to":"Maximum","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"Comfy","fromt":"str","to":"","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"Overnight min","fromt":"str","to":"Overnight Minimum","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"9am.","fromt":"str","to":"9 AM. ","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1380,"y":260,"wires":[["52f23ec3.3b5e2","306336766891dd5e"]]},{"id":"6ad03f6fcb89fbcf","type":"inject","z":"60be9160.d8815","g":"436314631faa644c","name":"08:45","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"45 08 * * 6,0","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":185,"y":240,"wires":[["8e62e35b.288c1","3f68e608c8a43e22","fbf8ad71d2094160","b51ad8c87f4478b2","e27ab99566eba5a6","36c183f0734f2a6d"]],"l":false},{"id":"474339c540df3139","type":"inject","z":"60be9160.d8815","g":"436314631faa644c","name":"17:50","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"50 17 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":185,"y":300,"wires":[["8e62e35b.288c1","3f68e608c8a43e22","fbf8ad71d2094160","b51ad8c87f4478b2","e27ab99566eba5a6","36c183f0734f2a6d"]],"l":false},{"id":"6cad931ac5e45a2f","type":"inject","z":"60be9160.d8815","g":"436314631faa644c","name":"19:30","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"30 19 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":185,"y":360,"wires":[["8e62e35b.288c1","3f68e608c8a43e22","fbf8ad71d2094160","b51ad8c87f4478b2","e27ab99566eba5a6","36c183f0734f2a6d"]],"l":false},{"id":"e27ab99566eba5a6","type":"api-current-state","z":"60be9160.d8815","g":"8e72667a7b8a53fb","name":"","server":"84a85f6b.8d261","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_temperature","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":610,"y":160,"wires":[["8bdc113a65ce9153"],[]]},{"id":"3eb8859467fdea12","type":"delay","z":"60be9160.d8815","g":"8c03099508090358","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1120,"y":220,"wires":[["dc53debf5e0f3a1f"]]},{"id":"70b0190cf16a65b0","type":"delay","z":"60be9160.d8815","g":"8c03099508090358","name":"","pauseType":"delay","timeout":"8","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1120,"y":340,"wires":[["dc53debf5e0f3a1f"]]},{"id":"4f888875dd178dfd","type":"delay","z":"60be9160.d8815","g":"8c03099508090358","name":"","pauseType":"delay","timeout":"9","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1120,"y":400,"wires":[["dc53debf5e0f3a1f"]]},{"id":"d4a20e9115d79bfb","type":"delay","z":"60be9160.d8815","g":"8c03099508090358","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1120,"y":460,"wires":[["dc53debf5e0f3a1f"]]},{"id":"8bdc113a65ce9153","type":"delay","z":"60be9160.d8815","g":"8c03099508090358","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1130,"y":160,"wires":[["dc53debf5e0f3a1f"]]},{"id":"3d638cc8a92265d7","type":"ha-button","z":"60be9160.d8815","g":"436314631faa644c","name":"Weather Report","version":0,"debugenabled":false,"outputs":1,"entityConfig":"d80419cf90c3e120","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":200,"y":120,"wires":[["e27ab99566eba5a6","8e62e35b.288c1","3f68e608c8a43e22","fbf8ad71d2094160","b51ad8c87f4478b2","36c183f0734f2a6d"]]},{"id":"ab3edfca4a37ee06","type":"api-current-state","z":"60be9160.d8815","g":"6c339547ecab3316","name":"Conditions Unknown","server":"bb380e72.b8825","version":3,"outputs":2,"halt_if":"unknown","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_conditions","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":720,"y":560,"wires":[["3eb8859467fdea12"],["9876127b964a1dcd"]]},{"id":"9876127b964a1dcd","type":"api-current-state","z":"60be9160.d8815","g":"6c339547ecab3316","name":"","server":"bb380e72.b8825","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.devonport_extended_text_0","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1050,"y":560,"wires":[["3eb8859467fdea12"],[]]},{"id":"36c183f0734f2a6d","type":"api-current-state","z":"60be9160.d8815","g":"8e72667a7b8a53fb","name":"","server":"84a85f6b.8d261","version":3,"outputs":2,"halt_if":"boo","halt_if_type":"str","halt_if_compare":"is_not","entity_id":"sensor.weather_report_conditions_2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":610,"y":280,"wires":[["4af196b5cfc59e7e"],[]]},{"id":"4af196b5cfc59e7e","type":"delay","z":"60be9160.d8815","name":"","pauseType":"delay","timeout":"7","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1120,"y":280,"wires":[["dc53debf5e0f3a1f"]]},{"id":"84a85f6b.8d261","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"d80419cf90c3e120","type":"ha-entity-config","server":"bb380e72.b8825","deviceConfig":"1de690ce29283996","name":"Weather Report","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Weather Report"},{"property":"icon","value":""},{"property":"entity_picture","value":""},{"property":"entity_category","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"bb380e72.b8825","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"1de690ce29283996","type":"ha-device-config","name":"Weather Report","hwVersion":"","manufacturer":"Node-RED","model":"","swVersion":""}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment