diff --git a/fixtures/home_status_error_disconnected.json b/fixtures/home_status_error_disconnected.json
new file mode 100644
index 0000000..0059e9b
--- /dev/null
+++ b/fixtures/home_status_error_disconnected.json
@@ -0,0 +1,15 @@
+{ 
+   "status":"ok",
+   "body":{ 
+      "errors":[ 
+         { 
+            "code":6,
+            "id":"12:34:56:00:fa:d0"
+         }
+      ],
+      "home":{ 
+         "id":"12:34:56:00:f1:62"
+      }
+   },
+   "time_server":1559292039
+}
\ No newline at end of file
diff --git a/src/pyatmo/thermostat.py b/src/pyatmo/thermostat.py
index 5f2ac9b..0491aca 100644
--- a/src/pyatmo/thermostat.py
+++ b/src/pyatmo/thermostat.py
@@ -165,7 +165,12 @@ class HomeStatus:
         postParams = {"access_token": self.getAuthToken, "home_id": self.home_id}
 
         resp = postRequest(_GETHOMESTATUS_REQ, postParams)
-        if "errors" in resp or "body" not in resp or "home" not in resp["body"]:
+        if (
+            "errors" in resp
+            or "body" not in resp
+            or "home" not in resp["body"]
+            or ("errors" in resp["body"] and "modules" not in resp["body"]["home"])
+        ):
             raise NoDevice("No device found, errors in response")
         self.rawData = resp["body"]["home"]
         self.rooms = {}

Thermostat disconnected - error not catch
Hi guys, 

I have an issue when my thermostat is disconnected (wifi connection lost...).

I analyse the json received from netatmo, the error tag is include in body, not at root level:
```
{ 
   'status':'ok',
   'body':{ 
      'errors':[ 
         { 
            'code':6,
            'id':'xx:xx:xx:xx:xx:xx'
         }
      ],
      'home':{ 
         'id':'xx'
      }
   },
   'time_server':xxx
}
```

In the thermostat.py, the error is checked in `resp` and not in `resp["body"]` ([after post_request](https://github.com/jabesq/netatmo-api-python/blob/master/src/pyatmo/thermostat.py#L168)):
`if "errors" in resp or "body" not in resp or "home" not in resp["body"]:`

I don't know if the case of error in root level exists...

Thanks.
diff --git a/tests/test_pyatmo_thermostat.py b/tests/test_pyatmo_thermostat.py
index de930a2..4f85098 100644
--- a/tests/test_pyatmo_thermostat.py
+++ b/tests/test_pyatmo_thermostat.py
@@ -463,3 +463,22 @@ def test_HomeData_setroomThermpoint_error(
         )["error"]["message"]
         == expected
     )
+
+
+def test_HomeStatus_error_disconnected(auth, requests_mock):
+    with open("fixtures/home_status_error_disconnected.json") as f:
+        json_fixture = json.load(f)
+    requests_mock.post(
+        pyatmo.thermostat._GETHOMESTATUS_REQ,
+        json=json_fixture,
+        headers={"content-type": "application/json"},
+    )
+    with open("fixtures/home_data_simple.json") as f:
+        json_fixture = json.load(f)
+    requests_mock.post(
+        pyatmo.thermostat._GETHOMESDATA_REQ,
+        json=json_fixture,
+        headers={"content-type": "application/json"},
+    )
+    with pytest.raises(pyatmo.NoDevice):
+        pyatmo.HomeStatus(auth)

pip install -e .[dev]
parse_log_pytest
pytest
pytest pytest-cov pytest-mock requests-mock freezegun isort tox pre-commit
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///croot/attrs_1668696182826/work
cachetools==5.5.2
certifi @ file:///croot/certifi_1671487769961/work/certifi
cfgv==3.3.1
chardet==5.2.0
charset-normalizer==3.4.1
colorama==0.4.6
coverage==7.2.7
distlib==0.3.9
filelock==3.12.2
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
freezegun==1.5.1
identify==2.5.24
idna==3.10
importlib-metadata==6.7.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
isort==5.11.5
nodeenv==1.9.1
packaging==24.0
platformdirs==4.0.0
pluggy==1.2.0
pre-commit==2.21.0
py @ file:///opt/conda/conda-bld/py_1644396412707/work
-e git+https://github.com/jabesq/netatmo-api-python.git@6ac45ed29b3b69aab787ed88a1ea52e13c1ee771#egg=pyatmo
pyproject-api==1.5.3
pytest==7.1.2
pytest-cov==4.1.0
pytest-mock==3.11.1
python-dateutil==2.9.0.post0
PyYAML==6.0.1
requests==2.31.0
requests-mock==1.12.1
six==1.17.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work
tox==4.8.0
typing_extensions==4.7.1
urllib3==2.0.7
virtualenv==20.26.6
zipp @ file:///croot/zipp_1672387121353/work

name: netatmo-api-python
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=22.1.0=py37h06a4308_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - flit-core=3.6.0=pyhd3eb1b0_0
  - importlib_metadata=4.11.3=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pytest=7.1.2=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py37h06a4308_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.11.0=py37h06a4308_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - cachetools==5.5.2
      - cfgv==3.3.1
      - chardet==5.2.0
      - charset-normalizer==3.4.1
      - colorama==0.4.6
      - coverage==7.2.7
      - distlib==0.3.9
      - filelock==3.12.2
      - freezegun==1.5.1
      - identify==2.5.24
      - idna==3.10
      - importlib-metadata==6.7.0
      - isort==5.11.5
      - nodeenv==1.9.1
      - packaging==24.0
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - pre-commit==2.21.0
      - pyatmo==3.1.0
      - pyproject-api==1.5.3
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.1
      - requests==2.31.0
      - requests-mock==1.12.1
      - six==1.17.0
      - tox==4.8.0
      - typing-extensions==4.7.1
      - urllib3==2.0.7
      - virtualenv==20.26.6
prefix: /opt/conda/envs/netatmo-api-python

tests/test_pyatmo_thermostat.py::test_HomeStatus_error_disconnected
tests/test_pyatmo_thermostat.py::test_HomeData tests/test_pyatmo_thermostat.py::test_HomeData_no_data tests/test_pyatmo_thermostat.py::test_HomeData_no_body tests/test_pyatmo_thermostat.py::test_HomeData_no_home_name tests/test_pyatmo_thermostat.py::test_HomeData_homeById tests/test_pyatmo_thermostat.py::test_HomeData_homeByName tests/test_pyatmo_thermostat.py::test_HomeData_gethomeId tests/test_pyatmo_thermostat.py::test_HomeData_getHomeName tests/test_pyatmo_thermostat.py::test_HomeData_getSelectedschedule tests/test_pyatmo_thermostat.py::test_HomeData_switchHomeSchedule[None-None-None-expected0] tests/test_pyatmo_thermostat.py::test_HomeData_switchHomeSchedule[None-None-Default-expected1] tests/test_pyatmo_thermostat.py::test_HomeData_switchHomeSchedule[None-591b54a2764ff4d50d8b5795-None-expected2] tests/test_pyatmo_thermostat.py::test_HomeData_switchHomeSchedule[None-None-Summer-expected3] tests/test_pyatmo_thermostat.py::test_HomeData_switchHomeSchedule[None-123456789abcdefg12345678-None-expected4] tests/test_pyatmo_thermostat.py::test_HomeStatus tests/test_pyatmo_thermostat.py::test_HomeStatus_error_and_data tests/test_pyatmo_thermostat.py::test_HomeStatus_error tests/test_pyatmo_thermostat.py::test_HomeStatus_roomById tests/test_pyatmo_thermostat.py::test_HomeStatus_thermostatById tests/test_pyatmo_thermostat.py::test_HomeStatus_relayById tests/test_pyatmo_thermostat.py::test_HomeStatus_valveById tests/test_pyatmo_thermostat.py::test_HomeStatus_setPoint tests/test_pyatmo_thermostat.py::test_HomeStatus_setPointmode tests/test_pyatmo_thermostat.py::test_HomeStatus_getAwaytemp tests/test_pyatmo_thermostat.py::test_HomeStatus_getHgtemp tests/test_pyatmo_thermostat.py::test_HomeStatus_measuredTemperature tests/test_pyatmo_thermostat.py::test_HomeStatus_boilerStatus tests/test_pyatmo_thermostat.py::test_HomeStatus_thermostatType tests/test_pyatmo_thermostat.py::test_HomeData_setThermmode[None-None-home_status_error_mode_is_missing.json-mode tests/test_pyatmo_thermostat.py::test_HomeData_setThermmode[91763b24c43d3e344f424e8b-None-home_status_error_mode_is_missing.json-mode tests/test_pyatmo_thermostat.py::test_HomeData_setThermmode[invalidID-away-home_status_error_invalid_id.json-Invalid tests/test_pyatmo_thermostat.py::test_HomeData_setThermmode[91763b24c43d3e344f424e8b-away-status_ok.json-ok] tests/test_pyatmo_thermostat.py::test_HomeData_setroomThermpoint[91763b24c43d3e344f424e8b-2746182631-home-14-status_ok.json-ok] tests/test_pyatmo_thermostat.py::test_HomeData_setroomThermpoint[91763b24c43d3e344f424e8b-2746182631-home-None-status_ok.json-ok] tests/test_pyatmo_thermostat.py::test_HomeData_setroomThermpoint_error[None-None-None-None-home_status_error_missing_home_id.json-Missing tests/test_pyatmo_thermostat.py::test_HomeData_setroomThermpoint_error[None-None-home-None-home_status_error_missing_home_id.json-Missing tests/test_pyatmo_thermostat.py::test_HomeData_setroomThermpoint_error[91763b24c43d3e344f424e8b-None-home-None-home_status_error_missing_parameters.json-Missing tests/test_pyatmo_thermostat.py::test_HomeData_setroomThermpoint_error[91763b24c43d3e344f424e8b-2746182631-home-None-home_status_error_missing_parameters.json-Missing
fixtures/home_status_error_disconnected.json src/pyatmo/thermostat.py
fixtures/home_status_error_disconnected.json src/pyatmo/thermostat.py