happyleavesaoc / python-firetv

MIT License
184 stars 37 forks source link

problem with new firetv uhd dongel #43

Closed gertsch7003 closed 5 years ago

gertsch7003 commented 6 years ago

The FireTV Server has a problem with the new FireTV UHD Dongel. On the FireTV, everything is correct configured but after I start the FireTV Server the Server crashs every time. I also have a normal FireTV Stick, it works with that Stick pritty fine!

Here are the Errors when the Config File contains the IP-Adress of the new FireTV UHD Dongel: [2017-11-17 18:35:30,460] ERROR in app: Exception on /devices/list [GET] Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request return self.view_functionsrule.endpoint File "/usr/local/lib/python2.7/dist-packages/firetv/main.py", line 111, in list_devices 'state': device.state File "/usr/local/lib/python2.7/dist-packages/firetv/init.py", line 86, in state if not self._screen_on: File "/usr/local/lib/python2.7/dist-packages/firetv/init.py", line 227, in _screen_on return self._dump_has('power', 'Display Power', 'state=ON') File "/usr/local/lib/python2.7/dist-packages/firetv/init.py", line 285, in _dump_has return self._dump(service, grep=grep).strip().find(search) > -1 File "/usr/local/lib/python2.7/dist-packages/firetv/init.py", line 274, in _dump return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep)) File "/usr/local/lib/python2.7/dist-packages/adb/adb_commands.py", line 227, in Shell timeout_ms=timeout_ms) File "/usr/local/lib/python2.7/dist-packages/adb/adb_protocol.py", line 376, in Command return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms)) File "/usr/local/lib/python2.7/dist-packages/adb/adb_protocol.py", line 403, in StreamingCommand timeout_ms=timeout_ms) File "/usr/local/lib/python2.7/dist-packages/adb/adb_protocol.py", line 343, in Open timeout_ms=timeout_ms) File "/usr/local/lib/python2.7/dist-packages/adb/adb_protocol.py", line 225, in Read 'Unknown command: %x' % cmd, cmd, (arg0, arg1)) InvalidCommandError: ('Unknown command: 4f3d6574', 1329423732, (1279461966, 2639187)) 172.17.0.1 - - [17/Nov/2017 18:35:30] "GET /devices/list HTTP/1.1" 500 -

If somebody needs more Information to fix this Problem, please contact me. If would be great to have the new FireTV Connected to the FireTV-Server

ppacher commented 6 years ago

I just got a FireTV gen 3 and python-firetv works without a problem.

According to your stacktrace the connection seems to work but executing a certain command fails.

Can you try if the command adb shell dumpsys power works and returns something? (Do not forget to connect to the FireTV using adb connect <ip-address>)

jibbajabber commented 6 years ago

@ppacher I'm seeing the same issue

For me the server will be functional for a period of time and then I'll see the following:

192.168.1.11 - - [18/Apr/2018 21:57:03] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:57:14] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:57:25] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:57:36] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:57:47] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:57:58] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:58:09] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:58:20] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:58:31] "GET /devices/state/default HTTP/1.1" 200 -
192.168.1.11 - - [18/Apr/2018 21:58:42] "GET /devices/state/default HTTP/1.1" 200 -
[2018-04-18 21:58:53,110] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in ws
gi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in fu
ll_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in ha
ndle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in fu
ll_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in di
spatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, 
in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 104, 
in state
    if self._launcher:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 254, 
in _launcher
    return self.current_app["package"] == PACKAGE_LAUNCHER
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 223, 
in current_app
    current_focus = self._dump("window windows", "mCurrentFocus").replace("\r", "")
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, 
in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362,
 in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406,
 in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 434,
 in StreamingCommand
    for data in connection.ReadUntilClose():
AttributeError: 'NoneType' object has no attribute 'ReadUntilClose'
192.168.1.11 - - [18/Apr/2018 21:58:53] "GET /devices/state/default HTTP/1.1" 500 -
192.168.1.11 - - [18/Apr/2018 21:59:03] "GET /devices/state/default HTTP/1.1" 200 -
[2018-04-18 21:59:14,883] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 98, in state
    if not self._screen_on:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 239, in _screen_on
    return self._dump_has('power', 'Display Power', 'state=ON')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 434, in StreamingCommand
    for data in connection.ReadUntilClose():
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 144, in ReadUntilClose
    cmd, data = self.ReadUntil(b'CLSE', b'WRTE')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 135, in ReadUntil
    self.remote_id, remote_id))
InvalidResponseError: Incorrect remote id, expected 10122 got 10121
192.168.1.11 - - [18/Apr/2018 21:59:14] "GET /devices/state/default HTTP/1.1" 500 -
[2018-04-18 21:59:25,883] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 98, in state
    if not self._screen_on:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 239, in _screen_on
    return self._dump_has('power', 'Display Power', 'state=ON')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 433, in StreamingCommand
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 369, in Open
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 254, in Read
    cmd, (timeout_ms, total_timeout_ms))
InvalidCommandError: ("Never got one of the expected responses (['CLSE', 'OKAY'])", 1163154007, (None, None))
192.168.1.11 - - [18/Apr/2018 21:59:25] "GET /devices/state/default HTTP/1.1" 500 -
[2018-04-18 21:59:36,883] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in ws
gi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in fu
ll_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in ha
ndle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in fu
ll_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 98, in state
    if not self._screen_on:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 239, in _screen_on
    return self._dump_has('power', 'Display Power', 'state=ON')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 433, in StreamingCommand
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 369, in Open
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 247, in Read
    'Unknown command: %x' % cmd, cmd, (arg0, arg1))
InvalidCommandError: ('Unknown command: 70736944', 1886611780, (544825708, 1702326096))
192.168.1.11 - - [18/Apr/2018 21:59:36] "GET /devices/state/default HTTP/1.1" 500 -
192.168.1.11 - - [18/Apr/2018 21:59:47] "GET /devices/state/default HTTP/1.1" 200 -
[2018-04-18 21:59:58,883] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in ws
gi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 101, in state
    if not self._awake:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 244, in _awake
    return self._dump_has('power', 'mWakefulness', 'Awake')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 434, in StreamingCommand
    for data in connection.ReadUntilClose():
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 144, in ReadUntilClose
    cmd, data = self.ReadUntil(b'CLSE', b'WRTE')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 135, in ReadUntil
    self.remote_id, remote_id))
InvalidResponseError: Incorrect remote id, expected 10126 got 10123
192.168.1.11 - - [18/Apr/2018 21:59:58] "GET /devices/state/default HTTP/1.1" 500 -
[2018-04-18 22:00:09,882] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in ws
gi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 98, in state
    if not self._screen_on:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 239, in _screen_on
    return self._dump_has('power', 'Display Power', 'state=ON')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 434, in StreamingCommand
    for data in connection.ReadUntilClose():
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 144, in ReadUntilClose
    cmd, data = self.ReadUntil(b'CLSE', b'WRTE')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 135, in ReadUntil
    self.remote_id, remote_id))
InvalidResponseError: Incorrect remote id, expected 10127 got 10124
192.168.1.11 - - [18/Apr/2018 22:00:09] "GET /devices/state/default HTTP/1.1" 500 -
192.168.1.11 - - [18/Apr/2018 22:00:09] "GET /devices/state/default HTTP/1.1" 500 -
[2018-04-18 22:00:20,883] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 98, in state
    if not self._screen_on:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 239, in _screen_on
    return self._dump_has('power', 'Display Power', 'state=ON')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 433, in StreamingCommand
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 369, in Open
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 254, in Read
    cmd, (timeout_ms, total_timeout_ms))
InvalidCommandError: ("Never got one of the expected responses (['CLSE', 'OKAY'])", 1163154007, (None, None))
192.168.1.11 - - [18/Apr/2018 22:00:20] "GET /devices/state/default HTTP/1.1" 500 -
[2018-04-18 22:00:31,882] ERROR in app: Exception on /devices/state/default [GET]
Traceback (most recent call last):
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__main__.py", line 120, in device_state
    return jsonify(state=devices[device_id].state)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 98, in state
    if not self._screen_on:
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 239, in _screen_on
    return self._dump_has('power', 'Display Power', 'state=ON')
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 297, in _dump_has
    return self._dump(service, grep=grep).strip().find(search) > -1
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/firetv/__init__.py", line 286, in _dump
    return self._adb.Shell('dumpsys {0} | grep "{1}"'.format(service, grep))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_commands.py", line 362, in Shell
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 406, in Command
    return ''.join(cls.StreamingCommand(usb, service, command, timeout_ms))
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 433, in StreamingCommand
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 369, in Open
    timeout_ms=timeout_ms)
  File "/home/pi/Environments/firetv-server/local/lib/python2.7/site-packages/adb/adb_protocol.py", line 247, in Read
    'Unknown command: %x' % cmd, cmd, (arg0, arg1))
InvalidCommandError: ('Unknown command: 70736944', 1886611780, (544825708, 1702326096))

Can you try if the command adb shell dumpsys power works and returns something?


$ adb shell dumpsys power
POWER MANAGER (dumpsys power)

Power Manager State: mDirty=0x0 mWakefulness=Asleep mWakefulnessChanging=false mIsPowered=true mPlugType=1 mBatteryLevel=100 mBatteryLevelWhenDreamStarted=100 mDockState=0 mStayOn=false mProximityPositive=false mBootCompleted=true mSystemReady=true mHalAutoSuspendModeEnabled=true mHalInteractiveModeEnabled=false mWakeLockSummary=0x0 mNotifyLongScheduled=+27s679ms mNotifyLongDispatched=-5m42s31ms mNotifyLongNextCheck=(none) mUserActivitySummary=0x0 mRequestWaitForNegativeProximity=false mSandmanScheduled=false mSandmanSummoned=false mLowPowerModeEnabled=false mBatteryLevelLow=false mLightDeviceIdleMode=false mDeviceIdleMode=false mDeviceIdleWhitelist=[10030] mDeviceIdleTempWhitelist=[] mLastWakeTime=9688054 (70699207 ms ago) mLastSleepTime=11198252 (69189009 ms ago) mLastUserActivityTime=9755813 (70631448 ms ago) mLastUserActivityTimeNoChangeLights=9688250 (70699011 ms ago) mLastInteractivePowerHintTime=9755813 (70631448 ms ago) mLastScreenBrightnessBoostTime=0 (80387261 ms ago) mScreenBrightnessBoostInProgress=false mDisplayReady=true mHoldingWakeLockSuspendBlocker=false mHoldingDisplaySuspendBlocker=false

Settings and Configuration: mDecoupleHalAutoSuspendModeFromDisplayConfig=false mDecoupleHalInteractiveModeFromDisplayConfig=false mWakeUpWhenPluggedOrUnpluggedConfig=false mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false mTheaterModeEnabled=false mSuspendWhenScreenOffDueToProximityConfig=false mDreamsSupportedConfig=true mDreamsEnabledByDefaultConfig=true mDreamsActivatedOnSleepByDefaultConfig=true mDreamsActivatedOnDockByDefaultConfig=true mDreamsEnabledOnBatteryConfig=false mDreamsBatteryLevelMinimumWhenPoweredConfig=-1 mDreamsBatteryLevelMinimumWhenNotPoweredConfig=15 mDreamsBatteryLevelDrainCutoffConfig=5 mDreamsEnabledSetting=true mDreamsActivateOnSleepSetting=true mDreamsActivateOnDockSetting=true mDozeAfterScreenOffConfig=false mLowPowerModeSetting=false mAutoLowPowerModeConfigured=false mAutoLowPowerModeSnoozing=false mMinimumScreenOffTimeoutConfig=10000 mMaximumScreenDimDurationConfig=7000 mMaximumScreenDimRatioConfig=0.20000005 mScreenOffTimeoutSetting=300000 mSleepTimeoutSetting=1200000 mMaximumScreenOffTimeoutFromDeviceAdmin=2147483647 (enforced=false) mStayOnWhilePluggedInSetting=0 mScreenBrightnessSetting=25 mScreenAutoBrightnessAdjustmentSetting=0.0 mScreenBrightnessModeSetting=0 mScreenBrightnessOverrideFromWindowManager=-1 mUserActivityTimeoutOverrideFromWindowManager=-1 mUserInactiveOverrideFromWindowManager=false mTemporaryScreenBrightnessSettingOverride=-1 mTemporaryScreenAutoBrightnessAdjustmentSettingOverride=NaN mDozeScreenStateOverrideFromDreamManager=0 mDozeScreenBrightnessOverrideFromDreamManager=-1 mScreenBrightnessSettingMinimum=10 mScreenBrightnessSettingMaximum=255 mScreenBrightnessSettingDefault=102 mScreenBrightnessForVrSettingDefault=86 mScreenBrightnessForVrSetting=86 mDoubleTapWakeEnabled=false mIsVrModeEnabled=false

Sleep timeout: 1200000 ms Screen off timeout: 300000 ms Screen dim duration: 7000 ms

UID states: UID 1000: 0 UID 1002: 6 UID 1037: 16 UID u0a2: 7 UID u0a5: 16 UID u0a9: 0 UID u0a19: 16 UID u0a24: 10 UID u0a26: 3 UID u0a39: 5 UID u0a43: 16 UID u0a50: 10 UID u0a55: 10 UID u0a60: 16 UID u0a62: 16 UID u0a74: 0 UID u0a78: 5 UID u0a86: 0 UID u0a90: 7 UID u0a91: 5 UID u0a98: 16 UID u0a100: 0 UID u0a102: 16 UID u0a103: 16 UID u0a123: 13

Looper state: Looper (PowerManagerService, tid 27) {e444302} Message 0: { when=+27s679ms what=4 target=com.android.server.power.PowerManagerService$PowerManagerHandler } (Total messages: 1, polling=true, quitting=false)

Wake Locks: size=0

Suspend Blockers: size=4 PowerManagerService.WakeLocks: ref count=0 PowerManagerService.Display: ref count=0 PowerManagerService.Broadcasts: ref count=0 PowerManagerService.WirelessChargerDetector: ref count=0

Display Power: state=OFF

Wireless Charger Detector State: mGravitySensor=null mPoweredWirelessly=false mAtRest=false mRestX=0.0, mRestY=0.0, mRestZ=0.0 mDetectionInProgress=false mDetectionStartTime=0 (never) mMustUpdateRestPosition=false mTotalSamples=0 mMovingSamples=0 mFirstSampleX=0.0, mFirstSampleY=0.0, mFirstSampleZ=0.0 mLastSampleX=0.0, mLastSampleY=0.0, mLastSampleZ=0.0


Cheers.
JeffLIrion commented 5 years ago
  1. The latest version uses a threading.Lock to avoid overlapping ADB commands, which can cause connection issues.
  2. The latest Home Assistant component (firetv.py) catches exceptions such as these and will automatically reconnect. If you're not using HA, you could copy the adb_decorator wrapper and use it for your purposes.