diff --git a/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt b/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt index b13c549c30d..707bb836082 100644 --- a/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/data/integration/impl/IntegrationRepositoryImpl.kt @@ -26,13 +26,13 @@ import io.homeassistant.companion.android.common.data.url.UrlRepository import io.homeassistant.companion.android.common.data.websocket.WebSocketRepository import io.homeassistant.companion.android.common.data.websocket.impl.entities.GetConfigResponse import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.map import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import org.json.JSONArray import java.util.regex.Pattern import javax.inject.Inject import javax.inject.Named -import kotlin.Exception class IntegrationRepositoryImpl @Inject constructor( private val integrationService: IntegrationService, @@ -464,16 +464,18 @@ class IntegrationRepositoryImpl @Inject constructor( } override suspend fun getEntityUpdates(): Flow> { - return webSocketRepository.getStateChanges().map { - Entity( - it.newState.entityId, - it.newState.state, - it.newState.attributes, - it.newState.lastChanged, - it.newState.lastUpdated, - it.newState.context - ) - } + return webSocketRepository.getStateChanges() + .filter { it.newState != null } + .map { + Entity( + it.newState!!.entityId, + it.newState.state, + it.newState.attributes, + it.newState.lastChanged, + it.newState.lastUpdated, + it.newState.context + ) + } } private suspend fun canRegisterEntityCategoryStateClass(): Boolean { diff --git a/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/StateChangedEvent.kt b/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/StateChangedEvent.kt index 9f93dfb9454..3ebe0453db9 100644 --- a/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/StateChangedEvent.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/data/websocket/impl/entities/StateChangedEvent.kt @@ -6,6 +6,6 @@ import io.homeassistant.companion.android.common.data.integration.Entity @JsonIgnoreProperties(ignoreUnknown = true) data class StateChangedEvent( val entityId: String, - val oldState: Entity<*>, - val newState: Entity<*> + val oldState: Entity<*>?, + val newState: Entity<*>? )