How to do maths in sensor template with esphome on hassio?

OK

I hope this helps…

esphome:
  name: ringlight
  platform: ESP8266
  board: d1_mini
  esp8266_restore_from_flash: true

wifi:
  ssid: '---'
  password: '---'

i2c:
  sda: D2
  scl: D1

sensor:
  - platform: bme680
    temperature:
      name: "BME680 Temperature"
      id: temp
      oversampling: 16x
      filters:
       - offset: -2.8  // odd, but mine was wrong!!
       - multiply: 1.0
    pressure:
      name: "BME680 Pressure"
      id: press
      unit_of_measurement: "mbar"
      filters:
       - offset: 8.5  // odd, but mine was wrong!!
       - multiply: 1.0
    humidity:
      name: "BME680 Humidity"
      id: rh
    gas_resistance:
      name: "BME680 Gas Resistance"
    address: 0x76
    update_interval: 15s
    heater: 
     temperature: 200
     duration: 0ms

  - platform: uptime
    name: "ringlight Uptime"

  - platform: wifi_signal
    name: "ringlight WiFi Signal"
    update_interval: 15s



  - platform: template
    name: "BME680 Absolute Humidity v1"
    unit_of_measurement: "g/m^3"
    lambda: |-
      const float mw = 18.01534;    // molar mass of water g/mol  from bme280 sample in esphome
      const float r = 8.31447215;   // Universal gas constant J/mol/K
      return (6.112 * powf(2.718281828, (17.67 * id(temp).state) /
        (id(temp).state + 243.5)) * id(rh).state * mw) /
        ((273.15 + id(temp).state) * r); // in grams/m^3
    accuracy_decimals: 2
    update_interval: 15s



  - platform: template
#    name: "BME680 Sat Vap Press"
    id: satvappress
    unit_of_measurement: "mbar"
    lambda: |-
      return ( (6.112 * powf(2.718281828, (17.62 * id(temp).state) / (id(temp).state + 243.12)) ) * (1.0016 + (3.15 * powf(10, -6) * id(press).state) - (0.074/id(press).state)) );  
    accuracy_decimals: 2
    update_interval: 15s

  - platform: template
    name: "BME680 Absolute Humidity"
    unit_of_measurement: "kg/m^3"
    lambda: |-
      const float rv = 461.40000;   // const for water from plantecalc.com/2167
      return ( (id(satvappress).state * 100 * id(rh).state/100 ) / ( (273.15 + id(temp).state) * rv) ); // in kg/m^3
    accuracy_decimals: 4
    update_interval: 15s
       
  - platform: template
    name: "BME680 Dew Point"
    unit_of_measurement: "°C"
    lambda: |-
      const float a = 17.27;   // const from https://planetcalc.com/248/
      const float b = 237.7;   // const from https://planetcalc.com/248/
      return ( (b * ( (id(temp).state * a) / ( b + id(temp).state) + logf (id(rh).state/100) ) )/( a - ( (id(temp).state * a) / ( b + id(temp).state) + logf (id(rh).state/100) ) ) ); 
    accuracy_decimals: 4
    update_interval: 15s