Energy dashboard grid consumption vs. return

I have a solar inverter that reports consumption from grid. When I consume energy, it gives positive values. When I return energy to the grid, it gives negative values.

Energy dashboard does not let me add it to the “Grid consumption”:

Entity has a negative state
The following entities have a negative state while a positive state is expected:

* sensor.deye_grid_l2_energy (-0.06)

Furthermore - I buy with one price and sell with another. Both prices are fluctuating.

Should I somehow split consumption vs return to two different sensors? Maybe someone has done it already?

I’ll answer to myself just in case anyone else needs this - I ended up creating two sensors for each phase and integral sensor to measure energy over time:

template:
  - sensor:
      - name: "Grid L1 Power Consumption"
        unit_of_measurement: "W"
        device_class: power
        state: >
          {% set power = states('sensor.deye_inverter_grid_l1_power') | float(0) %}
          {{ max(0, power) }}
        
      - name: "Grid L1 Power Return"
        unit_of_measurement: "W"
        device_class: power
        state: >
          {% set power = states('sensor.deye_inverter_grid_l1_power') | float(0) %}
          {{ max(0, -power) }}

sensor:
  - platform: integration
    source: sensor.grid_l1_power_consumption
    name: "Grid L1 Energy Consumed"
    unit_prefix: k
    round: 2
    method: trapezoidal
    
  - platform: integration
    source: sensor.grid_l1_power_return
    name: "Grid L1 Energy Returned"
    unit_prefix: k
    round: 2
    method: trapezoidal