Noonlight Integration

I would like see support for noonlight integration, they have open API. It’s useful for children, elders and those with disabilities that may need emergency service.

This. I’m looking at converting my wired alarm to konnected.io and would love this integration.

Updooted. This also can provide a discount on homeowners insurance. Would be awesome to combine my konnected setup, z-wave motion sensors, device tracking, and outdoor Nest cams into a Noonlight integration for when I want monitoring!

Anyone know if Noonlight integration with HA is happening? Konnected says “coming soon!”, but I want to have a monitoring service before I commit to a system. Thanks

Konnected said they’d have a PR ready to go soon. I’ve been using it for awhile with just an IFTTT integration and it’s working great. Whenever my alarm triggers it connects to Noonlight.

Separate from Konnected, I’m investigating a Noonlight integration; will report back.

EDIT: it looks like Noonlight’s API is protected by a partner program (no doubt to monetize it). So, we’d have to have a partnership in place before anything could proceed.

CCing @balloob for awareness.

1 Like

I have a bit of an update to share here. My company (Konnected) is a Noonlight partner and a while back we committed to building a Home Assistant integration for Noonlight like we have done for other platforms (SmartThings and Hubitat). I think that Noonlight’s service works splendidly with Konnected and goes right along with our mission to enable our users to fully own their alarm system and control it in a totally integrated way with the rest of home automation.

The delay in getting this out the door has mostly been my fault (competing priorities and lots of distractions growing a startup!). Recently I recruited the help of independent contributor @snicker so we could move faster on this.

We’ve been working on readying the pull request for a few weeks now, but unfortunately today it was rejected for inclusion in Home Assistant. This comment outlines the reasoning, which is certainly valid, but I would like to clarify the intent here and Konnected’s role in this integration.

Because Noonlight only gives out API client keys for partners (which Konnected is one), integrating with their service is limited to integration partners. In order to securely broker the OAuth token exchange and keeping our Noonlight client id secret, I have set up a small authentication broker service (on AWS Lambda) that is maintained by Konnected. However, Konnected is not a party to the customer transaction between the end-user and Noonlight. Noonlight handles the billing directly to the end-user for their monthly service charge. Nor does Konnected have any visibility into any customer data generated by this integration.

We do have a deal with Noonlight in which they pay Konnected a small kickback based on the aggregate usage of our client id. This covers the cost of the auth broker service and the marketing and tech support that Konnected helps them with. However, it’s not about the money – the kickback from Noonlight is not our purpose for building and maintaining this integration. Konnected’s mission is to put users/homeowners back in control of their alarm system, and I think that professional monitoring is an important component of that. Since nothing like this exists yet on the Home Assistant platform – I took the initiative to make it happen.

I’ve reached out to @balloob to chat about this to get on the same page and hopefully move toward inclusion. I’ve offered to donate any profits from this integration back to Home Assistant, or we can probably work something out with Noonlight to support HA directly in a different way. The money isn’t and has never been the goal here, and I’m sorry if my inadvertent lack of disclosure had come across differently. Konnected’s business model is not based on subscription revenue – we’re simply trying to create a compelling product with a broad range of integrations so we can sell more hardware.

In the meantime, I invite you all to use the integration as a custom component. It works!
You should be able to just drop this directory into your custom_components folder:

5 Likes

That’s great!, after dropping it in custom_component folder, do i need to add anything to configuration.yaml ?

Yes, generate your config by signing up and authorizing here:
https://noonlight.konnected.io/ha/auth

Sorry for the lack of documentation and progress on this. I’m still trying to get in touch with @balloob and the team to figure out the right path forward.

Let me know how it works for you!

I tried the custom component and wanted to leave my feedback in this thread.

The integration is awesome. It’s seamless and opens a huge opportunity. This can be combined with ha manual alarm panel and we can get a 24/7 remote monitoring in HA. If there is one thing that I miss moving from SmartThings to HA platform is the remote monitoring support and noonlight integration will fill this gap.

Noonlight can be the first of the many integrations that HA will support. I wish @balloob will change his mind on this and open this up in HA.

The Noonlight integration that was suggested in a pull request is an affiliate in which Konnected makes money of each user of the integration. This money does not benefit Home Assistant project or community.

It is important for Home Assistant’s integrity that we do not have third party auth brokers in between us and companies that we integrate with. We cannot guarantee the safety of Konnected infrastructure, yet a security breach would look bad on us.

We have tried to work with Noonlight directly to make this integration happen, but Noonlight does not have the time/bandwidth right now to form new partnerships. Until they have, there won’t be an official Noonlight integration in Home Assistant.

Feel free to use the custom component provided by Konnected in the meanwhile.

1 Like

We do realize that his is an important feature for some of our users. We are currently working with other companies to see if we can get similar functionality added to Home Assistant.

2 Likes

@heythisisnate is there any documentation available for this now? HACS support perhaps? I would love to integrate this feature in HA. This is the last component to closing down my Alarm.com service.

Is there any update you can share on upcoming integrations that would allow us to bring this functionality in?

A quick update: I’ve had the opportunity to talk to Noonlight directly and am going to chat with them further; I get the impression that they’re willing to work on an integration for everyone (with the understanding that users may have to pay their own cost for an API key). Will keep everyone posted. CC: @balloob

3 Likes

I have also been using the custom component that @heythisisnate and the team at Konnected provided for Noonlight monitoring of my HA custom alarm and found it to be excellent, enabling me to cut the cord with ADT. Although there isn’t any formal documentation, everything you need to know is in this thread.

In addition to raising an alarm with Noonlight in my automation, I wanted to be able to pass them the service that was needed (police, fire or medical) based on the conditions that triggered the alarm (e.g., door opening versus smoke detector). I know that this is on the development path but rather than wait I implemented a quick hack/workaround.

I modified the Noonlight switch code in the custom component to read the state of a helper entity in HA (input_text.noonlight_service in my case). I set this text to one of “police”, “fire”, or “medical” in the automation just before turning on the Noonlight switch. The revised switch code appends this additional service information to the API json data passed to Noonlight (which right now is just lat/lon for location). This isn’t a quality solution that would warrant a pull request but happy to share if others are interested.

I could have done the same. But im not a python dev. Do you mind sharing your code.
thanks

@moyofalaye: The change is pretty straightforward and I believe that this works as intended but the suggestions carry the usual community code caveats. Please note that python code is dependent on correct indentation so be sure to copy and past in a way that preserves this.

To use a HA helper entity to pass the emergency service requested to Noonlight, try the following (assuming you have the Noonlight switch custom component already installed):

In file config/custom_components/noonlight/switch.py
replace 9 lines (beginning at line 73):

                self._alarm = await self.noonlight.client.create_alarm(
                    body={
                        'location.coordinates': {
                            'lat': self.noonlight.latitude,
                            'lng': self.noonlight.longitude,
                            'accuracy': 5
                        }
                    }
                )

with 14 lines

                body_param={
                    'location.coordinates': {
                        'lat': self.noonlight.latitude,
                        'lng': self.noonlight.longitude,
                        'accuracy': 5
                    }
                }
                if self.hass.states.is_state('input_text.noonlight_service','police'):
                    body_param.update( {'services' : {'police' : True}} )
                elif self.hass.states.is_state('input_text.noonlight_service','fire'):
                    body_param.update( {'services' : {'fire' : True}} )
                elif self.hass.states.is_state('input_text.noonlight_service','medical'):
                    body_param.update( {'services' : {'medical' : True}} )
                self._alarm = await self.noonlight.client.create_alarm(body=body_param)

In your Home Assistant configuration create a new input_text helper entity called input_text.noonlight_service. As of HA 0.107 you can do this in the front end (Configuration --> Helpers --> ‘+’ --> Text), or you can define it via your yaml configuration.

input_text:
  noonlight_service:
    name: Noonlight Service Called

In your automations, set the value of this helper to one of “police”, “fire” or “medical” before turning on the Noonlight switch. Note that as written only one of these services can be specified. Any other text value will be ignored.
Example:

automation:
  - alias: Notify Noonlight That Police Needed When Home Alarm Triggered
    trigger:
      entity_id: alarm_control_panel.ha_alarm
      platform: state
      to: triggered
    action:
      - service: input_text.set_value
        data:
          entity_id: input_text.noonlight_service
          value: "police"
      - service: switch.turn_on
        entity_id: switch.noonlight_switch

Restart Home Assistant.
Hope this helps.

Thank you so much for taking the time to share. I will look over it and post back once i get the chance.

Thank you again.

This started today. Getting token errors. Have restarted multiple times.

2020-04-02 19_11_12-Clipboard

EDIT: Sorry, forgot to include log entry.

2020-04-02 19:15:57 ERROR (MainThread) [custom_components.noonlight] Failed to renew Noonlight token
Traceback (most recent call last):
File “/config/custom_components/noonlight/init.py”, line 188, in check_api_token
.format(token_response))
custom_components.noonlight.NoonlightException: unexpected token_response: {‘message’: ‘Internal server error’}
2020-04-02 19:15:57 ERROR (MainThread) [custom_components.noonlight] API token failed renewal, retrying in 3 min

EDIT 2:

If I go to the api_endpoint URL I get this:

“code”:404,“message”:“Not Found”,“details”:“No endpoint found at this URL”}

If I go to the token_endpoint URL I get this:

2020-04-02 19_20_27-Clipboard