BOM Australia Weather Report
Node-RED

BOM Australia Weather Report

Weather Report from BOM Australia Weather Integration
A flow by Chykan Hunter

Download flow

Flow Details

Requirements: Bureau of Meteorology Custom Component - https://github.com/bremor/bureau_of_meteorology

Combines the state of the following sensors

  • sensor.yourlocation_short_text_0
  • sensor.yourlocation_now_now_label
  • sensor.yourlocation_now_temp_now
  • sensor.yourlocation_now_later_label
  • sensor.yourlocation_now_temp_later

Conditionally if Rain Max is above 0

  • sensor.yourlocation_rain_chance_0
  • sensor.yourlocation_rain_amount_min__0
  • sensor.yourlocation_rain_amount_max__0

Replace yourlocation with the location you have set in your sensors.

Sensor Nodes

  1. Edit the sensors to match your sensors.
  2. Ensure you select your Home Assistant Server, or you will end up with multiple servers in the configuration nodes.

MQTT App Nodes

  1. Change server to your MQTT Server
  2. Topic: your_awtrix_display/custom/app_name
[{"id":"3469548b92c5ebd2","type":"group","z":"c29e36f478fc3db8","name":"Weather Report Notification","style":{"label":true},"nodes":["84c71a44a230b27e","156419b165b14262","78d8d90668ba1dd1","be8530c14787f263","6fc272d1bc7bf308","554a6b0b4a6ab836","3510100d85dcc704","e89785a613b104d6","9b557734a4e2d3ef","456a29ba4642c43d","3de8d423d2e8a1c0","15129caa846c3535","09a058660b9554c8","5b27b3161d1f6ee3","8151008b74d935b3"],"x":94,"y":1339,"w":1292,"h":562},{"id":"84c71a44a230b27e","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_short_text_0"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"forecast","valueType":"str"}],"x":340,"y":1440,"wires":[["6fc272d1bc7bf308"]]},{"id":"156419b165b14262","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_now_temp_now"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"nowtemp","valueType":"str"}],"x":330,"y":1560,"wires":[["6fc272d1bc7bf308"]]},{"id":"78d8d90668ba1dd1","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_now_now_label"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"nowlabel","valueType":"str"}],"x":330,"y":1500,"wires":[["6fc272d1bc7bf308"]]},{"id":"be8530c14787f263","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_rain_chance_0"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"rainchance","valueType":"str"}],"x":340,"y":1740,"wires":[["6fc272d1bc7bf308"]]},{"id":"6fc272d1bc7bf308","type":"join","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":" ","joinerType":"str","useparts":true,"accumulate":true,"timeout":"","count":"9","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":710,"y":1560,"wires":[["554a6b0b4a6ab836"]]},{"id":"554a6b0b4a6ab836","type":"function","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"parser","func":"var state = msg.payload.weathericon;\nvar iconMap={\n \"clear-night\": \"54764\",\n \"cloudy\": \"2283\",\n \"fog\": \"17056\",\n \"hail\": \"53385\",\n \"lightning\": \"50231\",\n \"lightning-rainy\": \"57166\",\n \"partlycloudy\": \"43708\",\n \"pouring\": \"56677\",\n \"rainy\": \"26565\",\n \"snowy\": \"58081\",\n \"snowy-rainy\": \"49301\",\n \"sunny\": \"11201\",\n \"windy\": \"55032\",\n \"windy-variant\": \"55032\",\n \"exceptional\": \"56705\",\n};\nvar iconId = iconMap[state.toLowerCase()] || \"16754\"\n\nvar forecast = msg.payload.forecast;\nvar nowlabel = msg.payload.nowlabel;\nvar nowtemp = msg.payload.nowtemp;\nvar laterlabel = msg.payload.laterlabel;\nvar latertemp = msg.payload.latertemp;\nvar rainchance = msg.payload.rainchance;\nvar rainmin = msg.payload.rainmin;\nvar rainmax = msg.payload.rainmax;\n\nvar response = `${forecast} The ${nowlabel} is ${nowtemp}°C, ${laterlabel} will be ${latertemp}°C.`;\nif (rainmax != \"0\") {\n response += ` There is a ${rainchance}% chance of ${rainmin}-${rainmax} mm of rain`;\n}\n\nvar json = msg.payload;\nmsg.payload = {\n \"text\": response,\n \"textCase\": 1,\n \"icon\": `${iconId}`,\n \"pushIcon\": 2,\n \"repeat\": 2\n};\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":1560,"wires":[["3510100d85dcc704","456a29ba4642c43d"]]},{"id":"3510100d85dcc704","type":"mqtt out","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","topic":"awtrix_lounge/custom/weather1","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"34f7583aa6e3efb2","x":1210,"y":1540,"wires":[]},{"id":"e89785a613b104d6","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_now_temp_later"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"latertemp","valueType":"str"}],"x":330,"y":1680,"wires":[["6fc272d1bc7bf308"]]},{"id":"9b557734a4e2d3ef","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_now_later_label"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"laterlabel","valueType":"str"}],"x":330,"y":1620,"wires":[["6fc272d1bc7bf308"]]},{"id":"456a29ba4642c43d","type":"mqtt out","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"awtrix_bedroom/custom/weather1","topic":"awtrix_bedroom/custom/weather1","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"34f7583aa6e3efb2","x":1220,"y":1600,"wires":[]},{"id":"3de8d423d2e8a1c0","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_rain_amount_min_0"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"rainmin","valueType":"str"}],"x":320,"y":1800,"wires":[["6fc272d1bc7bf308"]]},{"id":"15129caa846c3535","type":"server-state-changed","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"","server":"bb380e72.b8825","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.devonport_rain_amount_max_0"],"substring":[],"regex":[]},"outputInitially":true,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"rainmax","valueType":"str"}],"x":320,"y":1860,"wires":[["6fc272d1bc7bf308"]]},{"id":"09a058660b9554c8","type":"function","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"parser","func":"var forecast = msg.payload.forecast;\nvar nowlabel = msg.payload.nowlabel;\nvar nowtemp = msg.payload.nowtemp;\nvar laterlabel = msg.payload.laterlabel;\nvar latertemp = msg.payload.latertemp;\nvar rainchance = msg.payload.rainchance;\nvar rainmin = msg.payload.rainmin;\nvar rainmax = msg.payload.rainmax;\n\nvar response = `${forecast} The ${nowlabel} is ${nowtemp}°C, ${laterlabel} will be ${latertemp}°C.`;\nif (rainmax != \"0\") {\n response += ` There is a ${rainchance}% chance of ${rainmin}-${rainmax} mm of rain`;\n}\n\nvar json = msg.payload;\nmsg.payload = {\n \"text\": response,\n \"textCase\": 1,\n \"icon\": 63141,\n \"pushIcon\": 2,\n \"repeat\": 2\n};\n\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":1620,"wires":[[]]},{"id":"5b27b3161d1f6ee3","type":"inject","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"Send Weather Periodically","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":260,"y":1380,"wires":[["8151008b74d935b3"]]},{"id":"8151008b74d935b3","type":"api-current-state","z":"c29e36f478fc3db8","g":"3469548b92c5ebd2","name":"Get Weather State","server":"bb380e72.b8825","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"weather.home","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"weathericon","valueType":"str"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":510,"y":1380,"wires":[["6fc272d1bc7bf308"]]},{"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":"34f7583aa6e3efb2","type":"mqtt-broker","name":"core-mosquitto: 1883 192.168.2.40","broker":"core-mosquitto","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]
-- Flow first published on February 12, 2025, last updated on February 16, 2025 at 16:08.