How to keep a door from locking if it is open?

In any use case, I don't want a door lock to lock if the door is open. How can I make this happen? We have a ding on the door trim because of a door being locked when it was open and then shut without noticing the deadbolt sticking out :blush: .

If the answer is Rule Machine, I need to know exactly how to do that. I'm not real proficient with Rule Machine, I can do easy rules but that's about it.

And if I were to lock from the dashboard, I don't see how that can be intercepted to check for the door being open before being sent to the device. Might there be a way to code a custom lock device handler that can check a door sensor?

I put contact sensors on my doors that have locks on them, then built a trigger in rm to lock the door on contact close.


Out of the box thinking! Something like this never entered my mind :grin: . Thank you!

I would set it up so it would only work in Away or Night mode (and use the key fob to set Away mode), as hubby is retired and he said he doesn't want to have to unlock the door every time he goes outside for some reason. Our use case may be different than for those folks that are away from the house often.

I can only think of one gotcha, and that is forgetting to shut a door at night. When the weather is nice, we leave the back and garage doors open all day. It is hubby's duty to check the doors at night and sometimes he forgets. Right now he has an Alexa routine "Goodnight" that turns on a hubitat virtual switch that locks all the doors. If he forgets to shut a door at that time, he needs to be admonished! I see TTS coming in handy there...need to think about this more.

You could easily whip up a rule that will not lock the door if it's open and you're in night mode, send a TTS instead, use the new voice parameter in textToSpeach, throw in some SSML...,
oh, I leaked a little info didn't i... :zipper_mouth_face:


Hi Mike @mike.maxwell
Can you clarify how to use the Voice Parameters in TextToSpeach without writing a custom code. I've looked through RM options (Custom Commands, Custom Actions) but don't see any references to optional Voice Parameters. If it doesn't exist can it be added?

Currently there isn't a way to do this via any built in apps. The method being referred to is a Hubitat api method call, available to driver and app code. There is no other interface to it currently.

Bruce @bravenel can you add this useful functionality(choosing Voice in TextToSpeach) to help us regular folks who are not programmers :joy: to use it in RM

Bruce @bravenel

This is not currently possible. The speech device drivers do not support it.

Application and Driver method

Map textToSpeech(String text, String voice = null)

uri: local path to generated mp3
duration: mp3 duration in integer seconds

Returns null if an invalid voice is requested


Type Parameter Description
String text text string to be synthizized, may include inline SSML
String voice AWS poly voice id, defaults to current system setting, currently "Matthew"

Helper methods:

Map getTTSVoices()

name: voiceId
gender: Male | Female
language: languageName

Thanks, we understand the interface, we wrote it after all.

What Bruce means is that the drivers don't implement textToSpeech directly, it's not a capability command, and therefore apps do not have a way of specifying the voice id to the device driver, and the device driver doesn't have a way to accept a voice Id currently.

Hi Mike,
I perfectly understand that currently is not possible, but can this very useful capability be implemented soon. You advertise Habitat as the Home automation platform for the regular folks, but in reality it looks like you have to be able to write Groovy code to implement even the simplest functionality like this. Frankly speaking I hate to be considered the second class citizen in HE environment

I understand your position, however I'm not aware of any current platform that provides selectable voices per message from a built in rule engine.


I'm also not aware of any such platform and that's why I switched to HE from ST a year before, because I see the potential. However nobody answers my question. Can this functionality be implemented natively by HE in Google Home and Chromecast driver which you don't provide source code for?
For the last couple of days I already read about three implementations of selectable voices after your example surfaced on some thread(DLNA player driver, Logitech Media server driver and Follow Me app). The problem is that I have only Google and Alexa and Samsung speakers that don't work with these drivers, so I'm stuck until you implement it internally.

No one on staff said it couldn't be done, it's a good idea, just like all the other good ideas submitted by community members.
We are a small team, we don't have unlimited development resources.
Easy quick good ideas we entertain and implement rather quickly. This idea, while good, and somewhat easy, is not quick.
It requires multiple changes to multiple software components as well as db schema updates.
So from a priority standpoint it's not at the top if you follow.

1 Like

Fair enough. As a former DB developer I understand the complexity of database schema changes, which is probably your major concern with this topic. Correct me if I'm wrong, but it seems to me that if you implement it as a new SpeechSynthesis capability with Custom Command calling driver exposed TextToSpeech() function with 2 string parameters it will not require any database schema changes.

I'm not going to get into this with you.
It's not on the radar right now, case closed.


You haven’t stated any valid use case scenario for what you are asking. You state that you have Google and Alexa devices. You do know voicing does not work on these but rather a notification to those ecosystems which then use their defaults for voice. As for your Samsung, I have a M3 and use @djgutheinz’s Samsung driver to power this device through HE. All of my voice notifications go through this or strategically placed Sonos speakers. I use Brian from the settings in HE. I can’t really think of a valid scenario where I would want or need different voices for TTS than one.

Anyways, if you are wanting different voices for different notifications then you really should either (A) learn groovy and contribute back to the community with a unique app, (B) ask one of the many currently community developed notifications apps for a feature request, or three figure out a way to live with one voicing in your home.

Anyways good luck and hope option A is what you go down and that it is a cool addition to the community.

1 Like

Follow Me can set voices for different situations very easily. Combined with my What did I say driver gives you complete control over what is said, how it is said and where it is said!


My use case is very simple. The only thing I need is to be able to generate announcement messages in two languages, because I live in the bilingual household and my parents in law who already more than 90 years old don't know English. Hopefully you will not suggest them to learn the new language at this age, won't you?:grinning: