diff --git a/homeassistant/components/esphome/binary_sensor.py b/homeassistant/components/esphome/binary_sensor.py index 4e684638bb7ff1ebd23c0ea5fc01038713347b61..64506f69283cfa7a64e5eab822be380fe08ae28d 100644 --- a/homeassistant/components/esphome/binary_sensor.py +++ b/homeassistant/components/esphome/binary_sensor.py @@ -44,6 +44,8 @@ class EsphomeBinarySensor(EsphomeEntity, BinarySensorDevice): return self._entry_data.available if self._state is None: return None + if self._state.missing_state: + return None return self._state.state @property diff --git a/homeassistant/components/esphome/climate.py b/homeassistant/components/esphome/climate.py index 1dfe2184952e810bf1ee0d54bb9a16aa4f0c7840..5fed8da76ef6c24a59855ccbb0b52421c1904a02 100644 --- a/homeassistant/components/esphome/climate.py +++ b/homeassistant/components/esphome/climate.py @@ -138,7 +138,7 @@ class EsphomeClimateDevice(EsphomeEntity, ClimateDevice): @esphome_state_property def preset_mode(self): """Return current preset mode.""" - return PRESET_AWAY if self._state.away else None + return PRESET_AWAY if self._state.away else PRESET_HOME @esphome_state_property def current_temperature(self) -> Optional[float]: diff --git a/homeassistant/components/esphome/manifest.json b/homeassistant/components/esphome/manifest.json index 40691c653f51b63976ae57c9b5b10a3056b01912..724946e69841acd6a51077c9236f7993f327054f 100644 --- a/homeassistant/components/esphome/manifest.json +++ b/homeassistant/components/esphome/manifest.json @@ -4,7 +4,7 @@ "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/esphome", "requirements": [ - "aioesphomeapi==2.4.2" + "aioesphomeapi==2.5.0" ], "dependencies": [], "zeroconf": ["_esphomelib._tcp.local."], diff --git a/homeassistant/components/esphome/sensor.py b/homeassistant/components/esphome/sensor.py index b6adbf93c41ac39d772774f6510fbba03f87aaf5..e50991af6c1376ce8e47cd410f072e395f70520c 100644 --- a/homeassistant/components/esphome/sensor.py +++ b/homeassistant/components/esphome/sensor.py @@ -67,6 +67,8 @@ class EsphomeSensor(EsphomeEntity): """Return the state of the entity.""" if math.isnan(self._state.state): return None + if self._state.missing_state: + return None return "{:.{prec}f}".format( self._state.state, prec=self._static_info.accuracy_decimals ) @@ -96,4 +98,6 @@ class EsphomeTextSensor(EsphomeEntity): @esphome_state_property def state(self) -> Optional[str]: """Return the state of the entity.""" + if self._state.missing_state: + return None return self._state.state diff --git a/requirements_all.txt b/requirements_all.txt index c907fd879a21430c4917892fa0fdbf1f00e19184..163918f51802273b892ec00a4c27afb449841293 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -142,7 +142,7 @@ aiobotocore==0.10.2 aiodns==2.0.0 # homeassistant.components.esphome -aioesphomeapi==2.4.2 +aioesphomeapi==2.5.0 # homeassistant.components.freebox aiofreepybox==0.0.8 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 2126fed9f6f075ddae10b2d95d7a996a8e681f36..90668e3eaabdd6ee00d017d783c9744c6c66b8fd 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -50,7 +50,7 @@ aioautomatic==0.6.5 aiobotocore==0.10.2 # homeassistant.components.esphome -aioesphomeapi==2.4.2 +aioesphomeapi==2.5.0 # homeassistant.components.emulated_hue # homeassistant.components.http