diff --git a/custom_components/mega/hub.py b/custom_components/mega/hub.py index b73eaca..0e60785 100644 --- a/custom_components/mega/hub.py +++ b/custom_components/mega/hub.py @@ -145,6 +145,7 @@ class MegaD: ftr.set_result(json.loads(msg.payload).get('value')) except Exception as exc: self.lg.warning(f'could not parse {msg.payload}: {exc}') + ftr.set_result(None) unsub = await self.mqtt.async_subscribe( topic=f'{self.mqtt_id}/{port}', msg_callback=cb, diff --git a/custom_components/mega/sensor.py b/custom_components/mega/sensor.py index 5303c91..c12d94a 100644 --- a/custom_components/mega/sensor.py +++ b/custom_components/mega/sensor.py @@ -93,7 +93,9 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry, asyn lg.debug(f'values: %s', values) if values is None: continue - if not isinstance(values, dict): + if isinstance(values, str) and TEMP_PATT.search(values): + values = {TEMP: values} + elif not isinstance(values, dict): values = {None: values} for key in values: hub.lg.debug(f'add sensor {W1}:{key}') @@ -165,7 +167,7 @@ class Mega1WSensor(BaseMegaEntity): def _update(self, payload: dict): val = payload.get('value', '') - if isinstance(val, str): + if isinstance(val, str) and self.patt is not None: val = self.patt.findall(val) if val: self._value = val[0]