mirror of
				https://github.com/Akkudoktor-EOS/EOS.git
				synced 2025-10-30 06:16:21 +00:00 
			
		
		
		
	Config: Move lat/long/timezone from prediction to general
This commit is contained in:
		| @@ -2,7 +2,22 @@ | ||||
|  | ||||
| ## Settings for common configuration | ||||
|  | ||||
| General configuration to set directories of cache and output files. | ||||
| General configuration to set directories of cache and output files and system location (latitude | ||||
| and longitude). | ||||
| Validators ensure each parameter is within a specified range. A computed property, `timezone`, | ||||
| determines the time zone based on latitude and longitude. | ||||
|  | ||||
| Attributes: | ||||
|     latitude (Optional[float]): Latitude in degrees, must be between -90 and 90. | ||||
|     longitude (Optional[float]): Longitude in degrees, must be between -180 and 180. | ||||
|  | ||||
| Properties: | ||||
|     timezone (Optional[str]): Computed time zone string based on the specified latitude | ||||
|         and longitude. | ||||
|  | ||||
| Validators: | ||||
|     validate_latitude (float): Ensures `latitude` is within the range -90 to 90. | ||||
|     validate_longitude (float): Ensures `longitude` is within the range -180 to 180. | ||||
|  | ||||
| :::{table} general | ||||
| :widths: 10 20 10 5 5 30 | ||||
| @@ -13,6 +28,9 @@ General configuration to set directories of cache and output files. | ||||
| | data_folder_path | `EOS_GENERAL__DATA_FOLDER_PATH` | `Optional[pathlib.Path]` | `rw` | `None` | Path to EOS data directory. | | ||||
| | data_output_subpath | `EOS_GENERAL__DATA_OUTPUT_SUBPATH` | `Optional[pathlib.Path]` | `rw` | `output` | Sub-path for the EOS output data directory. | | ||||
| | data_cache_subpath | `EOS_GENERAL__DATA_CACHE_SUBPATH` | `Optional[pathlib.Path]` | `rw` | `cache` | Sub-path for the EOS cache data directory. | | ||||
| | latitude | `EOS_GENERAL__LATITUDE` | `Optional[float]` | `rw` | `52.52` | Latitude in decimal degrees, between -90 and 90, north is positive (ISO 19115) (°) | | ||||
| | longitude | `EOS_GENERAL__LONGITUDE` | `Optional[float]` | `rw` | `13.405` | Longitude in decimal degrees, within -180 to 180 (°) | | ||||
| | timezone | | `Optional[str]` | `ro` | `N/A` | Compute timezone based on latitude and longitude. | | ||||
| | data_output_path | | `Optional[pathlib.Path]` | `ro` | `N/A` | Compute data_output_path based on data_folder_path. | | ||||
| | data_cache_path | | `Optional[pathlib.Path]` | `ro` | `N/A` | Compute data_cache_path based on data_folder_path. | | ||||
| | config_folder_path | | `Optional[pathlib.Path]` | `ro` | `N/A` | Path to EOS configuration directory. | | ||||
| @@ -28,7 +46,9 @@ General configuration to set directories of cache and output files. | ||||
|        "general": { | ||||
|            "data_folder_path": null, | ||||
|            "data_output_subpath": "output", | ||||
|            "data_cache_subpath": "cache" | ||||
|            "data_cache_subpath": "cache", | ||||
|            "latitude": 52.52, | ||||
|            "longitude": 13.405 | ||||
|        } | ||||
|    } | ||||
| ``` | ||||
| @@ -43,6 +63,9 @@ General configuration to set directories of cache and output files. | ||||
|            "data_folder_path": null, | ||||
|            "data_output_subpath": "output", | ||||
|            "data_cache_subpath": "cache", | ||||
|            "latitude": 52.52, | ||||
|            "longitude": 13.405, | ||||
|            "timezone": "Europe/Berlin", | ||||
|            "data_output_path": null, | ||||
|            "data_cache_path": null, | ||||
|            "config_folder_path": "/home/user/.config/net.akkudoktoreos.net", | ||||
| @@ -308,27 +331,18 @@ Attributes: | ||||
| ## General Prediction Configuration | ||||
|  | ||||
| This class provides configuration for prediction settings, allowing users to specify | ||||
| parameters such as the forecast duration (in hours) and location (latitude and longitude). | ||||
| Validators ensure each parameter is within a specified range. A computed property, `timezone`, | ||||
| determines the time zone based on latitude and longitude. | ||||
| parameters such as the forecast duration (in hours). | ||||
| Validators ensure each parameter is within a specified range. | ||||
|  | ||||
| Attributes: | ||||
|     hours (Optional[int]): Number of hours into the future for predictions. | ||||
|         Must be non-negative. | ||||
|     historic_hours (Optional[int]): Number of hours into the past for historical data. | ||||
|         Must be non-negative. | ||||
|     latitude (Optional[float]): Latitude in degrees, must be between -90 and 90. | ||||
|     longitude (Optional[float]): Longitude in degrees, must be between -180 and 180. | ||||
|  | ||||
| Properties: | ||||
|     timezone (Optional[str]): Computed time zone string based on the specified latitude | ||||
|         and longitude. | ||||
|  | ||||
| Validators: | ||||
|     validate_hours (int): Ensures `hours` is a non-negative integer. | ||||
|     validate_historic_hours (int): Ensures `historic_hours` is a non-negative integer. | ||||
|     validate_latitude (float): Ensures `latitude` is within the range -90 to 90. | ||||
|     validate_longitude (float): Ensures `longitude` is within the range -180 to 180. | ||||
|  | ||||
| :::{table} prediction | ||||
| :widths: 10 20 10 5 5 30 | ||||
| @@ -338,12 +352,9 @@ Validators: | ||||
| | ---- | -------------------- | ---- | --------- | ------- | ----------- | | ||||
| | hours | `EOS_PREDICTION__HOURS` | `Optional[int]` | `rw` | `48` | Number of hours into the future for predictions | | ||||
| | historic_hours | `EOS_PREDICTION__HISTORIC_HOURS` | `Optional[int]` | `rw` | `48` | Number of hours into the past for historical predictions data | | ||||
| | latitude | `EOS_PREDICTION__LATITUDE` | `Optional[float]` | `rw` | `52.52` | Latitude in decimal degrees, between -90 and 90, north is positive (ISO 19115) (°) | | ||||
| | longitude | `EOS_PREDICTION__LONGITUDE` | `Optional[float]` | `rw` | `13.405` | Longitude in decimal degrees, within -180 to 180 (°) | | ||||
| | timezone | | `Optional[str]` | `ro` | `N/A` | Compute timezone based on latitude and longitude. | | ||||
| ::: | ||||
|  | ||||
| ### Example Input | ||||
| ### Example Input/Output | ||||
|  | ||||
| ```{eval-rst} | ||||
| .. code-block:: json | ||||
| @@ -351,25 +362,7 @@ Validators: | ||||
|    { | ||||
|        "prediction": { | ||||
|            "hours": 48, | ||||
|            "historic_hours": 48, | ||||
|            "latitude": 52.52, | ||||
|            "longitude": 13.405 | ||||
|        } | ||||
|    } | ||||
| ``` | ||||
|  | ||||
| ### Example Output | ||||
|  | ||||
| ```{eval-rst} | ||||
| .. code-block:: json | ||||
|  | ||||
|    { | ||||
|        "prediction": { | ||||
|            "hours": 48, | ||||
|            "historic_hours": 48, | ||||
|            "latitude": 52.52, | ||||
|            "longitude": 13.405, | ||||
|            "timezone": "Europe/Berlin" | ||||
|            "historic_hours": 48 | ||||
|        } | ||||
|    } | ||||
| ``` | ||||
|   | ||||
| @@ -295,8 +295,8 @@ The `PVForecastAkkudoktor` provider retrieves the PV power forecast data directl | ||||
|  | ||||
| The following prediction configuration options of the PV system must be set: | ||||
|  | ||||
| - `prediction.latitude`: Latitude in decimal degrees, between -90 and 90, north is positive (ISO 19115) (°)" | ||||
| - `prediction.longitude`: Longitude in decimal degrees, within -180 to 180 (°) | ||||
| - `general.latitude`: Latitude in decimal degrees, between -90 and 90, north is positive (ISO 19115) (°)" | ||||
| - `general.longitude`: Longitude in decimal degrees, within -180 to 180 (°) | ||||
|  | ||||
| For each plane of the PV system the following configuration options must be set: | ||||
|  | ||||
| @@ -310,7 +310,7 @@ Example: | ||||
|  | ||||
| ```Python | ||||
| { | ||||
|   "prediction": { | ||||
|   "general": { | ||||
|     "latitude": 50.1234, | ||||
|     "longitude": 9.7654, | ||||
|   }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user