Insteon Hub Pro Help

Hi All

I have an Insteon Hub Pro Model 2243-222 and I was wondering if anyone could help me with configuring the Inteon Component. So far I could not get neither the Insteon (Local) or the regular one to work.

Thanks

Seeing as the insteon local component makes a connection to the hub on the network, I’d start by troubleshooting that connection first. is your Insteon hub ping-able from the HA server? If so, try a port scan from the HA server to the Insteon Hub, to see if port: 25105 is open, and listening.

If possible please post the results here, it would help the diagnose the issue.

Hi xstrex

Thanks for your reply. I ran a port scan and here are the results:

Port Scanning host: 192.168.2.185

	 Open TCP Port: 	22     		ssh
	 Open TCP Port: 	80     		http
	 Open TCP Port: 	443    		https
	 Open TCP Port: 	8020   		intu-ec-svcdisc

I also found out that I can go to http://connect.insteon.com/getinfo.asp within my network to see the Hub and the results are quite strange (below):

Insteon has been found on your network
Click on the Link Below to access Insteon 
http://192.168.2.185:80
This is your device's internal IP

Other Info
Configured Connect Account	 	FALSE
Your Internet IP:		XX.XX.XX.XXX
Your MAC Address:	 	54:4A:16:2C:CC:4D
Your Insteon ID	 	2C.CC.4D
Your Subnet Mask	 	255.255.255.0
Your Gateway	 	192.168.2.1
Your Device's Dev Cat	 	03
Your Device's SubCat	 	        3A
Your Device's Firmware	 	s:1.0.7|c:5.0.6
Your Device's PLMFW	 	9D
Your Device's App Version	 	HubPro-V02
Your Device's Unit Type	 	HubPro
Your Device's Serial Number	 2CCC4D

I also checked the leases on my router and Insteon HubPro shows up on 185 with a different MAC address:

192.168.2.185
54:4a:16:fe:ec:2e
2017/11/15 09:38:24
LAN2
HubPro

Thanks for your help.

Cheers

Interesting. Might consider setting a static IP on the hub, to take the guess work out of it. If you wouldn’t mind, try running this command:
nmap -p 25105 192.168.2.185

Per the docs that’s the port the component is configured to connect to, by default.

Yes. That’s what I was thinking to do. Assign a static ip and port but I have no idea on how to do that :frowning:

I called insteon today and they could not help nor knew why I had different MAC addresses. I ran the nmap command and it says that 25105 is closed unknown …

Starting Nmap 7.60 ( https://nmap.org ) at 2017-11-14 17:45 EST
Nmap scan report for 192.168.2.185
Host is up (0.0013s latency).

PORT      STATE  SERVICE
25105/tcp closed unknown

Nmap done: 1 IP address (1 host up) scanned in 0.40 seconds

What I did notice is that insteon (local) is for Models 2242-222 which allow a different access to the hub. Mine is 2243-222 Hub Pro with HomeKit. This might be the issue, I don’t know.

Cheers

Assigning a static IP would be done inside your router, it varies since each router is a little different. I’d google “[router manufacturer] [model] static ip” and find a guide that looks like your routers web interface.

As for the port scan, the unknown bit is fine, that just means that the port 25105 isn’t of a known type; which is fine, most ports above 1024 are non-standard anyways. The fact that it’s closed is concern though. I’m wondering if there’s any way of enabling the port in the hub firmware; I might try poking around the UI, it might be hidden in some odd area.

The different MAC addresses might be explained…
The ethernet port on the hub has it’s own ethernet MAC address (this is standard for all ethernet devices). Now, on some other insteon hardware, they use what’s called a PLM (power line modem), this usually has it’s own MAC address, a lot of time it’s because the hub & PLM connect via an ethernet cable, thus an ethernet MAC address. Now, i’m not sure how Insteon built their Insteon Hub, so it might have an embedded PLM (in the hub), but that’s just a educated guess.

One thing you might want to try is, changing the port assignment config for your component, in HA, to each of the open ports, one by one (restarting HA each time).
So, your open ports are:
Open TCP Port: 22 ssh
Open TCP Port: 80 http
Open TCP Port: 443 https
Open TCP Port: 8020 intu-ec-svcdisc

In the component configuration, change:
port: 25105
to
port: 22
restart HA, see if it connects, if not, try the next port. Make sense?

Also, it might be helpful to tail the log file while starting HA (tail -F [config dir]/home-assistant.log).
My guess is, 22, 80 & 443 will all error out (since those are all fairly standard ports), but I’d be interested to see what port 8020 comes back with.

The more logs & information you can gather, the better. Good Luck!

You might be right about Hub vs Hub Pro, who know’s what they changed internally between versions. If all else fails, this might be the answer unfortunately. We’ll see when we get there.

Hey xstrex

First of all thanks for all the help so far :wink:

All the ports failed , see below (Copied the logs only once since they are all the same). I don’t think that the static IP is an issue as the 185 seems to be associated to the hub quite persistently. I was wondering if maybe I do a port forwarding for 25105 and open it it will help.

2017-11-15 08:34:54 ERROR (SyncWorker_2) [homeassistant.components.insteon_local] Error on insteon_local. Could not connect.Check config
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connection.py", line 141, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/util/connection.py", line 60, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/socket.py", line 743, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 8] nodename nor servname provided, or not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 357, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1026, in _send_output
    self.send(msg)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 964, in send
    self.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connection.py", line 166, in connect
    conn = self._new_conn()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connection.py", line 150, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x1068914e0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='http', port=80): Max retries exceeded with url: //192.168.2.185:22/buffstatus.xml (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x1068914e0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/components/insteon_local.py", line 58, in setup
    insteonhub.get_buffer_status()
  File "/Users/pedro/.homeassistant/deps/lib/python/site-packages/insteonlocal/Hub.py", line 515, in get_buffer_status
    response = self.get_direct_command(command_url)
  File "/Users/pedro/.homeassistant/deps/lib/python/site-packages/insteonlocal/Hub.py", line 102, in get_direct_command
    self.password))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/adapters.py", line 508, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='http', port=80): Max retries exceeded with url: //192.168.2.185:22/buffstatus.xml (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x1068914e0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))
2017-11-15 08:34:54 ERROR (MainThread) [homeassistant.setup] Setup failed for insteon_local: Component failed to initialize.
2017-11-15 08:35:03 WARNING (MainThread) [homeassistant.setup] Setup of alarm_control_panel is taking over 10 seconds.
2017-11-15 08:35:03 WARNING (MainThread) [homeassistant.setup] Setup of camera is taking over 10 seconds.
2017-11-15 08:35:05 WARNING (MainThread) [homeassistant.components.alarm_control_panel] Setup of platform arlo is taking over 10 seconds.
2017-11-15 08:35:05 WARNING (MainThread) [homeassistant.components.camera] Setup of platform arlo is taking over 10 seconds.
2017-11-15 08:35:07 ERROR (MainThread) [homeassistant.components.camera] Error on device update!
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/helpers/entity_component.py", line 216, in async_add_entity
    yield from entity.async_device_update(warning=False)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 309, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/futures.py", line 332, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/tasks.py", line 250, in _wakeup
    future.result()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/futures.py", line 245, in result
    raise self._exception
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/components/camera/arlo.py", line 163, in update
    self.attrs[ATTR_BATTERY_LEVEL] = self._camera.get_battery_level
  File "/Users/pedro/.homeassistant/deps/lib/python/site-packages/pyarlo/camera.py", line 135, in get_battery_level
    return base.get_camera_battery_level[self.device_id]
TypeError: 'NoneType' object is not subscriptable
2017-11-15 08:35:07 ERROR (MainThread) [homeassistant.components.camera] Error on device update!
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/helpers/entity_component.py", line 216, in async_add_entity
    yield from entity.async_device_update(warning=False)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/helpers/entity.py", line 309, in async_device_update
    yield from self.hass.async_add_job(self.update)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/futures.py", line 332, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/tasks.py", line 250, in _wakeup
    future.result()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/futures.py", line 245, in result
    raise self._exception
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/homeassistant/components/camera/arlo.py", line 163, in update
    self.attrs[ATTR_BATTERY_LEVEL] = self._camera.get_battery_level
  File "/Users/pedro/.homeassistant/deps/lib/python/site-packages/pyarlo/camera.py", line 135, in get_battery_level
    return base.get_camera_battery_level[self.device_id]
TypeError: 'NoneType' object is not subscriptable
2017-11-15 08:36:08 WARNING (MainThread) [homeassistant.helpers.entity] Update of alarm_control_panel.cameras is taking over 10 seconds
2017-11-15 08:36:28 WARNING (MainThread) [homeassistant.components.alarm_control_panel] Updating arlo alarm_control_panel took longer than the scheduled update interval 0:00:30

I am starting to get the impression that I was unlucky buying the hub version I bought. It doesn’t even seem to be supported by Insteon any more http://www.insteon.com/insteon-hub (mine is 2243-222). Also, I found this http://cache.insteon.com/documentation/2242-222-en.pdf. On page 8, it shows the process to register the Hub which includes the port, process I never had to go through.

I am hoping you can find a loophole around the port in the Hub :slight_smile:

Anyway …

Thanks Again

I seriously doubt this would make any difference; a port-forward is used to punch a hole in your firewall, routing one port to another. Since 25105 is currently “closed”, a port forward to that port won’t do anything (it will still be closed).

Since all open ports failed, you may be right. Without port 25105 being open, it looks like the insteon_local component won’t work. Also because this hub relies on home-kit a port forward isn’t necessary, so insteon_hub component would also fail. Unless you can have an in-depth conversation with the insteon folks (they know their stuff btw) about enabling port 25105, I’d say return it, and go with either a 2242-222, or an ISY-994i.

I’ve used both (currently using the ISY), and though it’s more expensive, I’d highly recommend going with the ISY. It’s extremely fast, highly-configurable, and extensively supported. Plus it doen’t rely on “the cloud”, so if your internet goes out, you can still turn on the lights! I’ve heard reports from other users that the insteon hub components tend to be a little slow to respond. This is not the case with the ISY, it’s super-fast! Just my $0.02

Good luck!

Hey xstrex

I will call Insteon again and see what can be done. At this moment it is not worth it for me to invest USD 300 on a new hub. I will keep an eye on it and see what happens

If I figure something out I will post it here ;0

Thanks for all the help

Cheers

Did you ever get this resolved? I also have the Hub Pro and am currently struggling with this same issue. A local store cleared out a bunch of the older Insteon Dimmer kits so I have them strewn throughout the house.

I bought the Pro Hub specifically to make the wife happy with solid Homekit support. But now that I’ve given Home Assistant a try I am very happy with the results… except that 50% of my home automation stuff is tied to the Insteon Hub Pro. :frowning:

I wonder if we can work around this by connecting a USB port on the back to our Home Assistant devices (and using Insteon PLM)? Since I have an old Insteon hub lying around I think I am going to try hooking it up in addition to the Pro Hub. It probably won’t work, but it might. :slight_smile:

To follow up, I also installed a non-pro Insteon hub and was able to connect to my lights.

@BrianHanifin @miratur There has been work to merge the insteon_local and the insteon_plm code and we now have a working model if you are interested in testing. It works differently than the old insteon_local in that you don’t need to specify your devices or platforms. Autodiscovery does that for you. If you are interested, here is what you need to do.

  1. Install the latest version of Home Assitant
  2. Uninstall the default version of insteonplm and install the latest version
    a. pip3 uninstall insteonplm (It is OK if it errors out saying it is not installed)
    b. 'pip3 install insteonplm` (This will install the current version which has the hub capabities)
  3. Download the main insteon_plm file and replace the existing file
    a. Download homeassistant/components/insteon_plm/__init__.py from my hub branch
    b. Copy / replace the current homeassistant/components/insteon_plm/__init__.py with the downloaded file
  4. Edit the configuration.yaml file to contain the following:
insteon_plm:
  host: <ipaddress of the hub>
  port: 25105 (unless you have changed the default)
  username: <hub username>
  password: <hub password>

You should not need any other config. I would recommend removing the insteon_local config however.
5. Restart Home Assistant

Just FYI, a breaking change to both insteon_plm and insteonlocal. Please see this thread and give your input: