diff --git a/.coveragerc b/.coveragerc
index 94e1667bad8..85e08d51f71 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -471,7 +471,9 @@ omit =
     homeassistant/components/greenwave/light.py
     homeassistant/components/group/notify.py
     homeassistant/components/growatt_server/__init__.py
+    homeassistant/components/growatt_server/const.py
     homeassistant/components/growatt_server/sensor.py
+    homeassistant/components/growatt_server/sensor_types/*
     homeassistant/components/gstreamer/media_player.py
     homeassistant/components/gtfs/sensor.py
     homeassistant/components/guardian/__init__.py
diff --git a/homeassistant/components/growatt_server/sensor.py b/homeassistant/components/growatt_server/sensor.py
index d9ca800131f..b22664897fd 100644
--- a/homeassistant/components/growatt_server/sensor.py
+++ b/homeassistant/components/growatt_server/sensor.py
@@ -315,6 +315,25 @@ class GrowattData:
                     "%s - No drop detected, using API value", entity_description.name
                 )
 
+        # Lifetime total values should always be increasing, they will never reset, however
+        # the API sometimes returns 0 values when the clock turns to 00:00 local time
+        # in that scenario we should just return the previous value
+        # Scenarios:
+        # 1 - System has a genuine 0 value when it it first commissioned:
+        #        - will return 0 until a non-zero value is registered
+        # 2 - System has been running fine but temporarily resets to 0 briefly at midnight:
+        #        - will return the previous value
+        # 3 - HA is restarted during the midnight 'outage' - Not handled:
+        #        - Previous value will not exist meaning 0 will be returned
+        #        - This is an edge case that would be better handled by looking up the previous
+        #          value of the entity from the recorder
+        if entity_description.never_resets and api_value == 0 and previous_value:
+            _LOGGER.debug(
+                "API value is 0, but this value should never reset, returning previous value (%s) instead",
+                previous_value,
+            )
+            return_value = previous_value
+
         self.previous_values[variable] = return_value
 
         return return_value
diff --git a/homeassistant/components/growatt_server/sensor_types/sensor_entity_description.py b/homeassistant/components/growatt_server/sensor_types/sensor_entity_description.py
index 08a20209098..cd286e228b4 100644
--- a/homeassistant/components/growatt_server/sensor_types/sensor_entity_description.py
+++ b/homeassistant/components/growatt_server/sensor_types/sensor_entity_description.py
@@ -20,3 +20,4 @@ class GrowattSensorEntityDescription(SensorEntityDescription, GrowattRequiredKey
     precision: int | None = None
     currency: bool = False
     previous_value_drop_threshold: float | None = None
+    never_resets: bool = False
diff --git a/homeassistant/components/growatt_server/sensor_types/tlx.py b/homeassistant/components/growatt_server/sensor_types/tlx.py
index ba455747457..2a6e76a55a7 100644
--- a/homeassistant/components/growatt_server/sensor_types/tlx.py
+++ b/homeassistant/components/growatt_server/sensor_types/tlx.py
@@ -1,4 +1,8 @@
-"""Growatt Sensor definitions for the TLX type."""
+"""
+Growatt Sensor definitions for the TLX type.
+
+TLX Type is also shown on the UI as: "MIN/MIC/MOD/NEO"
+"""
 from __future__ import annotations
 
 from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass
@@ -7,6 +11,7 @@ from homeassistant.const import (
     ELECTRIC_POTENTIAL_VOLT,
     ENERGY_KILO_WATT_HOUR,
     FREQUENCY_HERTZ,
+    PERCENTAGE,
     POWER_WATT,
     TEMP_CELSIUS,
 )
@@ -29,8 +34,9 @@ TLX_SENSOR_TYPES: tuple[GrowattSensorEntityDescription, ...] = (
         api_key="eacTotal",
         native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
         device_class=SensorDeviceClass.ENERGY,
-        state_class=SensorStateClass.TOTAL,
+        state_class=SensorStateClass.TOTAL_INCREASING,
         precision=1,
+        never_resets=True,
     ),
     GrowattSensorEntityDescription(
         key="tlx_energy_total_input_1",
@@ -38,8 +44,9 @@ TLX_SENSOR_TYPES: tuple[GrowattSensorEntityDescription, ...] = (
         api_key="epv1Total",
         native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
         device_class=SensorDeviceClass.ENERGY,
-        state_class=SensorStateClass.TOTAL,
+        state_class=SensorStateClass.TOTAL_INCREASING,
         precision=1,
+        never_resets=True,
     ),
     GrowattSensorEntityDescription(
         key="tlx_energy_today_input_1",
@@ -80,8 +87,9 @@ TLX_SENSOR_TYPES: tuple[GrowattSensorEntityDescription, ...] = (
         api_key="epv2Total",
         native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
         device_class=SensorDeviceClass.ENERGY,
-        state_class=SensorStateClass.TOTAL,
+        state_class=SensorStateClass.TOTAL_INCREASING,
         precision=1,
+        never_resets=True,
     ),
     GrowattSensorEntityDescription(
         key="tlx_energy_today_input_2",
@@ -116,6 +124,101 @@ TLX_SENSOR_TYPES: tuple[GrowattSensorEntityDescription, ...] = (
         device_class=SensorDeviceClass.POWER,
         precision=1,
     ),
+    GrowattSensorEntityDescription(
+        key="tlx_energy_total_input_3",
+        name="Lifetime total energy input 3",
+        api_key="epv3Total",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        precision=1,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_energy_today_input_3",
+        name="Energy Today Input 3",
+        api_key="epv3Today",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_voltage_input_3",
+        name="Input 3 voltage",
+        api_key="vpv3",
+        native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
+        device_class=SensorDeviceClass.VOLTAGE,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_amperage_input_3",
+        name="Input 3 Amperage",
+        api_key="ipv3",
+        native_unit_of_measurement=ELECTRIC_CURRENT_AMPERE,
+        device_class=SensorDeviceClass.CURRENT,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_wattage_input_3",
+        name="Input 3 Wattage",
+        api_key="ppv3",
+        native_unit_of_measurement=POWER_WATT,
+        device_class=SensorDeviceClass.POWER,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_energy_total_input_4",
+        name="Lifetime total energy input 4",
+        api_key="epv4Total",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        precision=1,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_energy_today_input_4",
+        name="Energy Today Input 4",
+        api_key="epv4Today",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_voltage_input_4",
+        name="Input 4 voltage",
+        api_key="vpv4",
+        native_unit_of_measurement=ELECTRIC_POTENTIAL_VOLT,
+        device_class=SensorDeviceClass.VOLTAGE,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_amperage_input_4",
+        name="Input 4 Amperage",
+        api_key="ipv4",
+        native_unit_of_measurement=ELECTRIC_CURRENT_AMPERE,
+        device_class=SensorDeviceClass.CURRENT,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_wattage_input_4",
+        name="Input 4 Wattage",
+        api_key="ppv4",
+        native_unit_of_measurement=POWER_WATT,
+        device_class=SensorDeviceClass.POWER,
+        precision=1,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_solar_generation_total",
+        name="Lifetime total solar energy",
+        api_key="epvTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
     GrowattSensorEntityDescription(
         key="tlx_internal_wattage",
         name="Internal wattage",
@@ -187,4 +290,143 @@ TLX_SENSOR_TYPES: tuple[GrowattSensorEntityDescription, ...] = (
         device_class=SensorDeviceClass.TEMPERATURE,
         precision=1,
     ),
+    GrowattSensorEntityDescription(
+        key="tlx_all_batteries_discharge_today",
+        name="All batteries discharged today",
+        api_key="edischargeToday",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_all_batteries_discharge_total",
+        name="Lifetime total all batteries discharged",
+        api_key="edischargeTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_1_discharge_w",
+        name="Battery 1 discharging W",
+        api_key="bdc1DischargePower",
+        native_unit_of_measurement=POWER_WATT,
+        device_class=SensorDeviceClass.POWER,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_1_discharge_total",
+        name="Lifetime total battery 1 discharged",
+        api_key="bdc1DischargeTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_2_discharge_w",
+        name="Battery 2 discharging W",
+        api_key="bdc1DischargePower",
+        native_unit_of_measurement=POWER_WATT,
+        device_class=SensorDeviceClass.POWER,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_2_discharge_total",
+        name="Lifetime total battery 2 discharged",
+        api_key="bdc1DischargeTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_all_batteries_charge_today",
+        name="All batteries charged today",
+        api_key="echargeToday",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_all_batteries_charge_total",
+        name="Lifetime total all batteries charged",
+        api_key="echargeTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_1_charge_w",
+        name="Battery 1 charging W",
+        api_key="bdc1ChargePower",
+        native_unit_of_measurement=POWER_WATT,
+        device_class=SensorDeviceClass.POWER,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_1_charge_total",
+        name="Lifetime total battery 1 charged",
+        api_key="bdc1ChargeTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_2_charge_w",
+        name="Battery 2 charging W",
+        api_key="bdc1ChargePower",
+        native_unit_of_measurement=POWER_WATT,
+        device_class=SensorDeviceClass.POWER,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_battery_2_charge_total",
+        name="Lifetime total battery 2 charged",
+        api_key="bdc1ChargeTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_export_to_grid_today",
+        name="Export to grid today",
+        api_key="etoGridToday",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_export_to_grid_total",
+        name="Lifetime total export to grid",
+        api_key="etoGridTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_load_consumption_today",
+        name="Load consumption today",
+        api_key="elocalLoadToday",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+    ),
+    GrowattSensorEntityDescription(
+        key="mix_load_consumption_total",
+        name="Lifetime total load consumption",
+        api_key="elocalLoadTotal",
+        native_unit_of_measurement=ENERGY_KILO_WATT_HOUR,
+        device_class=SensorDeviceClass.ENERGY,
+        state_class=SensorStateClass.TOTAL_INCREASING,
+        never_resets=True,
+    ),
+    GrowattSensorEntityDescription(
+        key="tlx_statement_of_charge",
+        name="Statement of charge (SoC)",
+        api_key="bmsSoc",
+        native_unit_of_measurement=PERCENTAGE,
+        device_class=SensorDeviceClass.BATTERY,
+    ),
 )