diff --git a/README.md b/README.md index 09274b2..1e3a5d6 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ one has the time to go through the source. ### Air-to-air heat pump properties * `room_temperature` +* `outdoor_temperature` * `target_temperature` * `target_temperature_step` * `target_temperature_min` diff --git a/src/pymelcloud/ata_device.py b/src/pymelcloud/ata_device.py index b727048..cf28fc0 100644 --- a/src/pymelcloud/ata_device.py +++ b/src/pymelcloud/ata_device.py @@ -207,6 +207,23 @@ def room_temperature(self) -> Optional[float]: return None return self._state.get("RoomTemperature") + @property + def has_outdoor_temperature(self) -> bool: + """Return True if the device has an outdoor temperature sensor.""" + if self._device_conf.get("HideOutdoorTemperature", False): + return False + return self._device_conf.get("Device", {}).get("HasOutdoorTemperature", False): + + @property + def outdoor_temperature(self) -> Optional[float]: + """Return outdoor temperature reported by the device.""" + if self._device_conf.get("HideOutdoorTemperature", False): + return None + device = self._device_conf.get("Device", {}) + if not device.get("HasOutdoorTemperature", False): + return None + return device.get("OutdoorTemperature") + @property def target_temperature(self) -> Optional[float]: """Return target temperature set for the device."""