const states = global.get('homeassistant.homeAssistant.states') const temp_F = states['sensor.home_tempest_temperature'].state const elevation_ft = 693 // Get the pressure from the payload let pressure_inHg = msg.payload if (isNaN(pressure_inHg)) { node.error("Invalid pressure value in msg.payload: " + msg.payload) msg.payload = null return null } // Convert pressure from inHg to hPa let pressure_hPa = pressure_inHg * 33.8639 // Convert temperature to °C let temp_C = (temp_F - 32) * (5 / 9) // Convert elevation from feet to meters let elevation_m = elevation_ft / 3.28084 // Apply the barometric formula let slp = pressure_hPa * Math.pow( 1 - ((0.0065 * elevation_m) / (temp_C + (0.0065 * elevation_m) + 273.15)), -5.257 ) // Optional: Convert back to inHg let slp_inHg = slp / 33.8639 // Round both values slp = Math.round(slp * 100) / 100 slp_inHg = Math.round(slp_inHg * 100) / 100 // Return the SLP value msg.payload = slp_inHg node.status({fill:'Success',shape:'dot',text:'green'}) return msg