Plugin AQI - Prévision Qualité de l'air et pollen

Bonjour à tous,

Je suis entrain de terminer un nouveau plugin qui permet de visualiser les concentrations des polluants et pollens présents dans l’air.
Par rapport aux plugins existants, celui-ci, affiche les prévisions sur 5j pour les polluants et 48h pour les pollens et aussi de multiples informations (tendance, moyennes, etc…)
Il marche également presque partout dans le monde grâce aux API gratuites Openweathermap et Ambee.

Je suis entrain de le finaliser et je n’ai pas encore réussi à le publier sur le market, en revanche il fonctionne déjà et vous pouvez l’installer manuellement par github ici

Edit 15/07 : Il est dispo en beta sur le market

Je serais très heureux d’avoir déjà un premier retour pour pouvoir finaliser correctement, il tourne en V4 pour l’instant.

C’est ma première publication et j’avoue que je galère un peu dans le process.
De plus je code depuis un peu plus d’1 ans seulement donc tous vos commentaires me seront vraiment utiles je pense !! :slight_smile:

Si vous souhaitez proposer des contributions, même minimes, le projet est ouvert.

J’espère que ce plugin sera aussi utile pour la communauté, il sera gratuit au fait

@+

Olivier

14 « J'aime »

Bonjour,

Belle idée de plugin Olivier :clap: A tester :wink:

Edit à 9h54:
Après un rapide test @OlivierMongeot j’ai cette erreur:

**Notice** : Undefined index: poaceae in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: poaceae in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **142**
**Notice** : Undefined index: poaceae in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: poaceae in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: poaceae in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: nettle in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: nettle in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **142**
**Notice** : Undefined index: nettle in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: nettle in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Notice** : Undefined index: nettle in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**
**Warning** : Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php** on line **129**

Rien de grave apparemment, un crtl f5 fait disparaitre le message
pour info:
Jeedom 4.1.22
Rasbian Buster à jour
Pi 3b+

1 « J'aime »

Merci pour ce retour, je vais corriger ça et vous tiens au courant.

1 « J'aime »

Je suis embêté, je n’arrive pas à reproduire l’erreur.
Je suppose qu’elle a lieu au moment ou vous créez et sauvegardez un nouvel équipement « pollen » ?

Il y a un petit fichier errors.log à la racine du plugin, pourriez vous s’il vous plaît afficher ttes les erreurs (si il y’en a pas trop)?

Merci d’avance,

Alors là par exemple je viens de me reconnecter à mon Jeedom et directe j’ai eu le message.

Deprecated: Non-static method horoscope::templateWidget() should not be called statically in /var/www/html/core/class/cmd.class.php on line 1183
Notice: Undefined index: poaceae in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: poaceae in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 142
Notice: Undefined index: poaceae in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: poaceae in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: poaceae in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: nettle in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: nettle in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 142
Notice: Undefined index: nettle in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: nettle in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Warning: Invalid argument supplied for foreach() in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129
Notice: Undefined index: nettle in /var/www/html/plugins/airquality/3rdparty/class.IconesAqi.php on line 129

J’ai mis le plugin en Debug et j’ai cela dans les log:

[2021-07-01 12:00:42][DEBUG] :  Curl Info http != 200 : {"url":"http:\/\/api.openweathermap.org\/data\/2.5\/air_pollution?lat=48.912073&lon=2.4366605","content_type":null,"http_code":0,"header_size":0,"request_size":219,"filetime":-1,"ssl_verify_result":0,"redirect_count":0,"total_time":30.001357,"namelookup_time":0.040572,"connect_time":0.066105,"pretransfer_time":0.066544,"size_upload":0,"size_download":0,"speed_download":0,"speed_upload":0,"download_content_length":-1,"upload_content_length":-1,"starttransfer_time":0,"redirect_time":0,"redirect_url":"","primary_ip":"37.139.20.5","certinfo":[],"primary_port":80,"local_ip":"192.168.1.54","local_port":56060,"http_version":0,"protocol":1,"ssl_verifyresult":0,"scheme":"HTTP","appconnect_time_us":0,"connect_time_us":66105,"namelookup_time_us":40572,"pretransfer_time_us":66544,"redirect_time_us":0,"starttransfer_time_us":0,"total_time_us":30001357} - Url : "http:\/\/api.openweathermap.org\/data\/2.5\/air_pollution?lat=48.912073&lon=2.4366605"
[2021-07-01 12:00:42][DEBUG] : Problème API : "Operation timed out after 30001 milliseconds with 0 bytes received"
[2021-07-01 12:00:42][ERROR] : Erreur sur la fonction cron30 du plugin : Pas de données de pollution pour l'instant : Operation timed out after 30001 milliseconds with 0 bytes received

Voici le fichier log en question :wink:
errors.log (1,2 Mo)

1 « J'aime »

Je pense avoir compris le soucis, du moins en partie car je n’ai pas réussi à reproduire l’erreur . J’ai modifié mon code et mis à jour le dépot github.

Quand ca fonctionne, on devrait avoir ceci pour les polluants

aqi2

Et ceci pour les pollens :

pollen

En espérant que ca fonctionne,

Hello,

Je viens de mettre à jour, pour l’instant je n’ai pas eu de nouveau le message mais comme c’est aléatoire je te redirait, en attendant voilà le résultat:

image

J’utilise la géolocalisation Jeedom

2 « J'aime »

Super, ça à l’air de fonctionner pour les polluants !!

Pour l’affichage des pollens, tu n’as pas de data, c’est normal pour l’instant je pense,

L’ API Ambee, donne 100 appels/jour gratuit, ce qui limite les « refresh », donc demain matin les données devraient arriver pour le forecast (refresh à 7h00 tous les matins qui coûtent 48 appels API ) et à partir de 1h00 du matin les pollens live devraient s’afficher (refresh toutes les heures).

Merci ++++,

1 « J'aime »

Bonjour,

J’ai un souci avec les pollens:
3 pages de ces 2 lignes à l’écran:

**Notice**: Undefined index: pm10 in **/var/www/html/plugins/airquality/3rdparty/class.IconesPollen.php** on line **144**
**Warning**: Invalid argument supplied for foreach() in **/var/www/html/plugins/airquality/3rdparty/class.IconesPollen.php** on line **144**

En modifiant le niveau d’erreur PHP dans le fichier de la classe airquality, il y a des polluants qui se mélangent avec les pollens sur mon équipement de type pollen:
image

C’est l’inverse de ce qu’@iPapy a au dessus. Avec les polluants, il avait aussi des pollens.

1 « J'aime »

Bonjour,

Merci pour le test.

Cela ressemble un peu à l’erreur d’@iPapy en effet.
J’ai corrigé le dépôt Github vers 16h cet après-midi, pour inclure ce problème. As tu la dernière version ?

Pour aujourd’hui, tu ne pourras peut être plus tester les pollens, car le quota d’appel API est vite atteint. Mais, il ne devrait déjà plus y avoir de mélange normalement.

Ce que j’ai été obligé de faire c’est que dans Polluant j’ai désactivé les afficher de tous les arbres, herbes et graminées car par défaut le plugin coche tous.
Après une idée serait que dans polluant seul les polluants soient cochés par défaut comme c’est le cas quand on choisi pollen ou seul les pollens sont affichés par défaut.

1 « J'aime »

J’ai recup à 17h09.
Les polluants semblent corrigés, il n’y a plus de cmd pollens intercalées

1 « J'aime »

Oui, le fait que cohabite les ‹ command › Pollen et Polluant sur le même équipement n’est pas normal.
Normalement en créant un widget Pollution, seul les command concernées (NO, O³, CO, etc…) devraient être créées.
Merci pour ce détail, je comprends mieux.

Alors j’ai supprimé polluant et recréer ce dernier et j’ai bien que les polluants que désormais, je pense que ta dernière mise à jour y est pour quelques chose :wink:

1 « J'aime »

Le mélange polluants / pollens se fait quand on change le type de l’équipement.
Mon équipement pollens avait été créé en polluant (je n’avais pas de clef Ambee) puis changé ensuite en pollens.

En supprimant l’équipement pollen et en le recréant, il n’y a que des pollens
De même pour les polluants.

1 « J'aime »

Et oui, merci encore une bonne info !! il faut que j’ajoute une suppression ou désactivation des cmd lors du switch… :slight_smile:
Je règle ça ce soir encore et vous tiens au courant !!

2 « J'aime »

Hello,

Je viens de mettre une nouvelle version sur Github : vous pouvez switcher entre pollen et pollution, et il ne devrait plus y avoir d’erreur, ni de mélange d’affichage concernant cette manip.

Merci @iPapy et @jpty, j’avais pas du tout géré ce cas là… :slight_smile:

3 « J'aime »

Hello Olivier,

Je viens de mettre à jour, je te tiens au courant :+1:

1 « J'aime »

Bonjour,
Installé sans pb pour les tests :ok_hand:


Par contre j’ai un autre test en cour sur Previsy 2 de @Ynats et ça semble se perturber l’un l’autre.

[Sat Jul 03 13:01:33.571889 2021] [php7:notice] [pid 31173] [client 192.168.1.21:53026] PHP Notice:  Undefined offset: 0 in /var/www/html/plugins/previsy2/core/class/previsy2.class.php on line 57, referer: http://192.168.1.232/index.php?v=d&p=dashboard
[Sat Jul 03 13:01:49.098929 2021] [php7:notice] [pid 19416] [client 192.168.1.21:53064] PHP Notice:  Undefined offset: 0 in /var/www/html/plugins/previsy2/core/class/previsy2.class.php on line 57, referer: http://192.168.1.232/index.php?v=d&p=dashboard
libpng warning: Interlace handling should be turned on when using png_read_image
libpng warning: Interlace handling should be turned on when using png_read_image
libpng warning: Interlace handling should be turned on when using png_read_image

1 « J'aime »

Bonjour,
Merci pour le retour,

Oui, en fait dans mon plugin j’ai ajouté pour les tests et pour avoir un niveau d’alerte maximum :

error_reporting(E_ALL);
ini_set('ignore_repeated_errors', TRUE);
ini_set('display_errors', TRUE);

Cela fait aussi sortir le moindre message d’erreur et notification de tout des autres plugins
et à priori, sauf erreur, je ne vois pas de perturbation dans le log, mais plutôt, une ‹ notice › qui concerne effectivement le plugin de @Ynats (que je salue au passage).

Il pourra nous le confirmer je pense ?

Concernant le plugin :
Sur les photos, je vois que le forecast pollen ne s’affiche pas, cela viendra demain matin, mais tu peux le faire manuellement, en cliquant sur le bouton Tester de la commande ‹ Rafraichir Forecast Pollen ›
dans la configuration du plugin.
De plus, si tu veux afficher les moyennes, min, max et tendances, il faut aussi cocher ‹ historiser › sur tous les pollens et polluants dans la config du l’équipement.

Je le ferais sans doute s’afficher de suite dans les prochaines versions.

Merci encore, n’hésitez pas à me dire si vous voyez des choses bizarres ou à améliorer, je suis preneur. :slight_smile: