diff --git a/README.md b/README.md index de9acd12..19bd3c29 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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) diff --git a/dist/meteofrance-weather-card.js b/dist/meteofrance-weather-card.js index 501f0aca..edeb158d 100755 --- a/dist/meteofrance-weather-card.js +++ b/dist/meteofrance-weather-card.js @@ -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; } diff --git a/info.md b/info.md index 47c2aa74..19bd3c29 100644 --- a/info.md +++ b/info.md @@ -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 @@ -40,15 +40,18 @@ 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 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 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 @@ -56,21 +59,17 @@ Vous trouverez la carte dans la liste des cartes personnalisées (en fin de list 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) @@ -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 @@ -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.