[0.82.0] ASUSWRT device tracker not working (SSH issue?)

Home Assistant release with the issue:

0.82.0
Last working Home Assistant release (if known):
0.81.6
Operating environment (Hass.io/Docker/Windows/etc.):

Docker
Component/platform:

Asuswrt device tracker
Description of problem:
Device tracker no longer works and is constantly trying to open a new SSH connection. There appear to be four references to changes to asuswrt in the RC docs for 0.82, so not sure which one is causing the issue?
think these are the beta pr's...
https://github.com/home-assistant/home-assistant/pull/18030
https://github.com/home-assistant/home-assistant/pull/17692
https://github.com/home-assistant/home-assistant/pull/17814
https://github.com/home-assistant/home-assistant/pull/17757
Downgrading back to 0.81.6 fixes the issue
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

- platform: asuswrt
  host: !secret asus_ip
  username: !secret asus_username
  password: !secret asus_password
  protocol: 'ssh'
  port: !secret asus_port

Traceback (if applicable):
2018-11-06 21:26:35 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=108] Requesting new SSH session
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=108]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=108] Received exit status 0
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=108] Received channel close
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=108] Channel closed
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=109] Requesting new SSH session
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=109]   Command: arp -n
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=109] Received exit status 127
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=109] Received channel close
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=109] Channel closed
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=110] Requesting new SSH session
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=110]   Command: ip neigh
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=110] Received exit status 127
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=110] Received channel close
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=110] Channel closed
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=111] Requesting new SSH session
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=111]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=111] Received exit status 0
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=111] Received channel close
2018-11-06 21:26:35 INFO (MainThread) [asyncssh] [conn=0, chan=111] Channel closed

Additional information:

Forgot to get debug logs...
2018-11-06 21:39:29 DEBUG (MainThread) [asyncssh] [conn=0, chan=16] Set write buffer limits: low-water=16384, high-water=65536
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=16] Requesting new SSH session
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=16]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=16] Received exit status 0
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=16] Received channel close
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=16] Channel closed
2018-11-06 21:39:29 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-06 21:39:29 DEBUG (MainThread) [asyncssh] [conn=0, chan=17] Set write buffer limits: low-water=16384, high-water=65536
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=17] Requesting new SSH session
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=17]   Command: arp -n
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=17] Received exit status 127
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=17] Received channel close
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=17] Channel closed
2018-11-06 21:39:29 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-06 21:39:29 DEBUG (MainThread) [asyncssh] [conn=0, chan=18] Set write buffer limits: low-water=16384, high-water=65536
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=18] Requesting new SSH session
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=18]   Command: ip neigh
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=18] Received exit status 127
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=18] Received channel close
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=18] Channel closed
2018-11-06 21:39:29 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-06 21:39:29 DEBUG (MainThread) [asyncssh] [conn=0, chan=19] Set write buffer limits: low-water=16384, high-water=65536
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=19] Requesting new SSH session
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=19]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=19] Received exit status 0
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=19] Received channel close
2018-11-06 21:39:29 INFO (MainThread) [asyncssh] [conn=0, chan=19] Channel closed
2018-11-06 21:39:29 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:

This is just strange, it should parse exactly as it did before, there is no real change to the parsing :/

It could be port setting maybee

It has also moved to a component rather than a platform.

It could be port setting maybe

i'll try to see if changing ports makes a difference (although it works fine on 0.81.6)
also looking forward to seeing the component (that is not in the current beta yet is it? think i linked to the wrong PR). Will this mean that adding as a device tracker is done automatically? so would I only need to set up the asuswrt component and not need anything in device_tracker.yaml?
Cheers,
James

Device tracker will atm. be setup automatically as a part of the component... It will add a total download and upload sensor for now, but there is plans for per device sensors / switches

I am having the asuswrt device tracker down as well with 0.82.0:
2018-11-10 17:36:14 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=40] Requesting new SSH session
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=40]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=40] Received exit status 0
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=40] Received channel close
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=40] Channel closed
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=41] Requesting new SSH session
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=41]   Command: arp -n
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=41] Received exit status 127
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=41] Received channel close
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=41] Channel closed
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=42] Requesting new SSH session
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=42]   Command: ip neigh
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=42] Received exit status 127
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=42] Received channel close
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=42] Channel closed
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=43] Requesting new SSH session
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=43]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=43] Received exit status 0
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=43] Received channel close
2018-11-10 17:36:14 INFO (MainThread) [asyncssh] [conn=0, chan=43] Channel closed

Me too, all devices shows as offline:
2018-11-10 23:18:11 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=36] Requesting new SSH session
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=36]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=36] Received exit status 0
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=36] Received channel close
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=36] Channel closed
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=37] Requesting new SSH session
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=37]   Command: arp -n
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=37] Received exit status 127
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=37] Received channel close
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=37] Channel closed
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=38] Requesting new SSH session
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=38]   Command: ip neigh
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=38] Received exit status 127
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=38] Received channel close
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=38] Channel closed
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=39] Requesting new SSH session
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=39]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=39] Received exit status 0
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=39] Received channel close
2018-11-10 23:18:11 INFO (MainThread) [asyncssh] [conn=0, chan=39] Channel closed

Are you on default port 22?

Ok.. there are commands missing on your systems, Ill try disabling them and will provide a script to test with

Just wanted to note that i had the same issues with 0.82.0, but i access my RT-AC66U using telnet. Dunno if that tells you anything.

The different routers, even though they are all asuswrt have different networking commands and different methods to receive the connected devices.

I am creating a testscript that we can run to get a better idea of what is
wrong, It could be telnet for sure!
If someone could check what version of aioasuswrt is in 0.82.0 that would
be great to.
On Sun, Nov 11, 2018, 15:43 Mario Wenzel<EMAIL_ADDRESS>wrote:

The different routers, even though they are all asuswrt have different
networking commands and different methods to receive the connected devices.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/issues/18281#issuecomment-437675684,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAMaamSlEyi7vkarKQu6swWaYNTiami3ks5uuDebgaJpZM4YRUZk
.

Just checked the version, could you please try just force updating aioasuswrt to 1.1.4 and see if that helps?
pip install --upgrade aioasuswrt==1.1.4

@kennedyshead
$ docker exec -it homeassistant bash
bash-4.4# pip install --upgrade aioasuswrt==1.1.4
Collecting aioasuswrt==1.1.4
  Downloading https://files.pythonhosted.org/packages/c3/b4/9145da685b3adf8db061a50cd24d258bfb7329df44b870e3a516a487ed4f/aioasuswrt-1.1.4-py3-none-any.whl
Requirement already satisfied, skipping upgrade: asyncssh in /usr/local/lib/python3.6/site-packages (from aioasuswrt==1.1.4) (1.14.0)
Requirement already satisfied, skipping upgrade: cryptography>=1.5 in /usr/local/lib/python3.6/site-packages (from asyncssh->aioasuswrt==1.1.4) (2.3.1)
Requirement already satisfied, skipping upgrade: idna>=2.1 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.4) (2.7)
Requirement already satisfied, skipping upgrade: asn1crypto>=0.21.0 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.4) (0.24.0)
Requirement already satisfied, skipping upgrade: six>=1.4.1 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.4) (1.11.0)
Requirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.7 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.4) (1.11.5)
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.7->cryptography>=1.5->asyncssh->aioasuswrt==1.1.4) (2.19)
Installing collected packages: aioasuswrt
  Found existing installation: aioasuswrt 1.1.2
    Uninstalling aioasuswrt-1.1.2:
      Successfully uninstalled aioasuswrt-1.1.2
Successfully installed aioasuswrt-1.1.4
You are using pip version 18.0, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
bash-4.4# exit
exit

and then restarted the container. Devices now show up as "not_home" instead of "Away". All devices are marked as "not_home".
One thing I saw:
2018-11-11 10:57:47 INFO (MainThread) [asyncssh] [conn=0, chan=101]   Command: arp -n
2018-11-11 10:57:47 INFO (MainThread) [asyncssh] [conn=0, chan=101] Received exit status 127
Is 127 an error code status? All others return 0.

@hulkhaugen,
Are you seeing the same issue accessing via telnet not ssh?

Its command not found in bash... but it really should work with or without arp

Anyone that use SSH please run this: https://gist.github.com/kennedyshead/54d9b54898ea97dadd103118535a7247

@kennedyshead
I have revrted back to 1.1.2 but turned on debug in the logs:
2018-11-11 11:09:47 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-11 11:09:47 DEBUG (MainThread) [asyncssh] [conn=0, chan=12] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=12] Requesting new SSH session
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=12]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=12] Received exit status 0
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=12] Received channel close
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=12] Channel closed
2018-11-11 11:09:47 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 11:09:47 DEBUG (MainThread) [asyncssh] [conn=0, chan=13] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=13] Requesting new SSH session
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=13]   Command: arp -n
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=13] Received exit status 127
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=13] Received channel close
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=13] Channel closed
2018-11-11 11:09:47 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 11:09:47 DEBUG (MainThread) [asyncssh] [conn=0, chan=14] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=14] Requesting new SSH session
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=14]   Command: ip neigh
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=14] Received exit status 127
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=14] Received channel close
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=14] Channel closed
2018-11-11 11:09:47 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 11:09:47 DEBUG (MainThread) [asyncssh] [conn=0, chan=15] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=15] Requesting new SSH session
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=15]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=15] Received exit status 0
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=15] Received channel close
2018-11-11 11:09:47 INFO (MainThread) [asyncssh] [conn=0, chan=15] Channel closed
2018-11-11 11:09:47 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:

I think we should drop the telnet-version... IMO its just causing trouble and the all have ssh afaik.

@kennedyshead
/config # python asuswrttest.py
arp
['']
{}
leases
['63481 ****MAC data from network redacted**** '']
{}
neigh
['']
{}
wl
['']
{}
/config #

Thats not good... could you ssh into the router and run for dev in nvram get wl_ifnames; do wl -i $dev assoclist; done

@kennedyshead
admin@RT-AC68U:/tmp/home/root# for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
assoclist F8:xx:xx:xx:xx:xx
assoclist 44:xx:xx:xx:xx:xx
assoclist 28:xx:xx:xx:xx:xx
assoclist 3C:xx:xx:xx:xx:xx
assoclist 68:xx:xx:xx:xx:xx
assoclist 68:xx:xx:xx:xx:xx
assoclist 84:xx:xx:xx:xx:xx
assoclist 68:xx:xx:xx:xx:xx
assoclist 6C:xx:xx:xx:xx:xx
assoclist B4:xx:xx:xx:xx:xx
assoclist 84:xx:xx:xx:xx:xx
assoclist DC:xx:xx:xx:xx:xx
assoclist 38:xx:xx:xx:xx:xx
admin@RT-AC68U:/tmp/home/root#

I get
arp
['']
{}
leases
['']
{}
neigh
['']
{}
wl
['']
{}

On the router:
admin@(none):/tmp/home/root# for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
-sh: wl: not found
-sh: wl: not found

my RT-AC53 doesn't have the wl command and I'm preventing people from removing the other commands since the component exists.

It should really not make a different, the strange thing is that @ZetaPhoenix  have the wl data but it does not get parsed

Could be that this have to be done for more of the commands

@kennedyshead
I changed my logging default to warn to stop all of the INFO from the ssh and saw this in the history:
2018-11-11 11:23:04 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/__init__.py", line 692, in async_device_tracker_scan
    found_devices = await scanner.async_scan_devices()
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/asuswrt.py", line 76, in async_scan_devices
    await self.async_update_info()
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/asuswrt.py", line 92, in async_update_info
    self.last_results = await self.connection.async_get_connected_devices()
  File "/config/deps/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 157, in async_get_connected_devices
    devices.update(await self.async_get_wl())
  File "/config/deps/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 96, in async_get_wl
    result = _parse_lines(lines, _WL_REGEX)
  File "/config/deps/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 60, in _parse_lines
    for line in lines:
TypeError: 'coroutine' object is not iterable
/usr/local/lib/python3.6/site-packages/homeassistant/util/async_.py:29: RuntimeWarning: coroutine 'SshConnection.async_run_command' was never awaited
  return loop.run_until_complete(main)
2018-11-11 11:35:59 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/__init__.py", line 692, in async_device_tracker_scan
    found_devices = await scanner.async_scan_devices()
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/asuswrt.py", line 76, in async_scan_devices
    await self.async_update_info()
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/asuswrt.py", line 92, in async_update_info
    self.last_results = await self.connection.async_get_connected_devices()
  File "/config/deps/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 157, in async_get_connected_devices
    devices.update(await self.async_get_wl())
  File "/config/deps/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 96, in async_get_wl
    result = _parse_lines(lines, _WL_REGEX)
  File "/config/deps/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 60, in _parse_lines
    for line in lines:
TypeError: 'coroutine' object is not iterable

Not sure if this is related as I have restarted and did not get the error again.

@ZetaPhoenix could you install
pip install --update https://github.com/kennedyshead/aioasuswrt/archive/fixing_not_working_parser.zip

@kennedyshead
$ docker exec -it homeassistant sh
/config # pip install --update https://github.com/kennedyshead/aioasuswrt/archive/fixing_not_working_parser.zip

Usage:
  pip install [options] <requirement specifier> [package-index-options] ...
  pip install [options] -r <requirements file> [package-index-options] ...
  pip install [options] [-e] <vcs project url> ...
  pip install [options] [-e] <local project path> ...
  pip install [options] <archive url/path> ...

no such option: --update

Should that be upgrade?

yes sorry :D

@kennedyshead
Still seeing everything as Away:
2018-11-11 12:25:35 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-11 12:25:35 DEBUG (MainThread) [asyncssh] [conn=0, chan=24] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=24] Requesting new SSH session
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=24]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=24] Received exit status 0
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=24] Received channel close
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=24] Channel closed
2018-11-11 12:25:35 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:35 DEBUG (MainThread) [asyncssh] [conn=0, chan=25] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=25] Requesting new SSH session
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=25]   Command: arp -n
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=25] Received exit status 127
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=25] Received channel close
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=25] Channel closed
2018-11-11 12:25:35 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:35 DEBUG (MainThread) [asyncssh] [conn=0, chan=26] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=26] Requesting new SSH session
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=26]   Command: ip neigh
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=26] Received exit status 127
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=26] Received channel close
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=26] Channel closed
2018-11-11 12:25:35 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:35 DEBUG (MainThread) [asyncssh] [conn=0, chan=27] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=27] Requesting new SSH session
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=27]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=27] Received exit status 0
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=27] Received channel close
2018-11-11 12:25:35 INFO (MainThread) [asyncssh] [conn=0, chan=27] Channel closed
2018-11-11 12:25:35 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:48 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-11 12:25:48 DEBUG (MainThread) [asyncssh] [conn=0, chan=28] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=28] Requesting new SSH session
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=28]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=28] Received exit status 0
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=28] Received channel close
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=28] Channel closed
2018-11-11 12:25:48 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:48 DEBUG (MainThread) [asyncssh] [conn=0, chan=29] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=29] Requesting new SSH session
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=29]   Command: arp -n
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=29] Received exit status 127
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=29] Received channel close
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=29] Channel closed
2018-11-11 12:25:48 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:48 DEBUG (MainThread) [asyncssh] [conn=0, chan=30] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=30] Requesting new SSH session
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=30]   Command: ip neigh
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=30] Received exit status 127
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=30] Received channel close
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=30] Channel closed
2018-11-11 12:25:48 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:25:48 DEBUG (MainThread) [asyncssh] [conn=0, chan=31] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=31] Requesting new SSH session
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=31]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=31] Received exit status 0
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=31] Received channel close
2018-11-11 12:25:48 INFO (MainThread) [asyncssh] [conn=0, chan=31] Channel closed
2018-11-11 12:25:48 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:

It seems like this is working for some people: https://community.home-assistant.io/t/asuswrt-device-tracker-tracking-unknown-mac-from-wan/73747/4 Not sure why it is failing for others. Could it be related to the SSH setup?
@jimbob1001 , @maweki , how are you configuring SSH: password or RSA key? I am using RSA key with password disabled on the router.

Is that really the new version? Very strange in that case, it should not show ´Could not parse row:´

If I restarted the container to change the logging would that reinstall the old version?

Is that really the new version? Very strange in that case, it should not show Could not parse row:

I am using password/username authentication. I'm using my router as an AP only.

@ZetaPhoenix Yes I think so... could you install that and run the test-gist

@kennedyshead in progress....

I think its a python-version bug maybe...

@kennedyshead
$ docker exec -it homeassistant sh
/config # pip install --upgrade https://github.com/kennedyshead/aioasuswrt/archive/fixing_not_working_parser.zip
Collecting https://github.com/kennedyshead/aioasuswrt/archive/fixing_not_working_parser.zip
  Downloading https://github.com/kennedyshead/aioasuswrt/archive/fixing_not_working_parser.zip
     - 174kB 10.5MB/s
Requirement already satisfied, skipping upgrade: asyncssh in /usr/local/lib/python3.6/site-packages (from aioasuswrt==1.1.5) (1.14.0)
Requirement already satisfied, skipping upgrade: cryptography>=1.5 in /usr/local/lib/python3.6/site-packages (from asyncssh->aioasuswrt==1.1.5) (2.3.1)
Requirement already satisfied, skipping upgrade: idna>=2.1 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.5) (2.7)
Requirement already satisfied, skipping upgrade: asn1crypto>=0.21.0 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.5) (0.24.0)
Requirement already satisfied, skipping upgrade: six>=1.4.1 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.5) (1.11.0)
Requirement already satisfied, skipping upgrade: cffi!=1.11.3,>=1.7 in /usr/local/lib/python3.6/site-packages (from cryptography>=1.5->asyncssh->aioasuswrt==1.1.5) (1.11.5)
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.7->cryptography>=1.5->asyncssh->aioasuswrt==1.1.5) (2.19)
Building wheels for collected packages: aioasuswrt
  Running setup.py bdist_wheel for aioasuswrt ... done
  Stored in directory: /tmp/pip-ephem-wheel-cache-pbnld8t7/wheels/99/b5/15/c1f369584e6cb0f3a5195cd97808c8b1209202353777201a84
Successfully built aioasuswrt
Installing collected packages: aioasuswrt
  Found existing installation: aioasuswrt 1.1.5
    Uninstalling aioasuswrt-1.1.5:
      Successfully uninstalled aioasuswrt-1.1.5
Successfully installed aioasuswrt-1.1.5
You are using pip version 18.0, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/config # python asuswrttest.py
arp
['']
{}
leases
[' Local MAC data ', '']
{}
neigh
['']
{}
wl
['']
{}
/config #

And at the same time in the hass logs:
2018-11-11 12:41:12 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-11 12:41:12 DEBUG (MainThread) [asyncssh] [conn=1, chan=68] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=68] Requesting new SSH session
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=68]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=68] Received exit status 0
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=68] Received channel close
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=68] Channel closed
2018-11-11 12:41:12 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:41:12 DEBUG (MainThread) [asyncssh] [conn=1, chan=69] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=69] Requesting new SSH session
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=69]   Command: arp -n
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=69] Received exit status 127
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=69] Received channel close
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=69] Channel closed
2018-11-11 12:41:12 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:41:12 DEBUG (MainThread) [asyncssh] [conn=1, chan=70] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=70] Requesting new SSH session
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=70]   Command: ip neigh
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=70] Received exit status 127
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=70] Received channel close
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=70] Channel closed
2018-11-11 12:41:12 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:
2018-11-11 12:41:12 DEBUG (MainThread) [asyncssh] [conn=1, chan=71] Set write buffer limits: low-water=16384, high-water=65536
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=71] Requesting new SSH session
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=71]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=71] Received exit status 0
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=71] Received channel close
2018-11-11 12:41:12 INFO (MainThread) [asyncssh] [conn=1, chan=71] Channel closed
2018-11-11 12:41:12 DEBUG (MainThread) [aioasuswrt.asuswrt] Could not parse row:

One last try:
import asyncio, asyncssh, sys

async def run_client():
    async with asyncssh.connect('router.ip.adress', 22, username='****', password='****') as conn:
        async with conn.create_process('bc') as process:
            process.stdin.write('for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done' + '\n')
            result = await process.stdout.readline()
            print(result, end='')

try:
    asyncio.get_event_loop().run_until_complete(run_client())
except (OSError, asyncssh.Error) as exc:
    sys.exit('SSH connection failed: ' + str(exc))

@kennedyshead
/config # python asuswrt-test2.py
SSH connection failed: [Errno 2] No such file or directory: '/root/.ssh/known_hosts'
/config #

No that seems like we might be making progress. I am running homeassistant/raspberrypi3-homeassistant and have the following in the config:
#device_tracker:
  - platform: asuswrt
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

Should the asyncssh be pointing to /root/.ssh/known_hosts?

@hulkhaugen,
Are you seeing the same issue accessing via telnet not ssh?
Only telnet, SSH isn't an option with stock fw on RT-AC66U.

@ZetaPhoenix Sorry try this:
import asyncio, asyncssh, sys

async def run_client():
    async with asyncssh.connect('router.ip.adress', 22, username='****', password='****', known_hosts=None) as conn:
        async with conn.create_process('bc') as process:
            process.stdin.write('for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done' + '\n')
            result = await process.stdout.readline()
            print(result, end='')

try:
    asyncio.get_event_loop().run_until_complete(run_client())
except (OSError, asyncssh.Error) as exc:
    sys.exit('SSH connection failed: ' + str(exc))

Why cant the problems be visible in my system :(
If someone is brave enough to give me a vpn tunnel to a faulty router the testing would be 100% times easier.

@kennedyshead
$ docker exec -it homeassistant sh
/config # python asuswrt-test3.py
/config #

This?
#!/usr/bin/env python
import asyncio
import logging

import sys

from aioasuswrt.asuswrt import AsusWrt

component = AsusWrt('<IP_ADDRESS>', 22, username='knutas', password='Freakdays123')
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logger = logging.getLogger(__name__)

async def print_data():
    dev = {}
    logger.debug("arp")
    logger.debug(await component.connection.async_run_command('arp -n'))
    logger.debug(await component.async_get_arp())
    logger.debug("leases")
    logger.debug(await component.connection.async_run_command('cat /var/lib/misc/dnsmasq.leases'))
    logger.debug(await component.async_get_leases(dev))
    logger.debug("neigh")
    logger.debug(await component.connection.async_run_command('ip neigh'))
    logger.debug(await component.async_get_neigh(dev))
    logger.debug("wl")
    logger.debug(await component.connection.async_run_command('for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done'))
    logger.debug(await component.async_get_wl())

loop = asyncio.get_event_loop()

loop.run_until_complete(print_data())
loop.close()

#!/usr/bin/env python
import asyncio
import logging

import sys

from aioasuswrt.asuswrt import AsusWrt

component = AsusWrt('<IP_ADDRESS>', 22, username='****', password='****')
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logger = logging.getLogger(__name__)

async def print_data():
    dev = {}
    logger.debug("arp")
    logger.debug(await component.connection.async_run_command('arp -n'))
    logger.debug(await component.async_get_arp())
    logger.debug("leases")
    logger.debug(await component.connection.async_run_command('cat /var/lib/misc/dnsmasq.leases'))
    logger.debug(await component.async_get_leases(dev))
    logger.debug("neigh")
    logger.debug(await component.connection.async_run_command('ip neigh'))
    logger.debug(await component.async_get_neigh(dev))
    logger.debug("wl")
    logger.debug(await component.connection.async_run_command('for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done'))
    logger.debug(await component.async_get_wl())

loop = asyncio.get_event_loop()

loop.run_until_complete(print_data())
loop.close()

And still no the other pwd is not a password I use normally, its just used as a tempuser on my router  to test this <3 ;)

@kennedyshead
/config # python asuswrt-test4.py
DEBUG:asyncio:Using selector: EpollSelector
DEBUG:__main__:arp
INFO:asyncssh:Opening SSH connection to <IP_ADDRESS>, port 22
INFO:asyncssh:[conn=0] Connection to <IP_ADDRESS>, port 22 succeeded
INFO:asyncssh:[conn=0]   Local address: <IP_ADDRESS>, port 48658
DEBUG:asyncssh:[conn=0] Requesting key exchange
DEBUG:asyncssh:[conn=0] Received key exchange request
DEBUG:asyncssh:[conn=0] Beginning key exchange
DEBUG:asyncssh:[conn=0] Completed key exchange
INFO:asyncssh:[conn=0] Beginning auth for user admin
DEBUG:asyncssh:[conn=0] Trying password auth
INFO:asyncssh:[conn=0] Auth for user admin succeeded
DEBUG:asyncssh:[conn=0, chan=0] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=0] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=0]   Command: arp -n
INFO:asyncssh:[conn=0, chan=0] Received exit status 127
INFO:asyncssh:[conn=0, chan=0] Received channel close
INFO:asyncssh:[conn=0, chan=0] Channel closed
DEBUG:__main__:['']
DEBUG:asyncssh:[conn=0, chan=1] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=1] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=1]   Command: arp -n
INFO:asyncssh:[conn=0, chan=1] Received exit status 127
INFO:asyncssh:[conn=0, chan=1] Received channel close
INFO:asyncssh:[conn=0, chan=1] Channel closed
DEBUG:aioasuswrt.asuswrt:Could not parse row:
DEBUG:__main__:{}
DEBUG:__main__:leases
DEBUG:asyncssh:[conn=0, chan=2] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=2] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=2]   Command: cat /var/lib/misc/dnsmasq.leases
INFO:asyncssh:[conn=0, chan=2] Received exit status 0
INFO:asyncssh:[conn=0, chan=2] Received channel close
INFO:asyncssh:[conn=0, chan=2] Channel closed
DEBUG:__main__:['**** Local MAC IP List ****, '']
DEBUG:asyncssh:[conn=0, chan=3] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=3] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=3]   Command: cat /var/lib/misc/dnsmasq.leases
INFO:asyncssh:[conn=0, chan=3] Received exit status 0
INFO:asyncssh:[conn=0, chan=3] Received channel close
INFO:asyncssh:[conn=0, chan=3] Channel closed
DEBUG:aioasuswrt.asuswrt:Could not parse row:
DEBUG:__main__:{}
DEBUG:__main__:neigh
DEBUG:asyncssh:[conn=0, chan=4] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=4] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=4]   Command: ip neigh
INFO:asyncssh:[conn=0, chan=4] Received exit status 127
INFO:asyncssh:[conn=0, chan=4] Received channel close
INFO:asyncssh:[conn=0, chan=4] Channel closed
DEBUG:__main__:['']
DEBUG:asyncssh:[conn=0, chan=5] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=5] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=5]   Command: ip neigh
INFO:asyncssh:[conn=0, chan=5] Received exit status 127
INFO:asyncssh:[conn=0, chan=5] Received channel close
INFO:asyncssh:[conn=0, chan=5] Channel closed
DEBUG:aioasuswrt.asuswrt:Could not parse row:
DEBUG:__main__:{}
DEBUG:__main__:wl
DEBUG:asyncssh:[conn=0, chan=6] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=6] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=6]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
INFO:asyncssh:[conn=0, chan=6] Received exit status 0
INFO:asyncssh:[conn=0, chan=6] Received channel close
INFO:asyncssh:[conn=0, chan=6] Channel closed
DEBUG:__main__:['']
DEBUG:asyncssh:[conn=0, chan=7] Set write buffer limits: low-water=16384, high-water=65536
INFO:asyncssh:[conn=0, chan=7] Requesting new SSH session
INFO:asyncssh:[conn=0, chan=7]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
INFO:asyncssh:[conn=0, chan=7] Received exit status 0
INFO:asyncssh:[conn=0, chan=7] Received channel close
INFO:asyncssh:[conn=0, chan=7] Channel closed
DEBUG:aioasuswrt.asuswrt:Could not parse row:
DEBUG:__main__:{}

Could one of you run the dev version and confirm fixed?

I cannot say whether it is working or not as i am away at the moment but I tried the device tracker in latest 0.83.0.dev0 but it complained about asuswrt component not found (sorry didn't get exact log), so then deleted device_tracker config and added asuswrt config...
2018-11-12 14:38:59 DEBUG (MainThread) [asyncssh] [conn=0] Requesting key exchange
2018-11-12 14:38:59 DEBUG (MainThread) [asyncssh] [conn=0] Received key exchange request
2018-11-12 14:38:59 DEBUG (MainThread) [asyncssh] [conn=0] Beginning key exchange

2018-11-12 14:39:00 INFO (MainThread) [asyncssh] [conn=0] Beginning auth for user xxxxxxxx
2018-11-12 14:39:00 DEBUG (MainThread) [asyncssh] [conn=0] Trying password auth
2018-11-12 14:39:00 INFO (MainThread) [asyncssh] [conn=0] Auth for user asusadmin succeeded

2018-11-12 14:40:13 INFO (MainThread) [homeassistant.components.device_tracker] Setting up device_tracker.asuswrt
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=0] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=0] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=0]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=0] Received exit status 0
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=0] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=0] Channel closed
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=1] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=1] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=1]   Command: arp -n
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=1] Received exit status 127
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=1] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=1] Channel closed
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=2] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=2] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=2]   Command: ip neigh
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=2] Received exit status 127
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=2] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=2] Channel closed
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=3] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=3] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=3]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=3] Received exit status 0
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=3] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=3] Channel closed
2018-11-12 14:40:13 INFO (MainThread) [homeassistant.components.device_tracker.asuswrt] Checking Devices
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=4] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=4] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=4]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=4] Received exit status 0
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=4] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=4] Channel closed
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=5] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=5] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=5]   Command: arp -n
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=5] Received exit status 127
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=5] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=5] Channel closed
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=6] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=6] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=6]   Command: ip neigh
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=6] Received exit status 127
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=6] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=6] Channel closed
2018-11-12 14:40:13 DEBUG (MainThread) [asyncssh] [conn=0, chan=7] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=7] Requesting new SSH session
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=7]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=7] Received exit status 0
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=7] Received channel close
2018-11-12 14:40:13 INFO (MainThread) [asyncssh] [conn=0, chan=7] Channel closed

2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=8] Requesting new SSH session
2018-11-12 14:40:14 DEBUG (MainThread) [asyncssh] [conn=0, chan=9] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=9] Requesting new SSH session
2018-11-12 14:40:14 DEBUG (MainThread) [asyncssh] [conn=0, chan=10] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=10] Requesting new SSH session
2018-11-12 14:40:14 DEBUG (MainThread) [asyncssh] [conn=0, chan=11] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=11] Requesting new SSH session

2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=8]   Command: ip -rc 1024 -s link
2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=9]   Command: ip -rc 1024 -s link
2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=10]   Command: ip -rc 1024 -s link
2018-11-12 14:40:14 INFO (MainThread) [asyncssh] [conn=0, chan=11]   Command: ip -rc 1024 -s link

Ok, yes its a component in 0.83.
Lets hope that it works now ;)

And oh... the sensors do not work atm. for you, it will be fixed before release (hopefully)

Definitely not working.
Asuswrt device tracker still says 'away' 20 minutes after my other trackers have marked me as 'home'

Anything new in the logs?

Nothing that looks any different...
2018-11-12 22:05:44 DEBUG (MainThread) [asyncssh] [conn=0, chan=20] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=20] Requesting new SSH session
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=20]   Command: for dev in `nvram get wl_ifnames`; do wl -i $dev assoclist; done
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=20] Received exit status 0
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=20] Received channel close
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=20] Channel closed
2018-11-12 22:05:44 DEBUG (MainThread) [asyncssh] [conn=0, chan=21] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=21] Requesting new SSH session
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=21]   Command: arp -n
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=21] Received exit status 127
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=21] Received channel close
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=21] Channel closed
2018-11-12 22:05:44 DEBUG (MainThread) [asyncssh] [conn=0, chan=22] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=22] Requesting new SSH session
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=22]   Command: ip neigh
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=22] Received exit status 127
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=22] Received channel close
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=22] Channel closed
2018-11-12 22:05:44 DEBUG (MainThread) [asyncssh] [conn=0, chan=23] Set write buffer limits: low-water=16384, high-water=65536
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=23] Requesting new SSH session
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=23]   Command: cat /var/lib/misc/dnsmasq.leases
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=23] Received exit status 0
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=23] Received channel close
2018-11-12 22:05:44 INFO (MainThread) [asyncssh] [conn=0, chan=23] Channel closed

I think we have a solution but want to make sure before bumping the version

Same here. Updated to 0.82.1. Problem persists. Using Telnet.

I switched to ssh and looks like the problem is not fixed

@kennedyshead
Who manages the docker images? I do not see 0.82.1 so I can not test the changes.
$ docker pull homeassistant/raspberrypi3-homeassistant
Using default tag: latest
latest: Pulling from homeassistant/raspberrypi3-homeassistant
Digest: sha256:e844b83e8c13e17d49ec09ee0520dffc809a642a64fba503a83c4264797851dc
Status: Image is up to date for homeassistant/raspberrypi3-homeassistant:latest
$ docker pull homeassistant/raspberrypi3-homeassistant:0.82.1
Error response from daemon: manifest for homeassistant/raspberrypi3-homeassistant:0.82.1 not found

There are other issues I would like to get fixed as well. Who should I talk to?

Not sure who handles the containers, as it appears to be an automatic build, but the 0.82.1 container has been up since around noon Eastern.
https://hub.docker.com/r/homeassistant/home-assistant/

@Bahnburner
That is what I thought but someone is in charge of setting the build.
https://hub.docker.com/r/homeassistant/raspberrypi3-homeassistant/tags/ tag 0.82.1 is MIA as well as :latest can also refer to the dev (#18243).

0.82.1 didn't solved the problem for me. Router Asus RT-N53, telnet. With PuTTy i can connect via telnet. Am i doing something wrong? Config.yaml entry:
device_tracker:

platform: asuswrt
host: <IP_ADDRESS>
protocol: telnet
username: !secret router_username
password: !secret router_password

It worked before 0.82.0
2018-11-17 11:35:22 WARNING (Recorder) [homeassistant.components.recorder] Ended unfinished session (id=129 from 2018-11-17 09:28:29.324641) 2018-11-17 11:35:27 ERROR (MainThread) [homeassistant.components.device_tracker] Error setting up platform asuswrt Traceback (most recent call last):   File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/__init__.py", line 174, in async_setup_platform     hass, {DOMAIN: p_config})   File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/asuswrt.py", line 46, in async_get_scanner     await scanner.async_connect()   File "/usr/local/lib/python3.6/site-packages/homeassistant/components/device_tracker/asuswrt.py", line 71, in async_connect     data = await self.connection.async_get_connected_devices()   File "/usr/local/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 165, in async_get_connected_devices     dev = await self.async_get_wl()   File "/usr/local/lib/python3.6/site-packages/aioasuswrt/asuswrt.py", line 101, in async_get_wl     lines = await self.connection.async_run_command(_WL_CMD)   File "/usr/local/lib/python3.6/site-packages/aioasuswrt/connection.py", line 87, in async_run_command     await self.async_connect()   File "/usr/local/lib/python3.6/site-packages/aioasuswrt/connection.py", line 96, in async_connect     self._host, self._port)   File "/usr/local/lib/python3.6/asyncio/streams.py", line 81, in open_connection     lambda: protocol, host, port, **kwds)   File "uvloop/loop.pyx", line 1879, in create_connection   File "uvloop/loop.pyx", line 1858, in uvloop.loop.Loop.create_connection ConnectionRefusedError: [Errno 111] Connection refused

Still not updating for me either using 0.82.1, HassOS 1.12, Ver 139 on DSL-AC68U stock firmware SSH

Also still not updating on Resin OS based Hass.io 0.82.1 with Asus RT-AC68U stock firmware SSH.

Broken on 0.82 and 0.82.1 for me. Stock Asus RT-AC66 with telnet.

Same for me on 0.82.1. I also have an AC66U with telenet. I couldn't find telnet in my routers settings, so I guess it only supports telnet.

@kennedyshead
After downloading the 0.83.0b0 image and moving the device tracker config from
device_tracker:
  - platform: asuswrt
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

to

asuswrt:
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

all devices are now showing up correctly and being tracked.
Thanks for fixing this!
FYI, the example in #17757 does not show ssh_key as an option.

I'm not sure why this is closed now, but will post here anyway.
I installed 0.83b0 and it's still not working on my RT-AC68U with SSH, AP mode firmware  <IP_ADDRESS>.384_32799.
The funny thing is that if I execute the command I see in HA logs:

for dev in nvram get wl1_vifs && nvram get wl0_vifs && nvram get wl_ifnames; do if type wlanconfig > /dev/null; then wlanconfig $dev list | awk 'FNR > 1 {print substr($1, 0, 18)}'; else wl -i $dev assoclist; fi; done

I get different results than I see in HA. I mean the list of devices in the comamnd line shows wireless devices + 1 more that I was not abel to recognize (it's also not visible in the asus mobile app), but the list of trackers in HA shows a tiny subset of the command line list + some other devices. Like it lived its own life and was independent from the ssh command...

One more data point... Am suddenly getting this "Error setting up platform asuswrt" after upgrading and is not fixed with 0.82.1. Am connecting via telnet to RT-N66U.

@StevenRosson
I posted the necessary changes as asuswrt is no longer a "platform" but a standalone component.
Change your config from:

device_tracker:
  - platform: asuswrt
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

to
asuswrt:
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

asuswrt is no longer under device-tracker:. I have noticed that the new sensors do not appear to be measuring data correctly (#18643) but all of the devices are now properly tracked.

@StevenRosson
I posted the necessary changes as asuswrt is no longer a "platform" but a standalone component.
Change your config from:

device_tracker:
  - platform: asuswrt
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

to
asuswrt:
    host: !secret router_ip
    username: !secret asus_admin_name
#    password: !secret asus_admin_password
#or
    ssh_key: '/config/ssh/asuswrt'  #The path to your SSH private key file associated with your given admin account

asuswrt is no longer under device-tracker:. I have noticed that the new sensors do not appear to be measuring data correctly (#18643) but all of the devices are now properly tracked.

I tried but asuswrt is not detected as a component in 0.82.1.

I have Asus RT-AC5300 and 0.83.0b1 works fine for me. Didn't get "not home" while at home for the whole night until I left next morning.

You need to add port: 23 if you're using telnet. I just got it working, but it only works for 10 minutes before all devices are supposedly away.

Tried 0.83 and still didnt get any luck.
Log Details (ERROR)
Thu Nov 29 2018 19:21:01 GMT+0200 (South Africa Standard Time)
Error during setup of component asuswrt
Traceback (most recent call last):
File "/usr/src/app/homeassistant/setup.py", line 145, in _async_setup_component
hass, processed_config)
File "/usr/src/app/homeassistant/components/asuswrt.py", line 57, in async_setup
await api.connection.async_connect()
File "/usr/local/lib/python3.6/site-packages/aioasuswrt/connection.py", line 100, in async_connect
self._host, self._port)
File "/usr/local/lib/python3.6/asyncio/streams.py", line 81, in open_connection
lambda: protocol, host, port, **kwds)
File "uvloop/loop.pyx", line 1879, in create_connection
File "uvloop/loop.pyx", line 1858, in uvloop.loop.Loop.create_connection
ConnectionRefusedError: [Errno 111] Connection refused

@calypsoSA ,
Per https://github.com/home-assistant/home-assistant/issues/18492#issuecomment-442804909, try adding Port 23 to you config.
@kennedyshead is there a reason why telnet is assuming 22 by default? This seem wierd.

oh... just sloppy programming, Ill fix that in next release ;)

I updated to 0.83.0 today and I thought it worked perfectly again (by specifying port 23 for telnet). But after a few minutes, all devices got the status away.
I also see a lot of sensor.asuswrt_download fails and sensor.asuswrt_upload fails in the log, not sure if those if those problem are releated?

I updated to 0.83.0 today and I thought it worked perfectly again (by specifying port 23 for telnet). But after a few minutes, all devices got the status away.
I also see a lot of sensor.asuswrt_download fails and sensor.asuswrt_upload fails in the log, not sure if those if those problem are releated?

Port 23 also fixed it for me. But as per Broodster, have testing an AWAY/HOME, it just didnt come back to home.
All the sensor.asus also broken for me too.

Just updated from 0.80.0 to latest 0.83.0. Router "RT-N66U" (no option for ssh and factory firmware)
added asuswrt.yaml
## Asus router integration
host: <IP_ADDRESS>
username: **********
password: ***************
protocol: telnet
port: 23
asuswrt.log

My HA crashed for some reason last night. When I tried to restart I found errors associated with the AsusWRT component and I couldn't get the app to restart. I checked Github and saw that there was new release that had been automatically installed via WatchTower (I run HA using Docker).
I think the errors I saw in 0.83 may be because I hadn't updated my configuration to use Component rather than Device Tracker. However I rolled back to 0.82 which seems to be working for the present (my phone shows as 'home').

I'm confused about why the AsusWRT issues keep being closed. I had one I made specific to 0.83b that was merged into another for 0.82, now I see this one is closed too.
I'm still having the same issue so I rolled back to 0.81.6. But I had the same 180 seconds of AsusWRT connectivity and then it stopped tracking and all went to not_home. Asus RT-N66U using telnet.

Im assuming that we need to wait for the next release.

0.83.3 seems to be fixed 👍
Thumbs up!

0.83.3 seems to be fixed 👍
Thumbs up!

Which router do you have? I got it working with my RT-AC66U on 0.83.3, but only for a few minutes using telnet, then every device "went away". I have rolled back to 0.81.6, but i have an extra docker container only running asuswrt and a few other components to monitor, but no luck so far. Neither can I see any related changes for the asuswrt component in the beta changelogs since 0.83.3 either...

It seems like only telnet is failing now. I seems like #19031 is tracking
that issue.
On Fri, Dec 7, 2018 at 1:41 PM hulkhaugen<EMAIL_ADDRESS>wrote:

0.83.3 seems to be fixed 👍
Thumbs up!
Which router do you have? I got it working with my RT-AC66U on 0.83.3, but
only for a few minutes using telnet, then every device "went away". I have
rolled back to 0.81.6, but i have an extra docker container only running
asuswrt and a few other components to monitor, but no luck so far. Neither
can I see any related changes for the asuswrt component in the beta
changelogs since 0.83.3 either...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/issues/18281#issuecomment-445374294,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABgW92RcGGMwrtxGs9JWyh23u_qevzfYks5u2uCSgaJpZM4YRUZk
.

I have the RT-AC87U and until version 0.83.2 i also had this issue ( with telnet ).

I am having the same issue but not with asuswrt, instead I am using Cisco and Fritzbox device tracker.
Both are having the descriped issues from here.


Linking against GLFW on MSYS2 triggers “undefined reference to `__ms_vsnprintf'”

I am unable to link against GLFW 3.3 for 64-bit Windows using MSYS2 on Windows 10 (64 bits). As far as I know, I am using the 64 bit toolchain (sizeof(void*) is 8 bytes at any rate). I have copied glfw-3.3.bin.WIN64/lib-mingw-w64/*  into /usr/local/lib/ and have reduced it to the following minimum example:
$ cat test.c
// forces gcc to actually link against GLFW3
void glfwInit();
int main(void) { glfwInit(); }
$ gcc test.c -mwindows -L/usr/local/lib -lglfw3
/usr/local/lib/libglfw3.a(init.c.obj):init.c:(.text+0x25e): undefined reference to `__ms_vsnprintf'
/usr/local/lib/libglfw3.a(init.c.obj):init.c:(.text+0x25e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__ms_vsnprintf'
collect2: error: ld returned 1 exit status

As indicated by the error, it seems to come from glfw-3.3/init.c, line 163 in the definition of _glfwInputError(). My guess would be that the GLFW 3.3 libraries for MinGW were not compiled with -D__USE_MINGW_ANSI_STDIO=1, causing it to link against Microsoft's vsnprintf() instead of the one of MinGW. So, should this flag be added for the MinGW release of GLFW, or is there a workaround I can use?
By the way, I would have side-stepped this issue by recompiling GLFW with the flag locally, but I am currently stuck on finding the dependencies for xproto, itself a dependency of libx11, a dependency of GLFW.

For your last issue, it is pretty unlikely that you want to build GLFW’s X11 backend, instead it should detect that you are on Windows and build the win32 backend (see CMakeLists.txt:146). Make sure you have the relevant headers installed, it shouldn’t depend on libx11.
As for the rest of your issue, I’ll leave it to someone who has used Windows this past decade. :D

Thanks for the quick answer! I should have realized using the X11 libraries on Windows made little sense! I think MSYS2 is a bit too good at pretending to be Unix. I managed to bypass the issue by adding set(WIN32 1) after the project(GLFW C) in CMakeLists.txt. The compilation of examples fails, but it does goes far enough to generate src/libglfw3.a, which is all I need to compile. Since cmake does know I am using MinGW (through MSYS2), it sets __USE_MINGW_ANSI_STDIO and I have not problem linking!
I actually normally cross-compile to Windows from Debian, since it's way more convenient, but it might be useful when I need to debug an issue specific to the Windows build.
Anyway, issue circumvented for me!

hi,  I've just encountered this problem as well. I try to compile a simple app that uses GLFW on Windows 10 machine, g++ 9, Mingw.
my solution is that:
please, use a dynamically linking
g++ ... -l glfw3dll
and then copy glfw3.dll to a direcrory where your app lies

For anyone finding this issue, please not that MSYS and MinGW are very different. MinGW is a Win32 compiler toolchain. MSYS is a Unix-like system implemented on top of Win32, similar to Cygwin. The pre-compiled GLFW binaries for MinGW do not work with the MSYS compiler, but you can cross-compile Win32 applications from MSYS by using the MinGW compiler instead of the MSYS one.


Wrong git clone URL in section of Create a local clone and set the upstream

This is a Bug Report

Problem:
It failed when running the command git clone<EMAIL_ADDRESS>in the doc https://kubernetes.io/docs/contribute/new-content/open-a-pr/#create-a-local-clone-and-set-the-upstream
It works after replacing the first / with : in git clone<EMAIL_ADDRESS>git clone<EMAIL_ADDRESS>fatal: repository<EMAIL_ADDRESS>does not exist

git clone git@github.com:kubernetes/website
Cloning into 'website'...

Proposed Solution:
Replace the first / with : in git clone<EMAIL_ADDRESS>Page to Update:
https://kubernetes.io/docs/contribute/new-content/open-a-pr/#create-a-local-clone-and-set-the-upstream

I will open a PR to fix it.

/retitle Incorrect git clone URL in "Opening a pull request" page
/language en


Errors trying to regenerate themes in a read-only environment

Operating system/version: NixOS
VSCode version: 1.67.2

Steps to reproduce this bug
Install the extension in a read-only environment. Try to change the settings in order to modify the themes.
Actual behaviour
The logs (from --verbose) show several errors being thrown from the extension trying to write to the .flag file and trying to regenerate the themes.
[6905:0526/233721.619877:INFO:CONSOLE(71)] "%c[Extension Host] %crejected promise not handled within 1 second: Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/.flag' color: blue color: ", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (71)
[6905:0526/233721.619912:INFO:CONSOLE(71)] "%c[Extension Host] %cstack trace: Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/.flag' color: blue color: ", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (71)
[6905:0526/233721.620463:INFO:CONSOLE(594)] "%c  ERR color: #f33 EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/.flag': Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/.flag'", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (594)
[6905:0526/233721.620483:INFO:CONSOLE(71)] "%c[Extension Host] %crejected promise not handled within 1 second: Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-dark.json' color: blue color: ", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (71)
[6905:0526/233721.620495:INFO:CONSOLE(71)] "%c[Extension Host] %cstack trace: Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-dark.json' color: blue color: ", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (71)
[6905:0526/233721.620641:INFO:CONSOLE(594)] "%c  ERR color: #f33 EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-dark.json': Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-dark.json'", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (594)
[6905:0526/233721.620661:INFO:CONSOLE(71)] "%c[Extension Host] %crejected promise not handled within 1 second: Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-light.json' color: blue color: ", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (71)
[6905:0526/233721.620671:INFO:CONSOLE(71)] "%c[Extension Host] %cstack trace: Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-light.json' color: blue color: ", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (71)
[6905:0526/233721.620799:INFO:CONSOLE(594)] "%c  ERR color: #f33 EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-light.json': Error: EROFS: read-only file system, open '/nix/store/wa4yzwgcqvwcmr839mlsb23plgfkkxkv-vscode-extension-sainnhe-gruvbox-material-6.5.0/share/vscode/extensions/sainnhe.gruvbox-material/themes/gruvbox-material-light.json'", source: vscode-file://vscode-app/nix/store/8i6c6r8s9kj366rbrv53pwni7plrh09h-vscodium-1.67.2/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (594)

Expected behaviour
The extension should be able to function without having to write files in its installation directory.
Maybe VSCode provides some sort of functionality to store data like this, or perhaps the files could be written to the user's data/cache directories instead? I don't know the convention.

The extension should be able to function without having to write files in its installation directory.

I have no idea how to implement this, PR is welcome.
The theme files will only be regenerated when the setting is not default. So maybe you can restore related settings to the default.


compilation error in NSString+ActiveSupportInflector.m due to unnecessary #import

Thanks for providing a useful library!
When I included it in my project, I noticed a compilation error in NSString+ActiveSupportInflector.m where you try to import "NSString+MSAdditions.h", which it's not included with your code. Regardless, that import is not needed anyways.

Yes I get this issue too


add mutating joins

This should implement the four mutating joins (left, right, inner, outer/full).
I did have to modify the @ApplyToDataframe function slightly.
The functions were tested with the dplyr two-table verbs vignette (https://cran.r-project.org/web/packages/dplyr/vignettes/two-table.html) and achieved the same output.
djoin was used as the generic name so as to not pollute the namespace.

This is really great, thanks for working on this.  I have two main suggestions before merging.
First, can you add the python-version of the dplyr two-table verb tests to test.py?
Second, I'd like to avoid using strings of computation whenever possible. I think it's possible to use Laters (or 2-tuples of strings) instead of the "colA=colB" syntax.
Idea 1:
flights2 >> inner_join(airports, by=[(X.dest, X.faa)])
Idea 2:
flights2 >> inner_join(airports, by=[("dest", "faa")])
Idea 3 (use a dict, closer to dplyr style):
flights2 >> inner_join(airports, by={"dest": "faa"})
Note that if we use Laters, we could allow joining on columns that don't exist:
flights2 >> inner_join(other_flights, by=X.hour // 8)
For example, this would join on breaking hours into three groups (12am-8am, 8am-4pm, 4pm-12am)
What do you think?

Regarding the first, yes, I can work on that.
Regarding the second, I think Idea 2 is most consistent with dplyr syntax, but I definitely see the benefits to being able to use functions (although as far as I know, neither dplyr nor pandas let you do this; and now that I think about it, what I wrote are basically wrapper functions that call on built-in pandas functions, so I'm not sure if this will translate).
On the other hand, I like the idea of using strings, since you can then use variables if you want to. Implementing Idea 2 or 3 probably won't be too much work, but I'm not sure about Idea 1. I will look into it.
Personally, I would vote for Idea 2, then Idea 3, then Idea 1, but this is your project.

Okay, let's stick with Idea 2-- if you implement that and tests, I'll merge, and then I can add in Laters (idea 1) at some point if I decide it's a good idea to have that as well.

I've made the requested changes, using Idea 2.

Great, thank you!


The element 'Capabilities' has invalid child element 'Capability'

I have this Package.appxmanifest:
<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap mp uap3 rescap">

  <!-- truncated -->

  <Capabilities>
    <rescap:Capability Name="broadFileSystemAccess" />
    <rescap:Capability Name="confirmAppClose" />
    <Capability Name="internetClient" />
    <!-- truncated -->
  </Capabilities>
</Package>

The <rescap:Capability is underline and a warning is generated:

The element 'Capabilities' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10' has invalid child element 'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities'.
List of possible elements expected:
'CapabilityChoice' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10/3' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10/4' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10/6' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10/7' as well as
'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10/2' as well as
'CustomCapabilityChoice' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10' as well as
'CustomCapability' in namespace 'http://schemas.microsoft.com/appx/manifest/uap/windows10/4' as well as 'Dev....	MyApp	D:\MyApp\Package.appxmanifest	76

Even if I removed the <rescap:Capability Name="broadFileSystemAccess" /> then the next line will get the warning.
The documentation does not clarify this.
PS. I do not plan to distribute it through the Store.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: fdfe599a-af5b-acbc-1405-d1030d9f6661
Version Independent ID: 85857337-8448-af63-b543-f01ef482ea09
Content: App capability declarations - UWP applications
Content Source: windows-apps-src/packaging/app-capability-declarations.md
Product: uwp
Technology: deployment
GitHub Login: @mcleanbyron
Microsoft Alias: mcleans

I can reproduce this warning, and it appears to be a known issue with the way the underlying schema is parsed by Visual Studio. According to the response from the engineering team in Warning for rescap: Capability in App Manifest file, this issue has not met the priority bar to fix. You should be able to successfully build your project and can ignore this warning.
Do note that rescap: capabilities are restricted capabilities, and make sure you've read the information here to understand the contexts in which they may be used.


Test ref data for 1kg_30variants dataset

clinvar.GRCh37.ht and combined_reference_data_grch37.ht subsetted to variants only in 1kg_30variants for local testing

I skipped through this, sorry! Can you modify the local luigi configs and check if it works?
https://github.com/macarthur-lab/hail-elasticsearch-pipelines/blob/master/luigi_pipeline/configs/seqr-loading-local.cfg#L10
https://github.com/macarthur-lab/hail-elasticsearch-pipelines/blob/master/luigi_pipeline/configs/optimized_configs/seqr-loading-local.cfg (NOTE: I'm about to remove the reference_ht paths here in a PR so they'll have to be re-added.


Load testing - FastAPI much slower than Flask?

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from uuid import uuid4

import uvicorn
from fastapi import FastAPI
from time import sleep
import os
from loguru import logger

app = FastAPI()

@app.get("/health")
def health():
    return "Ok"

@app.get("/load")
async def run_load_test():
    request_id = str(uuid4())
    logger.info(f"Starting request {request_id}")
    sleep(2)
    logger.info(f"Finished request {request_id}")
    return "Ok"

if __name__ == "__main__":
    port = int(os.environ.get('PORT', 6000))
    uvicorn.run("main:app", host="<IP_ADDRESS>", port=port, log_level="debug")

Description
First of all, huge fan, big thanks for this awesome library ❤

I am comparing FastAPI vs Flask "under load" using Apache Jmeter. Jmeter allows me to issue 100 parallel requests to the /load endpoint of the above FastAPI app. It does so by generating 100 threads within 0.01 seconds that then issue the GET request.
Jmeter times the roundtrip latency from each thread and generates a report
The Jmeter report for both the FastAPI and the Flask app can be seen below:
FastAPI took 3727.85ms to complete 100 requests
Flask took 2072.45ms to complete 100 requests
Somehow I expected FastAPI to be... well "faster". Please see the Github repo here to reproduce the findings

Operating System
macOS
Operating System Details
OS: macOS Monterey  (version: 12.3 (21E230))
Model: MacBook Pro (14-inch, 2021)
Chip: Apple M1 Pro
Memory: 32 GB
FastAPI Version
0.89.1
Python Version
Python 3.9.13
Additional Context
Here is a minimal example to reproduce the findings: https://github.com/MaxHoefl/demo-api-perf

I think the problem is that you are calling synchronous time.sleep(2) inside the async method. This causes fastapi to make wrong assumptions and it does not offload the task to the threadpool. Try changing it to await asyncio.sleep(2) or making the path operation method synchronous by removing async.
More reading in this article.

@fmazan yes, with you suggestion, FastAPI takes on average 2111.15ms per request vs 2144.22ms in Flask


docs: add features to README

Signed-off-by: 朱晓伟<EMAIL_ADDRESS>Signed-off-by: x893675<EMAIL_ADDRESS>
What type of PR is this?

/kind documentation
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

None

Additional documentation, usage docs, etc.:

/cc @lixd
/milestone v1.2.0

Codecov Report

Merging #124 (fc10aea) into master (4f26e02) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #124   +/-   ##
=======================================
  Coverage   11.78%   11.78%
=======================================
  Files          98       98
  Lines       15100    15100
=======================================
  Hits         1780     1780
  Misses      13086    13086
  Partials      234      234


[easy][language] rewrite complex match in module_cache

Rewrite an instance of an and_then to simplify this complex nested match. YMMV

it's hard for me to see any value in those kind of changes, just fyi.
Others may feel otherwise of course and I'll leave it to them

I'm with @tnowacki and @dariorussi, this makes it much more challenging to read. Sometimes it makes things shorter and easier to read when using these sorts of combinators, but when logic starts to get a bit longer and complex like these pieces it pays to be more verbose and explicit (in this case its actually more verbose with your change than as is).

@bmwill @dariorussi @tnowacki — cool, that's exactly the kind of feedback I was looking for! Thanks for giving this the once-over!

Maybe we should add something in contributing.md
I find all these map, map_err, etc. to be good when kept short, but otherwise they reduce clarity to the code.


$$ Wondershare Dr.Fone Crack (.𝟸𝟶𝟸5.) + 𝙻𝚒𝚌𝚎𝚗𝚜𝚎 𝙺𝚎𝚢! 𝙵𝚛𝚎𝚎 𝙳𝚘𝚠𝚗𝚕𝚘𝚊𝚍

Wondershare Dr.Fone toolkit for iOS and Android; it is the complete solution to fix the problems on your mobile quickly. Various iOS and Android solutions are available on the Windows and Mac platforms.Make your personal projects more efficient and fun—Wondershare Dr.Fone Crack is your ultimate tool! Ready to unlock its full potential? Simply hit the link below and dive in!
>➤ ►👉 Do𝚠nlo𝚊d Wondershare Dr.Fone Crack (.𝟸𝟶𝟸5.) (Latest)
Wondershare Dr.Fone
Wondershare Dr.Fone free
Wondershare Dr.Fone zip file
Wondershare Dr.Fone Keygen
Wondershare Dr.Fone software
Wondershare Dr.Fone free download 2024
Very thanks. so what are you wondering now ? Download and enjoy it's premium features!


Forms missing

Bug report

What is the current behavior?
There is no form builder or form block in admin ui. Is there a roadmap or timeline for this feature?
If the current behavior is a bug, please provide the steps to reproduce.

What is the expected behavior?
Forms available as a collection and a form block in page builder

Other relevant information:
I've imported forms to cms.js and the form builder is now available.
Also added it to the blocks.map in PageBuilder.js so the block is available on pages.
I'm currently figuring out how to create the markup for the actual block to display it.

Node.js version:
NPM/Yarn version
Operating System:
Additional tools:

@gaerd I missed this completely, the CMS settings where there, I've added back the preview and all components necessary to get forms working
You can find them in latest 1.2.0 release


404 Not Found

Hi there,
Trying to upgrade Husky from 4 to 8 in a project, running into a 404 Not Found when running npm exec -- github:typicode/husky-4-to-8 --remove-v4-config.
Node version: 16.13.2
npm version: 8.13.2

I got same error here

https://registry.yarnpkg.com/husky-4-to-8 : not found
https://www.npmjs.com/package/husky-4-to-8 : not found

This seems to be an issue with npm > 8.11.0:

npm/cli#5132 [BUG] npx  leads to command not found
npm/cli#5134 [BUG] npx no longer works with github: registry (duplicate)

Downgrading temporarily npm (to 8.10) fixed this issue for me.


Add EOL information regarding AzureRM.

  This is the expected behavior of the build system.


The beginning of support for session expiry interval, message expiry …

…interval, and will delay interval in the test broker
Not ready to submit yet.
@redboltz Can you please review and provide feedback on the implementation so far?

Related to https://github.com/redboltz/mqtt_cpp/issues/340

What is the status of this PR? I looked at the broker code and it seems there is session expiry?

@kleunen abandoned, basically. I no longer work at the company that was using mqtt_cpp , so my contributions will be low in the future.
Session expirary was added after I initially created this PR.
I attempted to re-work this PR after session expiry was merged in order to incorporate those changes, the message expiry functionality was never 100% finished.
Please feel free to take over this PR, or implement the functionality in a way that directly conflicts with this PR.

@jonesmz so i understand correctly, session expiry is working, but message expiry is not?

Yes I believe that is the case.

This PR is included in merge of PR #731

Superseded by other contributors work, closing.


docs: update link to init template README.md

Motivation
The v2 migration documentation links to a README that does not exist:
https://docusaurus.io/docs/migration/manual#readme
In this section, this link throws a 404:
https://github.com/facebook/docusaurus/blob/main/packages/create-docusaurus/templates/classic/README.md
This PR introduces a README.md file at the desired location, referencing the other READMEs found in the packages/create-docusaurus/templates/ directory.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Testing cannot take place until the README is merged into the main branch and the blob exists.
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/docusaurus, and link to your PR here.)

Sorry, our fault of not updating the link. However, we do have a default README here: https://github.com/facebook/docusaurus/blob/main/packages/create-docusaurus/templates/shared/README.md
Please change the link target instead, sign the CLA, and we can merge

Updated. Thank you!

Thanks!


UAT Bug- Errors on the Allocation of Emission Page

Describe the Bug:
The following errors were contained on the Allocation of Emission Page

There is a warning about 100% of emissions needing to be allocated, even when 100% of emissions are allocated
Under “Totals in tCO2e”, the “Total emissions attributable for reporting” are less than the sum of emissions allocated to products

Steps to reproduce the behaviour:
Error 1 and 2

Go to Dashboard/Reporting/Reports/Facilities/Allocation of Emissions.
Input the values included in the screenshots 1a to 1d

Screenshots:
1a

1b

1c

1d

1e

Additional information:
Browser: Edge
Additional Context

Bug 1: This is due to the percentage amount not being perfectly accurate. In image 1b, the total emissions for that category is shown to be 60891. BUT the allocated amounts are 34534 and 26360. Those added together = 60894. So the validation check is working properly and preventing submitting an over-allocation. The actual bug here is that total allocated field incorrectly displays 100.0000% when it should be displaying 100.0049%.
Bug 2: Occurs because the amount showing for the totals attributed to each product is improperly including the excluded allocation amounts

Review notes:
I was able to confirm that the error message is no longer appearing once all allocations are at 100%.
I did have some issues when I clicked save and continue and then back.
@fviduya it would be great to have your review on this page as well.
Tagging @dleard so I remember to discuss the decimal place question. Also, as a side note, after confirming allocation of emissions, when I reached the compliance summary page it was totally blank. But that's a separate issue!


implement syntax for arity zero vs arity one in uncurried application

Since there is no syntax space for arity zero vs arity one, we parse
fn(. ()) into
fn(. {let __res_unit = (); __res_unit})
when the parsetree is intended for type checking
fn(.) is treated as zero arity application
Fixes https://github.com/rescript-lang/syntax/issues/138

Not sure if there is any difference, but it might also be worth considering converting it into fn(. ignore())? At least it's easier to understand what's going on, and both versions compile to fn(undefined)

Hummmm not too sure

@IwanKaramazow the proposal looks good to me.
fn(.) is compiled into fn()
fn(.()) is fn(undefined). For your short-cut implementation, it could be implemented as fn(Pervasives.(()) -- this way you don't need introduce a special name

@IwanKaramazow the proposal looks good to me.
fn(.) is compiled into fn()
fn(.()) is fn(undefined). For your short-cut implementation, it could be implemented as fn(Pervasives.(()) -- this way you don't need introduce a special name

would my proposal make the implementation a bit more clean? @IwanKaramazow

@bobzhang not 100%, it results in a type-error: https://rescript-lang.org/try?code=DYUwLgBAZgdhC8EAUA6CB9AlAgfMzA3AFBGyoDeADAUpgL6ZA
It could be changed to: fn(. {ignore(0); ()})

@IwanKaramazow it is because we are more strict with sequence types. @ryyppy 's proposal also makes sense, the idea is not to introduce a magic name in the generated code

@IwanKaramazow @bobzhang I don't understand how fn(. {ignore(0); ()}) is cleaner than fn(. ignore())? Is there any benefit of having this local scope with two expressions?
I personally use fn(. ignore()) and we also recommend it in the docs right now, so ppl have a reference on how to work around the syntactical limitation.

Yea, let’s go with ignore(). Will finish this tomorrow

Ok, this PR is now ready to be merged.
The semantics are summarised by the following table:

Unfortunately, this is a breaking change. If you look at the table: f(. ()) used to be parsed as f(.) (arity0). With this PR f(. ()) would be parsed as f(. ignore()) (arity1).
@bobzhang do we schedule this for the next breaking changes release?

@IwanKaramazow I am happy to merge it, would you resolve the conflicts?

@bobzhang rebased! Do we merge?

yes!


Add support for building bootloaders using -Zbuild-std

Bootloaders can opt-in to the new functionality by setting a package.metadata.bootloader.build-std key with a comma-separated string of sysroot crates that should be built. For example, a setting of build-std = "core" results in the build command cargo build -Zbuild-std=core.
If no such key is set, bootimage continues to compile the bootloader using the command cargo xbuild.

Published as v0.8.1.


After running 6.23.4 code in my application I ran into a lot of perform…

…ance issues. This appears to be because of the default formatters that are added, so instead of relying on the $formatters I'm evaluating against the scope.options.formatters instead. This appears to have solved my performance issues. -🐙

Current coverage is 92.90%

Merging #430 into master will not affect coverage as of 774531c

@@            master   #430   diff @@
=====================================
  Files           16     16
  Stmts         1084   1084
  Branches         0      0
  Methods          0      0
=====================================
  Hit           1007   1007
  Partial          0      0
  Missed          77     77

Review entire Coverage Diff as of 774531c

Uncovered Suggestions

+0.64% via ...tives/formly-form.js#245...251
+0.55% via .../formlyCustomTags.js#9...14
+0.55% via ...tives/formly-form.js#264...269
See 7 more...

Powered by Codecov. Updated on successful CI builds.

Looks like another case where angular-formly abstracts away complexity/broken parts from angular's built-in forms. Thanks!

Just adding some backup from the Angular Docs: "$formatters: Array of functions to execute, as a pipeline, whenever the model value changes." (https://docs.angularjs.org/api/ng/type/ngModel.NgModelController)


Demo on measurement-based quantum computation

Before submitting
Please complete the following checklist when submitting a PR:

[x] Ensure that your tutorial executes correctly, and conforms to the
guidelines specified in the README.

[x] Add a thumbnail link to your tutorial in beginner.rst, or if a
QML implementation, in implementations.rst.

[x] All QML tutorials conform to
PEP8 standards.
To auto format files, simply pip install black, and then
run black -l 100 path/to/file.py.

Title: Measurement-based quantum computation
Summary: A demo on measurement-based quantum computation
Relevant references:

https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.86.5188
https://quantum-journal.org/papers/q-2021-02-04-392/

Possible Drawbacks:
None
Related GitHub Issues:
None

Resources:

https://phas.ubc.ca/~raussen/Supplements/VideoLectures.html
https://arxiv.org/pdf/1711.04921.pdf

Can someone add @isschoch and @mauriceweber as reviewers here?

Cannot wait to learn some cool stuff about MBQC!

Hey! I cannot pass on the review to the next person until you complete the TODO's
Can you take a look at them? 🙂

We're working on it @KetpuntoG 😌

Hey it's ready for another review. I still have two questions though:

How do I put the floor operation in here? It seems like there are some problems in the surface code figure caption. Is this because it's a caption?
Can I combine references into one pair of brackets? I have a couple of places where we reference multiple papers but it comes out as [1] [2] [3]. It would be nice to have something like [1, 2, 3] as per usual.

Hey it's ready for another review. I have one questions about formatting though:

Can I combine references into one pair of brackets? I have a couple of places where we reference multiple papers but it comes out as [1] [2] [3]. It would be nice to have something like [1, 2, 3] as per usual.

Thanks!
Not to my knowledge. It is something that appears in other demos.
If I find out, I'll let you know 👌

Ready for review @KetpuntoG

from flamingpy.codes import SurfaceCode
from plotly.subplots import make_subplots
import plotly.graph_objects as go

# RHG lattice
RHG = SurfaceCode(3)

# Layout
size = 450
fig = make_subplots(rows=1, cols=2,
                    specs=[[{'type':'scene'}, {'type':'scene'}]],
                    column_titles=["Primal", "Dual"],
                    horizontal_spacing = 0.02)
fig.update_layout(width=2*size, height=size)

# Primal
x = 2
fig1 = RHG.draw(backend="plotly", label=["type"], showbackground=True, width=size, height=size)
fig.update_layout(scene = dict(xaxis = {'nticks': 2, 'range': [x+0.5, x-0.5], 'dtick':1}), showlegend=False)
fig.update_layout(scene = dict(yaxis = {'dtick':1}))
fig.update_layout(scene = dict(zaxis = {'dtick':1}))
fig.add_trace(fig1.data[0], row=1, col=1)
fig.add_trace(fig1.data[1], row=1, col=1)

# Dual
x = 1
fig2 = RHG.draw(backend="plotly", label=["type"], showbackground=True, width=size, height=size)
fig.get_subplot(1,2)['xaxis'].update({'nticks': 2, 'range': [x+0.5, x-0.5]})
fig.get_subplot(1,2)['yaxis'].update({'dtick':1})
fig.get_subplot(1,2)['zaxis'].update({'dtick':1})
fig.add_trace(fig2.data[0], row=1, col=2)
fig.add_trace(fig2.data[1], row=1, col=2)

# Showing figure
fig.show(width=size, height=size)

# Saving figure
fig.write_image("primal_dual.jpeg")
fig.write_html("primal_dual.html")

@KetpuntoG @isaacdevlugt I addressed all the comments. There are little things that @radras might want to address still, but I don't think they are strictly necessary. We could always update the demo in the future. I will leave the finalisation in your capable hands 👍🏼

Don't worry about updating the branch @soosub , the demo is perfect 😄 when we upload it we will update everything

@KetpuntoG I was planning to address this  now the FlamingPy August release is out but there seem to be some issues 🥵

@KetpuntoG I was planning to address this  now the FlamingPy August release is out but there seem to be some issues 🥵

Ah okey! Let's see if Narinam answer you :)

@soosub , @radras thanks for this great demo!
Tomorrow we will announce the release of this demo on Pennylane twitter 🚀