https://github.com/jeroen1602/lighthouse_pm
A Flutter app for controlling the power state of Valve Index® lighthouses
https://github.com/jeroen1602/lighthouse_pm
android android-app bluetooth-low-energy lighthouse steamvr valve valve-index-lighthouses
Last synced: 6 months ago
JSON representation
A Flutter app for controlling the power state of Valve Index® lighthouses
- Host: GitHub
- URL: https://github.com/jeroen1602/lighthouse_pm
- Owner: jeroen1602
- License: other
- Created: 2020-07-17T17:16:26.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-24T05:50:48.000Z (7 months ago)
- Last Synced: 2025-03-29T01:02:45.493Z (6 months ago)
- Topics: android, android-app, bluetooth-low-energy, lighthouse, steamvr, valve, valve-index-lighthouses
- Language: Dart
- Homepage:
- Size: 12.3 MB
- Stars: 183
- Watchers: 3
- Forks: 10
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Lighthouse Power Management
[](https://codecov.io/gh/jeroen1602/lighthouse_pm)
Power management app to control the Valve Index® lighthouses from your phone.
Inspired by [lighthouse-v2-manager](https://github.com/nouser2013/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 also supports Vive Base stations.
**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](https://github.com/jeroen1602/lighthouse_pm/issues) 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.### Google Play
**NOTE** The Google Play version may be behind by a version because of the approval process.
*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](https://github.com/jeroen1602/lighthouse_pm/releases) page
and [sideload](https://www.howtogeek.com/313433/how-to-sideload-apps-on-android/) 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](CONTRIBUTING.md).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](https://beebom.com/how-to-sideload-apps-iphone-ios-10-without-jailbreak/)" it
onto your iDevice.## Building
Because the app uses generated code you will first need to
run `dart run build_runner build` or `dart 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 `sqlite3.dart` and `drift_worker.js`
and place these in the web folder. This can be done from
[here](https://github.com/simolus3/sqlite3.dart/releases) for `sqlite3.dart` and
[here](https://github.com/simolus3/drift/releases) for `drift_worker.js`.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](https://github.com/jeroen1602/flutter_web_bluetooth/tree/master/chrome-experimental-launch).### Linux Builds
For linux builds you no longer need the sqlite3 dev library on your computer as it now comes with
the `sqlite3_flutter_libs` library.The database for user settings is stored under `~/.local/share/lighthouse_pm/settings.sqlite` feel
free to remove it if you need to reset 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`