[NO LONGER SUPPORTED - 16/04/2018] - Message Central

Hi all

I can no longer support development of this app in SmartThings.
Most of my devices are now migrated to the Hubitat environment and rather than support two different versions I have decided to concentrate on the Hubitat version
I’ll leave the GitHub files and links for a while and you are welcome to download existing versions if you wish

Andy


I’ve had my ST system for more than a year now and have had great success with WAF (Wife Approval Factor) by getting the system to ‘announce’ things like ‘the washer has finished’ and ‘the dryer has finished’ or ‘there is someone at the door’

I have used quite a few community created smartapps along the way to get my system to work how I want it.
(Kudos goes to this excellent community for the help it gives everyone)

I have also created a few of my own to do specific jobs when I couldn’t find one that matched my needs or I thought the existing offerings were too complicated.
I thought maybe some of them might be useful for other people

So here is one of them…

Message Central. (Parent & Child)

I don’t claim it to be better than any other speaking or messaging app, it just a simple thing that gets the job done (for me at least!) and brings everything together under one ‘parent’

OK… what does it do?
It makes your home ‘speak’ through Sonos or equivalent speakers when certain events happen
(I use a set of Jam WiFi speakers with the excellent ‘MediaRenderer’ by Ulises Mujica)

It can also be used to send SMS or Push messages for the same events

You can select various inputs and actions so that the system will ‘announce’ events.

Triggers:

Button - Pushed/Held
Switch - On/Off
Contact - Open/Close
Contact - Left open too long
Presence - Arrival/Departure
Water - Wet/Dry
Time - Schedule a reminder at configured time - schedule a second reminder if this is missed due to absence.
Time - if contact open (I use this to check the shed door is closed at night.)
Power - Alert when power goes below or above a threshold
(And optionally ‘stays that way’ for a configurable amount of time - perfect for laundry appliances that drop below the threshold a couple of times before finally staying there when finished)
Motion - on ‘active’ or on ‘inactive’
Temperature - either above or below a set point.
Mode change
Routine run
Appliance Power Monitor - This works the same as the power monitoring except that the power drawn MUST go above a threshold before monitoring starts

All of these can be restricted by mode, presence, time, ‘enable/disable’ virtual switch(es) and days of the week.

Debug logging is switchable for each child so once tested can be switched off to reduce clutter in the logs

I have added a few things that from my own experience make the app a little better for me, like being able to reduce speaker volume during ‘quiet’ times in the evening when I don’t want ST to shout :slight_smile:
I added the ability to have a virtual switch to disable announcements for when visitors stay with babies that have an afternoon nap.
I added individual enable/disable switches so you can disable a single announcement temporarily without having to delete the child app or silence the whole system.

I have added configurable delays both before and after messages to help prevent truncation and to stop repeated messages within a number of minutes. (useful for ‘door’ announcements when the break-beam or pressure mat is repeatedly triggered or laundry announcements every 1/2 hour if nobody turns the appliance off)

I have now added a number of optional variables you can use in either voice or text messages:

%time% - Replaced with current time in 12 or 24 hour format (Switchable)
%day% - Replaced with current day of the week
%date% - Replaced with current day number & month
%year% - Replaced with the current year
%weather% - Replaced with the current weather forecast
%opencontact% - Replaced with a list of configured contacts if they are open
%device% - Replaced with the name of the triggering device
%event% - Replaced with what triggered the action (e.g. On/Off, Wet/Dry)

I have worked quite a lot on making these variables sound more like ‘proper English’
e.g. Time - 10:00 is converted to ‘Ten o’clock’ instead of the more usual ‘ten zero, zero’ or converted to ‘Ten hundred hours’ if using 24hr format
e.g. Date - 20/12 is converted to ‘The twentieth of December’ instead of just ‘20 December’
(I’m a ‘Brit’ so we write the date the correct way :slight_smile: )

Update 16/02/2018

Added a second presence sensor restriction - Now can restrict by two.
1 at home and another away or 2 at home/away
Gui - Slight revamp

Second Child App
I have added a second child app.
This one allows you to configure multiple missed message alerts.
If you missed any timed messages while away then you will receive a list upon your return

As it’s a parent/child app there are two (or three if using optional Missed Messages app) parts to install…

Parent - Current Version: 1.0.2 - This must also be published in the IDE

https://github.com/CobraVmax/SmartThings/tree/master/smartapps/cobra/message-central.src

Message Central Child - Current Version: 3.1.1 - no need normally to publish

https://github.com/CobraVmax/SmartThings/tree/master/smartapps/cobra/message-central-child.src

Missed Voice Alerts Child - Current Version: 1.1.0 - no need normally to publish

https://github.com/CobraVmax/SmartThings/blob/master/smartapps/cobra/missed-voice-alerts.src

It is integrated with github so you can use that if you prefer.

Owner: CobraVmax
Name: SmartThings
Branch: master

If you want to try it and find it useful then that’s great!
If you find any bugs that’s even better!

If you find that there is something missing that would be useful to people then please let me know and I might be able to include it.
BUT… please bear in mind that I want to keep this simple, uncomplicated, and easy to use.

This may help, if you are not used to using custom code…

9 Likes

Added SMS/Push notifications.
This was because I was using several different apps to do the same as Message Central to send messages instead of speaking.

Now it’s included in the app so you can select any of the input triggers then select whether to speak or send a message

Also included a new trigger…
“Time if contact open”

Set a time to check if a contact is open or not - If open speak message/send message

I use this to check if I forgot to close the shed door

Added a few of variables you can use in messages:

%time% - Replaced with current time in 12 or 24 hour format (Switchable)
%day% - Replaced with current day of the week
%date% - Replaced with current day number & month
%year% - Replaced with the current year
%weather% - Replaced with the current weather forecast"

1st post updated.
Current Version: 2.6.1

2 Likes

I found a need for this so I added the ability to trigger messages with a button - either pressed or held

It’s quite nice to be able to get the weather report at the press of a button

1st post updated.
Current Version: 2.7.0

Added a new variable:
I was using a separate app to do this but have now included it here

%opencontact% - Replaced with a list of configured contacts if they are open

You can configure a number of contact sensors on windows or doors to check
This variable will provide a list of any that are open and add it to the message

1st post updated.
Current Version: 2.8.0

I have a timed voice message that reminds me to give one of my dogs her medication…
If I’m out at the time I’m supposed to give it to her then I miss the alert and sometimes forget
So I added a small feature…

Missed message…

This will alert me when I get home to tell me that I missed that message.
This is configured within a ‘timed’ voice message and is labeled “Let me know if I miss this message while away”

1st post & GitHub updated.
Current Version: 2.9.0

@medic563

Tom
I think the way to do this would probable create a new option.
(Maybe call it appliance monitoring?)

I don’t really want to change the “power” option as it is used in it’s current form by myself and others.

So I could add a new option with the following inputs.
Apart from the obvious power meter,message to speak/send, delays etc.

  1. Below this level (w)
  2. Stays that way for x number of minutes
  3. ‘Activate’ level so power needs to go above this level to activate device monitoring.

Obviously this should also work with the restrictions: time, presence etc.

I would like to give that a try.

Apart from the obvious “below” level you will need to have a look at how much power the machine uses when it starts up
The start up is probably the time when the most power is used.

Ok… this might take a while as I have to code the complete new option.
I’ll see how much I can get done tonight (I’m in the UK) but I’m not able to do it most of the weekend as the wife has me shopping for a new kitchen.
What I don’t get done tonight I can probably finish on Monday.
I’ll let you know when I have something for you to test.

Thank you for all of your help.

When they start up, they are drawing between 500 and 600 W. At Idle (OFF) my machines are drawing 11.330 - 11.770 W.

Ok, that’s great, I won’t have to go above 1000w and can just keep the setting watts not kilowatts

@medic563
Ok… This was quicker than I thought as I was able to reuse some of the ‘Power’ trigger code.

You will need to update the code from GitHub or overwrite your existing smartapp if you did not use the GitHub integration.

I have added a new Trigger: "Appliance Power Monitor’
Here you will need to set the watts to check below but also set the 'activate power threshold’
For any monitoring to start then the machine must go over this figure.
After that it should send/speak only a single message (once the power drops below the low setting and stays that way for x mins) - Until the machine is restarted and the power threshold is exceeded again

I have only tested this with a two speed fan on a socket so I’ll be happy if this works for you :slight_smile:

Please let me know if you find any bugs :slight_smile:
(And how you get on with it)

1st post updated.
Current Version: 3.0.0

Thanks! I just finished configuring the SmartApp. I will let you know.

I don’t integrate with GitHub yet. Is that something that I should be doing? I sort of read about it, but wasn’t sure if there was any advantage over copying the Code.

@medic563
The only real reason to link it to github is to get the latest updates easily.
If you had previously linked to my github then after my code mods you could just tell ST to update and it would pull the new code down without you having to copy/paste.
It would also have told you (by showing a different colour in the smartapps section of your account) that there was an update available.

Message Central is working perfectly to notify me when my Laundry is Finished. I ran 5 loads over the weekend and received one text message each time it finished. Thank you for this Great SmartApp!

Great!
Glad it works for you
I’m even sure the wife is happy now you have done all the laundry :slight_smile:

1 Like

Ok…

Github sorted so I have reinstated the links.

Follow speakers removed until I can get it working successfully

Added a couple of new variables as I found a use for them:

%device% - Replaced with the name of the triggering device
%event% - Replaced with what triggered the action (e.g. On/Off, Wet/Dry)

1st post updated.
Current Version: 3.0.1

Update: 16/02/2018

I had a need for a second presence sensor restriction
This is because I wanted some messages to play when one person was home… but only if another person was NOT home

So… I added an optional second presence sensor capability.

1st post updated.
Current Version:

And you got the date in the right order! Well done. :smile:

1 Like

I have now added a second child app…

Missed Voice Alerts

Once configured, if you miss a timed alert because you are away then you will get a list upon your return.

(I know I had previously added missed alerts on each child but it can sometimes cause problems with timing.
This extra child app sorts that by joining missed message alerts together in one message

Only configure in one place… either the second child app or within the main app… don’t do both :slight_smile: