parent
093a7915f0
commit
fdcd28f96a
|
|
@ -40,9 +40,9 @@ from .const import (
|
||||||
WIND_SPEED,
|
WIND_SPEED,
|
||||||
UnitOfDir,
|
UnitOfDir,
|
||||||
MONTHLY_RAIN,
|
MONTHLY_RAIN,
|
||||||
HOURLY_RAIN,
|
|
||||||
YEARLY_RAIN,
|
YEARLY_RAIN,
|
||||||
HOURLY_RAIN,
|
HOURLY_RAIN,
|
||||||
|
WEEKLY_RAIN,
|
||||||
)
|
)
|
||||||
from .sensors_common import WeatherSensorEntityDescription
|
from .sensors_common import WeatherSensorEntityDescription
|
||||||
from .utils import wind_dir_to_text
|
from .utils import wind_dir_to_text
|
||||||
|
|
@ -145,7 +145,7 @@ SENSOR_TYPES_WSLINK: tuple[WeatherSensorEntityDescription, ...] = (
|
||||||
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
|
native_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
|
||||||
device_class=SensorDeviceClass.PRECIPITATION,
|
device_class=SensorDeviceClass.PRECIPITATION,
|
||||||
state_class=SensorStateClass.TOTAL,
|
state_class=SensorStateClass.TOTAL,
|
||||||
suggested_unit_of_measurement=UnitOfPrecipitationDepth.MILLIMETERS_PER_HOUR,
|
suggested_unit_of_measurement=UnitOfVolumetricFlux.MILLIMETERS_PER_HOUR,
|
||||||
suggested_display_precision=2,
|
suggested_display_precision=2,
|
||||||
icon="mdi:weather-pouring",
|
icon="mdi:weather-pouring",
|
||||||
translation_key=RAIN,
|
translation_key=RAIN,
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,46 @@ def long_term_units_in_statistics_meta():
|
||||||
return sensor_units
|
return sensor_units
|
||||||
|
|
||||||
|
|
||||||
def migrate_data(sensor_id: str | None = None):
|
async def migrate_data(hass: HomeAssistant, sensor_id: str | None = None) -> bool:
|
||||||
|
"""Migrate data from mm/d to mm."""
|
||||||
|
|
||||||
|
_LOGGER.debug("Sensor %s is required for data migration", sensor_id)
|
||||||
|
updated_rows = 0
|
||||||
|
|
||||||
|
if not Path(DATABASE_PATH).exists():
|
||||||
|
_LOGGER.error("Database file not found: %s", DATABASE_PATH)
|
||||||
|
return False
|
||||||
|
|
||||||
|
conn = sqlite3.connect(DATABASE_PATH)
|
||||||
|
db = conn.cursor()
|
||||||
|
|
||||||
|
try:
|
||||||
|
_LOGGER.info(sensor_id)
|
||||||
|
db.execute(
|
||||||
|
"""
|
||||||
|
UPDATE statistics_meta
|
||||||
|
SET unit_of_measurement = 'mm'
|
||||||
|
WHERE statistic_id = ?
|
||||||
|
AND unit_of_measurement = 'mm/d';
|
||||||
|
""",
|
||||||
|
(sensor_id,),
|
||||||
|
)
|
||||||
|
updated_rows = db.rowcount
|
||||||
|
conn.commit()
|
||||||
|
_LOGGER.info(
|
||||||
|
"Data migration completed successfully. Updated rows: %s for %s",
|
||||||
|
updated_rows,
|
||||||
|
sensor_id,
|
||||||
|
)
|
||||||
|
|
||||||
|
except sqlite3.Error as e:
|
||||||
|
_LOGGER.error("Error during data migration: %s", e)
|
||||||
|
finally:
|
||||||
|
conn.close()
|
||||||
|
return updated_rows
|
||||||
|
|
||||||
|
|
||||||
|
def migrate_data_old(sensor_id: str | None = None):
|
||||||
"""Migrate data from mm/d to mm."""
|
"""Migrate data from mm/d to mm."""
|
||||||
updated_rows = 0
|
updated_rows = 0
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue