Quartermaster

Rating: 
4.833335
Your rating: None Average: 4.8 (6 votes)

Quartermaster is a native Sailfish OS Homeassistant client which aims to provide the same functionality like the offical Android/iOS app.
Homeassistant 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.

 

Sailfish OS

This application is tested with Sailfish OS Versions:

  • 3.4.0.24 (Pallas Yllästunturi)

 

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 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
  • Homeassistant cloud support (not tested)
  • Logging of API traffic for development purpose (deactivated by default)
  • Update notification if an update of Homeassistant is available.
  • Websocket connection for live updates of entity states

 

Planned Features

  • Two-Factor authentication to get access token
  • Autodetect Homeassistant instance in local network during setup
  • Encryption of API traffic (webhook api)
  • Notifications from Homeassistant instance
  • Customizable overview page (add special entities to the layout)
  • Cover actions
  • Automatically switch connection of instance from remote to local url if connected to home network
  • 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
  • all other feature requests

 

Translations

Available translations:

  • English
  • German

If you missing your native language you are welcome to support this project with your translation.

 

Homeassistant Configuration

 

Components

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

  • api
  • mobile_app
  • webhook

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

 

Remote Access

You can get remote access by obtaining a Homeassistant Cloud account (paid subscription needed) or you need to make the instance 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 Homeassistant 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.

 

Authentication

Authentication is only possible with a Long-Lived Access Token at the moment. You can create one in profile settings on your Homeassistant 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 Homeassistant is mandatory.

 

Wifi Tracking

To work with the wifi tracking you need to define zones inside your homeassistant instance. 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

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
Changelog: 
* 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

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 ...