Mais quand j'essai de faire les deux en même temps, je n'y arrive pas.
J'ai essayé d'ajouter le code d'un exemple a l'autre mais cela ne fonctionne pas car il y a des conflits de variables de ce que j'ai pu comprendre entre les deux fichier .cpp de chaque exemple (dans src de la bibliotheque esp8266-weather-station OpenWeatherMapCurrent.cpp et OpenWeatherMapForecast.cpp).
Avez vous une idées de comment je pourrai m'y prendre?
Je me suis dit qu'il fallait que je crée deux nouveau fichier dans le dossier src de la bibliothèque ( OpenWeatherMapCurrentForecastDemo.h et OpenWeatherMapCurrentForecastDemo.cpp) pour y faire une fusion des deux et modifier le nom des variables en commun.
Mais pour le debutant que je suis je vais y passer des heures sans etre sur d'un resultat.
(J'ai essayé aussi l'exemple OpenWeatherMapOneCallDemo sans reussir et sans trop comprendre a quoi cet exemple sert)
Tu ne dois pas toucher aux fichiers cpp, ce sont ceux de la bibliothèque.
Si tu veux grouper deux démos, il faut grouper les deux fichiers ino. Ces démos n'utilisent pas la loop, le bloc void loop() est vide, donc tu dois combiner les contenus des bloc setup() de chaque démo en éliminant les doublons.
Le problème c'est que les doublons sont dans les fichier cpp, pas dans le code ino
exemple la variable float temp existe dans les 2 fichiers, le code ino ne fait que l’appeler.
Si je change le nom de la varible temp pour OpenWeatherMapForecast en tmpForecast par exemple elle ne conviendra plus a celle de la librairie.
D'ou mon envie d'aller modifier directement dans le cpp de OpenWeatherMapForecast
Et si je la supprime, je pense que la données ne sera plus collectée.
Parce que dans les 2 exemples lesdites structures portent le même noms.
Il faudrait, par exemple, renommer dans le second exemple la structure data en dataForecast.
L'API OneCall, permet de récupérer en une seule requête les données courantes et les données de prévision. Les informations sont légèrement différentes de celles obtenues par les requêtes current et forecast. Il suffit de lire la doc des API ou de se plonger dans les fichiers .h de la librairie où tu trouveras tous les champs disponibles.
La solution est donnée par @fdufnews : dans la partie que tu copies de OpenWeatherMapForecastDemo.ino tu changes toutes les occurrences de data en (par exemple) dataforecast depuis cette ligne : OpenWeatherMapForecastData data[MAX_FORECASTS];
jusqu'à celle-ci : Serial.printf("observationTimeText: %s\n", data[i].observationTimeText.c_str());
Je me doutais un peu que OnCall regroupe les deux mais j'ai eu un bug de librairies et je viens de comprendre pourquoi, elle n'etais pas a sa place.... Je vais re-essayer.
Sinon si je veux fusionner les deux il faut que je modifie l'un des deux.
OK merci bien c'est plus clair pour moi, je vais voir ce que ca donne avec onecall et sinon je vais reviser le C+.
En meme temps je suis debutant, et galerer et farfouiller partout m'aide bcp a comprendre. Ce qui est pas plus mal au final.
Oui, mais on peut demander d'exclure de la réponses les champs que l'on n'utilise pas. Par exemple dans le cas de la librairie en question, on peut demander que les informations MINUTELY soient absentes.
En allant voir dans le .cpp de OneCall, j'ai pu constater que toutes les infos que je recherche sont présente.
Je suis en train de modifier le .ino pour obtenir celle que je désire.
Il me reste a trouver comment changer la fréquence et le nombre des prévisions.
Le nombre de prévision est contenu dans la structure OpenWeatherMapOneCallData c'est ce que j'ai décrit précédemment:
les infos courantes
les prévisions minute par minute pour l'heure à venir (pas exploité par la librairie)
les prévisions heure par heure pour les prochaines 48h
les prévisions jour par jour sur 1 semaine
Pour la fréquence des mises à jour, dans le code de démo, la requête est faite dans setup() donc elle ne s'exécute qu'une fois. Mais si tu modifies le code en plaçant la requête dans loop avec un dispositif d'attente entre 2 requêtes tu peux avoir plusieurs mises à jour par 24h. La seule limite étant le nombre de requêtes autorisées par jour avec l'abonnement gratuit à OpenWeatherMap (1000 requêtes OneCall par jour).
Pour le nombre des previsions j'ai trouvé vite fait dans le code.
Mais je me suis mal exprimé, je ne parle pas de la frequence de reactualisation (facile a faire avec millis() ) mais plutot de l'intervale entre chaque prevision.
Je vie en Bretagne ou il fait beau plusieurs fois par jours....
Avoir les prévisions toutes les 3h est plus adapté a la région
Voilà le détail de la structure OpenWeatherMapOneCallData, que l'on trouve dans OpenWeatherMapOneCall.h, elle contient les données reçues après une requête oneCall