Konnected Alarm Panel - connect a wired alarm system to HA new in 0.70

Hey heythisisnate
I have a bit of a problem, I have connected konnected to wifi and to my alarm system as described on your site (my setup is nearly identical to yours), I have configured homeassistant to work with the device and would say that I am very familiar with the configuration of HASS however I can not for the life of me get konnected to show up as a device in HASS. my new setup involves a windows docker container running HASS that is behind a virtual switch on a different network. I suspect the because I can define specific IP addresses for other devices in HASS, such as my lighting controller, that they can be discovered and the konnected cannot. Are there plans to allow the specification of an IP address on a different network/subnet?

Yes, eventually we’ll get there. Right now though Discovery is required for Konnected to show up in Hass.

Unfortunately this is a Windows related Docker issue. Docker on Windows does not permit network bridging, so any discovery related tools in HASS will not work.

For discovery to work, ie broadcasts, HASS will need to be on the same subnet as the rest of the network. If you do decide to move it to a platform that supports Docker host networking, you want to have ‘network_mode: host’ in your docker-compose file, or ‘–network host’ at the command line.

Ah well that really sucks. Hopefully soon ill have my Dell 1950 back up and running so I can do awesome things again

Just wanted to let you know it’s working now that I updated my Konnected nodes to 2.2.3 and HA to 0.74.2. Can’t wait to get some automations going now!

@heythisisnate - I have a smoke alarm that can only be wired for normally open (NO), rather than the usual NC. I see that you added support for this in the device handler for SmartThings to be able to support this. Any way to implement this to HomeAssistant? I think that it can be accomplished by taking the smoke alarm and using sensor templates to reverse the logic, but it’s a kludge. If it can be set at the board level that would be awesome… Thanks!

Is it possible to connect prewired sensors to a ring alarm base station through HA using the Konnected?

I’m experimenting with a Home Assistant running in docker on a QNAP nas, and konnected running on NodeMcu.

I’m struggling with an intermittent issue with the konnected NodeMcus getting into an unrecoverable blue-light-flashing state.

On several occasions, when the whole system was working and all the konnected sensors were showing up in HA fine, I did one more config.yaml tweak (unrelated to konnected) and restarted the docker instance, and then the konnected nodemcu stopped working. During HA startup, I see the blue light on the NodeMcu flashing repeatedly, he konnected devices no longer show up in the web interface, and a bunch of repeating error messages like this in the log:

2018-08-21 03:22:51 INFO (MainThread) [homeassistant.components.http.view] Serving /api/konnected/device/68c63ad6548f to 192.168.1.34 (auth: False)                                                                                          
2018-08-21 03:22:51 ERROR (MainThread) [aiohttp.server] Error handling request                                                                                                                                                               
Traceback (most recent call last):                                                                                                                                                                                                           
  File "/usr/local/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 378, in start                                                                                                                                                  
    resp = await self._request_handler(request)                                                                                                                                                                                              
  File "/usr/local/lib/python3.6/site-packages/aiohttp/web_app.py", line 341, in _handle                                                                                                                                                     
    resp = await handler(request)                                                                                                                                                                                                            
  File "/usr/local/lib/python3.6/site-packages/aiohttp/web_middlewares.py", line 88, in impl                                                                                                                                                 
    return await handler(request)                                                                                                                                                                                                            
  File "/usr/src/app/homeassistant/components/http/static.py", line 66, in staticresource_middleware                                                                                                                                         
    return await handler(request)                                                                                                                                                                                                            
  File "/usr/src/app/homeassistant/components/http/real_ip.py", line 34, in real_ip_middleware                                                                                                                                               
    return await handler(request)                                                                                                                                                                                                            
  File "/usr/src/app/homeassistant/components/http/ban.py", line 67, in ban_middleware                                                                                                                                                       
    return await handler(request)                                                                                                                                                                                                            
  File "/usr/src/app/homeassistant/components/http/auth.py", line 66, in auth_middleware                                                                                                                                                     
    return await handler(request)                                                                                                                                                                                                            
  File "/usr/src/app/homeassistant/components/http/view.py", line 113, in handle                                                                                                                                                             
    result = await result                                                                                                                                                                                                                    
  File "/usr/src/app/homeassistant/components/konnected.py", line 319, in put                                                                                                                                                                
    device = data[CONF_DEVICES].get(device_id)                                                                                                                                                                                               
KeyError: 'devices'                              

This seems unrecoverable. I tried reverting all my tweaks in the configuration.yaml and restarting HA but it didn’t help. I tried power cycling everything. I deleted my docker instance (0.74.2) and updated to the latest (0.76.1).

The only thing that worked was reflashing the v2.2.2 Konnected firmware and filesystem onto the Nodemcu. Then, after restarting the board and HA, it all came back to life. Then I restored my full, tweaked configuration.yaml and all was well.

So I guess it’s nothing to do with my config or my setup. But maybe something to do with frequently editing the config and restarting the docker instance? Maybe it isn’t shutting down cleanly and leaves the konnected/nodemcu in a funky unrecoverable state?

Since this keeps happening, it’s making me nervous about depending on this as I continue to expand the setup. Anyone have any advice? Should I bail on docker/qnap and get hass.io running on a rpi?
Thanks!

Very interesting. I am receiving what I think is similar message as below with my Konnected and my symptoms are nearly identical. Works after a re-flash but then stops.
My setup is Hassio on a Pi3+ with Caddy and Samba shares, so very basic.

018-08-21 14:44:38 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/aiohttp/web_protocol.py”, line 230, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
File “aiohttp/_http_parser.pyx”, line 297, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: invalid HTTP method
2018-08-21 14:44:46 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/aiohttp/web_protocol.py”, line 230, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
File “aiohttp/_http_parser.pyx”, line 297, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: invalid HTTP method
2018-08-21 14:44:54 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/aiohttp/web_protocol.py”, line 230, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
File “aiohttp/_http_parser.pyx”, line 297, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: invalid HTTP method

I’ve been able to reproduce some of the issues a few of you have reported where the Konnected devices constantly reboot due to HTTP errors in Home Assistant. This problem was exacerbated with the 2.2.3 Konnected software update which includes automatic retry/failsafe behavior that reboots itself after 10 failed HTTP requests.
The problem is that Home Assistant depends on discovery to re-discover the boards every time hass is rebooted. Between the time that Hass is rebooted and discovery runs successfully, if Konnected is trying to update a sensor state it will get an error and retry/reboot. This could be considered a circular dependency problem.
I’m working on some updates to the Konnected component that will allow it to partially load faster, not relying on discovery every single time Hass is rebooted. It should fix this problem.
Thank you all for your continued feedback and for your patience while this is address. In the meantime you can downgrade to version 2.2.1 to avoid the issue.

Thanks for confirming, Nate! Yes- that matches my experience. When it is failing, the blue light flashes briefly around 10 times, then pauses, then longer flash, then 10 more times, and repeats.

If it occurs again before your update (hope not!), could you point me to any directions on downgrading?

Meanwhile, I’ll look forward to that update. :slight_smile:. I saw some commit notes on github about OTA update- how does that work? Or will it require reflashing the boards?

Thanks again!
John

To downgrade or upgrade just grab the two *.bin files from the release you want: https://github.com/konnected-io/konnected-security/releases

Flash them with the Konnected Flash Tool or esptool.

There used to be an OTA update feature but I yanked it because it was flaky.

I will update here when I have progress on the issue.

Got it- thanks Nate!
-John

It happened again today, so I went ahead and flashed with 2.2.1 and it’s working well again now. That’s a relief. I’ll look forward to your giving your next update a try.
Thanks,
John

I’ve submitted a PR this morning that should fix the reboot loop problems that some of you have experienced:
https://github.com/home-assistant/home-assistant/pull/16146

This change makes the Konnected sensor & switch entities show up immediately when the konnected component is loaded instead of waiting for the discovery callback. This will make the device recover much more quickly after a Hass reboot and eliminates the circular dependency hinged on discovery.

Hopefully this will get reviewed and merged before the 0.77-beta cutoff which I think is tomorrow. Please review and comment on the PR for visibility!

Great news! I commented on the PR, for what that’s worth :slight_smile:
Incidentally, my konnected setup has been working great since downgrading to 2.2.1
Thanks,
John

@heythisisnate

I’m observing a new problem today with HA 0.78:

A few weeks back, I installed HA 0.77.3, and re-flashed all my nodemcu firmwares to your latest 2.2.3, and all has been working well. I also set up my piezo to use your new beeping config, for pending-arming-status. Good stuff!

Today, I saw HA 0.78 was released, so I updated my hassbian. After that, several times my piezo beeper suddenly started beeping solid beep. Also, I saw a couple of my nodemcu started failing again with the flashing blue light issue…

I see this in the log:

2018-09-17 21:55:15 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved

Traceback (most recent call last):
File “/usr/lib/python3.5/asyncio/tasks.py”, line 241, in _step
result = coro.throw(exc)
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/service.py”, line 224, in _handle_service_platform_call
await getattr(entity, func)(**data)
File “/usr/lib/python3.5/asyncio/futures.py”, line 380, in iter
yield self # This tells Task to wait for completion.
File “/usr/lib/python3.5/asyncio/tasks.py”, line 304, in _wakeup
future.result()
File “/usr/lib/python3.5/asyncio/futures.py”, line 293, in result
raise self._exception
File “/usr/lib/python3.5/concurrent/futures/thread.py”, line 55, in run
result = self.fn(*self.args, **self.kwargs)
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/components/switch/konnected.py”, line 73, in turn_on
resp = self.client.put_device(
AttributeError: ‘NoneType’ object has no attribute ‘put_device’

I guess I’ll downgrade HA back to 0.77.3 and hope it recovers…
-John

Update: after downgrading HA to 0.77.3, one of my nodemcu’s was stuck in the flashing blue light state with the piezo buzzer stuck on. Painful! :slight_smile: I had to reflash my nodemcu konnected firmware to get it working again…
-John

There were no changes to the Konnected component in 0.78. Any issues you had after the upgrade were purely coincidental.

Any chance one of the dependencies was updated as part of 0.78 which caused a problem with konnected? Or maybe just part of the process of updating HA caused the boards to go into that infinite flashing-blue-light loop?
Was that log trace failing in konnected.py any clue?
Thanks,
John