bachya / pyairvisual

☀️ A simple, clean, well-tested Python library for interacting with AirVisual©
MIT License
9 stars 4 forks source link

Randomly stops connecting (happened again) #73

Closed scstraus closed 3 years ago

scstraus commented 3 years ago

Describe the bug This is just a reopening of #67. Today in the morning the component stopped connecting to both my airvisual nodes and didn't update sensors all day. I can mount the SMB shares on both devices and can ping from my homeassistant server.

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context

here's the log from when it switched from working to not working. It continues like the bottom until I restart:

2021-03-31 02:17:34 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.128 seconds
2021-03-31 02:18:02 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:18:02 DEBUG (MainThread) [pyairvisual.node] Node Pro measurements loaded: {'date_and_time': {'date': '2021/03/31', 'time': '02:15:30', 'timestamp': '1617156930'}, 'measurements': {'co2': '724', 'humidity': '38', 'pm0_1': '3', 'pm1_0': '6', 'aqi_cn': '9', 'aqi_us': '25', 'pm2_5': '6.0', 'temperature_C': '23.4', 'temperature_F': '74.1', 'voc': '-1'}, 'serial_number': 'TKKGJWV', 'settings': {'follow_mode': 'device', 'followed_station': 'qhofpkt2', 'is_aqi_usa': True, 'is_concentration_showed': False, 'is_indoor': True, 'is_lcd_on': False, 'is_network_time': True, 'is_temperature_celsius': True, 'language': 'en-GB', 'lcd_brightness': 100, 'node_name': 'Home', 'power_saving': {'2slots': [{'hour_off': 9, 'hour_on': 7}, {'hour_off': 22, 'hour_on': 18}], 'mode': 'yes', 'running_time': 99, 'yes': [{'hour': 8, 'minute': 0}, {'hour': 21, 'minute': 0}]}, 'sensor_mode': {'custom_mode_interval': 5, 'mode': 2}, 'speed_unit': 'mph', 'timezone': 'Europe/Prague'}, 'status': {'app_version': '1.1651', 'battery': 100, 'datetime': 1617156930, 'device_name': 'AIRVISUAL-TKKGJWV', 'ip_address': '10.10.10.140', 'mac_address': '54c9dfd65a20', 'model': '20', 'sensor_life': {'pm2_5': 1529984983665}, 'sensor_pm25_serial': '00000005041102031047', 'sync_time': 250000, 'system_version': 'KBG60F82', 'used_memory': 3, 'wifi_strength': 5}}
2021-03-31 02:18:02 INFO (MainThread) [homeassistant.components.airvisual] Fetching Node/Pro data data recovered
2021-03-31 02:18:02 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.157 seconds
2021-03-31 02:18:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.airvisual_home_battery, old_state=<state sensor.airvisual_home_battery=unavailable; unit_of_measurement=%, friendly_name=Home Node/Pro: Battery, device_class=battery @ 2021-03-31T02:17:02.060840+02:00>, new_state=<state sensor.airvisual_home_battery=100; attribution=Data provided by AirVisual, unit_of_measurement=%, friendly_name=Home Node/Pro: Battery, device_class=battery @ 2021-03-31T02:18:02.272170+02:00>>
2021-03-31 02:18:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.airvisual_home_humidity, old_state=<state sensor.airvisual_home_humidity=unavailable; unit_of_measurement=%, friendly_name=Home Node/Pro: Humidity, device_class=humidity @ 2021-03-31T02:17:02.061000+02:00>, new_state=<state sensor.airvisual_home_humidity=38; attribution=Data provided by AirVisual, unit_of_measurement=%, friendly_name=Home Node/Pro: Humidity, device_class=humidity @ 2021-03-31T02:18:02.272418+02:00>>
2021-03-31 02:18:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.home_airvisual_temperature, old_state=<state sensor.home_airvisual_temperature=unavailable; unit_of_measurement=°C, friendly_name=Home Node/Pro: Temperature, device_class=temperature @ 2021-03-31T02:17:02.061155+02:00>, new_state=<state sensor.home_airvisual_temperature=23.4; attribution=Data provided by AirVisual, unit_of_measurement=°C, friendly_name=Home Node/Pro: Temperature, device_class=temperature @ 2021-03-31T02:18:02.272620+02:00>>
2021-03-31 02:18:02 DEBUG (MainThread) [homeassistant.components.alexa.state_report] Not exposing sensor.home_airvisual_temperature because filtered by config
2021-03-31 02:18:34 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:18:34 DEBUG (MainThread) [pyairvisual.node] Node Pro measurements loaded: {'date_and_time': {'date': '2021/03/31', 'time': '02:03:50', 'timestamp': '1617156230'}, 'measurements': {'co2': '451', 'humidity': '59', 'aqi_cn': '21', 'aqi_us': '57', 'pm2_5': '15.0', 'temperature_C': '10.3', 'temperature_F': '50.5', 'voc': '-1'}, 'serial_number': 'SXP9JKS', 'settings': {'followed_station': '8262', 'is_aqi_usa': True, 'is_concentration_showed': True, 'is_indoor': False, 'is_lcd_on': False, 'is_network_time': True, 'is_temperature_celsius': True, 'language': 'en-GB', 'lcd_brightness': 40, 'node_name': 'hlubocepy', 'power_saving': {'2slots': [{'hour_off': 9, 'hour_on': 7}, {'hour_off': 22, 'hour_on': 18}], 'mode': 'yes', 'yes': [{'hour': 7, 'minute': 0}, {'hour': 21, 'minute': 0}]}, 'speed_unit': 'mph', 'timezone': 'Europe/Prague'}, 'status': {'app_version': '1.1532', 'battery': 100, 'datetime': 1617156230, 'model': '10', 'sensor_pm25_serial': '00000110030927030221', 'sync_time': 860000, 'system_version': 'KBG57F70', 'used_memory': 0, 'wifi_strength': 4, 'sensor_life': {}}}
2021-03-31 02:18:34 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.236 seconds
2021-03-31 02:19:02 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:19:02 ERROR (MainThread) [homeassistant.components.airvisual] Unexpected error fetching Node/Pro data data: filedescriptor out of range in select()
  File "/usr/src/homeassistant/homeassistant/components/airvisual/__init__.py", line 250, in async_update_data
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 137, in __aenter__
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 175, in async_connect
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 172, in connect
2021-03-31 02:19:02 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.018 seconds
2021-03-31 02:19:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.airvisual_home_battery, old_state=<state sensor.airvisual_home_battery=100; attribution=Data provided by AirVisual, unit_of_measurement=%, friendly_name=Home Node/Pro: Battery, device_class=battery @ 2021-03-31T02:18:02.272170+02:00>, new_state=<state sensor.airvisual_home_battery=unavailable; unit_of_measurement=%, friendly_name=Home Node/Pro: Battery, device_class=battery @ 2021-03-31T02:19:02.040527+02:00>>
2021-03-31 02:19:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.airvisual_home_humidity, old_state=<state sensor.airvisual_home_humidity=38; attribution=Data provided by AirVisual, unit_of_measurement=%, friendly_name=Home Node/Pro: Humidity, device_class=humidity @ 2021-03-31T02:18:02.272418+02:00>, new_state=<state sensor.airvisual_home_humidity=unavailable; unit_of_measurement=%, friendly_name=Home Node/Pro: Humidity, device_class=humidity @ 2021-03-31T02:19:02.040719+02:00>>
2021-03-31 02:19:02 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.home_airvisual_temperature, old_state=<state sensor.home_airvisual_temperature=23.4; attribution=Data provided by AirVisual, unit_of_measurement=°C, friendly_name=Home Node/Pro: Temperature, device_class=temperature @ 2021-03-31T02:18:02.272620+02:00>, new_state=<state sensor.home_airvisual_temperature=unavailable; unit_of_measurement=°C, friendly_name=Home Node/Pro: Temperature, device_class=temperature @ 2021-03-31T02:19:02.040823+02:00>>
2021-03-31 02:19:02 DEBUG (MainThread) [homeassistant.components.alexa.state_report] Not exposing sensor.home_airvisual_temperature because filtered by config
2021-03-31 02:19:34 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:19:34 ERROR (MainThread) [homeassistant.components.airvisual] Unexpected error fetching Node/Pro data data: filedescriptor out of range in select()
  File "/usr/src/homeassistant/homeassistant/components/airvisual/__init__.py", line 250, in async_update_data
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 137, in __aenter__
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 175, in async_connect
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 172, in connect
2021-03-31 02:19:34 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.022 seconds
2021-03-31 02:20:02 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:20:02 ERROR (MainThread) [homeassistant.components.airvisual] Unexpected error fetching Node/Pro data data: filedescriptor out of range in select()
  File "/usr/src/homeassistant/homeassistant/components/airvisual/__init__.py", line 250, in async_update_data
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 137, in __aenter__
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 175, in async_connect
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 172, in connect
2021-03-31 02:20:02 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.008 seconds
2021-03-31 02:20:34 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:20:34 ERROR (MainThread) [homeassistant.components.airvisual] Unexpected error fetching Node/Pro data data: filedescriptor out of range in select()
  File "/usr/src/homeassistant/homeassistant/components/airvisual/__init__.py", line 250, in async_update_data
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 137, in __aenter__
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 175, in async_connect
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 172, in connect
2021-03-31 02:20:34 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.003 seconds
2021-03-31 02:21:02 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:21:02 ERROR (MainThread) [homeassistant.components.airvisual] Unexpected error fetching Node/Pro data data: filedescriptor out of range in select()
  File "/usr/src/homeassistant/homeassistant/components/airvisual/__init__.py", line 250, in async_update_data
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 137, in __aenter__
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 175, in async_connect
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 172, in connect
2021-03-31 02:21:02 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.007 seconds
2021-03-31 02:21:34 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
2021-03-31 02:21:34 ERROR (MainThread) [homeassistant.components.airvisual] Unexpected error fetching Node/Pro data data: filedescriptor out of range in select()
  File "/usr/src/homeassistant/homeassistant/components/airvisual/__init__.py", line 250, in async_update_data
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 137, in __aenter__
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 175, in async_connect
  File "/usr/local/lib/python3.8/site-packages/pyairvisual/node.py", line 172, in connect
2021-03-31 02:21:34 DEBUG (MainThread) [homeassistant.components.airvisual] Finished fetching Node/Pro data data in 0.008 seconds
2021-03-31 02:22:02 INFO (MainThread) [SMB.SMBConnection] Authentication with remote machine "AIRVISUAL" for user "airvisual" will be using NTLM v2 authentication (with extended security)
bachya commented 3 years ago

Let's continue to use #67 rather than opening a new issue.