Quartermaster

Rating: 
4.69231
Your rating: None Average: 4.7 (13 votes)

Quartermaster is a native Sailfish OS Home Assistant client which aims to provide the same functionality like the offical Android/iOS app.
Home Assistant is an open source home automation platform written in Python.

Current state of development

The development is in alpha state at the moment. Not everythings works perfectly and needs testing.

Update from 0.1.xx

When update to version 0.2 you need to do a new device registration.

I lost access permission to the secrets stored in Sailfish Secrets Collection during development process. Maybe Bug / wrong usage?

As a workaround for this problem the app will create a new secrets collection.

Sorry for the inconviniences.

Implemented Features

Here is a list of all implemented features so far. Not all features listed below are finished or error free and are still in active development.

Features:

  • Setup wizard for first start
  • Authentification with Long-Lived Access Token (see "Authentication" section)
  • Secure storage of all secrets using Sailfish-Secrets
  • Device tracking using GPS (not tested well)
  • Device tracking using available and connected wifi networks
  • Device sensors: 
    • Battery level
    • Battery charging
       
  • Entity/Devices control: 
    • Automation
    • Cameras (only single pictures)
    • Climate devices (partial)
    • Groups
    • Lights
    • Persons
    • Sensors
    • Switches
    • Zones
       
  • Home Assistant cloud support (not tested)
  • Logging of API traffic for development purpose (deactivated by default)
  • Update notification if an update of Home Assistant is available.
  • Websocket connection for live updates of entity states
  • Backup & Restore of settings (Wifi, more to come)
  • Notifications from Home Assistant Server (see section "Home Assistant -> Notifications")
  • Automatically switch connection to server from remote to local url if connected to home network
  • Browse error log of Home Assistant (temporary disabled >= 0.2.0)
  • Check if Home Assistant configuration is valid (temporary disabled >= 0.2.0)
  • Internal web view of Home Assistant UI using Gecko engine (seperate login required / not very performant) (temporary disabled >= 0.2.0)

Planned Features

  • Two-Factor authentication to get access token (Qt OAuth2 functionality needs at least Qt 5.8 / Sailfish OS 3.4 has antique Qt 5.6 libraries)
  • Autodetect Home Assistant server in local network during setup
  • Encryption of API traffic (webhook api)
  • Cover actions
  • Access to history log
  • More devices and entity types (need you help because I don't have all of them)
  • More device sensors if requested
  • Internal web view of Home Assistant UI without extra login
  • all other feature requests

Translations

Available translations:

  • English
  • German

Your language is not available? You are welcome to support this project by translating it on my self hosted Weblate server:

https://weblate.nubecula.org/engage/harbour-quartermaster/

https://weblate.nubecula.org/engage/harbour-quartermaster/

Reset Application

It can happen in some cases that Quartermaster looses the access to the stored secrets on the device. These are stored with "Sailfish Secrets".

If you facing problems in setup wizard you can reset the application with the button on the intro page.

When access to the main page is still possible you can reset the registration of the device in device info page in application settings.

Home Assistant Configuration

Components

To get this app working with Home Assistant you need to activate the following components:

  • api
  • mobile_app
  • webhook
  • websocket
  • config

If you have "default_config:" in your configuration.yaml these components should already be active. If you need help please refer to Home Assistant Documentation.

It is also recommend to add the internal and external url in the configuration.yaml:

homeassistant:
    internal_url: "http://server:8123"
    external_url: "http://home.nubecula.org:8123"

Remote Access

You can get remote access by obtaining a Home Assistant Cloud account (paid subscription needed) or you need to make the server accessible by internet. For self hosting you need a dedicated IP by your provider (not shared one) and a dynamic DNS service because domain name is mandatory since version 0.77. Please refer to Home Assistant Documentation for details.

I don't have a cloud account, so no guarantee that this works with this app. In theory it should, all functionality is available for this.

Notifications

Notifications can be received via websocket connection. At the moment only global notifications works (not device specific)

To send a notification you need to call the service "notify.notify" in Home Assistant:

service: notify.notify
data:
	message: Tina comes home!
	title: Tina Location

The values "message" and ""title" need to have data!

Please refer to Home Assistant Documentation for details.

Authentication

Authentication is only possible with a Long-Lived Access Token at the moment. You can create one in profile settings on your Home Assistant web interface.

Device Tracking

Device tracking is turned of by default. You can activate it in the settings. Keep in mind that tracking will increase battery usage! For device tracking a remote access to Home Assistant is mandatory.

Wifi Tracking

To work with the wifi tracking you need to define zones inside your Home Assistant server. Afterwards you can add wifi networks (AP) to the different zones in application settings.
When your device connects to a tracked network, the app will send the location coordinates of the zone linked to this network as the new device location.

Development Support

You can help with the development of Quartermaster.

Entities / Devices

If you miss some functionality of some devices or you have an unsupported one, you can provide necessary data for development. In application settings you should turn on API logging to log all api traffic. Don't turn this on all the time, because it will generate a lot of data over time.

The files are stored in "Documents/harbour-quartermaster" folder. These files you can pack into an issue report here on GitHub.

Intention of this project

This app is part of my plan to replace all android apps I use with native ones. If they don't exist, I will try to create one.

Source code is available on Github:

https://github.com/black-sheep-dev/harbour-quartermaster

Donation

If you like my work you can buy me a beer.

Donate

Donate using Liberapay

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-quartermaster-0.1.0-1.armv7hl.rpm297.39 KB13/10/2020 - 21:44
File harbour-quartermaster-0.1.1-1.armv7hl.rpm297.98 KB15/10/2020 - 20:34
File harbour-quartermaster-0.1.2-1.armv7hl.rpm298.59 KB16/10/2020 - 00:02
File harbour-quartermaster-0.1.3-1.armv7hl.rpm298.88 KB17/10/2020 - 10:57
File harbour-quartermaster-0.1.4-1.armv7hl.rpm300.5 KB18/10/2020 - 19:49
File harbour-quartermaster-0.1.5-1.armv7hl.rpm300.81 KB19/10/2020 - 21:11
File harbour-quartermaster-0.1.6-1.armv7hl.rpm301.17 KB22/10/2020 - 15:33
File harbour-quartermaster-0.1.7-1.armv7hl.rpm301.52 KB22/10/2020 - 18:54
File harbour-quartermaster-0.1.8-1.armv7hl.rpm301.54 KB24/10/2020 - 23:26
File harbour-quartermaster-0.1.9-1.armv7hl.rpm305.36 KB25/10/2020 - 12:32
File harbour-quartermaster-0.1.10-1.armv7hl.rpm309.98 KB25/10/2020 - 20:19
File harbour-quartermaster-0.1.11-1.armv7hl.rpm312.28 KB27/10/2020 - 01:35
File harbour-quartermaster-0.1.12-1.armv7hl.rpm315.82 KB27/10/2020 - 22:44
File harbour-quartermaster-0.1.13-1.armv7hl.rpm323.95 KB29/10/2020 - 22:28
File harbour-quartermaster-0.1.14-1.armv7hl.rpm325.5 KB30/10/2020 - 13:41
File harbour-quartermaster-0.1.16-1.armv7hl.rpm325.95 KB30/10/2020 - 22:28
File harbour-quartermaster-0.1.17-1.armv7hl.rpm248.86 KB22/12/2020 - 20:31
File harbour-quartermaster-0.1.18-1.armv7hl.rpm248.97 KB10/01/2021 - 11:29
File harbour-quartermaster-0.1.20-1.armv7hl.rpm249.05 KB21/02/2021 - 00:05
File harbour-quartermaster-0.1.20-1.i486.rpm278.94 KB21/02/2021 - 00:05
File harbour-quartermaster-0.1.21-1.armv7hl.rpm249.32 KB27/02/2021 - 18:50
File harbour-quartermaster-0.1.22-1.armv7hl.rpm250.09 KB07/03/2021 - 22:46
File harbour-quartermaster-0.1.22-1.i486.rpm280.18 KB07/03/2021 - 22:46
File harbour-quartermaster-0.2.0-1.armv7hl.rpm252.07 KB28/03/2021 - 09:43
File harbour-quartermaster-0.2.0-1.i486.rpm280.09 KB28/03/2021 - 09:43
File harbour-quartermaster-0.2.1-1.armv7hl.rpm253.09 KB01/04/2021 - 22:24
File harbour-quartermaster-0.2.1-1.i486.rpm281.66 KB01/04/2021 - 22:24
File harbour-quartermaster-0.2.2-1.armv7hl.rpm253.39 KB02/04/2021 - 15:47
File harbour-quartermaster-0.2.2-1.i486.rpm281.69 KB02/04/2021 - 15:47
File harbour-quartermaster-0.2.3-1.armv7hl.rpm253.92 KB02/04/2021 - 22:06
File harbour-quartermaster-0.2.3-1.i486.rpm281.34 KB02/04/2021 - 22:06
File harbour-quartermaster-0.2.4-1.armv7hl.rpm253.32 KB05/04/2021 - 22:14
File harbour-quartermaster-0.2.4-1.i486.rpm281.18 KB05/04/2021 - 22:14
File harbour-quartermaster-0.2.5-1.armv7hl.rpm253.53 KB08/04/2021 - 17:04
File harbour-quartermaster-0.2.5-1.i486.rpm281.47 KB08/04/2021 - 17:04
File harbour-quartermaster-0.2.6-1.aarch64.rpm265.81 KB27/05/2021 - 22:24
File harbour-quartermaster-0.2.6-1.armv7hl.rpm253.61 KB27/05/2021 - 22:24
File harbour-quartermaster-0.2.6-1.i486.rpm281.67 KB27/05/2021 - 22:24
File harbour-quartermaster-0.2.7-1.aarch64.rpm266.68 KB29/05/2021 - 11:50
File harbour-quartermaster-0.2.7-1.armv7hl.rpm253.45 KB29/05/2021 - 11:50
File harbour-quartermaster-0.2.7-1.i486.rpm282.31 KB29/05/2021 - 11:50
File harbour-quartermaster-0.3.0-1.i486.rpm286.1 KB18/01/2022 - 23:15
File harbour-quartermaster-0.3.0-1.armv7hl.rpm261.02 KB18/01/2022 - 23:15
File harbour-quartermaster-0.3.0-1.aarch64.rpm269.73 KB18/01/2022 - 23:15
File harbour-quartermaster-0.3.1-1.armv7hl.rpm261.98 KB18/05/2022 - 10:22
File harbour-quartermaster-0.3.1-1.aarch64.rpm273.44 KB18/05/2022 - 10:22
File harbour-quartermaster-0.3.1-1.i486.rpm289.6 KB18/05/2022 - 10:22
Changelog: 
* Wed May 18 2022 Black Sheep <blacksheep@nubecula.org> 0.3.1-1
- Add Dutch translation (by rubdos)

* Tue Jan 18 2022 Black Sheep <blacksheep@nubecula.org> 0.3.0-1
- Toggle switch / light directly in list view by clicking the icon
- Color wheel for selecting light color
- Switched to id based translation
- Preperations for Sailjail
- Fixed Home Assistant api changes
- Bugfixes, Bugfixes, Bugfixes

* Sat May 29 2021 Black Sheep <blacksheep@nubecula.org> 0.2.7-1
- Fixed bug with update notification
- Clean url from unnecessary slashes (thanks to rubdos for his bug report)

* Thu May 27 2021 Black Sheep <blacksheep@nubecula.org> 0.2.6-1
- Fixed bug with url when not using port during setup (thanks to rubdos for his report)
- Give GitHub star using SailHub in about page
- aarch64 build

* Thu Apr 08 2021 Black Sheep <blacksheep@nubecula.org> 0.2.5-1
- Fixed bug in setup wizard

* Mon Apr 05 2021 Black Sheep <blacksheep@nubecula.org> 0.2.4-1
- Fixed bug hardlock the app when using websocket
- UI fixes
- Multiple bugfixes

* Fri Apr 02 2021 Black Sheep <blacksheep@nubecula.org> 0.2.3-1
- Changed connection info to connect (now with complete URI)
- Translation fixes

* Fri Apr 02 2021 Black Sheep <blacksheep@nubecula.org> 0.2.2-1
- Bugfix with hostname / url validation fixed
- Changed connection input naming from hostname to url in UI to clarify the function

* Thu Apr 01 2021 Black Sheep <blacksheep@nubecula.org> 0.2.1-1
- Removed page busy indicator on overview page after app initialiazed
- Add option to connection settings page to choose the preffered network connection method

* Sun Mar 28 2021 Black Sheep <blacksheep@nubecula.org> 0.2.0-1
- Complete rewrite of application core
- New improved setup wizard
- Change to local connection when at home
- Ui improvements
- Translation fixes
- Bugfixes
- Disabled WebView (not working with 4.0.1.48 Koli at the moment)
- Hopefully not to many new Bugs

* Sun Mar 07 2021 Black Sheep <blacksheep@nubecula.org> 0.1.22-1
- Add reset button for secret storage and config to intro page of setup wizard
- Changed busy indicator on entry page to keep access to the pull down menu
- Update to the instruction if facing errors
- Bugfixes
* Sat Feb 27 2021 Black Sheep <blacksheep@nubecula.org> 0.1.21-1
- Fixed entity list pages not available
- Bugfixes

* Sat Feb 20 2021 Black Sheep <blacksheep@nubecula.org> 0.1.20-1
- Change start page to entities list page
- Code cleanup

* Sun Jan 10 2021 Black Sheep <blacksheep@nubecula.org> 0.1.18-1
- Improvements of Web View
* Tue Dec 22 2020 Black Sheep <blacksheep@nubecula.org> 0.1.17-1
- Fixed for version number layout change of Home Assistant

* Fri Oct 30 2020 Black Sheep <blacksheep@nubecula.org> 0.1.16-1
- Fixed desktop file for use of webview

* Fri Oct 30 2020 Black Sheep <blacksheep@nubecula.org> 0.1.15-1
- Added new WebView component to show Home Assistant UI inside app
- Fixed not renew device registration if webhookId expiered (e.g. at server restart)

* Fri Oct 30 2020 Black Sheep <blacksheep@nubecula.org> 0.1.14-1
- Check if Home Assistant configuration is valid
- UI improvements

* Thu Oct 29 2020 Black Sheep <blacksheep@nubecula.org> 0.1.13-1
- Access Home Assistant informations in settings
- Browse Home Assistant error log

* Tue Oct 27 2020 Black Sheep <blacksheep@nubecula.org> 0.1.12-1
- Homezone settings and detection
- UI improvements

* Mon Oct 26 2020 Black Sheep <blacksheep@nubecula.org> 0.1.11-1
- Improved websocket connection
- Basic Notifications over Websocket (see README on GitHub for details)
- Code cleanup
- Translation fixes

* Sun Oct 25 2020 Black Sheep <blacksheep@nubecula.org> 0.1.10-1
- Backup & Restore function for settings (Wifi only at the moment)

* Sun Oct 25 2020 Black Sheep <blacksheep@nubecula.org> 0.1.9-1
- Websocket integration for live entity states (off by default -> see settings)
- Code cleanup

* Sat Oct 24 2020 Black Sheep <blacksheep@nubecula.org> 0.1.8-1
- Fixed bug in webhook api using gzip compression

* Thu Oct 22 2020 Black Sheep <blacksheep@nubecula.org> 0.1.7-1
- Increased maximal length of toplevel domain in connection settings from 5 to 8

* Thu Oct 22 2020 Black Sheep <blacksheep@nubecula.org> 0.1.6-1
- API request with gzip compression support to save bandwidth

* Mon Oct 19 2020 Black Sheep <blacksheep@nubecula.org> 0.1.5-1
- Bugfixes
- Improved UI components

* Sun Oct 18 2020 Black Sheep <blacksheep@nubecula.org> 0.1.4-1
- Settings for automatic entity updates when showing up (List/Single). This is off by default

* Sat Oct 17 2020 Black Sheep <blacksheep@nubecula.org> 0.1.3-1
- Bugfixes

* Thu Oct 15 2020 Black Sheep <blacksheep@nubecula.org> 0.1.2-1
- Wifi tracking with available networks added

* Thu Oct 15 2020 Black Sheep <blacksheep@nubecula.org> 0.1.1-1
- Input validation
- Improved setup wizard

* Tue Oct 13 2020 Black Sheep <blacksheep@nubecula.org> 0.1.0-1
- Initial release

Comments

llv95dno's picture

Hi, since a while it seems that Quartermaster has problem to remember the long-lived access tokens and I am requiered to re-enter this each time I start the app, which is quiet enoying.

Termitebug's picture

I'm having problems with the app. Quatermaster is showing welcome screen and cannot find my HA 2023.2 instance. Native SF browser access works. I have tried app reset button many times without working result and also found nothing in .local or .config subdirectories. Should there be?

pasko's picture

Hi.

 

First of all thank you for this nice app. I think it's very useful.

But I have a question:

Web access from the app stopped working some time ago, and now I can't log into the main HA page neither with the Sailfish Native Browser or the web view inside the app. The long-lived token and all the other features of the app work perfect.

Is this a known issue (related to gecko engine) or may I check something else?

I remember that it worked some time ago.

Best regards.

black_sheep_dev's picture

Hi,
I noticed the same issue. I need to investigate this. It seems to be related to building the app for Koli. In another app from me, built for 3.4 everything works. I can open Home Assitant in native browser without problems.

Malakay's picture

Yeah, right question :) i ment those smart home devices with my question. I want to know what devices can I buy to be compatible with your app :) when I realise that devices I need are supported, I will start to fiddle with :)

Malakay's picture

Hi black_sheep_dev,

i just want to ask how to check compatibility of some device with this app. Which devices (mark, model etc.) are compatible? I have Raspberry Pi in spare, so I think about making smart home. But i don´t know which devices will work with your app. Thanks for the answer :)

black_sheep_dev's picture

Hi,

it doesn't matter on wich hardware you run the Home Assistant server! For my app it makes no difference.

The other question is, if your smart home devices are supported. For this check the Home Assitant integration page. A lot of devices are supported (maybe not 100%) in my app. Check my list of supported devices in the description.

But if you run in trouble with some devices, don't hessitate to ask me for help. I want to support as much devices and functions as possible!

daywalker's picture

for what reason does this app depend on sailfish-mdm package?

black_sheep_dev's picture

I used the mdm framework to get some device data e.g. Device UID for registration to Home Assistant and the sensor data like battery status, etc.. Is it a problem? It is an easy way to get this info. Are there any alternatives to get this data?

llv95dno's picture

Thank you, no rush. I wish you a merry christmas!

llv95dno's picture

It worked allright, no problem to connect. But after last version, it does not connect and refers to "Version of Home Assistant is incompatible with this app" Hass.io does not need a special account, it is just HA running with a docker container .

black_sheep_dev's picture

Jup I found the problem, they have changed the versioning in Home Assistant. 0.111.0 -> 2020.12.0.

I will fix it as soon I get my SDK running again. At the moment I cannot install it because of openssl > 1.0 issue.

llv95dno's picture

Hi, it seems that it does not accept Hass.io version 2020.12.0.

black_sheep_dev's picture

Hi there, did it work in a previous version? I don't have an hass.io account.

pasko's picture

Hi.

Thank you very much for the app.

Best regards.

robthebold's picture

In connection settings, quartermaster doesn't like my local domain -- I think using ".control" is too long for its taste. Can this limitation be lifted?

black_sheep_dev's picture

Increased top level domain to 8 characters in 0.1.7

piggz's picture

Very nice, thanks for this, was easy to set up, I just had to enable the mobile app plugin on my home assistant.

schmolle's picture

Nice one! Connected at the firs attempt. Danke!

Edit: The link in the description points to your "Kasa"-project instead of Quartermaster.

black_sheep_dev's picture

Thank you!

Damn Copy & Paste ...