Noonlight - 24/7 smart home monitoring enables Hubitat to call 9-1-1 (U.S. only)

One more question... when i signed up for noonlight i had to enter credit card. But now i seem to have difficulty figuring out where to add/change payment methods, cancel the account (if i ever wanted to,etc). THere doesn't seem to be a login button on their homepage thats gets you to all that kind of stuff.

Googling got me a link http://help.noonlight.com/en/articles/1872143-how-to-cancel-your-subscription which tells me to go to itunes, which doesn't make sense and is probably related to their personal security app raher than the Hubitat integration.

Any ideas? Not looking to cancel but want to know where the button is. :slight_smile:

I believe you just email them with any changes. I had all the same questions back when I started too. I don’t think the alarm monitoring is a big part of their business.

Use the Noonlight app to manage your billing preferences with Noonlight.

The Noonlight App in Hubitat doesn't offer the options. The noonlight app on iOS seems for personal security and deal via iTunes subscriptions while i signed up with credit card. So still confused. Sorry to be dense about this.

My other question was how are people arming and disarming the alarm? I would prefer to have some sort of zwave keypad to keep things 'normal' for the family.

Whatever you're using for HSM (Hubitat Safety Monitor). Noonlight just integrates with HSM. I'm using the Iris keypads but I think Hubitat supports the Ring Z-Wave keypads now (Just based on seeing them show up in the supported device type pull-down menu)

I thought i had seen or read that HSM would pass the event to Noonlight somehow. I.e.. noonlight would know it's a fire/water/front door type of alert like my traditional alarm company used it. However when i had an alarm and asked where/what they said they don't have that informaiton. Did i miss something in the setup? For alarm sensors it's not that important but knowing whether it's Fire or Burlary is quite important in my view. If i don't answer and they send a cop out who then 10 minutes later alerts the Fire service a bunch of time is lost.

That’s the same experience I had as well. I think the plug-in has the capability to send them the type of alert but they aren’t getting it on their end. I think it must be on the Noonlight end? Maybe the plug-in developer @nate from Konnected knows more about this?

Apparently @nate does not care to respond. I recently had the experience of a smoke alarm alert and Noonlight did not have a clue what type of alarm we were having. In his opening post he states they potentially will and I quote:

  • When an alarm is triggered, Noonlight dispatchers see detailed information from the smart home devices that you authorize, including door/window sensors, motion sensors, smoke/CO detectors, presence sensors and temperature sensors. This allows the Noonlight dispatcher to potentially determine the nature of the emergency if you are unable to respond.

I would think that if the alert was coming from a smoke detector Noonlight should be able to see that and contact the appropriate emergency responder.

The Noonlight smart home monitoring service should not be counted on for life saving responses.

You're right that this integration only triggers a generic alarm via Hubitat. The challenge is that (at least when I originally developed this app), HSM doesn't have any API or state information that's accessible by other apps, so there was no way to get from HSM what triggered the alarm or know if it was an intrusion or fire alarm event.
Maybe HSM has evolved since then, I haven't been very active in Hubitat development in a while.
Would anyone like to volunteer to help improve the integration? GitHub - konnected-io/noonlight-hubitat: 24/7 professional monitoring for your Hubitat smart home powered by Noonlight

1 Like

I wanted to thank you for this integration. I have been using noonlight for about a year and a half with my Hubitat and have been very happy with it. It would be great if it could work on giving them more specifics about the alarm type if HSM allows for that now. I wish I could help but I'm no programmer. Happy to test out if needed though.

2 Likes

What's the difference between the HSM app/driver and the "followers" available in Konnected cloud?

The Konnected Cloud integration seems to allow for separate alarm and smoke/CO events. I assume if you use that you don't need this app, correct?

The problem I have is I can't seem to get the Konnected Cloud to trigger an alert to Noonlight - if I arm my system and set it off the siren, etc. goes off but nothing is sent to Noonlight and there's no Konnected Cloud logs to check that I can find. I do have the Siren follower checked in the app.

If I use the integration provided here (app+siren driver) it does work and Noonlight text/calls me almost instantly. However it only gets a general alert.

What's the correct way to do this and/or troubleshoot the Konnected cloud integration? Is there something else that needs to be done in Hubitat? I assumed the Siren follower in the Konnected app meant when the Konnected board itself sensed it was triggered.

Also as a side note billing is still non-functional. You cannot manage it in the Noonlight iOS app, it just points to the iTunes subscription button. You have to call/email them to make any changes. Just an FYI to anyone else confused by this.

Konnected Cloud is only for SmartThings users at this time. Hubitat is a local platform, and therefore the Konnected devices communicate with the Hubitat hub directly (not thru any cloud service). You cannot use both at the same time.
As far as we know right now, Hubitat Safety Monitor doesn't have an API that can expose the type of alarm trigger (intrusion vs. smoke) to 3rd party integrations, which is why the Hubitat integration only triggers a general alarm with Noonlight.
I'm open to ideas or contributions from the community to improve this. It's been a while since I've looked at it.

Thanks Nate - it's not mentioned (at least in the iOS app) that Konnected Cloud is only for SmartThings (I assume it's due to the change in the latter platform last year). Your support also told me using it with siren followers was the preferred way over the HSM integration but they may have been confused over platforms. In any case I understand Hubitat is local; what I must have misunderstood is how Konnected Cloud works/what it's for. I'm guessing it just allows Konnected to work with SmartThings more recent cloud service?

In any case isn't there still a cloud forwarding service for the Noonlight API calls?

It would also be helpful to document how billing is handled given the Noonlight app itself doesn't let you do it (it tells me I have a "premium" subscription for $2.99/m - I assume that is for their location safety service - but clicking Manage Subscription just brings you to the iOS subscription page where Noonlight isn't listed. Something is broken here).

As far as ideas on alarm type - would a pseudo-driver work? Like the Noonlight virtual siren device but it triggers off an existing fire/CO alarm, and sends a distinct event to the Noonlight API?

Hi, I have been "playing" with the Noonlight code, the Noonlight app receives an event and knows the information about the device, what it does not know is if the rules in the HSM (Hubitats home security) require an alarm and that the information be sent to Noonlight. What can be done at that point is to always save the last device to trigger. When HSM triggers, it will call the moonlight driver, which will call the noonlight app to send Noonlight the alarm message. If at that point you also retrieve the last device to trigger and send that information to moonlight, you will have most of the information. In my opinion I would continue sending the different devices that trigger to hubitat until HSM cancels the alarm. (In case a burglar where walking around the house...).
I have programed, but not in groovy or Java, I am also not familiar with the platform. I believe this code was ported, and a lot of it is not functioning. (i.e. All the paramenters from a device event are not being retrieved correctly or are not sent by hubitat device event... for example manufacturer of device.... Alarm ID also does not appear to be being saved, or he is pulling it wrong as it is null after sending the alarm, and is needed for the second transmission which would supply device information....
I am interested in getting this to work properly. In particular I would like the monitoring station to know to dispatch fire trucks if there is a fire alarm and I am not home.....
I will accept help from anyone that wishes to assist.

1 Like

Someone asked me to look at this code a while back, but I didn't have much time then--and I don't have Konnected or Noonlight, so my ability to test beyond virtually and what should work theoretically is limited. :smiley: It does appear that the Hubitat Safety Monitor has an API that should tell you whether the HSM alert is an intrusion (away, night, or home--all distunguished), smoke (possibly both smoke and CO; I don't know if HSM distinguishes), water, or a custom rule.

I could probably take another look if anyone is interested, but I'd probably also need guidance on the best way to set up some sort of test environment for it all...

2 Likes

After a few hours of investigating, I have a much better grip on how the code functions. When HSM turns on the "siren" on the noonlight driver, the driver calls the app in order to send an alarm. It then tries to collect, combine and send the status of devices based on recent events and the status of the devices being monitored by querying their status.
ISSUE 1)
When an alarm goes of the code collects all Recent events, in order to send them to the alarm station... (since a state change in a device being monitored in the last five minutes is probably what caused your alarm). The Return line of collectRecentEvents() gives an error, up to just the flaten it does not error but I add the rest of the line and it does. The line that errors is the following:

allEvents.flatten().findAll { it.isStateChange() && it.source == 'DEVICE' }.collect {
eventFormatter(it)

The more complete snippet is:

def collectRecentEvents() {
def fiveMinutesAgo = new Date()
use(TimeCategory) {
fiveMinutesAgo = fiveMinutesAgo - 5.minutes
}
def allEvents = allDevices().collect {
it.eventsSince(fiveMinutesAgo)
}
return allEvents.flatten().findAll { it.isStateChange() && it.source == 'DEVICE' }.collect {
eventFormatter(it)
}
}

def eventFormatter(evt) {
return [
timestamp: evt.date.format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone('UTC')),
device_id: evt.deviceId,
device_model: evt.device.modelName,
device_manufacturer: evt.device.manufacturerName,
device_name: evt.displayName,
attribute: evt.name,
value: evt.value,
unit: evt.unit
].findAll { it.value }
}

ISSUE 2: (Remember the alarm message works) When specifying device and staus, Moonlight API doc, requires manufacturer name and a model name for the device... I don't know if those missing items are causing an error when the device info is sent: Below is my json message, and the error I get back... Tomorrow I will try to hard code the Mfg and model and see if it works. Is there a way to get those values from hubitat ??? See def eventFormatter(evt) above, the methods to get
device_model: evt.device.modelName,
device_manufacturer: evt.device.manufacturerName,
are not returning a value.

I graduated as a computer engineer, and did program for many many years, some time ago... I think with some missing knowledge and help with methods and syntax, we could hopefully solve this pretty quickly. If you would like to install the noonlight driver and app. There are two lines near the top that will redirect your noonlight calls to a sandbox instead of their live system.... The Issue I had is that with the sandbox, it did not want to accept my latitude and longitude coordinates as valid for the alarm. There are 2 places you need noonlight. Line 140 where the alarm is sent. and line 217 where the status of the devices is sent. you can just comment the lines near 217... but in order to get a more complete test, you would want to force your way through the lines in 140 after bypassing the send of the alarm in 140, still call processNoonlightResponse(). and replace the condition in the first line of that function to if (TRUE) so that it executes the code even if you did not actually send the alarm to moonlight.
I don't think it is hard to set up a test environment, but if I can get the answers I need, it may not be neccessary....
I like the hubitat concept. It has worked well for me for me as an alarm system for over a year. Noonlight has the best response time I have ever had. Because of what we provide they just can't differentiate fire, medical and police. I actually have all my motions on batteries, I have a battery backup for my hubitat and router. I also had a netgear router on backup, that would switch to cellular when power dropped. So it was difficult for someone to bypass my system, even if they cut power lines, phone lines, and internet lines. (Also none of my sensors ae dependent on electricity or repeaters on electricity. I have just added smart locks to my hubitat, and hope to now add more automation to my home.

2 Likes

I am in Canada. Does anybody know if Noonlight setup will work for my house in Canada?

Is this integration still working and being maintained? It looks like there haven't been any commits in the github repo since 2019. I'm considering HE for automation and some sort of smoke-alarm monitoring is important for my application.

Thanks for replies!

Yes it is. The service works very well except the monitoring station can only get a general alarm alert, not a specific sensor. They respond immediately.

1 Like