Skip to content

Commit

Permalink
Fix: manage upgrade of hourly & daily integrations
Browse files Browse the repository at this point in the history
- Manage upgrade of hourly & daily integrations
- Use local path to PNG
- Copy README.md to info.md

Signed-off-by: Emmanuel Berthier <[email protected]>
  • Loading branch information
manu3b1 authored and dx44 committed Jan 9, 2024
1 parent b9aa9ae commit 1ae9c06
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 43 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Les informations affichées :

Un exemple de rendu :

![Weather Card](https://github.com/hacf-fr/lovelace-meteofrance-weather-card/blob/Meteo-France/meteofrance-weather-card.png)
![Weather Card](meteofrance-weather-card.png)

## Installation

Expand Down Expand Up @@ -69,7 +69,7 @@ Une fois choisi, sa configuration est la suivante :

5. `Enregistrer` votre configuration.

![Weather Card Configuration](https://github.com/hacf-fr/lovelace-meteofrance-weather-card/blob/Meteo-France/meteofrance-weather-card-editor.png)
![Weather Card Configuration](meteofrance-weather-card-editor.png)

### Installation manuelle (utilisateurs avancés)

Expand Down
37 changes: 30 additions & 7 deletions dist/meteofrance-weather-card.js
Original file line number Diff line number Diff line change
Expand Up @@ -195,15 +195,38 @@ class MeteofranceWeatherCard extends LitElement {
return entities;
}

isDailyForecast(forecast) {
const diff =
new Date(forecast[1].datetime) - new Date(forecast[0].datetime);
return diff > 3600000;
}

// Upgrade config fields if necessary
upgradeConfig(config) {
const upgradedConfig = { ...config }
// Deduce "daily_forecast" from deprecated "forecast"
if (config["forecast"] !== undefined && config["daily_forecast"] === undefined) {
upgradedConfig["daily_forecast"] = config["forecast"];
}
if (config["number_of_forecasts"] !== undefined && config["number_of_daily_forecasts"] === undefined) {
upgradedConfig["number_of_daily_forecasts"] = config["number_of_forecasts"];
const upgradedConfig = { ...config };
if (this.hass !== undefined) {
const stateObj = this.hass.states[this._config.entity];
if (stateObj !== undefined && stateObj.attributes.forecast !== undefined) {
// Deduce "daily_forecast" & "hourly_forecast" from deprecated "forecast"
if (this.isDailyForecast(stateObj.attributes.forecast)) {
if (config["forecast"] !== undefined && config["daily_forecast"] === undefined) {
upgradedConfig["daily_forecast"] = config["forecast"];
upgradedConfig["hourly_forecast"] = "false";
}
if (config["number_of_forecasts"] !== undefined && config["number_of_daily_forecasts"] === undefined) {
upgradedConfig["number_of_daily_forecasts"] = config["number_of_forecasts"];
}
}
else {
if (config["forecast"] !== undefined && config["hourly_forecast"] === undefined) {
upgradedConfig["daily_forecast"] = "false";
upgradedConfig["hourly_forecast"] = config["forecast"];
}
if (config["number_of_forecasts"] !== undefined && config["number_of_hourly_forecasts"] === undefined) {
upgradedConfig["number_of_hourly_forecasts"] = config["number_of_forecasts"];
}
}
}
}
return upgradedConfig;
}
Expand Down
100 changes: 66 additions & 34 deletions info.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ Les informations affichées :
- informations météorologiques détaillées,
- pluviométrie dans l'heure (prévisions à 5 puis 10 minutes),
- alertes météos en cours (inondations, vents violents, etc) en rapport à votre département,
- prévisions météo quotidienne de 1 à 15 jours maximum (réglable) ou des prévisions horaires de 1 à x heures (réglable),
- prévisions météo quotidiennes de 1 à 15 jours maximum (réglable) et des prévisions horaires de 1 à x heures (réglable),
- sélection des informations à afficher pour personnaliser votre carte.

Un exemple de rendu :

![Weather Card](https://github.com/hacf-fr/lovelace-meteofrance-weather-card/blob/Meteo-France/meteofrance-weather-card.png)
![Weather Card](meteofrance-weather-card.png)

## Installation

Expand All @@ -40,37 +40,36 @@ Cette carte est prévue pour utiliser les entités de l'intégration [Météo Fr

#### Installation de la carte

1. Depuis [HACS](https://hacs.xyz/) (Home Assistant Community Store), ouvrez le menu en haut à droite et utiliser l'option `Custom repositories` pour ajouter le dépôt de la carte.
[![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=hacf-fr&repository=lovelace-meteofrance-weather-card&category=lovelace)
Si le lien a fonctionné, passez directement à l'étape 3. Sinon, procédez comme suit :

2. Ajoutez l'adresse <https://github.com/hacf-fr/lovelace-meteofrance-weather-card> avec pour catégorie `Lovelace`, et faire `ADD`. Le dépôt de la carte apparaît dans la liste.
1. Depuis [HACS](https://hacs.xyz/) (Home Assistant Community Store), sélectionner `Frontend`. Puis ouvrez le menu en haut à droite et utiliser l'option `Dépôts personnalisés` pour ajouter le dépôt de la carte.

3. Sélectionner ce dépôt (cette présentation de la carte va s'afficher dans une fenêtre) et utiliser l'option `INSTALL THIS REPOSITORY` en bas à droite de la fenêtre.
2. Ajoutez l'adresse <https://github.com/hacf-fr/lovelace-meteofrance-weather-card> avec pour catégorie `Lovelace`, et faire `AJOUTER`. Le dépôt de la carte apparaît dans la liste.

4. Laisser le choix de la dernière version et utiliser l'option `INSTALL` en bas à droite.
3. La carte de ce `nouveau dépôt` va s'afficher, cliquez sur `INSTALLER`.

5. Faire `RELOAD` pour terminer! La carte est maintenant prête à être utiliser dans votre tableau de bord.
4. Laisser le choix de la dernière version et utiliser l'option `INSTALLER` en bas à droite.

5. Faire `RECHARGER LA PAGE` pour terminer! La carte est maintenant prête à être utiliser dans votre tableau de bord.

#### Configuration

Vous trouverez la carte dans la liste des cartes personnalisées (en fin de liste) et avec pour nom `Carte Météo France par HACF`.

Une fois choisi, sa configuration est la suivante :

1. **Définir un nom** pour la carte (généralement la ville, comme pour l'intégration).

2. **Sélectionner l'entité météo** que vous avez définit avec l'intégration (par défaut la carte en choisit une mais ce n'est pas forcément l'entité météo france que vous avez configuré).

3. Toutes les autres entités **sont automatiquement définies** mais vous pouvez les redéfinir ou les supprimer à votre guise.
1. **Sélectionner l'entité météo** que vous avez défini avec l'intégration (par défaut la carte en choisit une mais ce n'est pas forcément l'entité météo france que vous avez configuré).

4. Seule l'entité pour **les alertes est à préciser manuellement**.
2. Toutes les autres entités **sont automatiquement définies** mais vous pouvez les redéfinir ou les supprimer à votre guise.

5. **Sélectionner les parties** de la carte **à afficher** (vous pouvez ainsi avoir plusieurs cartes avec des affichages différents).
3. **Sélectionner les éléments** de la carte **à afficher** (vous pouvez ainsi avoir plusieurs cartes avec des affichages différents).

6. **Préciser le nombre de jours de prévision** à afficher en bas de carte.
4. **Préciser les nombres d'heures et de jours de prévision** à afficher.

7. `Enregistrer` votre configuration.
5. `Enregistrer` votre configuration.

![Weather Card Configuration](https://github.com/hacf-fr/lovelace-meteofrance-weather-card/blob/Meteo-France/meteofrance-weather-card-editor.png)
![Weather Card Configuration](meteofrance-weather-card-editor.png)

### Installation manuelle (utilisateurs avancés)

Expand Down Expand Up @@ -114,23 +113,54 @@ Ci-dessous les éléments de configuration avec pour exemple l'usage d'une inté
view:
cards:
- type: "custom:meteofrance-weather-card"
name: Nantes # nom de la carte, peut être différent du nom de l'intégration
entity: weather.nantes # Entité météo principale
# Les entités annexes de météo france
cloudCoverEntity: sensor.nantes_cloud_cover
rainChanceEntity: sensor.nantes_rain_chance
freezeChanceEntity: sensor.nantes_freeze_chance
snowChanceEntity: sensor.nantes_snow_chance
uvEntity: sensor.nantes_uv
rainForecastEntity: sensor.nantes_next_rain
alertEntity: sensor.44_weather_alert
number_of_forecasts: "5"
# Les switches pour afficher ou non les différentes zones.
current: true
details: true
one_hour_forecast: true
alert_forecast: true
forecast: true
entity: weather.nantes # Entité météo principale
name: Nantes # nom de la carte, peut être différent du nom de l'intégration
# Les switches pour afficher ou non les différentes zones.
current: true
details: true
alert_forecast: true
one_hour_forecast: true
daily_forecast: true
hourly_forecast: true
humidity_forecast: true
wind_forecast_icons: true
animated_icons: true
# Les curseurs
number_of_hourly_forecasts: "5"
number_of_daily_forecasts: "5"
# Les entités annexes de météo france
detailEntity: sensor.nantes_daily_precipitation
cloudCoverEntity: sensor.nantes_cloud_cover
rainChanceEntity: sensor.nantes_rain_chance
freezeChanceEntity: sensor.nantes_freeze_chance
snowChanceEntity: sensor.nantes_snow_chance
uvEntity: sensor.nantes_uv
rainForecastEntity: sensor.nantes_next_rain
alertEntity: sensor.44_weather_alert
# Chemin
icons: /local/community/lovelace-meteofrance-weather-card/icons/
```

#### options avancées via YAML

Ci-dessous les éléments de configuration pour masquer certains champs:

Pour masquer les précipitations :
```yaml
hide_precipitation: true
```

Pour masquer certaines alertes:
```yaml
hide_alertVentViolent: true
hide_alertPluieInondation: true
hide_alertOrages: true
hide_alertInondation: true
hide_alertNeigeVerglas: true
hide_alertCanicule: true
hide_alertGrandFroid: true
hide_alertAvalanches: true
hide_alertVaguesSubmersion: true
```

## Crédits
Expand All @@ -141,6 +171,8 @@ Projet réalisé par la communauté de HACF et depuis les projets suivants :

- les améliorations spécifiques à Météo France de la carte [Lovelace animated weather card](https://github.com/Imbuzi/meteo-france-weather-card) de [Nicolas Bourasseau](https://github.com/Imbuzi).

Les icônes animés sont issus du site [amChart](https://www.amcharts.com/free-animated-svg-weather-icons/) et sous licence [CC by 4.0](https://creativecommons.org/licenses/by/4.0/).

## FAQ

- **Question** : La prévision de pluie dans l'heure ne semble pas fonctionner, les cases sont toujours de la même couleur bien que le temps est changeant et pluvieux.
Expand Down

0 comments on commit 1ae9c06

Please sign in to comment.