<?xml version="1.0"?>
<rss version="2.0"><channel><title>Airthings-C Latest Topics</title><link>https://forum.universal-devices.com/forum/385-airthings-c/</link><description>Airthings-C Latest Topics</description><language>en</language><item><title>PG3 Airthings Consumer Plugin Production Release</title><link>https://forum.universal-devices.com/topic/39323-pg3-airthings-consumer-plugin-production-release/</link><description><![CDATA[<p>PG3 Airthings Consumer Plugin</p><p>See the <a rel="external nofollow" href="https://github.com/UniversalDevicesInc-PG3/udi-poly-Airthings-Consumer/blob/main/README.md">README</a> and <a rel="external nofollow" href="https://github.com/UniversalDevicesInc-PG3/udi-poly-Airthings-Consumer/blob/main/README.md#release-notes">Release Notes</a></p><p>I've resolved all current <a rel="external nofollow" href="https://github.com/UniversalDevicesInc-PG3/udi-poly-Airthings-Consumer/issues">issues</a> that I plan to work on, or can fix are done.  if you have an issue that is not listed please add it, or let me know.</p><p> </p>]]></description><guid isPermaLink="false">39323</guid><pubDate>Mon, 12 Dec 2022 00:42:05 +0000</pubDate></item><item><title>Restart IoX restarts Airthings plug-in</title><link>https://forum.universal-devices.com/topic/45394-restart-iox-restarts-airthings-plug-in/</link><description><![CDATA[<p>
	Hi <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.universal-devices.com/profile/3609-jimboautomates/?do=hovercard" data-mentionid="3609" href="https://forum.universal-devices.com/profile/3609-jimboautomates/" rel="">@Jimbo.Automates</a>,
</p>

<p>
	Whenever I restart IoX both my active Airthings-C plug-ins restart. For one of them it causes the plug-in to exceed the API limit for multiple update cycles that can last up to 45 mins when I look back to previous restarts.
</p>

<p>
	The plug-in that violates the API contract supports 9 devices with short poll of 330 (5 1/2 mins), which is sufficient in terms of not exceeding API limit (anything over 270 is enough) unless a plug-in restart occurs. The other active plug-in doesn't hit the API limit but it only has 4 devices and a 200 sec short poll.
</p>

<p>
	Unfortunately, for several reasons I need to restart IoX with some regularity, meaning a regular violation of the API contract with Airthings. Ideally could you put in a delay of short poll duration at plug-in restart to ensure there is no API limit violation? Desirable would also be no automatic restart when one is just calling for an IoX restart. That seems like a bug to me but I see other plug-ins restart too so maybe there's a reason for it that I'm not seeing? I guess it's not a big deal if one doesn't have an API call limitation but is more problematic when there is one.
</p>

<p>
	I will PM you my log (set to Info) for today. There was an automated restart just before 2AM and a manual one around 8:12 AM. Let me know if you need a lower level of debug logs. It's easy to change and replicate the issue.
</p>

<p>
	Here's a screenshot showing how PG3 has been running for a couple of weeks now while the plug-in has only been running for less than an hour (when I took the screenshot).
</p>

<p>
	Note that this has been happening for a while. i just haven't taken the time to report it until now. 
</p>

<p>
	Thanks
</p>

<p>
	 
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="31215" data-ratio="100.66" width="607" alt="Screenshot2025-07-25090103.png.46ded0d7009bec980a18d15aaa090a34.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2025_07/Screenshot2025-07-25090103.png.46ded0d7009bec980a18d15aaa090a34.png" />
</p>
]]></description><guid isPermaLink="false">45394</guid><pubDate>Fri, 25 Jul 2025 15:48:11 +0000</pubDate></item><item><title><![CDATA[PM 1.0 & 2.5]]></title><link>https://forum.universal-devices.com/topic/44820-pm-10-25/</link><description><![CDATA[<p>
	<a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.universal-devices.com/profile/3609-jimboautomates/?do=hovercard" data-mentionid="3609" href="https://forum.universal-devices.com/profile/3609-jimboautomates/" rel="">@Jimbo.Automates</a>
</p>

<p>
	Would it be possible to add the PM 1.0 and 2.5 measurements to the nodeserver? 
</p>

<pre style="background-color:#272b30;color:#aaaaaa;font-size:13.125px;text-align:left;">
 </pre>

<div>
	2025-02-14 12:25:25.689 Thread-32 (handler_poll) udi_interface WARNING Sensor:query: Unknown param pm1=2.0
</div>

<div>
	2025-02-14 12:25:25.689 Thread-32 (handler_poll) udi_interface WARNING Sensor:query: Unknown param pm1=2.0
</div>

<div>
	2025-02-14 12:25:25.689 Thread-32 (handler_poll) udi_interface WARNING Sensor:query: Unknown param pm25=2.0
</div>

<div>
	2025-02-14 12:25:25.689 Thread-32 (handler_poll) udi_interface WARNING Sensor:query: Unknown param pm25=2.0
</div>

<div>
	 
</div>

<div>
	<a class="ipsAttachLink ipsAttachLink_image" href="//d2z8ydsemzif1x.cloudfront.net/monthly_2025_02/image.png.20cf0db72e48c69481b291f3f0ac5ff2.png" data-fileid="30240" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="30240" data-ratio="34.00" width="1000" alt="image.thumb.png.6b1e293e0f56e7ac1c5de3710970caf4.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2025_02/image.thumb.png.6b1e293e0f56e7ac1c5de3710970caf4.png" /></a>
</div>
]]></description><guid isPermaLink="false">44820</guid><pubDate>Fri, 14 Feb 2025 20:28:32 +0000</pubDate></item><item><title>Is there a way to only select one sensor</title><link>https://forum.universal-devices.com/topic/44759-is-there-a-way-to-only-select-one-sensor/</link><description><![CDATA[<p>
	Is there a way to only select one of multiple devices registered on the account.   I have devices in different houses and only need data from one of the locations
</p>

<p>
	Are there hidden parameters to hide some of the devices
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">44759</guid><pubDate>Mon, 03 Feb 2025 06:19:24 +0000</pubDate></item><item><title>Cannot set Poll rate - missing PM1 /PM2.5</title><link>https://forum.universal-devices.com/topic/44686-cannot-set-poll-rate-missing-pm1-pm25/</link><description><![CDATA[<p>
	Hi
</p>

<p>
	Just installed - I have 2 sensors (in different locations) 
</p>

<p>
	I try to set the short Poll to more than 60 (say 120) - but when I restart the node it resets to 60 and stops
</p>

<p>
	Also - note there is a warning that PM1 ad PM2.5 is missing
</p>

<pre style="background-color:#272b30;color:#aaaaaa;font-size:13.125px;text-align:left;">
 </pre>

<div>
	2025-01-18 17:33:58.869 Thread-26 (handler_start) udi_interface WARNING Sensor:query: Unknown param pm1=1.0
</div>

<div>
	2025-01-18 17:33:58.869 Thread-26 (handler_start) udi_interface WARNING Sensor:query: Unknown param pm25=1.0
</div>
]]></description><guid isPermaLink="false">44686</guid><pubDate>Sun, 19 Jan 2025 01:37:43 +0000</pubDate></item><item><title>Cannot set poll rate to more than 60</title><link>https://forum.universal-devices.com/topic/44757-cannot-set-poll-rate-to-more-than-60/</link><description><![CDATA[<p>
	Hi
</p>

<p>
	Installed the trial version - I have 2 AirThings sensors so I am supposed to set the poll rate to more than 60 sec - however when I do so after restart it reverts to 60 sec and complains - is this a bug
</p>

<p>
	Also, I noticed the particle count is not reported 
</p>

<pre style="background-color:#272b30;color:#aaaaaa;font-size:13.125px;text-align:left;">
 </pre>

<div>
	2025-02-02 18:21:09.641 Thread-2173 (handler_poll) udi_interface WARNING Sensor:query: Unknown param pm1=0.0
</div>

<div>
	2025-02-02 18:21:09.641 Thread-2173 (handler_poll) udi_interface WARNING Sensor:query: Unknown param pm25=0.0
</div>
]]></description><guid isPermaLink="false">44757</guid><pubDate>Mon, 03 Feb 2025 02:23:14 +0000</pubDate></item><item><title>error after deleting node</title><link>https://forum.universal-devices.com/topic/44143-error-after-deleting-node/</link><description><![CDATA[<p>
	I removed an airthings device by deleting it using the plug-in config page and after that the following error kept happening every short poll:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">2024-09-22 13:24:04.648 Thread-107 (handler_poll) udi_interface      ERROR    pgSession:response: Not Found: https://ext-api.airthings.com/v1//devices/3220001054/latest-samples: text: {"error":"NOT_FOUND","error_description":"segment for user </span><span class="tag">&lt;myapikey&gt;</span><span class="pln"> does not exist"}
2024-09-22 13:24:04.648 Thread-107 (handler_poll) udi_interface      ERROR    Controller:api_get: failed to parse res={'code': 404, 'data': {'error': 'NOT_FOUND', 'error_description': 'segment for user </span><span class="tag">&lt;myapikey&gt;</span><span class="pln"> does not exist'}}
Traceback (most recent call last):
  File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;myeisy&gt;</span><span class="pln">_8/nodes/Controller.py", line 251, in api_get
    LOGGER.warning(f"Service returned code {code} {res['data']['message']}")
                                                   ~~~~~~~~~~~^^^^^^^^^^^</span></pre>

<p>
	<br />
	 
</p>

<p>
	This caused the "server status" in IoX to become false and it triggered a program to notify me of that every short poll. I didn't notice until I checked my email later to see an inbox full of notifications. It's like the polling temporarily changes the status to something other than false but then back to false, causing the program to trigger each time. IMO, I should have only received one notification when it went false the first time.
</p>

<p>
	The problem stopped after I restarted the plug-in but I'd suggest that, if possible, some cleaning up could be done within the plug-in when one deletes a node so one does not have to restart to avoid this error. Alternatively the plug-in could restart itself (if that's possible) or a message to restart the plug-in could be provided, although these are less elegant solutions. The problem with restarts is that they reset the polling timer to zero, which causes the API limit to be reached.
</p>

<p>
	Of course this is not critical. Just something to maybe consider the next time the plug-in is opened up for changes.
</p>

<p>
	Thanks for all the good work you've done on this plug-in to make using these devices in my automation possible.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">44143</guid><pubDate>Mon, 23 Sep 2024 13:41:27 +0000</pubDate></item><item><title>A couple of minor issues with 1.2.3 update today</title><link>https://forum.universal-devices.com/topic/43980-a-couple-of-minor-issues-with-123-update-today/</link><description><![CDATA[<p>
	1. This has been an issue for a while.  After any update my short poll goes back to 60.  Why cant it save the 180 I sent it for due to all my devices?
</p>

<p>
	2.  This one is new.  I can post a video or send you one PM if you cant reproduce but after I update from 1.2.2 to 1.2.3 it shows 1.2.3 for about 5 seconds and then goes back to 1.2.3   The UPDATE button stays there so it thinks it needs an update but no update blue banner.  I can also send a log package if you want
</p>
]]></description><guid isPermaLink="false">43980</guid><pubDate>Tue, 06 Aug 2024 11:52:45 +0000</pubDate></item><item><title>Keeps overwriting my short poll setting</title><link>https://forum.universal-devices.com/topic/43912-keeps-overwriting-my-short-poll-setting/</link><description><![CDATA[<p>
	I upgraded to 1.2.1 and it sets short poll to the minimum for devices, which is good, but it keeps resetting it to that minimum over again after I change it to something longer. I suspect it's during the next polling cycle because It doesn't happen right away. 
</p>

<p>
	Part of my reason for setting it longer is that it helps prevent hitting API rate limit for those times when I have to restart the plug-in or reboot. (I have 8 devices.) While this isn't a daily thing, of course, it often comes in clumps with more than one restart, which ends up blowing the limit. With this in mind, in addition to letting people be able to set their own short poll, could the plug-in save a timestamp of the last time it did a poll such that it lives through restarts?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">43912</guid><pubDate>Tue, 23 Jul 2024 16:44:18 +0000</pubDate></item><item><title>Previous query still running</title><link>https://forum.universal-devices.com/topic/43868-previous-query-still-running/</link><description><![CDATA[<p>
	I noticed that my ISY nodes for Airthings weren't getting updated today so I checked logs and found a boat load of these sequences:
</p>

<p>
	2024-07-16 03:02:30.244 Thread-867 (handler_poll) udi_interface      ERROR    Controller:_query_all: Previous query still running<br />
	2024-07-16 03:02:30.244 Thread-867 (handler_poll) udi_interface      INFO     Controller:shortPoll: exit<br />
	2024-07-16 03:07:00.248 Thread-869 (handler_poll) udi_interface      INFO     Controller:shortPoll: enter<br />
	2024-07-16 03:07:00.248 Thread-869 (handler_poll) udi_interface      INFO     Controller:_query_all: enter<br />
	2024-07-16 03:07:00.248 Thread-869 (handler_poll) udi_interface      ERROR    Controller:_query_all: Previous query still running<br />
	2024-07-16 03:07:00.248 Thread-869 (handler_poll) udi_interface      INFO     Controller:shortPoll: exit<br />
	2024-07-16 03:11:30.249 Thread-870 (handler_poll) udi_interface      INFO     Controller:shortPoll: enter<br />
	2024-07-16 03:11:30.249 Thread-870 (handler_poll) udi_interface      INFO     Controller:_query_all: enter<br />
	2024-07-16 03:11:30.250 Thread-870 (handler_poll) udi_interface      ERROR    Controller:_query_all: Previous query still running<br />
	2024-07-16 03:11:30.250 Thread-870 (handler_poll) udi_interface      INFO     Controller:shortPoll: exit<br />
	2024-07-16 03:16:00.259 Thread-872 (handler_poll) udi_interface      INFO     Controller:shortPoll: enter<br />
	2024-07-16 03:16:00.259 Thread-872 (handler_poll) udi_interface      INFO     Controller:_query_all: enter<br />
	 
</p>

<p>
	While there appears to have been an update made around 2AM early this morning, the log before and after that update is just full of the above messages
</p>

<p>
	I did make some tweaks yesterday that included changing short poll time and doing a restart. This did result in reaching the API limit but only once, which I blamed on the restart causing some short shifting. Maybe, though, reaching the API limit (even only once) caused the problem? I've had API limit messages in the past but things always sorted themselves out assuming short poll is reasonable (I always set it above 30 X number of devices).
</p>

<p>
	A restart of the plug-in did fix the problem - at least for now. 
</p>

<p>
	 
</p>
<p>
<a class="ipsAttachLink" href="https://forum.universal-devices.com/applications/core/interface/file/attachment.php?id=29108&amp;key=c1817859c08aac12eaac97bfac6cfaae" data-fileExt='zip' data-fileid='29108' data-filekey='c1817859c08aac12eaac97bfac6cfaae'>Airthings-C_7-16-2024_113452_AM.zip</a></p>]]></description><guid isPermaLink="false">43868</guid><pubDate>Tue, 16 Jul 2024 17:56:53 +0000</pubDate></item><item><title>Outdoor Air Node</title><link>https://forum.universal-devices.com/topic/41490-outdoor-air-node/</link><description><![CDATA[<p>
	Is it possible to add the 'Outdoor Air' information to the node server? Home in the screenshot below from the dashboard.airthings.com site. <span style="background-color:#f1f1f1;color:#222222;font-size:14px;text-align:left;"><span> </span></span><a href="https://developer.airthings.com/docs/api-getting-started-consumer/" style="background-color:#f1f1f1;border:none;color:#1155cc;font-size:14px;text-align:left;" rel="external nofollow">https://developer.airthings.com/docs/api-getting-started-consumer/</a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_06/image.png.ed05eb7ff94bcb3fb46b08b4fa875e4c.png" data-fileid="25977" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="25977" data-ratio="114.16" width="657" alt="image.thumb.png.ec8242ac30102c5ba530209e799fbc92.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_06/image.thumb.png.ec8242ac30102c5ba530209e799fbc92.png" /></a>
</p>
]]></description><guid isPermaLink="false">41490</guid><pubDate>Fri, 30 Jun 2023 12:19:57 +0000</pubDate></item><item><title>How to get IoX GUI to show new info</title><link>https://forum.universal-devices.com/topic/43621-how-to-get-iox-gui-to-show-new-info/</link><description><![CDATA[<p>
	I have 3 instances of this plug-in running and was able to install new version for all three instances. The new info did not show up so I did the following, in order:
</p>

<p>
	1. wait a bit. didn't do anything
</p>

<p>
	2. restart each plug-in. nothing
</p>

<p>
	3. re-launched IoX GUI - no joy
</p>

<p>
	4. rebooted hardware - 2 of the three plug-ins now show the new data in IoX
</p>

<p>
	What is/are the step(s) needed after a re-install to get new info activated/passed on to IoX?
</p>

<p>
	If that fails, what is the step to force updates to be recognized and passed on to IoX?
</p>

<p>
	Am on PG3x 3.2.22 and IoX 5.8.3.
</p>

<p>
	Thanks
</p>
]]></description><guid isPermaLink="false">43621</guid><pubDate>Mon, 27 May 2024 15:01:12 +0000</pubDate></item><item><title>Not Holding Poll Info</title><link>https://forum.universal-devices.com/topic/43649-not-holding-poll-info/</link><description><![CDATA[<p>
	I checked other NodeServers and its just this one.
</p>

<p>
	After reboot of EISY (twice so far) I get the message after a while that 60 is too low for 5 devices.  So I raise to 120 or more (I put 150)
</p>

<p>
	All is fine until I reboot and then its back to 60.
</p>
]]></description><guid isPermaLink="false">43649</guid><pubDate>Sun, 02 Jun 2024 14:40:20 +0000</pubDate></item><item><title>warnings and errors after upgrade</title><link>https://forum.universal-devices.com/topic/43624-warnings-and-errors-after-upgrade/</link><description><![CDATA[<p>
	at about 5:26 AM and 5:28 AM two of my three instances of the plug-in reported API Limit reached. They worked fine all day so I don't have them configured to poll too often. When I looked at the logs I see there were times that we flooded with warnings (up to 8 or more per second) and other errors.
</p>

<p>
	Things like:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">2024-05-28 05:29:04,383 Thread-700 urllib3.connectionpool WARNING  connectionpool:urlopen: Retrying (Retry(total=18, connect=30, read=28, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='ext-api.airthings.com', port=443): Read timed out. (read timeout=10)")': /v1//devices/2930162741/latest-samples

2024-05-28 05:29:05,365 Thread-697 urllib3.connectionpool WARNING  connectionpool:_put_conn: Connection pool is full, discarding connection: ext-api.airthings.com. Connection pool size: 10

2024-05-28 05:18:40,345 Thread-666 udi_interface      ERROR    pgSession:get: Connection error for https://ext-api.airthings.com/v1//devices/2930162741/latest-samples: HTTPSConnectionPool(host='ext-api.airthings.com', port=443): Max retries exceeded with url: /v1//devices/2930162741/latest-samples (Caused by ResponseError('too many 502 error responses'))

2024-05-28 05:28:04,528 Thread-547 udi_interface      ERROR    pgSession:response: Unauthorized: https://ext-api.airthings.com/v1//devices/2930162814/latest-samples: text:</span></pre>

<p>
	I didn't see anything about API limit reached so it seems to be an erroneous state got reported to IoX (which triggered an email to warn me). Maybe the flood of warnings lead to that? Would it be a good idea to put in a "wait" between retries to avoid possible race conditions, or at least reduce the clutter in the logs? (Unless there's value in having all of those entries.)
</p>

<p>
	Maybe there was a short break in service that affected 2 of the instances but not the third due to polling difference. The 3rd one did have a few warnings but maybe the break in service ended shortly after first few
</p>

<p>
	I've attached my 3 debug logs (one was only set to "Warning" level. I've changed it to "Info" for next time)
</p>

<p>
	 
</p>

<p>
	 
</p>
<p>
<a class="ipsAttachLink" href="https://forum.universal-devices.com/applications/core/interface/file/attachment.php?id=28849&amp;key=8c0e03df6c398f55d0f6b0abf15ada0d" data-fileExt='zip' data-fileid='28849' data-filekey='8c0e03df6c398f55d0f6b0abf15ada0d'>Airthings-C_5-28-2024_62253_AM.zip</a> 
<a class="ipsAttachLink" href="https://forum.universal-devices.com/applications/core/interface/file/attachment.php?id=28850&amp;key=8e747d2777eb6c26badc69aa102f422f" data-fileExt='zip' data-fileid='28850' data-filekey='8e747d2777eb6c26badc69aa102f422f'>Airthings-C_5-28-2024_62237_AM.zip</a> 
<a class="ipsAttachLink" href="https://forum.universal-devices.com/applications/core/interface/file/attachment.php?id=28851&amp;key=53c8d6c167a3e548632149f4130273ff" data-fileExt='zip' data-fileid='28851' data-filekey='53c8d6c167a3e548632149f4130273ff'>Airthings-C_5-28-2024_61905_AM.zip</a></p>]]></description><guid isPermaLink="false">43624</guid><pubDate>Tue, 28 May 2024 12:59:27 +0000</pubDate></item><item><title>My license not recognized for new v1.1.1</title><link>https://forum.universal-devices.com/topic/43617-my-license-not-recognized-for-new-v111/</link><description><![CDATA[<p>
	Hi <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.universal-devices.com/profile/3609-jimboautomates/?do=hovercard" data-mentionid="3609" href="https://forum.universal-devices.com/profile/3609-jimboautomates/" rel="">@Jimbo.Automates</a>,
</p>

<p>
	My perpetual license is not recognized meaning I would have to purchase another one to install v1.1.1. Is that the plan or do I need to talk to UDI support to get the new version to recognize my existing license? I did need to have the license transferred from my Polisy some time ago so maybe that has something to do with it?
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_05/image.png.664de73ca5c939f4db9bf26a6c3a98d1.png" data-fileid="28835" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="28835" data-ratio="14.60" width="1000" alt="image.thumb.png.e3d9984a7824d7179b0b913643c5fad4.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_05/image.thumb.png.e3d9984a7824d7179b0b913643c5fad4.png" /></a>
</p>
]]></description><guid isPermaLink="false">43617</guid><pubDate>Sun, 26 May 2024 16:54:44 +0000</pubDate></item><item><title>How to Permanently Remove Node</title><link>https://forum.universal-devices.com/topic/43580-how-to-permanently-remove-node/</link><description><![CDATA[<p>
	I have deleted a node in pg3x but it keeps getting recreated. Is there a method to keep it from recreating itself?
</p>
]]></description><guid isPermaLink="false">43580</guid><pubDate>Thu, 16 May 2024 20:16:36 +0000</pubDate></item><item><title>unhandled and other errors</title><link>https://forum.universal-devices.com/topic/42813-unhandled-and-other-errors/</link><description><![CDATA[<p>
	I have 3 Airthings hubs so three instances of the NS are active. I regularly though intermittently get messages from UD Mobile that Airthings fails and reconnects. I had some time today so I looked into it and, although there was nothing interesting in the logs when the disconnect/reconnect happened, I found that there were three unhandled errors in the logs I downloaded - two for one of the instances and one for another instance. The log entries are dated Jan 4th and Jan 5th, which seems weird as I thought logs reset at midnight everyday and today is Jan 7th - why would entries from Jan 4/5 show up in today's log download?
</p>

<p>
	The third instance doesn't show any unhandled errors but was full of these:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">2024-01-07 00:05:11,717 Thread-2696 udi_interface      WARNING  Sensor:query: Unknown param virusRisk=7.0</span></pre>

<p>
	It's strange to me that the above would be occurring for one but not the others. All instances are monitoring Wave Plus devices so technically it seems to me if it's reported for one, it should be reported for all. That said, I don't think Wave Plus devices provide a "risk" value. I believe that's a feature of the Wave Mini, not the Wave Plus, so it shouldn't be looking for this parameter at all.
</p>

<p>
	Attached are:
</p>

<ol>
	<li>
		the unhandled errors (downloaded today combined into one file) for NS instances in slot 1 and and slot 9
	</li>
	<li>
		today's log for the instance in slot 8 showing all the instances so far today of the above message
	</li>
	<li>
		a screenshot showing example of the UD notifications I get periodically. It can happen a few days in a row then not at all for several days
	</li>
</ol>

<p>
	The good news is that my ISY nodes are still being updated so the errors appear to be relatively benign and/or self healing.
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink" data-fileext="txt" data-fileid="27808" href="https://forum.universal-devices.com/applications/core/interface/file/attachment.php?id=27808&amp;key=f323b22a4f7c55d63d54714570206a7e" rel="">AT-unhandled errors.txt</a> <a class="ipsAttachLink" data-fileext="txt" data-fileid="27809" href="https://forum.universal-devices.com/applications/core/interface/file/attachment.php?id=27809&amp;key=375cb58b13eec148ce3a729a41920f4d" rel="">AT-unknown param.txt</a>
</p>

<p><a href="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_01/IMG_6036-2.PNG.245a6a2baa9d73d2d5ea2d070d464ec8.PNG" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="27825" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_01/IMG_6036-2.thumb.PNG.99b3ef8a43ec6add40836681adbed5be.PNG" data-ratio="177.73" width="422" class="ipsImage ipsImage_thumbnailed" alt="IMG_6036-2.PNG"></a></p>]]></description><guid isPermaLink="false">42813</guid><pubDate>Sun, 07 Jan 2024 16:42:01 +0000</pubDate></item><item><title>Extra Fields in Airthings View</title><link>https://forum.universal-devices.com/topic/43485-extra-fields-in-airthings-view/</link><description><![CDATA[<p>
	Hi Jimbo,
</p>

<p>
	Was wondering if you could add missing fields to the plugin.  Looking specifically for VOC values, the VOCLVL just indicates whether it is Clean not the actual value.  I have attached screenshots to show what IOX provides vs the Node listings.
</p>

<p>
	 
</p>

<p><a href="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_04/Screenshot2024-04-26160110.png.7b543b3fa62caa2857919360d6e5d35a.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="28619" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_04/Screenshot2024-04-26160110.thumb.png.8bf8426d92decab1127ec21da5ad4f70.png" data-ratio="23.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2024-04-26 160110.png"></a></p>
<p><a href="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_04/Screenshot2024-04-26160006.png.fdd1acedb6bfdde1e6f5841e752bcd88.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="28620" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2024_04/Screenshot2024-04-26160006.thumb.png.8bde65c6e4f3f413e0eeaf0e24f01e0f.png" data-ratio="39.2" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2024-04-26 160006.png"></a></p>]]></description><guid isPermaLink="false">43485</guid><pubDate>Fri, 26 Apr 2024 20:08:54 +0000</pubDate></item><item><title>Make device serial number available to programs</title><link>https://forum.universal-devices.com/topic/42151-make-device-serial-number-available-to-programs/</link><description><![CDATA[<p>
	Next time you have this plugin "up on the hoist", would you be able to add the device serial as a value one could use in a program?
</p>

<p>
	I record my readings in an ISY web file (e.g. @webpage:@append:mydir/VOCdata.htm) and use excel to analyze my data, and I'm considering something more sophisticated using PowerBI or InfluxDB. The only thing that remains unique over time for some of my devices is the device serial number because I move them around and rename them to something representing the location they are in at that time. I need both a consistant unique identifier and a meaningful short name as separate data fields.
</p>

<p>
	Thanks for considering it.
</p>

<p>
	 
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="26898" data-ratio="50.64" width="942" alt="image.png.b892d2ee5754fb2396f143ab5ef85c79.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_10/image.png.b892d2ee5754fb2396f143ab5ef85c79.png" />
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">42151</guid><pubDate>Thu, 12 Oct 2023 20:41:51 +0000</pubDate></item><item><title>when is next update?</title><link>https://forum.universal-devices.com/topic/42814-when-is-next-update/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	I'm wondering if there's any plans for an update to this NS. I think it's been over a year since the last major update <a href="https://forum.universal-devices.com/topic/39323-pg3-airthings-consumer-node-server-101/" rel="">https://forum.universal-devices.com/topic/39323-pg3-airthings-consumer-node-server-101/</a>
</p>

<p>
	Also, I see there are 6 official "open" issues going back to July 2022 <a href="https://github.com/UniversalDevicesInc-PG3/udi-poly-Airthings-Consumer/issues" rel="external nofollow">https://github.com/UniversalDevicesInc-PG3/udi-poly-Airthings-Consumer/issues</a>
</p>

<p>
	plus there a couple of recent feature requests:
</p>
<iframe allowfullscreen="" data-controller="core.front.core.autosizeiframe" data-embedauthorid="3609" data-embedcontent="" data-embedid="embed7421659101" src="https://forum.universal-devices.com/topic/42102-converting-unix-epoch-timestamp/?do=embed&amp;comment=373040&amp;embedComment=373040&amp;embedDo=findComment" style="height:334px;max-width:502px;"></iframe><iframe allowfullscreen="" data-controller="core.front.core.autosizeiframe" data-embedauthorid="1785" data-embedcontent="" data-embedid="embed3871409782" src="https://forum.universal-devices.com/topic/42151-make-device-serial-number-available-to-programs/?do=embed" style="height:393px;max-width:502px;"></iframe>

<p>
	And possibly some bugs (TBD as of this posting)
</p>
<iframe allowfullscreen="" data-controller="core.front.core.autosizeiframe" data-embedauthorid="1785" data-embedcontent="" data-embedid="embed6520298234" src="https://forum.universal-devices.com/topic/42813-unhandled-and-other-errors/?do=embed" style="height:393px;max-width:502px;"></iframe>

<p>
	Thanks for considering it.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">42814</guid><pubDate>Sun, 07 Jan 2024 17:18:46 +0000</pubDate></item><item><title>Converting unix epoch timestamp</title><link>https://forum.universal-devices.com/topic/42102-converting-unix-epoch-timestamp/</link><description><![CDATA[<p>
	Hi <a contenteditable="false" data-ipshover="" data-ipshover-target="https://forum.universal-devices.com/profile/3609-jimboautomates/?do=hovercard" data-mentionid="3609" href="https://forum.universal-devices.com/profile/3609-jimboautomates/" rel="">@Jimbo.Automates</a>, As you know the Unix epoch timestamp is one of the fields available for each Airthings device (at least the Wave Plus devices anyway). I'd like to be able to use it to know how long it's been since a device was last updated in seconds or minutes and trigger an event/notification if it's been too long. I feel like I would need to either convert it to YYYYMMDDDHHMMSS or be able to get/calculate the current epoch time 'now' so I can do the math using ISY programs.
</p>

<p>
	About 99% of my google search results for the formula or algorithm to convert current time to unix epoch time were either online calculators for human consumption, how to do it in Excel, or talked about using built in linux or windows commands, e.g. date +%s  in linux. (I tested the latter and it does work on the<span> Polisy.) When I did find formula or algorithm info it was shell code or python, etc., which didn't translate well to ISY programming and made me think it was silly to try to do it using ISY programming. </span>
</p>

<p>
	<span>Instead I wondered if you could make the NS do the simple calculation of subtracting 'date +%s' from epoch time that the API provides (both have same 10 digit resolution) and display a "time since last updated" in minutes or seconds. As far as I'm concerned it could replace the current time field in NS/ISY because I can't see what other use the unix epoch time would have but if you wanted to have both, it's fine with me.</span>
</p>

<p>
	Thanks for considering it.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">42102</guid><pubDate>Sat, 07 Oct 2023 19:28:15 +0000</pubDate></item><item><title>SSL: BAD_LENGTH error message</title><link>https://forum.universal-devices.com/topic/41745-ssl-bad_length-error-message/</link><description><![CDATA[<p>
	I have 3 Airthings NS instances running (using different hubs/API tokens). At 19:28:59 Eastern time, one of the three reported this error:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">2023-08-17 19:28:59,098 Thread-1076 udi_interface.interface ERROR    interface:send: MQTT Publish Error: [SSL: BAD_LENGTH] bad length (_ssl.c:2488)
Traceback (most recent call last):
  File "/var/polyglot/.local/lib/python3.9/site-packages/udi_interface/interface.py", line 632, in send
    self._mqttc.publish(topic, json.dumps(message), retain=False)
  File "/var/polyglot/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1257, in publish
    rc = self._send_publish(
  File "/var/polyglot/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 2693, in _send_publish
    return self._packet_queue(PUBLISH, packet, mid, qos, info)
  File "/var/polyglot/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 3016, in _packet_queue
    return self.loop_write()
  File "/var/polyglot/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1577, in loop_write
    rc = self._packet_write()
  File "/var/polyglot/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 2464, in _packet_write
    write_length = self._sock_send(
  File "/var/polyglot/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 649, in _sock_send
    return self._sock.send(buf)
  File "/usr/local/lib/python3.9/ssl.py", line 1174, in send
    return self._sslobj.write(data)
ssl.SSLError: [SSL: BAD_LENGTH] bad length (_ssl.c:2488)
2023-08-17 19:28:59,099 MQTT       udi_interface.interface INFO     interface:_disconnect: MQTT Unexpected disconnection. Trying to reconnect in 10 seconds. rc: 7</span></pre>

<p>
	The two other instances did not report this or any other any issues around that time.
</p>

<p>
	Am on PG3 3.1.21 and IoX 5.6.4 on Polisy.
</p>
]]></description><guid isPermaLink="false">41745</guid><pubDate>Fri, 18 Aug 2023 00:05:14 +0000</pubDate></item><item><title>Device names not changing</title><link>https://forum.universal-devices.com/topic/39802-device-names-not-changing/</link><description><![CDATA[<p>
	I've changed a couple of my Airthings (AT) devices using the AT web dashboard "settings" option (not the app, which is a more drastic update that archives the device readings up to that point and resets the calibration period) but the names don't change in NS Nodes panel or ISY.
</p>

<p>
	Yes, I have the NS configured with change_node_name set to true
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_01/image.png.3dec5e2a4cc8622733d1940ebf7fff27.png" data-fileid="23952" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="23952" data-ratio="6.50" width="1000" alt="image.thumb.png.30acc92e9427b78334c43b0c29c5e150.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_01/image.thumb.png.30acc92e9427b78334c43b0c29c5e150.png" /></a>
</p>

<p>
	 
</p>

<p>
	For example, I dropped an apostrophe for 2 devices in the AT Dashboard but the apostrophe remains in NS and ISY.
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="23953" data-ratio="31.32" width="463" alt="image.png.0f192eb1eabd6f157407fc033aa375bf.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_01/image.png.0f192eb1eabd6f157407fc033aa375bf.png" /></p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="23954" data-ratio="31.19" width="420" alt="image.png.5e09c1cf6ee333103a9f73fca22d3159.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_01/image.png.5e09c1cf6ee333103a9f73fca22d3159.png" /></p>

<p>
	 
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="23955" data-ratio="21.21" width="132" alt="image.png.116da613cc44e4de2efe02665434592f.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_01/image.png.116da613cc44e4de2efe02665434592f.png" /></p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="23956" data-ratio="19.53" width="128" alt="image.png.ab043c3b6a3460732ed649b09cc139bc.png" src="//d2z8ydsemzif1x.cloudfront.net/monthly_2023_01/image.png.ab043c3b6a3460732ed649b09cc139bc.png" /></p>

<p>
	 
</p>

<p>
	Is that because we're talking about an apostrophe, i.e. a special character? I didn't test that theory but think this should be fixed anyway so figured I would report it. That or a clear warning should be put in a highly visible spot that warns against the use of any problematic characters if that's the case to give people a chance to rename any offending device before they start the NS.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">39802</guid><pubDate>Tue, 10 Jan 2023 21:26:30 +0000</pubDate></item><item><title>Average Radon Reading</title><link>https://forum.universal-devices.com/topic/39481-average-radon-reading/</link><description><![CDATA[<p>
	I think I know the answer but I wanted to ask.
</p>

<p>
	I set a program that if Radon levels get high to let me know via alexa.  They did but in a couple hours it came right down.
</p>

<p>
	The RADON company said ask your home automation guy if you can monitor the 2 day average and not the current reading.  They told me (And you can see in the app) that airthings supports that.
</p>

<p>
	Can we get that reading into the ISY?
</p>
]]></description><guid isPermaLink="false">39481</guid><pubDate>Fri, 23 Dec 2022 21:08:33 +0000</pubDate></item><item><title>Strange new errors and then crash</title><link>https://forum.universal-devices.com/topic/39061-strange-new-errors-and-then-crash/</link><description><![CDATA[<p>
	I recently upgraded to PG3.1.14 and, today, after noticing a value in ISY was not getting updated, I check NS logs and it had stopped working at 02:03AM after a number of occurrences of errors I haven't seen before.
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">2022-11-17 01:48:36,971 Thread-693 udi_interface      ERROR    udi_interface:write: Exception in thread
2022-11-17 01:48:36,973 Thread-693 udi_interface      ERROR    udi_interface:write: Thread-693
2022-11-17 01:48:36,973 Thread-693 udi_interface      ERROR    udi_interface:write: :
2022-11-17 01:48:36,974 Thread-693 udi_interface      ERROR    udi_interface:write: Traceback (most recent call last):
2022-11-17 01:48:36,975 Thread-693 udi_interface      ERROR    udi_interface:write: File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner
2022-11-17 01:48:36,979 Thread-693 udi_interface      ERROR    udi_interface:write: self.run()
2022-11-17 01:48:36,980 Thread-693 udi_interface      ERROR    udi_interface:write: File "/usr/local/lib/python3.9/threading.py", line 917, in run
2022-11-17 01:48:36,983 Thread-693 udi_interface      ERROR    udi_interface:write: self._target(*self._args, **self._kwargs)
2022-11-17 01:48:36,984 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/nodes/Controller.py", line 149, in handler_poll
2022-11-17 01:48:36,986 Thread-693 udi_interface      ERROR    udi_interface:write: self.shortPoll()
2022-11-17 01:48:36,987 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/nodes/Controller.py", line 153, in shortPoll
2022-11-17 01:48:36,988 Thread-693 udi_interface      ERROR    udi_interface:write: self._query_all()
2022-11-17 01:48:36,989 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/nodes/Controller.py", line 183, in _query_all
2022-11-17 01:48:36,990 Thread-693 udi_interface      ERROR    udi_interface:write: node.shortPoll()
2022-11-17 01:48:36,991 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/nodes/Sensor.py", line 104, in shortPoll
2022-11-17 01:48:36,993 Thread-693 udi_interface      ERROR    udi_interface:write: self.query(force=False,authorize=False)
2022-11-17 01:48:36,993 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/nodes/Sensor.py", line 113, in query
2022-11-17 01:48:36,995 Thread-693 udi_interface      ERROR    udi_interface:write: st = self.controller.api_get(f"devices/{self.serial}/latest-samples")
2022-11-17 01:48:36,996 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/nodes/Controller.py", line 202, in api_get
2022-11-17 01:48:36,997 Thread-693 udi_interface      ERROR    udi_interface:write: res = self.session.get(
2022-11-17 01:48:36,998 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/pgSession.py", line 65, in get
2022-11-17 01:48:37,000 Thread-693 udi_interface      ERROR    udi_interface:write: return(self.response(response,'get'))
2022-11-17 01:48:37,000 Thread-693 udi_interface      ERROR    udi_interface:write: File "/var/polyglot/pg3/ns/</span><span class="tag">&lt;my</span><span class="pln"> </span><span class="atn">ISY</span><span class="pln"> </span><span class="atn">ID</span><span class="tag">&gt;</span><span class="pln">_8/pgSession.py", line 88, in response
2022-11-17 01:48:37,002 Thread-693 udi_interface      ERROR    udi_interface:write: self.logger.error("Forbidden: %s: text: %s" % (response.url,json_data['message']) )
2022-11-17 01:48:37,002 Thread-693 udi_interface      ERROR    udi_interface:write: KeyError
2022-11-17 01:48:37,003 Thread-693 udi_interface      ERROR    udi_interface:write: :
2022-11-17 01:48:37,004 Thread-693 udi_interface      ERROR    udi_interface:write: 'message'</span></pre>

<p>
	 
</p>

<p>
	The node value that I noticed not getting updated was GV4 for device s_2930027997. There may be others too - I didn't go fishing for others.
</p>

<p>
	A restart of the NS seems to have fixed things for now.
</p>

<p>
	Attached is log for today, including entries after the restart. If needed I could SSH into Polisy to pull out older log files. Let me know if that would help at all.
</p>

<p>
	Thanks.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">39061</guid><pubDate>Thu, 17 Nov 2022 17:09:56 +0000</pubDate></item></channel></rss>
