cjkrolak / ThermostatSupervisor

supervisor to detect and correct thermostat deviations
MIT License
0 stars 0 forks source link

nest: (intermittent) connection error #782

Open cjkrolak opened 9 months ago

cjkrolak commented 9 months ago

traceback:

2023-12-25 22:23:22: (tstat:nest, zone:Main Level Thermostat, session:1, poll:64) OFF_MODE [following schedule] act temp=44.5°F, act humidity=58% RH
revert_thermostat_mode: target_mode='UNKNOWN_MODE', doing nothing.
Traceback (most recent call last):
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 790, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 536, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connection.py", line 461, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 1419, in getresponse
    response.begin()
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 331, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 300, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 844, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\util\retry.py", line 470, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\util\util.py", line 38, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 790, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connectionpool.py", line 536, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\urllib3\connection.py", line 461, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 1419, in getresponse
    response.begin()
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 331, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 300, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\supervise.py", line 131, in <module>
    exec_supervise(debug=True, argv_list=argv_inputs)
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\supervise.py", line 113, in exec_supervise
    supervisor(
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\supervise.py", line 74, in supervisor
    measurement = Zone.supervisor_loop(
                  ^^^^^^^^^^^^^^^^^^^^^
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\thermostat_common.py", line 1107, in supervisor_loop
    current_mode_dict = self.get_current_mode(
                        ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\thermostat_common.py", line 310, in get_current_mode
    self.query_thermostat_zone()
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\thermostat_common.py", line 174, in query_thermostat_zone
    self.get_display_temp(), "get_display_temp"
    ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\nest.py", line 304, in get_display_temp
    return util.c_to_f(self.get_trait("Temperature")["ambientTemperatureCelsius"])
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\github\ThermostatSupervisor\thermostatsupervisor\nest.py", line 252, in get_trait
    devices = nest.Device.filter_for_trait(self.devices, trait_name)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\nest\nest.py", line 135, in filter_for_trait
    return [device for device in devices if trait in device.traits]
                                                     ^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\nest\nest.py", line 96, in traits
    return {k.split('.')[-1]: v for k, v in self._device['traits'].items()}
                                            ^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\nest\nest.py", line 75, in _device
    return next(device for device in self._devices if self.name in device['name'])
                                     ^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\nest\nest.py", line 81, in _devices
    return self._nest_api._devices
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\nest\nest.py", line 288, in _devices
    self._devices_value = self._request('GET', '')['devices']
                          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\nest\nest.py", line 250, in _request
    r = self._client.request(verb, url,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests_oauthlib\oauth2_session.py", line 521, in request
    return super(OAuth2Session, self).request(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\cjkro\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\adapters.py", line 501, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

C:\github\ThermostatSupervisor>