Unable to see optional characteristic PM2_5Density
Opened this issue · 2 comments
I setup my sensor as follows.
{
"accessory": "HttpAdvancedAccessory",
"service": "AirQualitySensor",
"name": "Air Quality",
"debug": true,
"forceRefreshDelay": 1800,
"optionCharacteristic": [
"NitrogenDioxideDensity",
"OzoneDensity",
"PM10Density",
"PM2_5Density",
"SulphurDioxideDensity"
],
"urls": {
"getAirQuality": {...
All the optional characteristics are being used, but PM2_5Density is never mentioned in the logs and it is not generating any errors. I am assuming it has something to do with the underscore. I have the proper getPM2_5Density parameter, but it is never called.
The log looks like this on startup
[9/7/2021, 6:36:05 PM] [Air Quality] creating new emitter for getAirQuality
[9/7/2021, 6:36:05 PM] [Air Quality] creating new emitter for getNitrogenDioxideDensity
[9/7/2021, 6:36:05 PM] [Air Quality] creating new emitter for getOzoneDensity
[9/7/2021, 6:36:05 PM] [Air Quality] creating new emitter for getPM10Density
[9/7/2021, 6:36:05 PM] [Air Quality] creating new emitter for getSulphurDioxideDensity
[9/7/2021, 6:36:05 PM] [Air Quality] requested update for action getAirQuality
I'm a bit late to the party but, I had the same issue. After looking at the code, i tried "PM2.5Density" / "getPM2.5Density" and it worked for me
Here an example of my config:
{
"accessory": "HttpAdvancedAccessory",
"service": "AirQualitySensor",
"name": "31 - St-Dominique",
"forceRefreshDelay": 1800,
"debug": true,
"optionCharacteristic": [
"PM2.5Density",
"OzoneDensity",
"NitrogenDioxideDensity",
"SulphurDioxideDensity"
],
"urls": {
"getAirQuality": {
"url": "http://ville.montreal.qc.ca/rsqa/servlet/makeXmlActuel",
"mappers": [
{
"type": "xpath",
"parameters": {
"xpath": "string(/iqa/journee/station[@id='31']/echantillon[last()]/qualite/@value)"
}
},
{
"type": "eval",
"parameters": {
"expression": "value = parseInt(value); if(value >= 1 && value <= 15){value = 1} else if (value > 15 && value <= 25) {value = 2} else if (value > 25 && value <= 35) {value = 3} else if (value > 35 && value <= 50) {value = 4} else if (value > 50 ) {value = 5} else {value = 0}"
}
}
]
},
"getPM2.5Density": {
"url": "http://ville.montreal.qc.ca/rsqa/servlet/makeXmlActuel",
"mappers": [
{
"type": "xpath",
"parameters": {
"xpath": "string(/iqa/journee/station[@id='31']/echantillon[last()]/polluant[@nom="PM"]/@value)"
}
}
]
},
"getOzoneDensity": {
"url": "http://ville.montreal.qc.ca/rsqa/servlet/makeXmlActuel",
"mappers": [
{
"type": "xpath",
"parameters": {
"xpath": "string(/iqa/journee/station[@id='31']/echantillon[last()]/polluant[@nom="O3"]/@value)"
}
}
]
},
"getNitrogenDioxideDensity": {
"url": "http://ville.montreal.qc.ca/rsqa/servlet/makeXmlActuel",
"mappers": [
{
"type": "xpath",
"parameters": {
"xpath": "string(/iqa/journee/station[@id='31']/echantillon[last()]/polluant[@nom="NO2"]/@value)"
}
}
]
},
"getSulphurDioxideDensity": {
"url": "http://ville.montreal.qc.ca/rsqa/servlet/makeXmlActuel",
"mappers": [
{
"type": "xpath",
"parameters": {
"xpath": "string(/iqa/journee/station[@id='31']/echantillon[last()]/polluant[@nom="SO2"]/@value)"
}
}
]
}
}
},
Thank you! I will try that out!