
[TUTO] AirCan - Mesure qualité de l'air - MISE A JOUR
Re: [TUTO] AirCan - Mesure qualité de l'air
Si l'un d'entre vous se lance, tenez-moi au courant de vos aventures ! 

MiniPC W10 + RFXCom 433e Ext1013 + RFLINK R45; 1 temp Bresser + 4 Banggood, lumières+volets+prises:Blyss
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Re: [TUTO] AirCan - Mesure qualité de l'air - Fini
Je profite d'un détour ici pour rajouter le paragraphe sur la précision des mesures et de l'aspect WAF du projet dans la description.
Le boitier fonctionne depuis plusieurs jours maintenant sans problème et, mis à part un décalage de +3.1°C de ma sonde DHT22 que j'ai corrigé dans les formula, je suis conquis par mon projet.
Le boitier est allumé orange ou rouge : ma femme ouvre toutes les fenêtres jusqu'à temps que ça redevienne bleu !
Joyeuses fêtes à tous !
Le boitier fonctionne depuis plusieurs jours maintenant sans problème et, mis à part un décalage de +3.1°C de ma sonde DHT22 que j'ai corrigé dans les formula, je suis conquis par mon projet.
Le boitier est allumé orange ou rouge : ma femme ouvre toutes les fenêtres jusqu'à temps que ça redevienne bleu !

Joyeuses fêtes à tous !
MiniPC W10 + RFXCom 433e Ext1013 + RFLINK R45; 1 temp Bresser + 4 Banggood, lumières+volets+prises:Blyss
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Re: [TUTO] AirCan - Mesure qualité de l'air - Fini
Bravo, superbe réalisation
1 question , c'est quoi le bloc orange avec les trous, un bornier de connexion ?
Le boitier est il disponible sans les gravures du dessus : by steph D n'est pas super discret

1 question , c'est quoi le bloc orange avec les trous, un bornier de connexion ?
Le boitier est il disponible sans les gravures du dessus : by steph D n'est pas super discret

Version: 4.9700; RFXCOM Rfxtrx433e ext/1007 ; Zwave (Z-stick GEN5, Fibaro...), Zigbee2MQTT.
Re: [TUTO] AirCan - Mesure qualité de l'air - Fini
Je pense que tu parles de la mini breadboard.
C'est utile pour dupliquer le gnd ou le +5v
Mais je conseille au final de souder sur un pcb


le lien tindie vers les pcb : https://www.tindie.com/products/DrAzzy/ ... t-only-6-/
C'est utile pour dupliquer le gnd ou le +5v
Mais je conseille au final de souder sur un pcb


le lien tindie vers les pcb : https://www.tindie.com/products/DrAzzy/ ... t-only-6-/
Domoticz V4.9788
sous raspbian-Stretch, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
sous raspbian-Stretch, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY
Re: [TUTO] AirCan - Mesure qualité de l'air - Fini
Salut Jeff,Jeff a écrit :Bravo, superbe réalisation![]()
1 question , c'est quoi le bloc orange avec les trous, un bornier de connexion ?
Le boitier est il disponible sans les gravures du dessus : by steph D n'est pas super discret
Le dessus du boitier sans ma belle signature


MiniPC W10 + RFXCom 433e Ext1013 + RFLINK R45; 1 temp Bresser + 4 Banggood, lumières+volets+prises:Blyss
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Re: [TUTO] AirCan - Mesure qualité de l'air - Fini
Exact c'est un minibreadtotof60 a écrit :Je pense que tu parles de la mini breadboard.
C'est utile pour dupliquer le gnd ou le +5v
Mais je conseille au final de souder sur un pcb
le lien tindie vers les pcb : https://www.tindie.com/products/DrAzzy/ ... t-only-6-/
Je confirme, beaucoup plus fiable de souder

MiniPC W10 + RFXCom 433e Ext1013 + RFLINK R45; 1 temp Bresser + 4 Banggood, lumières+volets+prises:Blyss
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Autre modules volets chinois - RM Mini3 + RM PRO 2
Conso élec : OWL 180+ -- 2 Wattmètres OTIO
Imperihome+Sarah+MDAH+Domoticz (merci easydomoticz !)
Re: [TUTO] AirCan - Mesure qualité de l'air - MISE A JOUR
Bonjour à tous,
je suis nouveau sur ce forum, mais je le consulte de temps en temps pour m'aider dans mes petits projets avec domoticz. Je remercie d'ailleurs chaleureusement stephdes pour ce superbe tutoriel !!!.
Je l'ai donc suivi à la lettre, tout à fonctionné parfaitement pendant 4, 5 mois, mais depuis le mois d'août et peut être après avoir appliqué la dernière mise à jour de domoticz Version: 4.9700, j'ai le script time qualité de l'air qui ne fait pas son travail avec le sensor "qualité de l'air" qui ne marche plus, et les LEDs qui ne s'allument plus... par contre touts le restes, y compris les valeurs fonctionnent !
Je ne suis pas assez bon pour comprendre correctement le langage lua et je n'arrive pas à trouver d'où peut venir le problème... si une âme charitable voulait bien jeter un oeil sur le code pour me dire si il y a une erreur je lui en serais très reconnaissant ^^!
Par ailleurs j'ai une erreur dans les logs "2018-09-23 18:33:00.140 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_qualite_air_maison.lua: .../domoticz/scripts/lua/script_time_qualite_air_maison.lua:78: attempt to compare number with nil"
Mais il me semble que j'ai toujours eu cette erreur, même lorsque tout fonctionné...
Voila le code complet de stephdes que j'ai très peu modifié :
je suis nouveau sur ce forum, mais je le consulte de temps en temps pour m'aider dans mes petits projets avec domoticz. Je remercie d'ailleurs chaleureusement stephdes pour ce superbe tutoriel !!!.
Je l'ai donc suivi à la lettre, tout à fonctionné parfaitement pendant 4, 5 mois, mais depuis le mois d'août et peut être après avoir appliqué la dernière mise à jour de domoticz Version: 4.9700, j'ai le script time qualité de l'air qui ne fait pas son travail avec le sensor "qualité de l'air" qui ne marche plus, et les LEDs qui ne s'allument plus... par contre touts le restes, y compris les valeurs fonctionnent !
Je ne suis pas assez bon pour comprendre correctement le langage lua et je n'arrive pas à trouver d'où peut venir le problème... si une âme charitable voulait bien jeter un oeil sur le code pour me dire si il y a une erreur je lui en serais très reconnaissant ^^!
Par ailleurs j'ai une erreur dans les logs "2018-09-23 18:33:00.140 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_qualite_air_maison.lua: .../domoticz/scripts/lua/script_time_qualite_air_maison.lua:78: attempt to compare number with nil"
Mais il me semble que j'ai toujours eu cette erreur, même lorsque tout fonctionné...
Voila le code complet de stephdes que j'ai très peu modifié :
Code : Tout sélectionner
--[[
name : script_time_qualite_air_maison.lua
auteur : Stef D.
Version : 4.0
date de création : 21/12/2017
Date de mise à jour : 25/04/2018
Principe : Ce script récupère les infos de poussières du capteur SDS011 et les envoie dans les bon customs sensor.
Déduit l'indice de qualité de l'air en fonction des poussières et du CO2 en prenant en compte prioritairement le CO2.
Pilote également les LED intégrées au Air Can avec un interupteur virtuel pour les couper la nuit.
URL du projet : https://easydomoticz.com/forum/viewtopic.php?f=24&t=5520
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local pm = 'test AirCan' -- renseigner le nom du device température + humidité utilisé pour l'envoie des infos poussière
local pm10 = 1600 -- renseigner l'idx du device taux de particules
local pm25 = 1601 -- renseigner l'idx du device taux de particules
local qualite = 1602 -- renseigner l'idx du device texte
local ip_sens = '192.168.1.21' -- renseigner l'adresse IP de la AirCan
local co2 = 'CO2 AirCan' -- renseigner le nom de votre dummy sensor utilisé pour la valeur CO2
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
commandArray = {}
now = os.date("*t")
if now.min%3 == 0 then -- Toutes les 3 minutes
val_PM25, val_PM10, etat1= otherdevices_svalues[pm]:match("([^;]+);([^;]+)")
--print("PM10 : "..val_PM10);
--print("PM2.5: "..val_PM25);
if pm10 ~= nil then
commandArray[1]={['UpdateDevice']= pm10 .. "|0|" .. val_PM10}
end
if pm25 ~= nil then
commandArray[2]={['UpdateDevice']= pm25 .. "|0|" .. val_PM25}
end
val_10 = tonumber(val_PM10)
if (val_10 < 13) then coefpm10 = 1
elseif ( 12 < val_10) and (val_10 < 27) then coefpm10 = 2
elseif ( 26 < val_10) and (val_10 < 34) then coefpm10 = 3
elseif ( 33 < val_10) and (val_10 < 49) then coefpm10 = 4
elseif ( 48 < val_10) and (val_10 < 79) then coefpm10 = 5
elseif ( val_10 > 78) then coefpm10 = 6
end
val_25 = tonumber(val_PM25)
if (val_25 < 23) then coefpm25 = 1
elseif ( 22 < val_25) and (val_25 < 41) then coefpm25 = 2
elseif ( 40 < val_25) and (val_25 < 47) then coefpm25 = 3
elseif ( 46 < val_25) and (val_25 < 58) then coefpm25 = 4
elseif ( 57 < val_25) and (val_25 < 69) then coefpm25 = 5
elseif ( val_10 > 68) then coefpm25 = 6
end
--print("*********************coef PM10 : "..coefpm10)
--print("*********************coef PM2.5 : "..coefpm25)
if (coefpm10 > coefpm25) then val_iqa = coefpm10
elseif (coefpm10 < coefpm25) then val_iqa = coefpm25
else val_iqa = coefpm10
end
val_co2 = tonumber(otherdevices_svalues[co2])
--print(val_co2)
if (val_co2 > 1000) and (val_co2 < 1100) then val_iqa = 3
elseif (val_iqa <= 4) and (val_co2 > 1099) and (val_co2 < 1200) then val_iqa = 4
elseif (val_iqa <= 5) and (val_co2 > 1199) and (val_co2 < 1600) then val_iqa = 5
elseif (val_iqa <= 6) and (val_co2 > 1599) then val_iqa = 6
end
--print(val_iqa)
if val_iqa == 1 and (otherdevices['OnOffLed'] == 'On') then commandArray[3]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,0,255' }
elseif val_iqa == 2 and (otherdevices['OnOffLed'] == 'On') then commandArray[4]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,127,255' }
elseif val_iqa == 3 and (otherdevices['OnOffLed'] == 'On') then commandArray[5]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,125,0' }
elseif val_iqa == 4 and (otherdevices['OnOffLed'] == 'On') then commandArray[6]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,255,255,0' }
elseif val_iqa == 5 and (otherdevices['OnOffLed'] == 'On') then commandArray[7]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,231,62,1' }
elseif val_iqa == 6 and (otherdevices['OnOffLed'] == 'On') then commandArray[8]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,175,0,0' }
elseif (otherdevices['OnOffLed'] == 'Off') then commandArray[9]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,0,0' }
end
if val_iqa == 1 then texte = 'TRES BON'
elseif val_iqa == 2 then texte = 'BON'
elseif val_iqa == 3 then texte = 'MOYEN'
elseif val_iqa == 4 then texte = 'MEDIOCRE'
elseif val_iqa == 5 then texte = 'MAUVAIS'
elseif val_iqa == 6 then texte = 'TRES MAUVAIS'
end
--print(texte)
commandArray['UpdateDevice'] = qualite..'|0|'..texte
end
return commandArray
Modifié en dernier par rominic le 04 févr. 2019, 18:30, modifié 1 fois.
Re: [TUTO] AirCan - Mesure qualité de l'air - MISE A JOUR
Après pas mal de temps à chercher une solution, je vous copie le script qui refonctionne correctement avec la dernière version de Domoticz au 02/2019.
Bonne continuation à tous
Bonne continuation à tous

Code : Tout sélectionner
--[[
name : script_time_qualite_air_maison.lua
auteur : Stef D.
Mise à jour : Rominic
Version : 4.0
date de création : 21/12/2017
Date de mise à jour : 04/02/2019
Principe : Ce script récupère les infos de poussières du capteur SDS011 et les envoie dans les bon customs sensor.
Déduit l'indice de qualité de l'air en fonction des poussières et du CO2 en prenant en compte prioritairement le CO2.
Pilote également les LED intégrées au Air Can avec un interupteur virtuel pour les couper la nuit.
URL du projet : https://easydomoticz.com/forum/viewtopic.php?f=24&t=5520
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local pm = 'test AirCan' -- renseigner le nom du device température + humidité utilisé pour l'envoie des infos poussière
local pm10 = 1600 -- renseigner l'idx du device taux de particules
local pm25 = 1601 -- renseigner l'idx du device taux de particules
local qualite = 1602 -- renseigner l'idx du device texte
local ip_sens = '192.168.1.21' -- renseigner l'adresse IP de la AirCan
local co2 = otherdevices_svalues['CO2 AirCan']:match("([^;]+)") -- renseigner le nom de votre dummy sensor utilisé pour la valeur CO2
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
commandArray = {}
now = os.date("*t")
if now.min%3 == 0 then -- Toutes les 3 minutes
val_PM25, val_PM10, etat1= otherdevices_svalues[pm]:match("([^;]+);([^;]+)")
--print("PM10 : "..val_PM10);
--print("PM2.5: "..val_PM25);
if pm10 ~= nil then
commandArray[1]={['UpdateDevice']= pm10 .. "|0|" .. val_PM10}
end
if pm25 ~= nil then
commandArray[2]={['UpdateDevice']= pm25 .. "|0|" .. val_PM25}
end
val_10 = tonumber(val_PM10)
if (val_10 < 13) then coefpm10 = 1
elseif ( 12 < val_10) and (val_10 < 27) then coefpm10 = 2
elseif ( 26 < val_10) and (val_10 < 34) then coefpm10 = 3
elseif ( 33 < val_10) and (val_10 < 49) then coefpm10 = 4
elseif ( 48 < val_10) and (val_10 < 79) then coefpm10 = 5
elseif ( val_10 > 78) then coefpm10 = 6
end
val_25 = tonumber(val_PM25)
if (val_25 < 23) then coefpm25 = 1
elseif ( 22 < val_25) and (val_25 < 41) then coefpm25 = 2
elseif ( 40 < val_25) and (val_25 < 47) then coefpm25 = 3
elseif ( 46 < val_25) and (val_25 < 58) then coefpm25 = 4
elseif ( 57 < val_25) and (val_25 < 69) then coefpm25 = 5
elseif ( val_10 > 68) then coefpm25 = 6
end
--print("*********************coef PM10 : "..coefpm10)
--print("*********************coef PM2.5 : "..coefpm25)
if (coefpm10 > coefpm25) then val_iqa = coefpm10
elseif (coefpm10 < coefpm25) then val_iqa = coefpm25
else val_iqa = coefpm10
end
val_co2 = tonumber(co2)
--print(val_co2)
if (val_co2 > 1000 and val_co2 < 1100) then val_iqa = 3
elseif (val_iqa <= 4) and (val_co2 > 1099) and (val_co2 < 1200) then val_iqa = 4
elseif (val_iqa <= 5) and (val_co2 > 1199) and (val_co2 < 1600) then val_iqa = 5
elseif (val_iqa <= 6) and (val_co2 > 1599) then val_iqa = 6
end
--print(val_iqa)
if val_iqa == 1 and (otherdevices['OnOffLed'] == 'On') then commandArray[3]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,0,255' }
elseif val_iqa == 2 and (otherdevices['OnOffLed'] == 'On') then commandArray[4]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,127,255' }
elseif val_iqa == 3 and (otherdevices['OnOffLed'] == 'On') then commandArray[5]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,125,0' }
elseif val_iqa == 4 and (otherdevices['OnOffLed'] == 'On') then commandArray[6]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,255,255,0' }
elseif val_iqa == 5 and (otherdevices['OnOffLed'] == 'On') then commandArray[7]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,231,62,1' }
elseif val_iqa == 6 and (otherdevices['OnOffLed'] == 'On') then commandArray[8]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,175,0,0' }
elseif (otherdevices['OnOffLed'] == 'Off') then commandArray[9]={['OpenURL'] = ip_sens..'/control?cmd=NeoPixelAll,0,0,0' }
end
if val_iqa == 1 then texte = 'TRES BON'
elseif val_iqa == 2 then texte = 'BON'
elseif val_iqa == 3 then texte = 'MOYEN'
elseif val_iqa == 4 then texte = 'MEDIOCRE'
elseif val_iqa == 5 then texte = 'MAUVAIS'
elseif val_iqa == 6 then texte = 'TRES MAUVAIS'
end
--print(texte)
commandArray['UpdateDevice'] = qualite..'|0|'..texte
end
return commandArray
Re: [TUTO] AirCan - Mesure qualité de l'air - MISE A JOUR
Bonjour, bravo pour le tuto, est il possible d acheter l ensemble finalisé ?
-
- Messages : 8
- Enregistré le : 08 déc. 2018, 11:41
Re: [TUTO] AirCan - Mesure qualité de l'air - MISE A JOUR
Bonjour à tous,
Merci à l'auteur de ce tuto, très bien réalisé, pour son partage.
J'ai donc réalisé ce projet avec succès.
Au niveau Wemos, j'ai choisi une carte de prototypage :
http://www.amazon.fr/gp/product/B07F6DM ... UTF8&psc=1

J'ai collé avec du pistolet à colle les fiches pour éviter les déconnexions accidentels (pas encore fait sur la photo).
Pour l'écran, j'ai pris celui-ci, livré dans une petite boite plastique pour éviter la casse :
http://www.amazon.fr/gp/product/B0768CB ... UTF8&psc=1
Pour la partie 3D, je me suis inscrit sur Freelabster car je n'ai pas d'imprimante 3D. J'ai fais réalisé par Nicolas de Abeille3D les pièces en PLA avec résine+peinture. Pour les couleurs, j'ai choisi marron foncé pour la base, marron moyen pour le milieu et vert feuille d'arbre pour le haut. La densité est de 100%.

Pour Domoticz, j'ai utilisé un dummy Alert au lieu de Texte.

http://www.gaeldelsart.com/easydomoticz ... n-domo.png
Pour le script, je l'ai modifié :
J'ai modifié l'allumage des leds pour les éteindre la nuit, et utilisé curl pour éviter les erreurs dans les logs. Le CO2 a été modifié aussi car il ne marchait pas chez moi. Et je mets à jour le dummy Alert uniquement s'il y a un changement pour éviter de remplir les logs inutilement.
Pour les icones Domoticz, j'ai trouvé des images sur internet en libre accès et modifié le texte au centre avec Photofiltre 7 (texte Candara gras taille 65) :

http://www.gaeldelsart.com/easydomoticzforum/co2.zip

http://www.gaeldelsart.com/easydomoticzforum/pm25.zip

http://www.gaeldelsart.com/easydomoticzforum/pm10.zip
Pour l'affichage sur l'écran, j'ai remplacé poussièr par Part. fine pour particule fine.
Encore merci à l'auteur de ce tuto.
Merci à l'auteur de ce tuto, très bien réalisé, pour son partage.
J'ai donc réalisé ce projet avec succès.
Au niveau Wemos, j'ai choisi une carte de prototypage :
http://www.amazon.fr/gp/product/B07F6DM ... UTF8&psc=1

J'ai collé avec du pistolet à colle les fiches pour éviter les déconnexions accidentels (pas encore fait sur la photo).
Pour l'écran, j'ai pris celui-ci, livré dans une petite boite plastique pour éviter la casse :
http://www.amazon.fr/gp/product/B0768CB ... UTF8&psc=1
Pour la partie 3D, je me suis inscrit sur Freelabster car je n'ai pas d'imprimante 3D. J'ai fais réalisé par Nicolas de Abeille3D les pièces en PLA avec résine+peinture. Pour les couleurs, j'ai choisi marron foncé pour la base, marron moyen pour le milieu et vert feuille d'arbre pour le haut. La densité est de 100%.

Pour Domoticz, j'ai utilisé un dummy Alert au lieu de Texte.

http://www.gaeldelsart.com/easydomoticz ... n-domo.png
Pour le script, je l'ai modifié :
Code : Tout sélectionner
--[[
name : script_time_qualite_air_maison.lua
auteur : Stef D.
Version : 3.1
date de création : 21/12/2017
Date de mise à jour : 21/12/2017
Principe : Ce script récupère les infos de poussières du capteur SDS011 et les envoie dans les bon customs sensor.
Déduit l'indice de qualité de l'air en fonction des poussières et du CO2 en prenant en compte prioritairement le CO2.
Pilote également les LED intégrées au Air Can.
URL du projet : https://easydomoticz.com/forum/viewtopic.php?f=24&t=5520
]]--
--------------------------------------------
------------ Variables à éditer ------------
--------------------------------------------
local pm = 'AirCan - PM' -- renseigner le nom du device température + humidité utilisé pour l'envoie des infos poussière
local pm10 = 225 -- renseigner l'idx du device taux de particules
local pm25 = 224 -- renseigner l'idx du device taux de particules
local qualite = 235 -- renseigner l'idx du device texte
local ip_sens = '192.168.1.28' -- renseigner l'adresse IP de la AirCan
local co2 = 'AirCan - CO2' -- renseigner le nom de votre dummy sensor utilisé pour la valeur CO2
--------------------------------------------
----------- Fin variables à éditer ---------
--------------------------------------------
commandArray = {}
now = os.date("*t")
if now.min%3 == 0 then -- Toutes les 3 minutes
val_PM25, val_PM10, etat1= otherdevices_svalues[pm]:match("([^;]+);([^;]+)")
print("AirCan : PM10 = "..val_PM10);
print("AirCan : PM2.5 = "..val_PM25);
if pm10 ~= nil then
commandArray[1]={['UpdateDevice']= pm10 .. "|0|" .. val_PM10}
end
if pm25 ~= nil then
commandArray[2]={['UpdateDevice']= pm25 .. "|0|" .. val_PM25}
end
val_10 = tonumber(val_PM10)
if (val_10 < 13) then coefpm10 = 1
elseif ( 12 < val_10) and (val_10 < 27) then coefpm10 = 2
elseif ( 26 < val_10) and (val_10 < 34) then coefpm10 = 3
elseif ( 33 < val_10) and (val_10 < 49) then coefpm10 = 4
elseif ( 48 < val_10) and (val_10 < 79) then coefpm10 = 5
elseif ( val_10 > 78) then coefpm10 = 6
end
val_25 = tonumber(val_PM25)
if (val_25 < 23) then coefpm25 = 1
elseif ( 22 < val_25) and (val_25 < 41) then coefpm25 = 2
elseif ( 40 < val_25) and (val_25 < 47) then coefpm25 = 3
elseif ( 46 < val_25) and (val_25 < 58) then coefpm25 = 4
elseif ( 57 < val_25) and (val_25 < 69) then coefpm25 = 5
elseif ( val_25 > 68) then coefpm25 = 6
end
print("AirCan : *********************coef PM10 = "..coefpm10)
print("AirCan : *********************coef PM2.5 = "..coefpm25)
if (coefpm10 > coefpm25) then val_iqa = coefpm10
elseif (coefpm10 < coefpm25) then val_iqa = coefpm25
else val_iqa = coefpm10
end
--val_co2 = tonumber(otherdevices_svalues[co2])
val_co2_1 = otherdevices_svalues[co2]:match("([^;]+);([^;]+)")
val_co2 = tonumber(val_co2_1)
print("AirCan : CO2 = "..val_co2)
if (val_co2 > 900) and (val_co2 < 1000) then val_iqa = 3
elseif (val_iqa <= 4) and (val_co2 > 999) and (val_co2 < 1100) then val_iqa = 4
elseif (val_iqa <= 5) and (val_co2 > 1099) and (val_co2 < 1500) then val_iqa = 5
elseif (val_iqa <= 6) and (val_co2 > 1499) then val_iqa = 6
end
print("AirCan : IQA = "..val_iqa)
if (otherdevices['Crépusculaire'] == 'On') then
if val_iqa == 1 then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,0,0,255"')
elseif val_iqa == 2 then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,0,127,255"')
elseif val_iqa == 3 then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,0,125,0"')
elseif val_iqa == 4 then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,180,120,0"')
elseif val_iqa == 5 then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,231,62,1"')
elseif val_iqa == 6 then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,255,0,0"')
end
elseif (otherdevices['Crépusculaire'] == 'Off') then os.execute('curl "'..ip_sens..'/control?cmd=NeoPixelAll,0,0,0"')
end
if val_iqa == 1 then texte = 'TRES BON'
elseif val_iqa == 2 then texte = 'BON'
elseif val_iqa == 3 then texte = 'MOYEN'
elseif val_iqa == 4 then texte = 'MEDIOCRE'
elseif val_iqa == 5 then texte = 'MAUVAIS'
elseif val_iqa == 6 then texte = 'TRES MAUVAIS'
end
if val_iqa == 1 then alert = '1'
elseif val_iqa == 2 then alert = '1'
elseif val_iqa == 3 then alert = '2'
elseif val_iqa == 4 then alert = '3'
elseif val_iqa == 5 then alert = '4'
elseif val_iqa == 6 then alert = '4'
end
-- récupération du texte qualité
recup_texte = otherdevices_svalues['AirCan - Qualité']
print("AirCan : Qualité = "..texte)
if texte ~= recup_texte then
commandArray['UpdateDevice'] = qualite..'|'..alert..'|'..texte
end
end
return commandArray
Pour les icones Domoticz, j'ai trouvé des images sur internet en libre accès et modifié le texte au centre avec Photofiltre 7 (texte Candara gras taille 65) :

http://www.gaeldelsart.com/easydomoticzforum/co2.zip

http://www.gaeldelsart.com/easydomoticzforum/pm25.zip

http://www.gaeldelsart.com/easydomoticzforum/pm10.zip
Pour l'affichage sur l'écran, j'ai remplacé poussièr par Part. fine pour particule fine.
Encore merci à l'auteur de ce tuto.