diff --git a/backend/src/main/java/ch/akop/homesystem/services/impl/UserService.java b/backend/src/main/java/ch/akop/homesystem/services/impl/UserService.java index 67a66a5b..b477e1d7 100644 --- a/backend/src/main/java/ch/akop/homesystem/services/impl/UserService.java +++ b/backend/src/main/java/ch/akop/homesystem/services/impl/UserService.java @@ -61,6 +61,7 @@ void setupPresenceMap() { UserConfig::getName, user -> user.getFailedPings() < ALLOWED_FAILS )); + presenceMap$.onNext(presenceMap); } @ConsumeEvent(value = GENERAL, blocking = true) @@ -141,6 +142,7 @@ private boolean canPingIp(UserConfig userConfig) { public Flowable isAnyoneAtHome$() { return presenceMap$ + .distinctUntilChanged() .subscribeOn(RxHelper.blockingScheduler(vertx)) .map(presenceMapUpdate -> presenceMapUpdate.values().stream().anyMatch(isAtHome -> isAtHome)) .toFlowable(BackpressureStrategy.ERROR); diff --git a/backend/src/main/java/ch/akop/homesystem/states/NormalState.java b/backend/src/main/java/ch/akop/homesystem/states/NormalState.java index 3611b03c..45e3e873 100644 --- a/backend/src/main/java/ch/akop/homesystem/states/NormalState.java +++ b/backend/src/main/java/ch/akop/homesystem/states/NormalState.java @@ -120,7 +120,6 @@ public void entered(boolean quiet) { super.disposeWhenClosed(userService.isAnyoneAtHome$() .skip(1) - .distinctUntilChanged() .filter(anyOneAtHome -> deviceService.isAnyLightOn()) .delay(10, TimeUnit.MINUTES) .switchMap(this::shouldLightsTurnedOff)