Skoro zostałem “wywołany do tablicy” to odpowiem, że nie wiem jak to rozwiązać, ale wydaje się, że problem leży w integracji, która zwraca wartość 0 zamiast niedostępności - więc na początek należałoby prześledzić stan encji źródłowych.
Bazując na dokumentacji
spróbowałbym jednak takiej konstrukcji
(zakładam, że jednak niedostępność jest poprawnie zaimplementowana, natomiast konstrukcja template, którą używasz ignoruje błędy, ta poniżej nie powinna obliczyć wartości jeśli nie ma dostepu do danch)
sensors:
woda_dom:
value_template: "{{ (states.sensor.water_meter_value_2.state|float - states.sensor.water_meter_value.state|float) | round(2) }}"
unit_of_measurement: 'm³'
icon_template: mdi:gauge
możliwe, że brakuje spacji (usuwałem okrągłe nawiasy, przynajmniej te które raczej tu są zbędne)