diff --git a/apps/predbat/solis.py b/apps/predbat/solis.py index a39cc1900..172654000 100644 --- a/apps/predbat/solis.py +++ b/apps/predbat/solis.py @@ -1982,6 +1982,24 @@ async def publish_entities(self): except (ValueError, TypeError): self.log("Warn: Failed to convert battery capacity for {}: {}".format(inverter_sn, battery_capacity_ah)) # Debug log + # Data logger timestamp from inverterDetail API (shows when the data logger last reported to SolisCloud) + data_timestamp_ms = detail.get("dataTimestamp") + if data_timestamp_ms is not None: + try: + data_timestamp_dt = datetime.fromtimestamp(int(data_timestamp_ms) / 1000, tz=UTC) + self.dashboard_item( + f"sensor.{prefix}_solis_{inverter_sn_lower}_data_timestamp", + state=data_timestamp_dt.isoformat(), + attributes={ + "friendly_name": f"Solis {inverter_name} Data Logger Timestamp", + "device_class": "timestamp", + "icon": "mdi:clock-check-outline", + }, + app="solis" + ) + except (ValueError, TypeError, OSError): + self.log(f"Warn: Failed to parse dataTimestamp for {inverter_sn}: {data_timestamp_ms}") + # ==================== Control Methods ==================== async def set_storage_mode_if_needed(self, inverter_sn, mode):