Aller au contenu

couillerot

Membres confirmés
  • Compteur de contenus

    1 505
  • Inscription

  • Dernière visite

Messages posté(e)s par couillerot


  1. Difficile de répondre...

     

    Nativement, le QA récupère la prévision de J+1 de Weatherbit et l'affiche dans "Précipitations ce jour" > "prévues : ... mm" (en guise d'information). Après je pourrais très bien récupérer les précipitations du jour J via Weatrherbit, c'est tout à fait possible mais la solution ne me paraissait peu pertinente.

     

    Après, je pourrais modifier le code pour donner le choix... pourquoi pas ?

    - soit les données Weatherbit : précipitations du joiur

    - soit les données d'un pluviomètre

     

    Stef

     


  2. Il ne s'agit pas à proprement parlé d'un QA sur l'arrosage automatique mais simplement du déclencheur, à l'aide d'une variable globale "Arrosage" > OUI ou NON  (récupérable donc dans une scène ou un autre QA pour lancer l'arrosage).

     

    Ce QA fonctionne de la sorte :

     

    - il récupère les prévisions de précipitations J+1 et J+2 (via le site WeatherBit)

    - il met à jour régulièrement le cumul des précipitations du jour via un pluviomètre (type "capteur de pluie") ou soit les données de précipitations du jour via Weatherbit (indication de la source dans le QA)

    - il stock les données de précipitations à J-1 et J-2

    - il compare la consigne de déclenchement et les précipitations passées, actuelles et prévues pour conseiller un arrosage, ou pas.

     

    si vous avez des conseils pour optimiser le code (surement) ou même des choses à améliorer (certainement), n'hésitez pas !

     

    Image.thumb.jpg.c38ff3b300a64770fe44ee03467653a3.jpg

     


    Installation :

     

    - Créer une variable globale globable énumérée : "Arrosage" > valeurs : "OUI" /  "NON"

    - Dans le tableau des variables renseignez la key_id WeatherBit (en s'inscrivant gratuitement sur weatherbit.io) et

    - indiquez l'id de votre pluviomètre (précipitations 24h) > "id_pluviometre" ou l'id de n'importe quel autre module existant pour obtenir les données de Weatherbit.

     

    function QuickApp:onInit()
        self:updateProperty("deviceIcon", 1044) -- mettre ici l'id de votre icon
         self:loop()
    end
    function QuickApp:loop()
    lat = api.get("/settings/location").latitude
    lati = tostring(string.format("%.2f", lat))
    lon = api.get("/settings/location").longitude
    long = tostring(string.format("%.2f", lon))
    key_id = self:getVariable("key_id")
    local http = net.HTTPClient()
    http:request("https://api.weatherbit.io/v2.0/forecast/daily?lat="..lati.."&lon="..long.."&days=5&lang=fr&key="..key_id, {
    		options = {
    		method = 'GET'
    	},
    	success = function(response)
    		if response.status == 200 then
    			if response.data and response.data ~= "" then
      				local jsonTable = json.decode(response.data)
                        precipday1 = jsonTable.data[2].precip
                            precipday2 = jsonTable.data[3].precip
                                precipday0 = jsonTable.data[1].precip
    id_pluie = self:getVariable("id_pluviometre")
    precip1 = self:getVariable("precip_jour_1")
    precip2 = self:getVariable("precip_jour_2")
    Consigne_mm, _ = self:getVariable("Consigne")
    Consigne_mm = tonumber(Consigne_mm)
    
    if tostring(id_pluie) > tostring("0") and fibaro.getType(tonumber(id_pluie)) == tostring("com.fibaro.rainSensor") then
                pluie = fibaro.getValue(tonumber(id_pluie), "value")
                source = fibaro.getName(tonumber(id_pluie))
     else
                pluie = precipday0
                source = tostring("WeatherBit")
    end
    
    name = fibaro.getName(tonumber(id_pluie))
    arrosage = string.format("%.2f", precipday1 + precipday2 + pluie + precip1 + precip2)
    arrosage, _= tonumber(arrosage)
    arrosage_jardin = fibaro.getGlobalVariable("Arrosage")
    self:setVariable("pluie", pluie)
    
    ----------------------------------------
    ---------- ARROSAGE OUI / NON ----------
    ----------------------------------------
    if tonumber(arrosage) > tonumber(Consigne_mm) then
        fibaro.setGlobalVariable("Arrosage", "NON")
            else if (tonumber(precip2) > tonumber(Consigne_mm)) and (tonumber(precipday2 + precipday1 + pluie + precip1) == 0) then
        fibaro.setGlobalVariable("Arrosage", "OUI")
            else if (tonumber(precipday2) > tonumber(Consigne_mm)) and (tonumber(precipday1 + pluie + precip1 + precip2) == 0) then
        fibaro.setGlobalVariable("Arrosage", "OUI")
            else
        fibaro.setGlobalVariable("Arrosage", "OUI")
            end
        end
    end
    ------------------------------------------------------------------------------
    --------------------------- CONSTRUCTION DES LABELS --------------------------
    ------------------------------------------------------------------------------
    Arro = fibaro.getGlobalVariable("Arrosage")
    self:updateProperty("log", ""..arrosage.." mm")
    self:updateView("labeldate", "text", "INFOS ARROSAGE DU "..os.date("%d.%m.%Y\r\rdonnées mises à jour à %Hh%M"))
    self:updateView("labelconsigne", "text", "\nConsigne de report : + "..tostring(Consigne_mm).." mm de pluie / 5 jours")
    self:updateView("labelprecip", "text", "\rPrécipitations J-2 : "..string.format("%.1f", precip2).." mm\r\rPrécipitations J-1 : "..string.format("%.1f", precip1).." mm\r\rPrécipitations ce jour : " ..string.format("%.1f", pluie).." mm (source : "..source..")\r\rPrécipitations prévues J+1 : "..string.format("%.1f", precipday1).." mm\r\rPrécipitations prévues J+2 : "..string.format("%.1f", precipday2).." mm")
    self:updateView("labelconseil", "text", "Arrosage conseillé :  "..Arro)
    		else
    			self:debug("Error : empty response data")
    		    end
    		else
    			self:debug("Error : status=" .. tostring(response.status))
    	end
    end,
    	    error = function(err)
    		    self:debug("Error : " .. err)
    	end
    })   
                        self:stockprecipitations()
                   fibaro.setTimeout(1000 * 60 * 3, function()
             self:loop()
       end)
    end
    function QuickApp:uiMoinsOnR()
            local Consigne_mm, _ = self:getVariable("Consigne")
            Consigne_mm = tonumber(Consigne_mm) - 1
            self:setVariable("Consigne", tostring(Consigne_mm))
            self:loop()
    end
    function QuickApp:uiPlusOnR()
            local Consigne_mm, _ = self:getVariable("Consigne")
            Consigne_mm = tonumber(Consigne_mm) + 1
            self:setVariable("Consigne", tostring(Consigne_mm))
            self:loop()
    end
    function QuickApp:stockprecipitations()
            local Heure = tonumber(os.date("%H", os.time()))
            local Minute = tonumber(os.date("%M", os.time()))
    -----------------------------------------------------------------
    ---------- MISE A JOUR DES VARIABLES POUR L'HISTORIQUE ----------
    -----------------------------------------------------------------
    if (Heure == tonumber("23") and Minute > tonumber("45")) and (Heure == tonumber("23") and Minute < tonumber("50")) then
        actus = self:getVariable("precip_jour_1")
        self:setVariable("precip_jour_2", tostring(actus))
    end
    if (Heure == tonumber("23") and Minute > tonumber("50")) and (Heure == tonumber("23") and Minute < tonumber("55")) then
        actu = self:getVariable("pluie")
        self:setVariable("precip_jour_1", tostring(actu))
    end
                fibaro.setTimeout(1000 * 60 * 2, function()
            self:stockprecipitations()
        end)
    end

     

     

    Eau.png.447a5e6d4ef3ea43d82b1ef74e12f14f.png

     

    version 1.2

    - choix du type de source de données de précipitations (capteur de pluie ou WeatherBit)

     

    version 1.3 (20.06.2021)

    - correction d'un bug historique précipitations

    - affichage dans le log du total des précipitations sur 5 jours.

     

     

     

    Programmateur.fqa

     

    bonne installation !

     

    Stef

    • Like 5

  3. je vais faire un QA spécial Arrosage qui servira de déclencheur pour un arrosage auto ; c'est dans les tuyaux car je vais en avoir besoin cet été :)

     

    par exemple :

     

    - historique des précipitations sur 2 jours (quantifiées par un pluviomètre netatmo) -> J-1 et J-2

    - précipitations du jour (via pluviomètre Netatmo) -> jour J (jour arrosage : OUI ou NON)

    - prévisions des précipitations sur les 2 jours suivant -> J+1 et J+2

     

    Stef

     

    NB après tu peux très bien utilisé les QA "météo" et "prévisions Météo" pour l'arrosage auto via le passage aux variables globales (besoin de faire quelques lignes de code)

     

    Stef


  4. v1.1 mise à jour effectuée :74:

     

    - pour la température et l'humidité, ce sont soient les données de Weatherbit soient les valeurs de vos propres modules.

    - changement de l'icon selon les conditions météo.

    - indication de la source de la temp et de l'humidité ("nom de la pièce"  ou WeatherBit)

     

    Stef

     

    -> peut être encore amélioré si capteur de pluie présent.

     


  5. existe t-il un moyen (surement d'ailleurs) pour récupérer une série de variable ?

     

    pour expliquer grossièrement mon propos :

     

    for i = 1, 11 do
      variable[i] = tonumber(self:getVariable("variable"[i]))
    end

    Stef


  6. Ce QA récupère les données météo issues du site WeatherBit.io

    Du fait que ce QA est du type weather provider, vous pouvez le substituer à la source météo par défaut de la box YR Weather (panneau General / Principal / Capteurs Principaux / source de la météo)

    La mise à jour des données se fait toutes les 5 minutes.

     

    Au niveau de la température et de l'humidité, vous pouvez dorénavant soit récupérer les données de WeatherBit, soit issues de vos propres modules.

    Dans le cas ou vous souhaitez obtenir les valeurs (température ou/et humidité) via vos propres modules, il suffit de renseigner dans le tableau des variables l'id de votre (vos) module(s) de température et/ou humidité ("temp_id" / "humidity_id"). Si vous renseignez la valeur "0" ce seront les données de WeatherBit qui seront récoltées.

     

    Image.jpg.0ac3f935e00c03ae5a6e13d669c43c5d.jpg

     

    Installation

    Il vous faut d’abord obtenir une « clé » (key) que vous obtiendrez en vous inscrivant gratuitement sur le site Weatherbit.io

    Renseignez alors le key_id dans le panneau des variables.

     

    Pour l’installation des icons, il suffit de suivre l’ordre pré établi (de id_icon1 à id_icon11) selon la représentation ci-dessous :

     

    639815976_prsentationicons.jpg.9cd7da4940fa4d7fbd58edfc3c6f5237.jpg

     

    Pour récupérer l’id d’un icon :

    après avoir téléversé l’icon, vous faites un clic droit dessus et sélectionner « Ouvrir l’image dans un nouvel onglet ». Dans l’onglet, il devrait s’afficher une phrase du style : « User(id_icon).png

    Bien noter pour chaque icon son id correspondant pour pouvoir le renseigner par la suite dans le tableau des variables…

     

    -----------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------
    -------------------- QA WEATHERBIT / com.fibaro.weather ---------------------------
    --------------- Stephane Couillerot 2021 pour domotique-fibaro.fr -----------------
    -----------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------
    ------- indiquez dans le panneau des variables votre latitude / longitude ---------
    -----------et votre key id qui vous est attribuéz en vous inscrivant --------------
    ---------------------gratuitement sur le site WeatherBit.io -----------------------
    -----------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------
    ------
    function QuickApp:onInit()
        __TAG = "QA_"..plugin.mainDeviceId.."INFOS METEO WEATHERBIT"
        self:loop()
    end
    --
    function QuickApp:loop()
    lat = api.get("/settings/location").latitude
    lati = tostring(lat)
    lon = api.get("/settings/location").longitude
    long = tostring(lon)
    key_id = self:getVariable("key_id")
    Var_Heure = os.date("%d.%m.%Y à %H:%M")
    lev = api.get("/settings/info").sunriseHour
    lever = string.gsub(lev, ":", "h")
    couch = api.get("/settings/info").sunsetHour
    coucher = string.gsub(couch, ":", "h")
    local http = net.HTTPClient()
    http:request("https://api.weatherbit.io/v2.0/current?lat="..lati.."&lon="..long.."&lang=fr&key="..key_id, {
    	options = {
    		method = 'GET'
    	          },
    	success = function(response)
    		if response.status == 200 then
    			if response.data and response.data ~= "" then
      				local jsonTable = json.decode(response.data)
                        gfx = jsonTable.data[1].weather.code
                        aujourdhui = tostring(os.date("%w", os.time()))
                        dat = jsonTable.data[1].ob_time
                        codeweather = jsonTable.data[1].weather.code
                        jour = string.sub(dat, 9, 10)
                        mois = string.sub(dat, 6, 7)
                        city = jsonTable.data[1].city_name
                        citycode = jsonTable.data[1].country_code
                        codeicon = tonumber(gfx)
                                           
    -----------------------------------------------------------------------------
    -------------------- MISE A JOUR ICON COM.FIBARO.WEATHER --------------------  
    -----------------------------------------------------------------------------                                   
    if codeweather >= tonumber("300") and codeweather <= tonumber("522") then condition = "rain" end
    if codeweather >= tonumber("800") and codeweather <= tonumber("801") then condition = "clear" end
    if codeweather == tonumber("900") then condition = "unknown" end
    if codeweather >= tonumber("600") and codeweather <= tonumber("623") then condition = "snow" end
    if codeweather >= tonumber("200") and codeweather <= tonumber("233") then condition = "storm" end
    if codeweather >= tonumber("802") and codeweather < tonumber("803") then condition = "cloudy" end 
    if codeweather >= tonumber("803") and codeweather <= tonumber("804") then condition = "Partly cloudy" end
    if codeweather >= tonumber("700") and codeweather <= tonumber("751") then condition = "fog" end
    
    -----------------------------------------------------------------------------
    ---------------------------- MISE A JOUR ICON QA ----------------------------  
    -----------------------------------------------------------------------------
    
    id_icon1 = tonumber(self:getVariable("id_icon1"))
        id_icon2 = tonumber(self:getVariable("id_icon2"))
           id_icon3 = tonumber(self:getVariable("id_icon3"))
                id_icon4 = tonumber(self:getVariable("id_icon4"))
                    id_icon5 = tonumber(self:getVariable("id_icon5"))
                        id_icon6 = tonumber(self:getVariable("id_icon6"))
                            id_icon7 = tonumber(self:getVariable("id_icon7"))
                                id_icon8 = tonumber(self:getVariable("id_icon8"))
                                    id_icon9 = tonumber(self:getVariable("id_icon9"))
                                        id_icon10 = tonumber(self:getVariable("id_icon10"))
                                            id_icon11 = tonumber(self:getVariable("id_icon11"))
    if codeicon == tonumber("610") then self:updateProperty("deviceIcon", id_icon1) end
        if codeicon >= tonumber("803") and codeicon <= tonumber("804") then self:updateProperty("deviceIcon", id_icon2) end
            if codeicon >= tonumber("700") and codeicon <= tonumber("751") then self:updateProperty("deviceIcon", id_icon3) end
                if codeicon >= tonumber("500") and codeicon <= tonumber("522") then self:updateProperty("deviceIcon", id_icon4) end
                    if codeicon >= tonumber("601") and codeicon <= tonumber("623") then self:updateProperty("deviceIcon", id_icon5) end
                        if codeicon == tonumber("600") then self:updateProperty("deviceIcon", id_icon6) end
                    if codeicon == tonumber("800") then self:updateProperty("deviceIcon", id_icon7) end
                if codeicon >= tonumber("801") and codeicon <= tonumber("802") then self:updateProperty("deviceIcon", id_icon8) end
            if codeicon >= tonumber("300") and codeicon <= tonumber("302") then self:updateProperty("deviceIcon", id_icon9) end
        if codeicon >= tonumber("230") and codeicon <= tonumber("233") then self:updateProperty("deviceIcon", id_icon10) end
    if codeicon >= tonumber("200") and codeicon <= tonumber("202") then self:updateProperty("deviceIcon", id_icon11) end
    
    ------------------------------------------------------------------------------              
    -------------------------- CONSTRUCTION DES TABLES ---------------------------
    ------------------------------------------------------------------------------
    week = {["0"] = "DIMANCHE", ["1"] = "LUNDI", ["2"] = "MARDI", ["3"] = "MERCREDI", ["4"] = "JEUDI", ["5"] = "VENDREDI", ["6"] = "SAMEDI"}
    month = {["01"] = "JANVIER", ["02"] = "FEVRIER", ["03"] = "MARS", ["04"] = "AVRIL", ["05"] = "MAI", ["06"] = "JUIN", ["07"] = "JUILLET", ["08"] = "AOUT", ["09"] = "SEPTEMBRE", ["10"] = "OCTOBRE", ["11"] = "NOVEMBRE", ["12"] = "DECEMBRE"}
    
    ------------------------------------------
    ----- RECUPERATION DES DONNEES METEO -----
    ------------------------------------------
    
    ---- Récupération des 2 varaibles température / Humidity ----
    tempid = self:getVariable("temp_id")
    humid = self:getVariable("humidity_id")
    fibartemp = fibaro.getType(tonumber(tempid))
    fibarhumid = fibaro.getType(tonumber(humid))
    ---- Température ----
    if tostring(tempid) > tostring("0") and fibartemp == tostring("com.fibaro.temperatureSensor") then
            temp = fibaro.getValue(tonumber(tempid), "value")
            roomnametemp = fibaro.getRoomNameByDeviceID(tonumber(tempid))
        else
            temp = jsonTable.data[1].app_temp
            roomnametemp = tostring("WeatherBit")
    end
    ---- Humidité ----
    if tostring(humid) > tostring("0") and fibarhumid == tostring("com.fibaro.humiditySensor") then
            humidite = fibaro.getValue(tonumber(humid), "value")
            roomnamehum = fibaro.getRoomNameByDeviceID(tonumber(humid))
        else
            humidite = jsonTable.data[1].rh
            roomnamehum = tostring("WeatherBit")
    end
    ---- Vent ----
    win = jsonTable.data[1].wind_spd
    winder = tonumber(win) * 3.6
    windspeed = string.format("%.1f", tostring(winder))
    ---- Divers ----
    descript = jsonTable.data[1].weather.description
    snow = jsonTable.data[1].snow
    winddir = jsonTable.data[1].wind_cdir
    uv = jsonTable.data[1].uv
    pression = jsonTable.data[1].pres
    rosee = jsonTable.data[1].dewpt
    ---- Mise à jour dse variables pluie pour historique ----
    pluie = fibaro.getValue(911, "value")
    precip = fibaro.getValue(909, "value")
    self:setVariable("pluie", pluie)
    
    local conditionCodes = { 
            unknown = 3200,
            clear = 32,
            rain = 40,
            snow = 38,
            storm = 666,
            cloudy = 30,
            fog = 20,
        }
    local conditionCode = conditionCodes[condition]
    if conditionCode then
            self:updateProperty("ConditionCode", conditionCode)
            self:updateProperty("WeatherCondition", condition)
            self:updateProperty("Temperature", tonumber(temp))
            self:updateProperty("Wind", tonumber(windspeed))
            self:updateProperty("Humidity", tonumber(humidite))
    end
    self:debug(aujourdhui)
    
    ------------------------------------------------------------------------------
    --------------------------- CONSTRUCTION DES LABELS --------------------------
    ------------------------------------------------------------------------------
    self:updateProperty("log", ""..temp.. " °c")
    self:updateView("labelCity", "text", "INFOS METEO DU "..week[tostring(aujourdhui)].." "..jour.. " "..month[mois].." "..os.date("%Y"))
    self:updateView("label1", "text", descript.."\r\rTempérature : "..temp.. "°c\rHumidité : "..string.format("%.0f", humidite).." %\rPluie : "..string.format("%.1f", precip).." mm/h\rNeige : "..string.format("%.1f", snow).." mm/h\rCumul pluie 24h : "..string.format("%.1f", pluie).."mm\rVent : "..windspeed.." km/h ("..winddir..")\rIndex UV (0-11+) : "..string.format("%.0f", uv).."\rPression atmosphérique : "..string.format("%.0f", pression).." mb\rPoint de rosée : "..rosee.." °c\rLever du soleil : "..lever.."\rCoucher du soleil : "..coucher.."\r\rSource Température : "..roomnametemp.. "\rSource Humidité : "..roomnamehum)
    self:updateView("labelMAJ", "text", "Station de "..city.." ("..citycode..") | MAJ le "..Var_Heure)
    		else
    			self:debug("Error : empty response data")
    		    end
    		else
    			self:debug("Error : status=" .. tostring(response.status))
    	end
    end,
    	        error = function(err)
    		    self:debug("Error : " .. err)
    	end
    })    
    self:debug("Boucle METEO")
                     fibaro.setTimeout(1000 * 60 * 30, function() -- MAJ 30 minutes
            self:loop()
        end)
    end

     

    Version 1.1

    - pour la température et l'humidité, ce sont soient les données de Weatherbit soient les valeurs de vos propres modules.

    - changement de l'icon selon les conditions météo.

    - indication de la source de la temp et de l'humidité ("nom de la pièce"  ou WeatherBit)

     

    Version 1.2

    - QA Reconnu comme weather provider

    - récupération auto des coordonnées latitude et longitude

    - Vérification que les id des modules de température et/ou Humidité appartiennent aux types appropriés

     

    WeatherBit.fqa

     

     

     

    Bonne installation !

     

    Stef

     

     

     

     

     

    Icon1.png.9095ea486804eba5b84ef78ac38bed88.pngIcon2.png.36279e375b31924cd8c3c2ace78ba95d.pngIcon3.png.908d5997d4756911f2d56f107e68e6cb.pngIcon4.png.f305c179ee006da6ed0e673d17f4763f.pngIcon5.png.e19741bb3c2ad143b52686961831ae42.pngIcon6.png.a0a58b42d295854cf7853ea342702f5c.pngIcon7.png.489a62ac33f06436740abbbd30d0d6e1.pngIcon8.png.a2551268eb9632fb74fde3491610f5da.pngIcon9.png.96212d3fd9f23c42e665bd851dc15e2f.pngIcon10.png.7d9b08d1f556b86b1a79eec9d080c59a.pngIcon11.png.00edc83a7bcde906a855aa2669095190.png

     

    icon_1.png.1f30ef6f0dcc5d211ac70572ec1aa652.pngicon_2_bis.png.81be1cf62fb4ced87bb9ab3d29eadbf2.pngicon_3.png.55a324076a402f202784bba286953e3b.pngicon_4.png.b73079691cd31c200fbeb679d03798cb.pngicon_5.png.0105b37ed7f7b5ee9748cc169ece0aff.pngicon_6.png.bda40e61278a6af09a79eea43d8b0a96.pngicon_7.png.d07bc425715af54f7258c54feb81e4d9.pngicon_8.png.e800a00a1d63fa53033a19eca3aafd77.pngicon_9.png.4b2c48d25f750018b6027165039070c8.pngicon_10.png.6c0c87f964ba7ecc19c623b4f5f6b707.pngicon_11.png.ada38da4faad5903a17b3109e3847808.png

    • Like 2

  7. Ce QA récupère les données de prévisions météo sur 5 jours du site WeatherBit.

    Mise a jour du QA toutes les 2 heures.

     

     

    Image.thumb.jpg.cbdd428f3d58ef103516df2e9fd1e22e.jpg

     

    Installation

    Il vous faut d’abord obtenir une « clé » (key) que vous obtiendrez en vous inscrivant gratuitement sur le site Weatherbit.io

    renseignez alors la variables key_id dans le panneau.

     

    Pour l’installation des icons, il suffit de suivre l’ordre pré établi (de id_icon1 à id_icon11) selon la représentation ci-dessous :

     

    639815976_prsentationicons.jpg.9cd7da4940fa4d7fbd58edfc3c6f5237.jpg

     

    Pour récupérer l’id d’un icon :

    après avoir téléversé l’icon, vous faites un clic droit dessus et sélectionner « Ouvrir l’image dans un nouvel onglet ». Dans l’onglet, il devrait s’afficher une phrase du style : « User(id_icon).png

    Bien noter pour chaque icon son id correspondant pour pouvoir le renseigner par la suite dans le tableau des variables…

     

    Bonne installation !

     

    Version 1.2

    - Récupération auto des coordonnées de latitude et longitude de la box pour déterminer votre localité.

     

    Previsions_Meteo.fqa

     

     

     

    Icon1.png.655d1106973d562241cd34b91896cf84.pngIcon2.png.c6ac5ca09f44e6e91b37908de3547550.pngIcon3.png.22721b5836295c5bed498de2db47d675.pngIcon4.png.fb26b682c8833e67837e63989eb6c1eb.pngIcon5.png.cc3a078ae104d7b82c39459043a454cc.pngIcon6.png.2258b33b29d57f6bb58fad0b52c5cab5.pngIcon7.png.23c9c525353e1402631e7f291ab70f7c.pngIcon8.png.48eb5199e5c9436d3ef12b3740c67aa5.pngIcon9.png.ac2006dcc0b2966aba2675069ddeeaaf.pngIcon10.png.bfae4b82f635529a56af4e9e95707325.pngIcon11.png.28768882687ad293a5c023eeec17bcb9.png

     

    • Like 4

  8. il me semble (comme la HC2) que c'est sur l'appli mobile que les balises HTML ne fonctionnent pas.

     

    j'ai laissé tomber d'inclure le QA prévisions météo type Weather : pas assez pertinent car le QA ne se met à jour que toutes les 24h... (auparavant WeatherBit permettait une maj toute les 3 heures sur 5 jours).

    je peaufine le QA pour qu'il soit accessible et paramétrable facilement au plus grand nombre.

     

    meteo.thumb.jpg.c2df2208dc873754af1108ecf716021e.jpg

     

     

     

    Stef

×