meteocat 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ labels: bug
6
6
  assignees: ""
7
7
  ---
8
8
 
9
- **IMPORTANT: Please search the issues, including closed issues before opening a new issue.
9
+ **IMPORTANT: Please search the issues (including closed ones) *and* check the [Wiki - Troubleshooting](https://github.com/figorr/meteocat/wiki/Troubleshooting) page before opening a new issue.
10
10
  The template is mandatory; failure to use it will result in issue closure.**
11
11
 
12
12
  ---
@@ -33,37 +33,7 @@ jobs:
33
33
  git config user.name "semantic-release-bot"
34
34
  git config user.email "jdcuartero@yahoo.es"
35
35
 
36
- # Paso 5: Obtener próxima versión (dry-run)
37
- - name: Get next version
38
- id: nextver
39
- run: |
40
- version=$(npx semantic-release --dry-run | grep "The next release version is" | awk '{print $NF}')
41
- echo "next_version=$version" >> $GITHUB_OUTPUT
42
- echo "Next version: $version"
43
-
44
- # Paso 6: Actualizar archivos de versión antes del release
45
- - name: Update version in files
46
- run: |
47
- version=${{ steps.nextver.outputs.next_version }}
48
-
49
- # pyproject.toml
50
- sed -i "s/^version = \".*\"/version = \"$version\"/" pyproject.toml
51
-
52
- # manifest.json
53
- jq --arg ver "$version" '.version = $ver' custom_components/meteocat/manifest.json > tmp.json && mv tmp.json custom_components/meteocat/manifest.json
54
-
55
- # version.py
56
- echo "__version__ = \"$version\"" > custom_components/meteocat/version.py
57
-
58
- # __init__.py
59
- sed -i "s/^__version__ = \".*\"/__version__ = \"$version\"/" custom_components/meteocat/__init__.py
60
-
61
- # Commit con [skip ci] para no reiniciar workflow
62
- git add pyproject.toml custom_components/meteocat/manifest.json custom_components/meteocat/version.py custom_components/meteocat/__init__.py
63
- git commit -m "chore: bump version to $version [skip ci]" || echo "No changes to commit"
64
- git push origin master
65
-
66
- # Paso 7: Ejecutar semantic-release (generación de release, changelog, assets)
36
+ # Paso 5: Ejecutar semantic-release (se encargará de actualizar versiones, changelog, y release)
67
37
  - name: Run semantic-release
68
38
  env:
69
39
  GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}
@@ -3,6 +3,7 @@ name: Sync to GitLab
3
3
  on:
4
4
  release:
5
5
  types: [published] # Se dispara al publicarse un release en GitHub
6
+ workflow_dispatch: # Permite ejecución manual desde la interfaz
6
7
 
7
8
  jobs:
8
9
  sync:
@@ -36,6 +37,7 @@ jobs:
36
37
  if ! git merge-base --is-ancestor gitlab/master master; then
37
38
  echo "❌ GitLab master tiene commits que GitHub no tiene. Revisar antes de sincronizar."
38
39
  exit 1
40
+ fi
39
41
 
40
42
  # Paso 5: Push de commits y tags a GitLab
41
43
  - name: Push commits and tags to GitLab
package/.releaserc CHANGED
@@ -9,6 +9,27 @@
9
9
  "changelogFile": "CHANGELOG.md"
10
10
  }
11
11
  ],
12
+ [
13
+ "@semantic-release/exec",
14
+ {
15
+ "prepareCmd": "bash ./scripts/update_version.sh ${nextRelease.version}"
16
+ }
17
+ ],
18
+ [
19
+ "@semantic-release/git",
20
+ {
21
+ "assets": [
22
+ "pyproject.toml",
23
+ "custom_components/meteocat/manifest.json",
24
+ "custom_components/meteocat/version.py",
25
+ "custom_components/meteocat/__init__.py",
26
+ "CHANGELOG.md",
27
+ "package.json",
28
+ "package-lock.json"
29
+ ],
30
+ "message": "chore(release): v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
31
+ }
32
+ ],
12
33
  "@semantic-release/npm",
13
34
  "@semantic-release/github"
14
35
  ],
package/AUTHORS.md CHANGED
@@ -10,3 +10,4 @@
10
10
 
11
11
  ## Contributors
12
12
 
13
+ - mcasellas [GitHub](https://github.com/mcasellas)
package/CHANGELOG.md CHANGED
@@ -1,4 +1,25 @@
1
- # [2.3.0](https://github.com/figorr/meteocat/compare/v2.2.7...v2.3.0) (2025-09-10)
1
+ # [3.0.0](https://github.com/figorr/meteocat/compare/v2.3.0...v3.0.0) (2025-09-14)
2
+
3
+
4
+ ### Features
5
+
6
+ * change unique_id to use town_id ([3a048ce](https://github.com/figorr/meteocat/commit/3a048ce48a0e1f3ee7642c28bbe7ac6e6e3fc298))
7
+
8
+
9
+ ### BREAKING CHANGES
10
+
11
+ * Entities now use town_id instead of region_id in their unique_id.
12
+ This change enables multiple integration entries that share the same region_id but different towns.
13
+
14
+ Recommended upgrade path:
15
+ 1. Uninstall the existing integration (v2.x).
16
+ 2. Restart Home Assistant.
17
+ 3. Install v3.0.0 and reconfigure the integration.
18
+
19
+ If you update directly without uninstalling first, old entities will remain as 'unavailable' and new entities will be created (possibly with a suffix like '2').
20
+ In that case, you may need to manually remove the old entities and update your automations or dashboards.
21
+
22
+ ## [2.3.0](https://github.com/figorr/meteocat/compare/v2.2.7...v2.3.0) (2025-09-10)
2
23
 
3
24
 
4
25
  ### Features
@@ -15,6 +36,7 @@
15
36
  * update README ([9855939](https://github.com/figorr/meteocat/commit/98559398e6bae30e8e9c9ff2b2fe27409a3930bd))
16
37
  * update repo files structure ([0778679](https://github.com/figorr/meteocat/commit/0778679d218a89e89bb18791f1245c5c9f7b188f))
17
38
 
39
+
18
40
  ## [2.2.7](https://github.com/figorr/meteocat/compare/v2.2.6...v2.2.7) (2025-08-29)
19
41
 
20
42
 
package/README.md CHANGED
@@ -6,8 +6,9 @@
6
6
  [![Validate](https://github.com/figorr/meteocat/actions/workflows/validate.yaml/badge.svg)](https://github.com/figorr/meteocat/actions/workflows/validate.yaml)
7
7
  [![Release](https://github.com/figorr/meteocat/actions/workflows/release.yml/badge.svg)](https://github.com/figorr/meteocat/actions/workflows/release.yml)
8
8
  ![GitHub all releases](https://img.shields.io/github/downloads/figorr/meteocat/total)
9
- ![GitHub release (latest by SemVer)](https://img.shields.io/github/downloads/figorr/meteocat/latest/total)
10
-
9
+ ![GitHub release](https://img.shields.io/github/downloads/figorr/meteocat/latest/total)
10
+ ![Latest release](https://img.shields.io/github/v/release/figorr/meteocat?label=latest)
11
+ [![Breaking Changes](https://img.shields.io/badge/Breaking%20Changes-critical?logo=data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjIuODggMTExLjU0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzFhMWExYTt9LmNscy0ye2ZpbGw6I2ZmZWYxMTtmaWxsLXJ1bGU6ZXZlbm9kZDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmNhdXRpb248L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIuMzUsODQuNDIsNDUuMjgsMTAuMmwuMTctLjI3aDBBMjMsMjMsMCwwLDEsNTIuNSwyLjY5LDE3LDE3LDAsMCwxLDYxLjU3LDBhMTYuNywxNi43LDAsMCwxLDkuMTEsMi42OSwyMi43OSwyMi43OSwwLDAsMSw3LDcuMjZxLjE5LjMyLjM2LjYzbDQyLjIzLDczLjM0LjI0LjQ0aDBhMjIuNDgsMjIuNDgsMCwwLDEsMi4zNywxMC4xOSwxNy42MywxNy42MywwLDAsMS0yLjE3LDguMzUsMTUuOTQsMTUuOTQsMCwwLDEtNi45Myw2LjZjLS4xOS4xLS4zOS4xOC0uNTguMjZhMjEuMTksMjEuMTksMCwwLDEtOS4xMSwxLjc1djBIMTcuNjFjLS4yMiwwLS40NCwwLS42NSwwYTE4LjA3LDE4LjA3LDAsMCwxLTYuMi0xLjE1QTE2LjQyLDE2LjQyLDAsMCwxLDMsMTA0LjI0YTE3LjUzLDE3LjUzLDAsMCwxLTMtOS41NywyMywyMywwLDAsMSwxLjU3LTguNzQsNy42Niw3LjY2LDAsMCwxLC43Ny0xLjUxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTksODguNzUsNTIuMTIsMTQuMTZjNS4yNC04LjI1LDEzLjU0LTguNDYsMTguODcsMGw0Mi40Myw3My42OWMzLjM5LDYuODEsMS43MSwxNi05LjMzLDE1Ljc3SDE3LjYxQzEwLjM1LDEwMy44LDUuNjcsOTcuNDMsOSw4OC43NVoiLz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik01Ny41Nyw4Mi42OUE1LjQ4LDUuNDgsMCwwLDEsNjEsODEuMTFhNS42Niw1LjY2LDAsMCwxLDQuNDIsMS42Niw1LjUzLDUuNTMsMCwwLDEsMS42MiwzLjU0QTUuNiw1LjYsMCwwLDEsNjcsODcuNzJhNiw2LDAsMCwxLS40MiwxLjM0LDUuNTMsNS41MywwLDAsMS0yLjkyLDIuODQsNS43OSw1Ljc5LDAsMCwxLTQuNTctLjEsNS41MSw1LjUxLDAsMCwxLTIuODEtMi45NCw1LjMxLDUuMzEsMCwwLDEtLjM2LTEuMjcsNS45LDUuOSwwLDAsMS0uMDYtMS4zMmgwYTYuNDUsNi40NSwwLDAsMSwuNTctMiw0LjYsNC42LDAsMCwxLDEuMTQtMS41NlptOC4xNS0xMC4yNGMtLjE5LDQuNzktOC4zMSw0LjgtOC40OSwwLS44Mi04LjIxLTIuOTItMjcuNy0yLjg2LTM1LjQyLjA3LTIuMzgsMi0zLjc4LDQuNTYtNC4zMmExMS4xOSwxMS4xOSwwLDAsMSwyLjQ5LS4yNCwxMS43NywxMS43NywwLDAsMSwyLjUuMjVjMi42MS41NSw0LjY1LDIsNC42NSw0LjQ0di4yNEw2NS43Miw3Mi40NVoiLz48L3N2Zz4=&logoColor=white)](#-breaking-changes---upgrade-to-3x)
11
12
 
12
13
  This is a project to obtain meteorological data from the Meteocat API inside the Home Assistant environment.
13
14
 
@@ -21,8 +22,39 @@ Commercial use of this project or the data obtained from the API is not allowed
21
22
 
22
23
  This is a personal project.
23
24
 
24
- Authors:
25
- - Figorr
25
+ **Authors:**
26
+ - [Figorr](https://github.com/figorr)
27
+
28
+ **Contributors:**
29
+ - [mcasellas](https://github.com/mcasellas) – contributed [c505f27](https://github.com/figorr/meteocat/commit/c505f27)
30
+
31
+ ## ⚠️ Breaking changes - Upgrade to 3.0.0 or later coming from prior versions
32
+
33
+ Version **3.0.0 and later** introduces a **breaking change** in how entities are identified.
34
+
35
+ ### ⚠️ What this affects
36
+ - This affects any update **from a version prior to 3.0.0** to **any version 3.x or later**.
37
+ - Entities now use **`town_id`** instead of `region_id` in their `unique_id`.
38
+ - This change allows multiple integration entries that share the same `region_id` but different towns.
39
+
40
+ ### ✅ Recommended upgrade procedure
41
+ To avoid issues with duplicated or unavailable entities:
42
+
43
+ 1. **Uninstall** the existing integration (v2.x).
44
+ 2. **Restart** Home Assistant.
45
+ 3. **Install v3.0.0 or later** and configure the integration again.
46
+
47
+ ### 🚨 If you update directly
48
+ If you update without uninstalling first:
49
+
50
+ - Old entities will remain as **Unavailable**.
51
+ - New entities will be created (sometimes with a suffix like `2`).
52
+ - You may need to manually **remove old entities** and update your automations, dashboards, or scripts to point to the new entities.
53
+
54
+ ### 📑 Additional notes
55
+
56
+ - This change affects all entity types, including **sensors, diagnostic sensors, and alerts**.
57
+ - Always backup your **Home Assistant configuration** before performing major upgrades.
26
58
 
27
59
  ## Installation
28
60
 
@@ -35,7 +67,6 @@ Authors:
35
67
  1. Click `+ Add Integration`
36
68
  1. Search for `Meteocat` and follow the configuration instructions
37
69
 
38
-
39
70
  #### HACS - Install from the store
40
71
  1. Go to `HACS`
41
72
  1. Search for `Meteocat` and add it to HACS
@@ -103,7 +134,42 @@ You will see three available options:
103
134
  If for any reason some files in the `assets` folder (`towns.json`, `stations.json`, `variables.json`, `symbols.json`, or `stations_<town_id>.json`) are missing or outdated, you can regenerate them directly from the options menu.
104
135
  > ℹ️ If the Meteocat API is not available at that moment, the integration will still start, and you can retry regeneration later.
105
136
 
106
- ![Options](images/options.png)
137
+ ### Accessing the Options Menu
138
+
139
+ You can access the Options Menu in two ways, both inside the integration:
140
+
141
+ - **Setup Options**
142
+
143
+ ![Setup Options menu](images/setup_options.png)
144
+
145
+ - **System Options**
146
+
147
+ ![System Options menu](images/system_options.png)
148
+
149
+ Once inside, you will see the following options:
150
+
151
+ ![Available Options](images/options.png)
152
+
153
+
154
+ ## Uninstallation
155
+
156
+ To correctly uninstall the integration:
157
+
158
+ - If you are upgrading due to **breaking changes**, remove all configured entries from
159
+ **Settings > Devices & Services > Integrations**, restart Home Assistant, and reinstall the new version.
160
+ - If you want to **completely remove Meteocat**, after removing the entries and restarting, also uninstall the integration from **HACS > Integrations**.
161
+
162
+ 👉 For detailed steps with screenshots, check the [Uninstallation Guide](https://github.com/figorr/meteocat/wiki/Uninstallation).
163
+
164
+ # Documentation
165
+
166
+ For more detailed information about:
167
+ - Installation and configuration
168
+ - Usage examples
169
+ - Extra attributes in sensors
170
+ - Known issues and troubleshooting
171
+
172
+ please visit the [📖 Meteocat Wiki](https://github.com/figorr/meteocat/wiki).
107
173
 
108
174
  # Contributing
109
175
 
@@ -41,7 +41,7 @@ from .const import DOMAIN, PLATFORMS
41
41
  _LOGGER = logging.getLogger(__name__)
42
42
 
43
43
  # Versión
44
- __version__ = ""
44
+ __version__ = "3.0.0"
45
45
 
46
46
  # Definir el esquema de configuración CONFIG_SCHEMA
47
47
  CONFIG_SCHEMA = vol.Schema(
@@ -20,5 +20,5 @@
20
20
  "packaging>=20.3",
21
21
  "wrapt>=1.14.0"
22
22
  ],
23
- "version": ""
23
+ "version": "3.0.0"
24
24
  }
@@ -608,7 +608,7 @@ class MeteocatStaticSensor(CoordinatorEntity[MeteocatStaticSensorCoordinator], S
608
608
  self._region_id = entry_data["region_id"]
609
609
 
610
610
  # Unique ID for the entity
611
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._station_id}_{self.entity_description.key}"
611
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_{self.entity_description.key}"
612
612
 
613
613
  # Assign entity_category if defined in the description
614
614
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -785,7 +785,7 @@ class MeteocatSensor(CoordinatorEntity[MeteocatSensorCoordinator], SensorEntity)
785
785
  self._station_id = entry_data["station_id"]
786
786
 
787
787
  # Unique ID for the entity
788
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._station_id}_{self.entity_description.key}"
788
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_{self.entity_description.key}"
789
789
 
790
790
  # Asigna entity_category desde description (si está definido)
791
791
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -1075,7 +1075,7 @@ class MeteocatHourlyForecastStatusSensor(CoordinatorEntity[MeteocatEntityCoordin
1075
1075
  self._station_id = entry_data["station_id"]
1076
1076
 
1077
1077
  # Unique ID for the entity
1078
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._station_id}_hourly_status"
1078
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_hourly_status"
1079
1079
 
1080
1080
  # Assign entity_category if defined in the description
1081
1081
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -1138,7 +1138,7 @@ class MeteocatDailyForecastStatusSensor(CoordinatorEntity[MeteocatEntityCoordina
1138
1138
  self._station_id = entry_data["station_id"]
1139
1139
 
1140
1140
  # Unique ID for the entity
1141
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._station_id}_daily_status"
1141
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_daily_status"
1142
1142
 
1143
1143
  # Assign entity_category if defined in the description
1144
1144
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -1201,7 +1201,7 @@ class MeteocatUviStatusSensor(CoordinatorEntity[MeteocatUviCoordinator], SensorE
1201
1201
  self._station_id = entry_data["station_id"]
1202
1202
 
1203
1203
  # Unique ID for the entity
1204
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._station_id}_uvi_status"
1204
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_uvi_status"
1205
1205
 
1206
1206
  # Assign entity_category if defined in the description
1207
1207
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -1264,7 +1264,7 @@ class MeteocatAlertStatusSensor(CoordinatorEntity[MeteocatAlertsCoordinator], Se
1264
1264
  self._limit_prediccio = entry_data["limit_prediccio"]
1265
1265
 
1266
1266
  # Unique ID for the entity
1267
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._region_id}_alert_status"
1267
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_alert_status"
1268
1268
 
1269
1269
  # Assign entity_category if defined in the description
1270
1270
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -1352,7 +1352,7 @@ class MeteocatAlertRegionSensor(CoordinatorEntity[MeteocatAlertsRegionCoordinato
1352
1352
  self._region_id = entry_data["region_id"]
1353
1353
 
1354
1354
  # Unique ID for the entity
1355
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._region_id}_alerts"
1355
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_alerts"
1356
1356
 
1357
1357
  # Assign entity_category if defined in the description
1358
1358
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -1459,7 +1459,7 @@ class MeteocatAlertMeteorSensor(CoordinatorEntity[MeteocatAlertsRegionCoordinato
1459
1459
  self._region_id = entry_data["region_id"]
1460
1460
 
1461
1461
  # Unique ID for the entity
1462
- self._attr_unique_id = f"sensor.{DOMAIN}_{self._region_id}_{self.entity_description.key}"
1462
+ self._attr_unique_id = f"sensor.{DOMAIN}_{self._town_id}_{self.entity_description.key}"
1463
1463
 
1464
1464
  # Assign entity_category if defined in the description
1465
1465
  self._attr_entity_category = getattr(description, "entity_category", None)
@@ -2,7 +2,7 @@
2
2
  "config": {
3
3
  "step": {
4
4
  "user": {
5
- "description": "Introduïu la API Key subministrada per Meteocat per poder iniciar el procés de validació.",
5
+ "description": "Introduïu l'API Key subministrada per Meteocat per poder iniciar el procés de validació.",
6
6
  "title": "API Key"
7
7
  },
8
8
  "select_municipi": {
@@ -21,11 +21,11 @@
21
21
  },
22
22
  "set_api_limits": {
23
23
  "description": "Defineix els límits del pla de l'API.",
24
- "title": "API límits"
24
+ "title": "Límits de l'API"
25
25
  }
26
26
  },
27
27
  "error": {
28
- "bad_request": "Petició no vàlida. Reviseu la vostra API Key.",
28
+ "bad_request": "Petició invàlida. Reviseu la vostra API Key.",
29
29
  "forbidden": "Accés denegat. Reviseu els permisos de la vostra API Key.",
30
30
  "rate_limit_exceeded": "Excés del límit de peticions. Si us plau, torneu-ho a provar més tard.",
31
31
  "server_error": "Error del servidor. Torneu-ho a provar més tard.",
@@ -67,8 +67,8 @@
67
67
  "selector": {
68
68
  "option": {
69
69
  "options": {
70
- "update_api_and_limits": "Actualitzar API Key i limits.",
71
- "update_limits_only": "Actualitzar API limits.",
70
+ "update_api_and_limits": "Actualitzar API Key i límits.",
71
+ "update_limits_only": "Actualitzar API límits.",
72
72
  "regenerate_assets": "Regenera arxius a 'assets'."
73
73
  }
74
74
  }
@@ -169,15 +169,15 @@
169
169
  "name": "Estat del Cel",
170
170
  "state": {
171
171
  "sunny": "Assolellat",
172
- "clear-night": "Nit Clara",
172
+ "clear-night": "Nit serena",
173
173
  "partlycloudy": "Parcialment ennuvolat",
174
174
  "cloudy": "Ennuvolat",
175
175
  "rainy": "Plovent",
176
- "pouring": "Tormenta",
177
- "lightning-rainy": "Tormenta amb Llamps",
176
+ "pouring": "Tempesta",
177
+ "lightning-rainy": "Tempesta amb llamps",
178
178
  "hail": "Calamarsa",
179
179
  "snowy": "Nevant",
180
- "snow-rainy": "Neu amb Pluja"
180
+ "snow-rainy": "Aiguaneu"
181
181
  },
182
182
  "state_attributes": {
183
183
  "hour": {
@@ -820,4 +820,4 @@
820
820
  }
821
821
  }
822
822
  }
823
-
823
+
@@ -1 +1 @@
1
- __version__ = ""
1
+ __version__ = "3.0.0"
@@ -107,7 +107,7 @@ class MeteocatWeatherEntity(CoordinatorEntity, WeatherEntity):
107
107
  @property
108
108
  def unique_id(self) -> str:
109
109
  """Return the unique ID of the entity."""
110
- return f"weather.{DOMAIN}_{self._station_id}"
110
+ return f"weather.{DOMAIN}_{self._town_id}"
111
111
 
112
112
  @property
113
113
  def condition(self) -> Optional[str]:
package/hacs.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Meteocat",
3
- "homeassistant": "2025.8.3",
3
+ "homeassistant": "2025.9.1",
4
4
  "hide_default_branch": true,
5
5
  "render_readme": true,
6
6
  "zip_release": true,
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meteocat",
3
- "version": "2.3.0",
3
+ "version": "3.0.0",
4
4
  "description": "[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\r [![Python version compatibility](https://img.shields.io/pypi/pyversions/meteocat)](https://pypi.org/project/meteocat)\r [![pipeline status](https://gitlab.com/figorr/meteocat/badges/master/pipeline.svg)](https://gitlab.com/figorr/meteocat/commits/master)",
5
5
  "main": "index.js",
6
6
  "directories": {
package/pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "meteocat"
3
- version = ""
3
+ version = "3.0.0"
4
4
  description = "Script para obtener datos meteorológicos de la API de Meteocat"
5
5
  authors = ["figorr <jdcuartero@yahoo.es>"]
6
6
  license = "Apache-2.0"
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ version="$1"
5
+
6
+ # pyproject.toml
7
+ sed -i "s/^version = \".*\"/version = \"$version\"/" pyproject.toml
8
+
9
+ # manifest.json
10
+ jq --arg ver "$version" '.version = $ver' custom_components/meteocat/manifest.json > tmp.json && mv tmp.json custom_components/meteocat/manifest.json
11
+
12
+ # version.py
13
+ echo "__version__ = \"$version\"" > custom_components/meteocat/version.py
14
+
15
+ # __init__.py
16
+ sed -i "s/^__version__ = \".*\"/__version__ = \"$version\"/" custom_components/meteocat/__init__.py