# Template du YAML de configuration du service Open-Meteo (openmeteo)
# -----------------------------------------------------------------------------------------------
#
# Il est composé de 5 blocs, à savoir :
# - service    : la configuration du service lui-même, son titre, son id, ses caractéristiques...
# - infos      : la configuration du mash-up pour les informations sur le lieu de la météo
# - conditions : la configuration du mash-up pour les conditions temps réel
# - previsions : la configuration du mash-up pour les prévisions
# - erreurs    : la configuration du mash-up pour les erreurs fournies par le service
#
# Si un champ vaut la valeur par défaut il est possible de l'omettre.
# -----------------------------------------------------------------------------------------------

# Bloc service : caractéristiques du service
# ------------------------------------------
service:
  # -- Identification: saisir le nom complet du service
  nom: 'Open-Meteo'
  # -- Version de la configuration du service
  version:
    numero: '6'
    date: '2023-11-26'
  # -- URL de base des requêtes et des icones (éventuellement)
  endpoint_requete: 'https://api.open-meteo.com/v1/forecast'
  endpoint_icone: ''
  lieu_formats: [ 'latitude_longitude' ]
  # -- Activité: par défaut à true, donc à laisser en commentaire. A mettre à false si on veut déprécier le service
  actif: true
  # -- Liens vers les crédits et titre de la page (pour les affichages / modèles)
  #    Le logo, si il existe, est chargé automatiquement à partir du chemin /services/images/<id>.png
  credits:
    titre: ''
    lien: 'https://open-meteo.com/'
  # -- Liens vers les termes d'utilisation (pour la page de configuration)
  termes:
    titre: 'Terms & Privacy'
    lien: 'https://open-meteo.com/en/features#terms'
  # -- Liens la page d'enregistrement (pour la page de configuration)
  enregistrement:
    titre: ''
    lien: ''
    # -- Taille de la clé d'enregistrement en général de 32 caractères (valeur par défaut) : pas de clé demandée
    taille_cle: 0
  # -- Liens vers les offres de service (pour la page de configuration et les rafraichissements)
  offres:
    titre: ''
    lien: ''
    #gratuite: true
    # -- Les limites sont exprimées via les périodes year, month, day, hour, minute et second dans cet ordre.
    #    Seules les périodes utilisées sont à fournir.
    limites: { day: 10000 }
  # -- Liste des langues fournies par le service
  langues:
    # -- langues dont le code est identique à celui de SPIP: par défaut initialisé au singleton 'en' qui est aussi la
    #    valeur par défaut
    codes_spip: [ 'en' ]
    # -- langues dont le code est différent de celui de SPIP.
    #    Le champ est rempli par la liste des couples (code service, code spip)
    codes_non_spip: {}
    # -- langage par défaut est 'en'.
    defaut: 'en'
  # -- Configuration des jeux d'icones utilisables
  icones:
    origines: [ 'local', 'weather' ]
    transcodages:
      0: { local: [ '0', '0n' ], weather: [ '32', '31' ], wmo: [ ] }
      1: { local: [ '1', '1n' ], weather: [ '34', '33' ], wmo: [ ] }
      2: { local: [ '2', '2n' ], weather: [ '30', '29' ], wmo: [ ] }
      3: { local: [ '3', '3' ], weather: [ '26', '26' ], wmo: [ ] }
      45: { local: [ '45', '45' ], weather: [ '20', '20' ], wmo: [ ] }
      48: { local: [ '48', '48' ], weather: [ '20', '20' ], wmo: [ ] }
      51: { local: [ '51', '51' ], weather: [ '9', '9' ], wmo: [ ] }
      53: { local: [ '53', '53' ], weather: [ '9', '9' ], wmo: [ ] }
      55: { local: [ '55', '55' ], weather: [ '9', '9' ], wmo: [ ] }
      56: { local: [ '56', '56' ], weather: [ '8', '8' ], wmo: [ ] }
      57: { local: [ '57', '57' ], weather: [ '8', '8' ], wmo: [ ] }
      61: { local: [ '61', '61' ], weather: [ '12', '12' ], wmo: [ ] }
      63: { local: [ '63', '63' ], weather: [ '12', '12' ], wmo: [ ] }
      65: { local: [ '65', '65' ], weather: [ '40', '40' ], wmo: [ ] }
      66: { local: [ '66', '66' ], weather: [ '10', '10' ], wmo: [ ] }
      67: { local: [ '67', '67' ], weather: [ '10', '10' ], wmo: [ ] }
      71: { local: [ '71', '71' ], weather: [ '16', '16' ], wmo: [ ] }
      73: { local: [ '73', '73' ], weather: [ '16', '16' ], wmo: [ ] }
      75: { local: [ '75', '75' ], weather: [ '42', '42' ], wmo: [ ] }
      77: { local: [ '77', '77' ], weather: [ '16', '16' ], wmo: [ ] }
      80: { local: [ '80', '80' ], weather: [ '39', '45' ], wmo: [ ] }
      81: { local: [ '81', '81' ], weather: [ '39', '45' ], wmo: [ ] }
      82: { local: [ '82', '82' ], weather: [ '40', '40' ], wmo: [ ] }
      85: { local: [ '85', '85' ], weather: [ '14', '46' ], wmo: [ ] }
      86: { local: [ '86', '86' ], weather: [ '42', '42' ], wmo: [ ] }
      95: { local: [ '95', '95' ], weather: [ '4', '4' ], wmo: [ ] }
      96: { local: [ '96', '96' ], weather: [ '3', '3' ], wmo: [ ] }
      99: { local: [ '99', '99' ], weather: [ '3', '3' ], wmo: [ ] }
  # -- Valeurs par défauts des paramètres modifiables du service (page de configuration)
  #    En général, seuls les champs theme et theme_local sont à remplir, les autres sont initialisés avec le défaut
  defauts:
    # -- Clé d'enregistrement fournie par le service. A remplir avec la valeur dans le formulaire.
    #inscription: ''
    # -- Système métrique par défaut
    #unite: 'm'
    # -- Mode d'affichage des icones méteo. On privilégie par défaut les icones du service si il existent
    condition: 'openmeteo_local'
    theme: ''
    theme_local: 'original-filled'
    # -- Thème Sticker de weather qui est toujours disponible dans Rainette
    #theme_weather: 'sticker'

# Bloc infos : mash-up des informations géographiques
# ---------------------------------------------------
infos:
  # -- Période de rafraichissement: par défaut à un mois, inutile de le modifier pour chaque service
  #periode_maj: 2592000
  # -- Format des réponse: par défaut le JSON, inutile de le modifier pour chaque service sauf si pas supporté
  #format_flux: 'json'
  # -- Index de base dans le tableau de réponse: peut-être une liste d'index éventuellement vide
  cle_base: [ ]
  donnees:
    ville:
      cle: [ ]
    pays:
      cle: [ ]
    pays_iso2:
      cle: [ ]
    region:
      cle: [ ]
    longitude:
      cle: [ 'longitude' ]
    latitude:
      cle: [ 'latitude' ]

# Bloc conditions : mash-up des conditions temps réel
# ---------------------------------------------------
conditions:
  # -- Période de rafraichissement: par défaut à 2 heures, inutile de le modifier pour chaque service
  #periode_maj: 7200
  # -- Format des réponse: par défaut le JSON, inutile de le modifier pour chaque service sauf si pas supporté
  #format_flux: 'json'
  # -- Index de base dans le tableau de réponse: peut-être une liste d'index éventuellement vide
  cle_base: [ 'current' ]
  donnees:
    derniere_maj:
      cle: [ 'time' ]
    station:
      cle: [ ]
    temperature_reelle:
      cle: [ 'temperature_2m' ]
    temperature_ressentie:
      cle: [ 'apparent_temperature' ]
    vitesse_vent:
      cle: [ 'windspeed_10m' ]
    rafale_vent:
      cle: [ 'windgusts_10m' ]
    angle_vent:
      cle: [ 'winddirection_10m' ]
    direction_vent:
      cle: [ ]
      calcul: true
    precipitation:
      cle: [ 'precipitation' ]
    humidite:
      cle: [ 'relativehumidity_2m' ]
    point_rosee:
      cle: [ ]
      calcul: true
    pression:
      cle: [ 'surface_pressure' ]
    tendance_pression:
      cle: [ ]
    visibilite:
      cle: [ ]
    nebulosite:
      cle: [ 'cloudcover' ]
    indice_uv:
      cle: [ ]
    risque_uv:
      cle: [ ]
    code_meteo:
      cle: [ 'weathercode' ]
    icon_meteo:
      cle: [ ]
    desc_meteo:
      cle: [ ]
    trad_meteo:
      cle: [ ]
    jour_meteo:
      cle: [ 'is_day' ]
    code:
      cle: [ ]
      calcul: true
    icone:
      cle: [ ]
      calcul: true
    resume:
      cle: [ ]
      calcul: true
    periode:
      cle: [ ]
      calcul: true

# Bloc previsions : mash-up des prévisions
# ----------------------------------------
previsions:
  # -- Période de rafraichissement: par défaut à 4 heures, inutile de le modifier pour chaque service
  #periode_maj: 14400
  # -- Format des réponse: par défaut le JSON, inutile de le modifier pour chaque service sauf si pas supporté
  #format_flux: 'json'
  # -- Périodicités disponibles pour les prévisions: peut prendre les valeurs 1, 3, 6, 12, 24. Pour chacune
  #    il faut préciser le nombre de jours de prévisions miximum disponibles
  periodicites:
    24: { max_jours: 7 }
  # -- Périodicité par défaut à 24h. A conserver ainsi sauf si le service ne propose par cette périodicité
  #periodicite_defaut: 24
  # -- Index de base dans le tableau de réponse: peut-être une liste d'index éventuellement vide
  cle_base: [ 'daily' ]
  # -- Index des données heure si le service possède une structure par heure
  cle_heure: [ ]
  structure_heure: false
  donnees:
    date:
      cle: [ 'time' ]
    heure:
      cle: [ ]
    lever_soleil:
      cle: [ 'sunrise' ]
    coucher_soleil:
      cle: [ 'sunset' ]
    temperature:
      cle: [ ]
    temperature_max:
      cle: [ 'temperature_2m_max' ]
    temperature_min:
      cle: [ 'temperature_2m_min' ]
    vitesse_vent:
      cle: [ 'windspeed_10m_max' ]
    rafale_vent:
      cle: [ 'windgusts_10m_max' ]
    angle_vent:
      cle: [ 'winddirection_10m_dominant' ]
    direction_vent:
      cle: [ ]
      calcul: true
    risque_precipitation:
      cle: [ 'precipitation_probability_mean' ]
    precipitation:
      cle: [ 'precipitation_sum' ]
    humidite:
      cle: [ ]
    point_rosee:
      cle: [ ]
    pression:
      cle: [ ]
    visibilite:
      cle: [ ]
    nebulosite:
      cle: [ ]
    indice_uv:
      cle: [ 'uv_index_max' ]
    risque_uv:
      cle: [ ]
      calcul: true
    code_meteo:
      cle: [ 'weathercode' ]
    icon_meteo:
      cle: [ ]
    desc_meteo:
      cle: [ ]
    trad_meteo:
      cle: [ ]
    jour_meteo:
      cle: [ ]
    code:
      cle: [ ]
      calcul: true
    icone:
      cle: [ ]
      calcul: true
    resume:
      cle: [ ]
      calcul: true
    periode:
      cle: [ ]
      calcul: true

# Bloc erreurs : mash-up des erreurs remontées par le service
# -----------------------------------------------------------
erreurs:
  cle_base: [ ]
  donnees:
    code:
      cle: [ ]
    message:
      cle: [ 'reason' ]
