Cisco IOS Tracker Component

Hello, I am new to posting here so if this is not the correct way to post this type of thing please let me know. I am using the Cisco IOS tracker component and ran into a problem where it would no longer log in to the Cisco switch. It was producing the errors
“homeassistant.components.device_tracker.cisco_ios: pxssh failed on login.”
“homeassistant.components.device_tracker.cisco_ios: could not synchronize with original prompt”

After some research I realize that I had changed the MOTD banner recently on the switch. This was causing a problem with the Cisco IOS tracker component when it was parsing for the logon prompt causing it to fail. I removed all banners and it resolved the problem. It does not seem to fail with a banner in general but depending on how the banner is written it could cause issues. I wanted to put this out here incase someone else runs into the same problem.

Thanks for the post on this. I am the author on this component, and I also have a banner, and there is no problem.

Any plans to extend this plugin to support WLC? I’m using it now for my switches but WLC support would be extremely useful. I would be happy to provide a controller and access points for test/dev.

1 Like

Hi @fbradyirl, I’ve noticed an issue recently with the IOS scanner not able to pull the ARP listing. I’ve included a trace back below. I’m assuming this has happened after an IOS upgrade. I’ve SSHd to the device and the only thing I’ve noticed is a blank line after putting the password in, before getting the first hostname# prompt. I’m not sure if that’s a change in a recent IOS perhaps.

Appreciate your help.

Mike

2019-05-06 21:34:27 ERROR (MainThread) [homeassistant.components.device_tracker] Error setting up platform cisco_ios
Traceback (most recent call last):
File “/usr/local/lib/python3.7/site-packages/homeassistant/components/device_tracker/init.py”, line 170, in async_setup_platform
platform.get_scanner, hass, {DOMAIN: p_config})
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.7/site-packages/homeassistant/components/cisco_ios/device_tracker.py”, line 26, in get_scanner
scanner = CiscoDeviceScanner(config[DOMAIN])
File “/usr/local/lib/python3.7/site-packages/homeassistant/components/cisco_ios/device_tracker.py”, line 43, in init
self.success_init = self._update_info()
File “/usr/local/lib/python3.7/site-packages/homeassistant/components/cisco_ios/device_tracker.py”, line 62, in _update_info
string_result = self._get_arp_data()
File “/usr/local/lib/python3.7/site-packages/homeassistant/components/cisco_ios/device_tracker.py”, line 109, in _get_arp_data
router_hostname = initial_line[len(initial_line) - 1]
IndexError: list index out of range

IOS: Cisco IOS Software, C1900 Software (C1900-UNIVERSALK9-M), Version 15.8(3)M2

Putty Output after login:

Password:

Router#
Router#sh ip arp
Protocol Address Age (min) Hardware Addr Type Interface

Done.

I am interested in feedback, but I probably won’t be able to put a lot of work into this.

Nice! I will check this out and report back.

I’ve extended my wlc and now have mesh to different buildings. Maybe I can hack up a way to detect which AP a user device is connected to for automation control.

Cool, I running mobility express so I will check this out and se if it’s working and potential feedbacks

The AP that the client is connected to is pulled from the controller (but not used). You’ll need a mapping of AP Name to Zone and some code to update the client when it changes.

I tried installing it and putting in the username and password I created for it and I get the following error even though I downloaded the folder and placed it directly in the config/ folder:

Platform error device_tracker.cisco_wlc - Integration ‘cisco_wlc’ not found.