A Flutter app for controlling the power state of Valve Index® lighthouses

Overview

Lighthouse Power Management

codecov

Power management app to control the Valve Index® lighthouses from your phone.

Inspired by lighthouse-v2-manager but that project is desktop only. And if your computer doesn't have a bluetooth adapter then it is useless. Sadly the Valve Index® doesn't provide it's bluetooth adapter to the system and thus can't be used for that. Fortunately most phones do have bluetooth support, so I made this app to easily change the power state of a Lighthouse.

The app now also supports Vive Base stations, this is in Beta though.

lighthouse pm in action

This project gives no warranty that you won't brick your lighthouses!

It MOST probably won't actually brick your lighthouses, but I'm not liable in case that it does. Since the method used to change the power state of the lighthouses is the same as the one that Valve uses it is very unlikely to actually brick the lighthouse.

If for whatever reason your lighthouse does get bricked, please create an issue so we can prevent other users from bricking theirs.

Installation

Before you install this app, make sure that your phone supports bluetooth low energy (BLE). Almost all phones made after 2013 support this.

System requirements

Android

  • Bluetooth low energy support (as stated above modern devices probably support it).
  • Android 4.4 (API level 19) and up.

F-Droid

NOTE F-Droid will build the app from sources so it may be up to 24 hours behind on a release from Github. Also F-Droid sings the app with their own key, so you can't upgrade from a Github/ Google Play release to an F-Droid release.

Get it on F-Droid

Google Play

NOTE The Google Play version may be behind by a version because of the approval process.

Get it on Google play

Google Play and the Google Play logo are trademarks of Google LLC.

Sideload

Another way is to install the app using sideloading. Grab the APK from the releases page and sideload this onto your device.

iOS

Since the app is made in Flutter it should be able to run on iOS device with a minimal amount of tweaking. I however don't have any Apple device so I can't test this.

If there is anyone who does want to pick this up and support that part then please look at contributing.

There has been a little bit of validating on the iOS version. So if you are able to and really want to you can try "sideloading" it onto your iDevice.

Building

Because the app uses generated code you will first need to run flutter packages pub run build_runner build or flutter packages pub run build_runner watch before the app can be build.

While the app is in development there may be changes to the local database, there will not be any migrations written unless it's between actual versions. So you may need to clear the app storage before some new features start working.

Web Builds

For web builds you will need to download sql-wasm and place it in the web folder. This can be done from here. You will need to download the wasm version, best runtime performance, smaller assets, requires configuration version. Extract the sql-wasm.js and sql-wasm.wasm files in the web folder. After this you are ready to create web builds.

If you want to debug with chrome on a platform where web bluetooth is behind a startup flag, then follow the tutorial provided by the flutter_web_bluetooth library here.

Linux Builds

For linux builds you need to make sure that the sqlite3 dev library is installed on your system or else the app will hang on booting.

The database for user settings is stored under ~/.local/share/lighthouse_pm/settings.sqlite feel free to remove it if you need to rest the settings.

Release build

Sometimes before you can create a release build you will need to assemble the Android component before an Android build can be created. Run ./gradlew assemble inside the ./android folder before running flutter build apk/ flutter build appbundle

Comments
  • Small dark theme fixes.

    Small dark theme fixes.

    Some things don't look nice yet because of hard coded colors.

    • [x] The background color for the disabled extra actions buttons don't look right.
    • [x] The selected color is almost invisible for:
      • [x] The main device page.
      • [x] The nicknames page.
      • [x] The Vive Base stations ids.
    • [x] Use light Github logo instead of dark one in section About on settings page.
    bug 
    opened by jeroen1602 5
  • (first) iOS build and updated iOS AppIconSet

    (first) iOS build and updated iOS AppIconSet

    See comments on issue #26

    PS: Am I doing this right? I've used GitHub and Pull Requests before (in projects where I am a contributor with permission to change the original repo). But I've never forked a repo and then opened a pull request. So let me know if there's anything I should do differently.

    opened by HeLau1337 4
  • (Android) add shortcuts for quicker use

    (Android) add shortcuts for quicker use

    Android has the ability to add shortcuts. This is quite useful to change the state of a lighthouse group described in #7.

    Add shortcut support for even quicker state changes. Look into adding a quick setting tile.

    enhancement 
    opened by jeroen1602 4
  • Small fix for iOS version detection

    Small fix for iOS version detection

    This PR refers to this comment on issue #26.

    The answer to // TODO: check what systemVersion returns on an actual iOS device. (comment in lib/bloc.dart) is that ios.systemVersion actually returns the string representation of a double instead of an int. So the fix for this was quite simple.

    Debugging output before I made the changes: Screenshot 2020-11-08 at 23 17 48

    There are also many auto-generated changes made by XCode during the iOS build. Most of them look like dependency-updates. But for some reason, it also automatically changed the "PRODUCT_BUNDLE_IDENTIFIER" from
    "com.jeroen1602.lighthousePm" to "com.jeroen1602.VrLighthousePm".

    I have no idea why. @jeroen1602 is this new bundle identifier correct or do you have an idea why this happened?

    opened by HeLau1337 3
  • Update the Google Play version

    Update the Google Play version

    It seems the Google Play version it severely behind all the recent changes, are there any plans to update it soon? I would prefer to not have to build it myself.

    opened by BlakCake 3
  • App does not open

    App does not open

    This is probably due to me using an old android, but: when I install the app (and give it permissions) I try to open it. Nothing happens. The app simply does not start. I sometimes see the screen flash either black or white and then return to the menu. Phone: https://www.evolveo.com/en/strongphone-q7-lte with Android 5.1.1 Version: 32bit ARM version, the 1.0.0 +2

    Tried:

    • uninstalling and reinstalling. No change -using arm64 solution but that won'T even install.
    • restarting the phone and then opening the app. Get a flash of a white scren and then nothing.
    bug 
    opened by zixinus 3
  • Fix typo in

    Fix typo in "prefered"

    The green squiggly lines in Android Studio under each occurrence of the word "prefered" (where it suggests to fix the typo) kind of triggered me ^^

    opened by HeLau1337 2
  • General question about BLE (feel free to close this)

    General question about BLE (feel free to close this)

    Hi jeroen1602

    Firstly of course thank you so much for this program, I've been struggling with the "sometimes working" power-options in SteamVR for the basestations, I tried lighthouse-manager and it also just worked sometimes, but your program works 100% of the time and it's amazing, so thank you.

    I just had a general unrelated question and I wasn't sure how to contact you, so feel free to delete this issue/close it, but if ever you can help me: I'm trying to control a Bluetooth low-energy RGB LED strip in a program I'm writing. I've managed to use gatttool on my Raspberry Pi to read all the "handles" and "UUID"s for my device, but I'm wondering, how on earth am I supposed to know which handle does what?? So more specifically for you, I'm wondering how did you figure out what "commands" to send to the base stations to turn them on/off, and to read their state??? Is it just trial and error, or there's a trick??

    Thanks a lot once again and if this sort of question is not welcome feel free to delete!! Phil

    opened by philhzss 2
  • Bump kotlin_version from 1.7.22 to 1.8.0 in /android

    Bump kotlin_version from 1.7.22 to 1.8.0 in /android

    Bumps kotlin_version from 1.7.22 to 1.8.0. Updates kotlin-gradle-plugin from 1.7.22 to 1.8.0

    Release notes

    Sourced from kotlin-gradle-plugin's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from kotlin-gradle-plugin's changelog.

    1.8.0

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Updates kotlin-stdlib-jdk8 from 1.7.22 to 1.8.0

    Release notes

    Sourced from kotlin-stdlib-jdk8's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from kotlin-stdlib-jdk8's changelog.

    1.8.0

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 1
  • Bump provider from 6.0.4 to 6.0.5

    Bump provider from 6.0.4 to 6.0.5

    Bumps provider from 6.0.4 to 6.0.5.

    Changelog

    Sourced from provider's changelog.

    6.0.5

    • Fix broken links on pub.dev
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies dart 
    opened by dependabot[bot] 1
  • Bump intl from 0.17.0 to 0.18.0

    Bump intl from 0.17.0 to 0.18.0

    Bumps intl from 0.17.0 to 0.18.0.

    Changelog

    Sourced from intl's changelog.

    0.18.0

    • Add support for minimumSignificantDigits / maximumSignificantDigits in NumberFormat.
    • Add support for plural in NumberFormat.compact() ('2 milliards').
    • Fix negative number formatting / parsing in NumberFormat.compact().
    • Add optional parameter to NumberFormat.compact() to explicitly add sign even for positive values.
    • Add decimalPatternDigits to NumberFormat which supports specifying the number of decimal digits in a decimal pattern.
    • Update to cldr 40.
    • Migrate to package:lints/recommended.yaml.
    • Remove some instances of dynamic types from the API.
    • Fix a bug caused by a typo in the plural rules calculation.
    • Unify IntlStream and StringIterator into StringStack.
    • Update to CLDR v41.
    • Add new locales: as, bm, en_NZ, fur, mg, nyn.
    • Remove unimplemented formatDuration and formatDurationFrom.
    • Make shortLocale and canonicalizedLocale implementations smarter.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies dart 
    opened by dependabot[bot] 1
  • Base Station Troubles..

    Base Station Troubles..

    White led stays on, Steam Vr cant detect them even when my Vive 3.0 trackers are on, (all paired, green light) if anyone knows how i can get this fixed please let me know

    App version: 1.2.0 Device type: LighthouseV2Device Firmware version: R: 1.1.6277248, M: 0.1.8138615, B:XX.XX.XXXXXXX Current reported state: 0x35

    App version: 1.2.0 Device type: LighthouseV2Device Firmware version: R: 1.1.6277248, M: 0.1.8138615, B:XX.XX.XXXXXXX Current reported state: 0x63

    opened by S-Rivalry 0
  • Base stations not being found

    Base stations not being found

    So one day I used lighthouse pm and it worked perfectly fine, I put the base stations on sleep mode so I can sleep and played with it the next day, I tried to put it on sleep mode now and it is not picking anything up on the scan. I have tried multiple times to rescan and refresh, I even uninstalled and reinstalled it and clear both cashes. I am using a Google pixel 6 which is up to date with all the updates and don't know what else to do, I went through the troubleshooting process too

    opened by LivingComedy 1
  • Adding a security measure(s)

    Adding a security measure(s)

    Lately, I've been noticing one of my basestations on after waking up from sleep or a nap. I get the feeling that one of my family members are currently using this app or a different one to tamper or turn them on when it's not theirs.

    I believe a pin number should be implemented or once a basestation is registered to only the user who bought it can only control it. If these two options don't work then there should be an option to any or all basestations be visible ("hidden") to said registrant by Serial number.

    opened by Former-Orien 1
  • I found my Lighthouses, then lost them

    I found my Lighthouses, then lost them

    As soon as I turn on support for vive base station, my lighthouses(vive v1) shows up. However at the same time, my phone system ask me to pair with them

    image

    Once I click CANCEL or PARI or just go back, base stations are gone

    image image

    I test this on my Redmi K30(Android 10) and HONOR X10(Android 10), all get the same issue

    opened by SongJF 0
  • Cannot add 1.0 Base Stations - Will not accept ID

    Cannot add 1.0 Base Stations - Will not accept ID

    I cannot add my 1.0 base stations, as the app keeps saying the last digits do not match what it's looking for. The ID on either of my base stations does not match the last 5 of what the app says it should be. These are the only base stations in my house and I live far enough away from people that I know it's not picking up some other base station somewhere.

    Screenshot_20210419-123140 IMG_20210419_123155 IMG_20210419_123224 Screenshot_20210419-123427 Screenshot_20210419-123405

    bug Web Android iOS 
    opened by ghost 10
Releases(1.2.0+8)
  • 1.2.0+8(Apr 14, 2021)

    Now with the recommended amount of lighthouse grouping.

    Changes:

    • Updated flutter, now with null safety.
    • Updated dependencies.
    • (Android) BETA added shortcut (Android 8.0+ (Oreo api 26)).
    • Removed unused fonts (-0.6MB save).
    • Standardized dialog button order (sorry for the inconvenience).
    • Added the ability to group devices.
    • Added option for changing update interval.
    Source code(tar.gz)
    Source code(zip)
    lighthouse_pm-1.2.0+8.arm.apk(7.17 MB)
    lighthouse_pm-1.2.0+8.arm64.apk(7.73 MB)
    lighthouse_pm-1.2.0+8.x64.apk(7.96 MB)
  • 1.1.2+7(Feb 28, 2021)

    You can no longer build the code at version 1.1.1+6 because Flutter has been updated and the Build_runner version defined in that version doesn't work anymore. Because of this we need to create a new release with updated dependencies, or else F-droid won't be able to build our source.

    Changes:

    • Open metadata page by tapping on lighthouse instead of holding power button (holding the power button still works).
    • Added support for F-droid.
    • Updated dependencies.
    Source code(tar.gz)
    Source code(zip)
    lighthouse_pm-1.1.2+7.arm.apk(7.90 MB)
    lighthouse_pm-1.1.2+7.arm64.apk(8.44 MB)
    lighthouse_pm-1.1.2+7.x64.apk(8.68 MB)
  • 1.1.1+6(Oct 2, 2020)

  • 1.1.0+4(Sep 30, 2020)

    A new release with a few bug fixes and a lot of under the hood performance fixes.

    Full changelog:

    • (Android) Close connection to open device on app close.
    • Added a troubleshooting page.
    • Troubleshooting will also show up if no device have been found after the scan has finished.
    • (Android) Added smart troubleshooting item for location permissions.
    • (Android) Added smart troubleshooting item for Bluetooth enabled.
    • Close open connection when switching to another page.
    • Close connection to discovering lighthouses on app close.
    • (Android) Hopefully fixed rare crash when closing app while scan is running.
    • Make sure no read is happening while writing.
    • (iOS) Changed app icon (is the same as Android app icon now).
    • (iOS) Changed display name ("lighthouse_pm" -> "Lighthouse PM").
    • Added a dialog for changing the state when the state is unknown.
    • Added lighthouse metadata page on long press power button.
    • Added helping out dialog to the unknown power state dialog.
    • Added the ability to nickname lighthouses.
    • Added settings page.
    • Added channel to metadata page.
    • Renamed Standby to Sleep, just like the steamVR program.
    • Added identify device extension to metadata page.
    • Added standby (motors on, laser off) state extension to metadata page.
    • Added a setting to use standby instead of sleep by default.
    • Added sleep state extension to metadata page.
    • Added on state extension to metadata page.
    • Added a standby option to the unknown state dialog.
    • Added Dark Theme using OS theme (android 10+, iOS 13+)
    • Added a lighthouseBackend for more lighthouse types in the future.
    • BETA added support for Vive base stations.
    • Added scan duration option.
    • (Android) Fixed urls not opening on Android 11.
    • Added an option to settings for selecting the preferred theme.
    Source code(tar.gz)
    Source code(zip)
    ligthouse_pm-1.1.0+4.arm.apk(8.73 MB)
    ligthouse_pm-1.1.0+4.arm64.apk(9.26 MB)
    ligthouse_pm-1.1.0+4.x64.apk(9.51 MB)
  • 1.0.1+3(Aug 31, 2020)

  • 1.0.0+2(Aug 27, 2020)

    The first stable release.

    Changelog:

    • Fixed powerstate connection staying open on rescan.
    • Fixed powerstate connection staying open on app pause.
    • Added auto scan on app launch.
    • Added side drawer.
    • Added About page.
    • Added button to launch build-in licenses page.
    • Added privacy page.
    • Fixed not able to change powerstate if lightouse is stuck at 0x01 (starting).
    • Fixed lighthouse state button being obstructed by the scan button.
    • Added new app icon.
    • (Android) Added a dialog that shows to inform a user of the use of location permissions
    • Created Bluetooth not enabled screen.
    • (Android) added option to enable Bluetooth from the Bluetooth not enabled screen.
    • (Android) Added a workaround so the app doesn't crash if closed while scanning. Still waiting on (https://github.com/pauldemarco/flutter_blue/issues/649) for an actual fix.
    Source code(tar.gz)
    Source code(zip)
    lighthouse_pm-1.0.0+2.arm.apk(6.64 MB)
    lighthouse_pm-1.0.0+2.arm64.apk(6.97 MB)
    lighthouse_pm-1.0.0+2.x64.apk(7.14 MB)
  • 0.0.1+1(Jul 18, 2020)

    The first working version of the lighthouse power management app.

    Since this is the first version there isn't really a changelog to post here so a small future list.

    • Detect lighthouses in the local area.
    • See the power state of the lighthouse update live inside the app.
    • Change the power state of a lighthouse.

    If you are wondering which version you need, then you probably need the arm.arm64 version unless you know that your device is running x86(x64) architecture.

    Source code(tar.gz)
    Source code(zip)
    lighthouse_pm-0.0.1+1.arm.arm64.apk(11.22 MB)
    lighthouse_pm-0.0.1+1.x64.apk(6.45 MB)
Owner
Jeroen
Student software engineering at Amsterdam University of Applied Sciences.
Jeroen
Let's makeover your backyard with the power of community

Let's makeover your backyard with the power of community

Betaoverflow 7 Dec 28, 2022
ReverseHand is a mobile application that was created with the vision of helping to reduce any power imbalances that consumers may face when seeking trade services.

ReverseHand is a mobile application that was created with the vision of helping to reduce any power imbalances that consumers may face when seeking trade services. To achieve this, the mobile application allows consumers to make their needs for services known in the form of job listings, where tradesmen are able to place bids in order to be chosen and hired.

COS 301 - 2022 7 Nov 2, 2022
(Complete flutter application) Exam and training app as social media, prepared with Firebase backend services, Bloc State management, Singleton design pattern, Unit and widget tests, firebase mocking, Custom local libraries, etc.

(Complete flutter application) Exam and training app as social media, prepared with Firebase backend services, Bloc State management, Singleton design pattern, Unit and widget tests, firebase mocking, Custom local libraries, etc.

Ismael Shakverdiev 45 Jul 14, 2022
The Movie DB App with Flutter GetX State Management

The Movie DB App with Flutter GetX A new Flutter TheMovieDB Application example with GetX State Management Register and get Api Key from The Movie DB

Hazar Belge 73 Dec 24, 2022
A simple fully working weather app with state management build using flutter.

A simple fully working weather app with state management build using flutter.

null 5 Apr 12, 2022
Flutter shopping app with Getx for State management, Dio for APIs and Hive for the local database.

Created By Sajjad Javadi Email: [email protected] Show some ❤️ and star the repo to support the project Flutter Shopping app example In this pr

null 17 Nov 23, 2022
Flutter State Management: Movie App with Provider, Riverpod, flutter_bloc & more

Flutter State Management: Movie App with Provider, Riverpod, flutter_bloc & more This reference project shows how to implement a (Netflix-inspired) mo

Andrea Bizzotto 427 Dec 29, 2022
A recipe book app, made with Flutter and architected with clean architecture, using the MobX as state management.

recipe_book_app A new recipe book Flutter project, architected with clean architecture and state managed with MobX. Bases: Idea inpsired by Recipe-App

André I. Smaniotto 1 Jan 5, 2022
Flutter app To list down your Daily task ,made using State manager i.e. Provider package

Flutter app To list down your Daily task ,made using State manager i.e. Provider package

ROHIT_GADHAVE 1 Jan 23, 2022
Complete Flutter app example, with AsyncRedux state management

Complete Flutter app example, with AsyncRedux state management. Can also be used as a template to start a new project.

Marcelo Glasberg 7 Nov 2, 2022
FREE FLUTTER QUIZ APP WITH GETX STATE-MANAGEMENT

This is free code for a flutter quiz app. all you need is just set up firebase for this project. Home

Eshan Nimesha 65 Jan 7, 2023
Building a simple Flutter app for practicing and understanding the GetX State Management and Route Management.

GetX State Management Demo with full understanding of State Management (with GetBuiler, GetX, Obx), Route Management and SnackBar.

TAD 4 Oct 2, 2022
A social media application developed using Flutter and GetX state management

A social media application developed using Flutter and GetX state management

Nikhil Rajput 39 Dec 29, 2022
App-flutter-travel-app - Travel App Built Using Flutter

App-flutter-travel-app - Travel App Built Using Flutter

Sangvaleap Vanny 69 Dec 4, 2022
The Medito app is a 100% free meditation app built with flutter. The app is available on Android and iOS.

Medito App Meditation can positively transform people's lives. We believe no one should have to pay for it. We are the Medito Foundation, and we've bu

Medito Foundation 438 Dec 26, 2022
Flutter Responsive Game of Thrones Flutter App Flutter Responsive Game of Thrones Flutter App

got_2019 A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Pawan Kumar 16 Jun 9, 2022
Flutter Gender Prediction App Flutter Gender Prediction App

gender_predictor A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Pawan Kumar 30 May 31, 2022
Flutter Login Page Bloc Pattern App Flutter Login Page Bloc Pattern App

gdgbloc A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Pawan Kumar 99 Oct 20, 2022