Page 1 sur 3

Monitor Affichage page METEO -

Publié : 14 janv. 2018, 03:09
par christian74100
Bonjour à tous et tous mes meilleurs voeux en ce début d'année

Nouvel utilisateur de DomoticZ j’ai découver ce forum « Easydomoticz » et toutes ces informations sur Monitor et les Custom-Page.s
Whaaooouuuu quelle qualité d’information et d’entraide, tout particulièrement de la part de vil1driver qui ne ménage pas son temps
j’ai les yeux carrés :shock: pour avoir lu les 148 pages du forum.
J’ai utilisé quelques unes des subtilités proposées et me suis interresé plus particulièrement à la page météo (pluie) et je me trouve face à un problème.

Pour la partie du haut de la page météo j’ai compris comment ça marchait et suis satisfait de ce que j’obtiens, mais pour toute la partie du bas (les prévisions heure par heure sur 3 ou 4 jours.) rien ne s’affiche.

j’ai testé en direct la commande d’appel du site « http://www.prevision-meteo.ch/services/json/[maVille] » el les informations remontent bien. Donc à priori pas de blocage de ce coté là.

A force de chercher je crois que c’est la partie du code « $.getJSON(JsonAddress, function (json) { …… » qui ne exécute pas.
Si je pose une « alert() » dans cette partie rien n’est remonté alors que la même alert() est affichée si je la met juste avant cette ligne.

J’ai surement raté quelque chose dans mon installation et je viens chercher du secours auprès de vous.
quelqu’un peut-il m’aider à résoudre ce problème.
Merci par avance

ma config : RPI (raspbian), rfxcom, Macbook pro (safari)

Re: Monitor Affichage page METEO -

Publié : 29 mars 2018, 16:37
par christian74100
Bonsoir
je reprend le clavier pour préciser quelques points (après démontage / remontage de la page météo)

Problème d'affichage seulement sur safari (Version actuelle 11.0.2 )
Affichage correct sur Firefox
Manque la dernière des 4 lignes sur une tablette Android alors qu'il y a la place.

si il y a de bonnes Ames pour m'éclairer !!!

Monitor Affichage page METEO -

Publié : 29 mars 2018, 16:56
par christian74100
bonjour
je reviens sur le sujet car je suis toujours face au même problème
Pour info le problème est aussi regulièrement mais pas systématiquement présent avec firefox sur mac OSX et sur ma tablette LG avec Chrome.

Pour toutes les prévisions heure par heure sur 3 ou 4 jours rien ne s’affiche.
Je confirme que j’ai bien testé en direct la commande d’appel du site « http://www.prevision-meteo.ch/services/json/[maVille] » el les informations remontent bien.
Donc à priori pas de problème pour la récupération des données.

Je suis presque certain que c’est la partie du code « $.getJSON(JsonAddress, function (json { …… )» qui n'est pas exécutée. mais je ne comprend pas pourquoi.
Si je pose une « alert() » dans cette partie du code "JS" pas de message alors que la même alert() est bien affichée si je la pose juste avant cette ligne.

quelqu'un peut-il m'aider à comprendre quel paramétrage j'ai loupé.
merci d'avance

Re: Monitor Affichage page METEO -

Publié : 29 mars 2018, 21:53
par papoo
en ce moment l'api prevision-meteo.ch a quelques problèmes, surement victime de son succès
tu n'arrive jamais à voir la météo ou seulement de temps en temps?

Re: Monitor Affichage page METEO -

Publié : 04 avr. 2018, 03:36
par christian74100
Merci de me venir en aide

Le problème est épisodique sur Firefox (MAC OSX) et la tablette LG mais systématique sur safari.
Pour moi rien à voir avec l'accès à l'API mais juste un problème de parametrage pour l'exécution de cette fonction javascript $.getJSON().
Comme je le disais dans mes autres messages j'ai une alerte posée en 1ere ligne de la fonction et quand cette alerte est activée les infos météo sont bien affichées ce qui pour moi indique que le *programme* ne passe pas systématiquement dans cette fonction,

ci-dessous le passage du code en question dans la page météo.html
. . . . .
$.getJSON(JsonAddress, function(json) {
alert("dans $.getJSON");
$.each(json.fcst_day_0.hourly_data, function( index, value ) {
. . . . . .

Une idée pour être sur que la fonction est bien "toujours* exécutée ?

Re: Monitor Affichage page METEO -

Publié : 04 avr. 2018, 14:52
par vil1driver
Salut

F12 ;) onglet network

Re: Monitor Affichage page METEO -

Publié : 03 mai 2020, 16:26
par Moulins58
Moi, c'est le contraire, le bas de page fonctionne correctement, mais je n'ai rien en haut de page jusqu'a "météo 11". Je n'ai pas pigé pour ce haut de page.
Voila mon script pour le bas:

Code : Tout sélectionner

--[[
previsionMeteo.lua
author/auteur = papoo
update/mise à jour = 31/03/2020
création = 18/08/2019
https://pon.fr/dzvents-mise-en-cache-des-donnees-de-lapi-prevision_meteo-ch
https://github.com/papo-o/domoticz_scripts/blob/master/dzVents/scripts/previsionMeteo.lua
https://easydomoticz.com/forum/viewtopic.php?f=17&t=8865
encodage UTF8 sans BOM
Principe : Le site prevision-meteo.ch subit de nombreux ralentissements, rendant aléatoire l'affichage des prévisions météo sur monitor
https://pon.fr/prevision-meteo-a-3-jours/
Ce script permet la récupération des données via l'API, la modification du chemin d'accès aux icones afin de les stocker en local.
Si les données sont inaccessibles lors de l'appel de l'API, les données précédentes ne sont pas écrasées, permettant le fonctionnement continue de la page météo
Téléchargez les 36 icones météo dans le dossier dédié de monitor /home/pi/domoticz/www/monitor/icons/prevision-meteo/
https://www.prevision-meteo.ch/style/images/icon/ensoleille.png
https://www.prevision-meteo.ch/style/images/icon/nuit-claire.png
https://www.prevision-meteo.ch/style/images/icon/ciel-voile.png
https://www.prevision-meteo.ch/style/images/icon/nuit-legerement-voilee.png
https://www.prevision-meteo.ch/style/images/icon/faibles-passages-nuageux.png
https://www.prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png
https://www.prevision-meteo.ch/style/images/icon/brouillard.png
https://www.prevision-meteo.ch/style/images/icon/stratus.png
https://www.prevision-meteo.ch/style/images/icon/stratus-se-dissipant.png
https://www.prevision-meteo.ch/style/images/icon/nuit-claire-et-stratus.png
https://www.prevision-meteo.ch/style/images/icon/eclaircies.png
https://www.prevision-meteo.ch/style/images/icon/nuit-nuageuse.png
https://www.prevision-meteo.ch/style/images/icon/faiblement-nuageux.png
https://www.prevision-meteo.ch/style/images/icon/fortement-nuageux.png
https://www.prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png
https://www.prevision-meteo.ch/style/images/icon/nuit-avec-averses.png
https://www.prevision-meteo.ch/style/images/icon/averses-de-pluie-moderee.png
https://www.prevision-meteo.ch/style/images/icon/averses-de-pluie-forte.png
https://www.prevision-meteo.ch/style/images/icon/couvert-avec-averses.png
https://www.prevision-meteo.ch/style/images/icon/pluie-faible.png
https://www.prevision-meteo.ch/style/images/icon/pluie-forte.png
https://www.prevision-meteo.ch/style/images/icon/pluie-moderee.png
https://www.prevision-meteo.ch/style/images/icon/developpement-nuageux.png
https://www.prevision-meteo.ch/style/images/icon/nuit-avec-developpement-nuageux.png
https://www.prevision-meteo.ch/style/images/icon/faiblement-orageux.png
https://www.prevision-meteo.ch/style/images/icon/nuit-faiblement-orageuse.png
https://www.prevision-meteo.ch/style/images/icon/orage-modere.png
https://www.prevision-meteo.ch/style/images/icon/fortement-orageux.png
https://www.prevision-meteo.ch/style/images/icon/averses-de-neige-faible.png
https://www.prevision-meteo.ch/style/images/icon/nuit-avec-averses-de-neige-faible.png
https://www.prevision-meteo.ch/style/images/icon/neige-faible.png
https://www.prevision-meteo.ch/style/images/icon/neige-moderee.png
https://www.prevision-meteo.ch/style/images/icon/neige-forte.png
https://www.prevision-meteo.ch/style/images/icon/pluie-et-neige-melee-faible.png
https://www.prevision-meteo.ch/style/images/icon/pluie-et-neige-melee-moderee.png
https://www.prevision-meteo.ch/style/images/icon/pluie-et-neige-melee-forte.png
--]]
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------

local jsonFile      = '/home/pi/domoticz/www/monitor/prevision-meteo.json' -- nom du fichier (et son chemin complet) contenant les données de l'API
local iconsPath     = 'http://192.168.1.79:8080/monitor/icons/prevision-meteo/' -- adresse local où sont stockés les icones
local city          = 'treillieres'  -- nil si vous souhaitez utiliser les coordonnées de latitude/longitude 
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
local scriptName        = 'Extraction prévisions météo'
local scriptVersion     = '1.02'
local response = "prevision-meteo_response"
return {
    active = true,
    on =        {       timer           =   { "every 6 minutes" },
                        httpResponses   =   {  response } },

    -- logging =   {    level    =   domoticz.LOG_DEBUG,
                    -- -- level    =   domoticz.LOG_INFO,             -- Seulement un niveau peut être actif; commenter les autres
                    -- -- level    =   domoticz.LOG_ERROR,            -- Only one level can be active; comment others
                    -- -- level    =   domoticz.LOG_MODULE_EXEC_INFO,
                    -- marker  =   scriptName..' v'..scriptVersion },

    execute = function(domoticz, item)

        local function logWrite ( str, level)  -- afficher le contenu d'un tableau
            local logTableWrite_cache = {}
            local function sub_logTableWrite(str, indent)
                if (logTableWrite_cache[tostring(str)]) then
                    domoticz.log(indent.."*"..tostring(str), level or domoticz.LOG_DEBUG)
                else
                    logTableWrite_cache[tostring(str)]=true
                    if (type(str)=="table") then
                        for pos,val in pairs(str) do
                            if (type(val)=="table") then
                                --domoticz.log(indent.."["..tostring(pos).."] - ["..tostring(str).."] => {", level or domoticz.LOG_DEBUG)
                                domoticz.log(indent.."["..tostring(pos).."] => {", level or domoticz.LOG_DEBUG)
                                sub_logTableWrite(val,indent..string.rep(" ",string.len(pos)+8))
                                domoticz.log(indent..string.rep(" ",string.len(pos)+6).."}", level or domoticz.LOG_DEBUG)
                            elseif (type(val)=="string") then
                                domoticz.log(indent.." "..pos..' = "'..val..'"', level or domoticz.LOG_DEBUG)
                                --domoticz.log(indent..pos..' => "'..val..'"', level or domoticz.LOG_DEBUG)
                            else
                                domoticz.log(indent.." "..pos.." = "..tostring(val), level or domoticz.LOG_DEBUG)
                                --domoticz.log(indent..pos.." = "..tostring(val), level or domoticz.LOG_DEBUG)
                            end
                        end
                    else
                        domoticz.log(indent..tostring(str), level or domoticz.LOG_DEBUG)
                    end
                end
            end
            if (type(str)=="table") then
                domoticz.log("["..tostring(str).."] => {", level or domoticz.LOG_DEBUG)
                sub_logTableWrite(str,"  ")
                domoticz.log("}", level or domoticz.LOG_DEBUG)
            else
                sub_logTableWrite(str,"  ")
            end
            print()
        end

        if (item.isHTTPResponse and item.trigger == response) then
            if (not item.isJSON) then
                logWrite('Last http response was not what expected. Trigger: '..item.trigger,domoticz.LOG_ERROR)
            else
                local contents = domoticz.utils.toJSON(item.json)
                contents = contents:gsub('https://www(.?)prevision(.?)meteo(.?)ch/style/images/icon/', iconsPath) 
                logWrite(contents)
                if contents then
                    file = io.open(jsonFile, "w+")
                    file:write( contents )
                    io.close( file )
                    --file:close()
                    logWrite('ecriture des données dans le fichier '..jsonFile)
                end
            end

        else
            if city ~= nil then 
                url = "https://www.prevision-meteo.ch/services/json/"..city
            else
                local latitude  = domoticz.settings.location.latitude
                -- local latitude  = '47.366285'
                logWrite('latitude : '..latitude)
                local longitude = domoticz.settings.location.longitude
                -- local longitude = '-1.619198'
                logWrite('longitude : '..longitude)
                url = "https://www.prevision-meteo.ch/services/json/lat="..latitude.."lng="..longitude
            end

            domoticz.openURL({
                  url = url,
                        method = "GET",
                        callback = response})
        end
    end
}
A placer dans "/home/pi/domoticz/scripts/dzVents/scripts"
Pouvez-vous me donner la solution pour le haut de page.
Merci

Re: Monitor Affichage page METEO -

Publié : 23 févr. 2021, 21:02
par Moulins58
Bonsoir, j'ai réussi à faire la partie haute de la page, j'ai juste une question : comment mettre l'icône Météo dans la cellule 25 de la page Météo comme dans le tuto. J'ai pas compris, mais pas compris!
Quelqu'un pourrait -il m'aider. Merci

Re: Monitor Affichage page METEO -

Publié : 25 févr. 2021, 16:01
par ardiced
Bonjour,

Dans frontpage_settings.js, pour afficher l'icone météo

Code : Tout sélectionner

['IDX',		'ForecastStr',		'Cell_25',	'Prévision','','','',''],	// Icone prevision du jour	
['IDX',		'ForecastStr',		'Cell_25',	'Prévision','1','','',''],	// Icone prevision du jour +1
['IDX',		'ForecastStr',		'Cell_25',	'Prévision','2','','',''],	// Icone prevision du jour +2
['IDX',		'ForecastStr',		'Cell_25',	'Prévision','3','','',''],	// Icone prevision du jour +3
Pour IDX placer le nom ou l'IDX de ton sensor
C'est 'ForecastStr' qui force l'affichage de l'icone
le 1, 2, 3 ou rien correspond au jour à afficher.

Re: Monitor Affichage page METEO -

Publié : 25 févr. 2021, 22:23
par Moulins58
Merci pour la réponse, demain j'essaie. Bonne soirée.