Get Started

This app is only available on Android

To get started you need to have your MQTT broker up and running, there is tons of great guides on the internet for settings this up.


If you haven't, you obviously need to install the app on your phone (from here).

This page will be updated regularly with more and new information

Background

My name is Joakim, from Gothenburg, Sweden. 28 years old as I write this.
This app was first created for my own needs and just as a funny thing to use together with my smart-home. After a while I uploaded it to Google Play so more people can use it and from there I have gotten alot of suggesstions to make it better and more useful for everybody out there. But there is still many features left to implement!

So just to make i clear, the app is still work in progress, and sometimes I publish a couple of updates within a week, and sometimes it can take over a month before publishing even a rather small update.

I do this for fun and on my spare time, therefore it can take som time to create some features :)



Which types of "Alarm Events" that can be used can be read about further down this page

Connection

To get the MQTT Communication started, follow these steps

  1. Click on the navigation menu

  2. Click Settings

  3. Click MQTT

  4. Click Host

  5. Enter your host URL (without tcp://) and then your port

  6. Click OK

  7. If no authentication is required, a notification will hopefully say "Connection successful". If not, check log in settings

  8. Else you will need to enter your credentials under Identity

  9. If Client ID is left empty, a unique Client ID will be created when connected


The app won't keep the connection alive, for every message that is sent a new connection is established and then disconnected when the current message is sent.

If "WiFi only" is selected, the app will only try and connect to MQTT-broker when a WiFi network is connected within 30 seconds.

The app will automatically recognize the host as a "WiFi only" if any of below IP-adresses is used even if WiFi only is unchecked:

  • 192.168.x.x

  • 10.0-255.x.x

  • 172.16-32.x.x

  • 100.64-127.x.x


Alarm events

The "Alarm Events" is what it sounds like, events when the app will publish to your broker.

You can set default values for Topic, Payload and QoS. This will be edited at MQTT Settings -> MQTT Topics.
There you can also set which events that should be included in newly created alarms everytime (alarm defaults).

Even if you have some default events, you can edit or delete these within every specific alarm at "MQTT Events" when editing or adding a new alarm. And of course, you will be able to add other events.

When checking "No alarm, publish MQTT only", the app will only publish a message in the background at the specified time. For this to work you must add the event "Alarm Dismissed".


These type of events are available right now (2020-11-16);

Alarm Dismissed
Alarm Snoozed
Alarm Starts
Before Alarm
Alarm Activated
Alarm Deactivated
After Alarm Dismissed
After Alarm Snoozed
Snooze Count

Timer Started
Timer Finished
Timer Resetted
Timer Paused

Stopwatch started
Stopwatch paused
Stopwatch Finished
Stopwatch Reset
Stopwatch Resumed


To these events you can also select different types of payload;

Custom Payload
Custom Payload JSON
Current Time
Current Date
Current Date and Time
Alarm trigger time
Current Timestamp
Alarm Trigger Timestamp
Snooze Minutes

For "Before Alarm", "After Alarm Dismissed" and "After Alarm Snoozed" you can also specify how many minutes before/after this message will be publish

Payloads

Here is a description for all types of payload, and how they are formatted.


Every alarm that you set have a unique ID within the app, this can be seen when clicking on "MQTT Events" when editing an alarm.
All examples below will also be present when editing or adding a new event, and then with the real live values!

Custom Payload
Your own choosen text

Custom Payload
Your own choosen text, but in JSON-format like this: {"id": "0", "active": true, "value":"*custom message*"}

Current Time
The payload will contain the same time that the message is sent. e.g. if current time is 13:55 the payload will look like this: {"id": "0", "active": true, "value":"13:55"}

Current Date
The payload will contain the same date that the message is sent. e.g. if current date is 2020-03-02 the payload will look like this: {"id": "0", "active": true, "value":"2020-03-02"}

Current Date and Time
The payload will contain the same date and time that the message is sent. e.g. if current date is 2020-03-02 13:55 the payload will look like this: {"id": "0", "active": true, "value":"2020-03-02 13:55"}

Alarm Trigger Time
The payload will contain the time that the alarm will be triggered at. e.g. if you have set the alarm to 06:55, the payload will look like this: {"id": "0", "active": true, "value":"06:55"}

Current timestamp
The payload will contain the current date and time when message is sent, but in the timestamp format. e.g. if the date and time is 2020-03-02 13:55 UTC the payload will look like this: {"id": "0", "active": true, "value":"1583157300"}

Alarm Trigger Timestamp
The payload will contain the date and time when the allarm will be triggered, but in timestamp format. e.g. if the date and time for the alarm is set to 2020-03-02 06:55 UTC the payload will look like this: {"id": "0", "active": true, "value":"1583132100"}

Snooze Minutes
The payload will contain the amount of minutes the alarm is snoozing. The payload will look like this: {"id": "0", "active": true, "value":"5"}

TLS

This is in BETA-stage, it's only tested with self-signed openSSL certificate and mosquitto broker.

I'm using this guide (http://www.steves-internet-guide.com/mosquitto-tls/) for creating a certificate to use with mosquitto and openSSL.

When setting "Common Name" in step 2 and step 4, instead of ws4 you must enter your domain name (the same as your host without tcp/ssl).


When all steps are done you need to export your ca.crt file onto your Android device. Install it (by clicking on it with your file explorer, I'm using Google Files in the picture).

And that's it, just make sure you use the same Common Name domain as host in the app MQTT-settings. And remember that your port also should be different from before!