Closed simbaja closed 3 years ago
@RobertusIT, I created a new issue to help you though this.
first, you'll need to download SmartHQ (https://play.google.com/store/apps/details?id=com.ge.kitchen&hl=it&gl=US) and sign-in using your account. It'll ask you to authorize, then you should see your appliances in this application (hopefully).
secrets.py should be in the examples directory, which is also the location of the websocket_example.py. If you've installed using pip, these files would be in the site-packages directory, I think pip list -v
or pip show gehomesdk
should give you the install directory.
once you find the install directory, navigate to the examples directory, then create the secrets.py, then run python websocket_example.py
. There might be additional packages that are needed depending on what you have installed, but we can work through those as needed.
the output that the example produces should be logged to a file (or copy/pasted), and then you can post that to this issue.
hope this helps.
Thanks a lot for these more details.
Here there are my track:
➜ ~ **pip list -v**
_gehomesdk 0.3.21 /usr/lib/python3.9/site-packages pip_
Then i go on it:
cd /usr/lib/python3.9/site-packages/gehomesdk
That contain these files:
➜ gehomesdk ls
__init__.py __pycache__ clients erd exception ge_appliance.py
And inside clients folder, there is websocket_example.py, so i guess that is the examples folder that you mean, but name is clients and not examples. Need to create a folder with examples or is ok don't touch the clients name ?
Inside the clients folder we can see these files with secrets created by me with nano secrets.py that contain: USERNAME = "mymail@gmail.com" PASSWORD = "mypass" About my Ge appliances app
➜ clients ls
__init__.py async_login_flows.py ge_client_xmpp.py **websocket_client.py**
__pycache__ base_client.py **secrets.py** xmpp_client.py
async_helpers.py const.py states.py
Now i tried to launch but i have an error:
➜ clients python3 websocket_client.py
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/gehomesdk/clients/websocket_client.py", line 6, in <module>
from ..erd import ErdCode, ErdCodeType
ImportError: attempted relative import with no known parent package
Same story with python 3.9, In HA seems that are already installed 2 python version by default, infact if I try to write python, i can see two version:
➜ clients python3.9 websocket_client.py
**python3** **python3.9**
➜ clients python3.9 websocket_client.py
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/gehomesdk/clients/websocket_client.py", line 6, in <module>
from ..erd import ErdCode, ErdCodeType
ImportError: attempted relative import with no known parent package
My apologies, I thought I packaged the examples as well with the install, I guess not. For now, the easiest way then is to clone the repo to a local folder, there will be an examples folder (you can see it here: https://github.com/simbaja/gehome/tree/master/examples) that you can then add the secrets file and run the example.
In HA, you don't need to use this repository, you can just go to https://github.com/simbaja/ha_components, and place the "ge_home" folder into your custom integrations (or use HACS). The HA component doesn't yet support AC though, so it might not be relevant for you.
My apologies, I thought I packaged the examples as well with the install, I guess not. For now, the easiest way then is to clone the repo to a local folder, there will be an examples folder (you can see it here: https://github.com/simbaja/gehome/tree/master/examples) that you can then add the secrets file and run the example.
In HA, you don't need to use this repository, you can just go to https://github.com/simbaja/ha_components, and place the "ge_home" folder into your custom integrations (or use HACS). The HA component doesn't yet support AC though, so it might not be relevant for you.
Hi,
no luck for now.
Here, I'm doing what do you suggest, so i download the project in zip, unzip in config HA folder, then in examples folder, i create secrets.py with mail and passwd about ge appliances app, and when i tried to launch websocket_example.py with python, no luck, some errors
➜ config cd
➜ ~ cd config/gehome-master
➜ gehome-master ls
LICENSE README.md gehomesdk setup.py
MANIFEST.in examples notes tests
➜ gehome-master cd examples
➜ examples ls
__init__.py websocket_example.py
secrets.py xmpp_example.py
➜ examples python3 websocket_example.py
Traceback (most recent call last):
File "/config/gehome-master/examples/websocket_example.py", line 13, in <modul e>
from examples.secrets import USERNAME, PASSWORD
ModuleNotFoundError: No module named 'examples'
➜ examples python3.9 websocket_example.py
Traceback (most recent call last):
File "/config/gehome-master/examples/websocket_example.py", line 13, in <modul e>
from examples.secrets import USERNAME, PASSWORD
ModuleNotFoundError: No module named 'examples'
If i launch with ./websocket_example.py
I can see this:
➜ examples ./websocket_example.py
./websocket_example.py: line 6:
Websocket client example
We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks
to update appliances every five minutes and to turn on our oven the first time w e see it. Because that is safe!
: not found
./websocket_example.py: line 8: import: not found
./websocket_example.py: line 9: import: not found
./websocket_example.py: line 10: import: not found
./websocket_example.py: line 11: from: not found
./websocket_example.py: line 12: from: not found
./websocket_example.py: line 13: from: not found
./websocket_example.py: line 15: syntax error: unexpected "("
Although it won't cause an issue, you should probably not put the sdk files in HA's config directory. This is just a low level library that is used by the HA component to provide the HA support. I'd put it somewhere else (perhaps in your home directory or something).
Python is really sensitive about the working directory when looking for imports try from gehome-master and execute python ./examples/websocket_example.py
and see if that gets you a little further.
Although it won't cause an issue, you should probably not put the sdk files in HA's config directory. This is just a low level library that is used by the HA component to provide the HA support. I'd put it somewhere else (perhaps in your home directory or something).
Python is really sensitive about the working directory when looking for imports try from gehome-master and
execute python ./examples/websocket_example.py
and see if that gets you a little further.
Moved gehome-master ( the project ) from config HA folder, to home, like you suggested.
➜ config mv gehome-master /home
➜ config cd
➜ ~ cd /home
➜ /home ls
gehome-master
Now tried to launch, without success
➜ gehome-master cd examples
➜ examples python3 websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 13, in <module>
from examples.secrets import USERNAME, PASSWORD
ModuleNotFoundError: No module named 'examples'
Tried also with python3.9
➜ examples python3.9 websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 13, in <module>
from examples.secrets import USERNAME, PASSWORD
ModuleNotFoundError: No module named 'examples'
Tried with ./websocket_example.py or xmpp_example.py but same story
➜ examples ./websocket_example.py
./websocket_example.py: line 6:
Websocket client example
We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks
to update appliances every five minutes and to turn on our oven the first time w e see it. Because that is safe!
: not found
./websocket_example.py: line 8: import: not found
./websocket_example.py: line 9: import: not found
./websocket_example.py: line 10: import: not found
./websocket_example.py: line 11: from: not found
./websocket_example.py: line 12: from: not found
./websocket_example.py: line 13: from: not found
./websocket_example.py: line 15: syntax error: unexpected "("
➜ examples ./xmpp_example.py
./xmpp_example.py: line 6:
XMPP client example
We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks
to update appliances every five minutes and to turn on our oven the first time w e see it. Because that is safe!
: not found
./xmpp_example.py: line 8: import: not found
./xmpp_example.py: line 9: import: not found
./xmpp_example.py: line 10: import: not found
./xmpp_example.py: line 11: from: not found
./xmpp_example.py: line 12: from: not found
./xmpp_example.py: line 13: syntax error: unexpected "("
Now i have tried like you suggest at the end like execute command, but doesn't exist this command for HA ( seems )
➜ ~ execute python ./home/gehome-master/examples/websocket_example.py
zsh: command not found: execute
Whoops, put the code in the wrong place: from ./home/gehome-master
, execute python3 ./examples/websocket_example.py
and see if that works.
Whoops, put the code in the wrong place: from
./home/gehome-master
, executepython3 ./examples/websocket_example.py
and see if that works.
➜ ~ ls
addons backup config media secrets.py share ssl
➜ ~ cd /home/gehome-master
➜ gehome-master ls
LICENSE MANIFEST.in README.md examples gehomesdk notes setup.py tests
➜ gehome-master python3 ./examples/websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/./examples/websocket_example.py", line 13, in <module>
from examples.secrets import USERNAME, PASSWORD
ModuleNotFoundError: No module named 'examples'
I'm guessing there's some sort of pathing issue here, so, let's just force it. Add these lines of code to the websocket_example.py right after the comment (before import aiohttp
)
import os, sys
#Following lines are for assigning parent directory dynamically.
dir_path = os.path.dirname(os.path.realpath(__file__))
parent_dir_path = os.path.abspath(os.path.join(dir_path, os.pardir))
sys.path.insert(0, parent_dir_path)
This should add the right path to the python path search list so that it can find things. You should then be able to follow the in comment above https://github.com/simbaja/gehome/issues/22#issuecomment-889897831
The new part in websocket_example.py
Then i have tried to launch:
➜ ~ python3 /home/gehome-master/examples/websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 24, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in <module>
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in <module>
from lxml import etree
ModuleNotFoundError: No module named 'lxml'
➜ ~ python3.9 /home/gehome-master/examples/websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 24, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in <module>
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in <module>
from lxml import etree
ModuleNotFoundError: No module named 'lxml'
pip install lxml
should resolve that one.
pip install lxml
should resolve that one.
Gave me a lot of error
➜ ~ pip install lxml
Collecting lxml
Downloading lxml-4.6.3.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 1.5 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d6 29dd/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-i0elnirm
cwd: /tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/
Complete output (3 lines):
Building lxml version 4.6.3.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are ins talled.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f 0051687eea3d3317557bde68736f038a3b105ac3809247/lxml-4.6.3.tar.gz#sha256=39b78571 b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.6.2.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 21.2 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a8 6289/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-o2jl7o8z
cwd: /tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/
Complete output (3 lines):
Building lxml version 4.6.2.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are ins talled.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/db/f7/43fecb94d66959 c1e23aa53d6161231dca0e93ec500224cf31b3c4073e37/lxml-4.6.2.tar.gz#sha256=cd11c7e8 d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.6.1.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 14.9 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9 247c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-vnqwuctk
cwd: /tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/
Complete output (3 lines):
Building lxml version 4.6.1.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are ins talled.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/c5/2f/a0d8aa3eee6d53 d5723d89e1fc32eee11e76801b424e30b55c7aa6302b01/lxml-4.6.1.tar.gz#sha256=c152b2e9 3b639d1f36ec5a8ca24cde4a8eefb2b6b83668fcd8e83a67badcb367 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.6.0.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 12.2 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334 adde/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ry8nmtsr
cwd: /tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/
Complete output (3 lines):
Building lxml version 4.6.0.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are ins talled.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/3c/5a/81446fb5a4706b b07a98427634ab93219dc7fa393841d81f5da5c7e151b7/lxml-4.6.0.tar.gz#sha256=8319abac bbe9fd9791c2e3c23deb9b6a16abc0fcbdfcc26722035e865b3d207f (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.5.2.tar.gz (4.5 MB)
|████████████████████████████████| 4.5 MB 32.6 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f 793b/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-8k5oeq54
cwd: /tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/
Complete output (3 lines):
Building lxml version 4.5.2.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are ins talled.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/2c/4d/3ec1ea8512a7fb f57f02dee3035e2cce2d63d0e9c0ab8e4e376e01452597/lxml-4.5.2.tar.gz#sha256=cdc13a16 82b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.5.1.tar.gz (4.5 MB)
|████████████████████████████████| 4.5 MB 16.3 MB/s
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ml_bk7qp
cwd: /tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/
Complete output (3 lines):
Building lxml version 4.5.1.
Building without Cython.
Error: Please make sure the libxml2 and libxslt development packages are installed.
----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/03/a8/73d795778143be51d8b86750b371b3efcd7139987f71618ad9f4b8b65543/lxml-4.5.1.tar.gz#sha256=27ee0faf8077c7c1a589573b1450743011117f1aa1a91d5ae776bbc5ca6070f2 (from https://pypi.org/simple/lxml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.5.0.tar.gz (4.5 MB)
|████████████████████████████████| 4.5 MB 10.2 MB/s
Using legacy 'setup.py install' for lxml, since package 'wheel' is not installed.
Installing collected packages: lxml
Running setup.py install for lxml ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml
cwd: /tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/
Complete output (87 lines):
Building lxml version 4.5.0.
Building without Cython.
ERROR: b'/bin/sh: xslt-config: not found\n'
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/lxml
copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/sax.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/builder.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.9/lxml
creating build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.9/lxml/includes
creating build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.9/lxml/html
copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.9/lxml/html
creating build/lib.linux-x86_64-3.9/lxml/isoschematron
copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.9/lxml/isoschematron
copying src/lxml/etree.h -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.9/lxml
copying src/lxml/includes/__init__.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.9/lxml/includes
copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.9/lxml/includes
creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources
creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng
copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng
creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl
copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl
copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl
creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/src
creating build/temp.linux-x86_64-3.9/src/lxml
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -DTHREAD_STACK_SIZE=0x100000 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/include/python3.9 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.9/src/lxml/etree.o -w
Compile failed: command 'gcc' failed: No such file or directory
creating tmp
cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitbjb3i8mu.c -o tmp/xmlXPathInitbjb3i8mu.o
*********************************************************************************
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
*********************************************************************************
error: command 'gcc' failed: No such file or directory
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml Check the logs for full command output.
And now i tried to launch
➜ ~
➜ ~ cd /home/gehome-master/examples
➜ examples python3 websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 24, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in <module>
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in <module>
from lxml import etree
ModuleNotFoundError: No module named 'lxml'
➜ examples ./websocket_example.py
./websocket_example.py: line 6:
Websocket client example
We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks
to update appliances every five minutes and to turn on our oven the first time we see it. Because that is safe!
: not found
./websocket_example.py: line 9: import: not found
./websocket_example.py: line 12: syntax error: unexpected "("
➜ examples
Please see here then, you probably have some extra steps to install due to missing dependencies: https://lxml.de/installation.html
Also, you should install wheel pip install wheel
it might help as well.
On Sat, Jul 31, 2021, 4:10 AM RobertusIT @.***> wrote:
pip install lxml should resolve that one.
Gave me a lot of error
➜ ~ pip install lxml
Collecting lxml
Downloading lxml-4.6.3.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 1.5 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d6 29dd/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-i0elnirm cwd: /tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/ Complete output (3 lines): Building lxml version 4.6.3. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f 0051687eea3d3317557bde68736f038a3b105ac3809247/lxml-4.6.3.tar.gz#sha256=39b78571 b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.6.2.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 21.2 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a8 6289/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-o2jl7o8z cwd: /tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/ Complete output (3 lines): Building lxml version 4.6.2. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/db/f7/43fecb94d66959 c1e23aa53d6161231dca0e93ec500224cf31b3c4073e37/lxml-4.6.2.tar.gz#sha256=cd11c7e8 d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.6.1.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 14.9 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9 247c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-vnqwuctk cwd: /tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/ Complete output (3 lines): Building lxml version 4.6.1. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/c5/2f/a0d8aa3eee6d53 d5723d89e1fc32eee11e76801b424e30b55c7aa6302b01/lxml-4.6.1.tar.gz#sha256=c152b2e9 3b639d1f36ec5a8ca24cde4a8eefb2b6b83668fcd8e83a67badcb367 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.6.0.tar.gz (3.2 MB)
|████████████████████████████████| 3.2 MB 12.2 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334 adde/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ry8nmtsr cwd: /tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/ Complete output (3 lines): Building lxml version 4.6.0. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/3c/5a/81446fb5a4706b b07a98427634ab93219dc7fa393841d81f5da5c7e151b7/lxml-4.6.0.tar.gz#sha256=8319abac bbe9fd9791c2e3c23deb9b6a16abc0fcbdfcc26722035e865b3d207f (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.5.2.tar.gz (4.5 MB)
|████████████████████████████████| 4.5 MB 32.6 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/setup.py '"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f 793b/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__ , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-8k5oeq54 cwd: /tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/ Complete output (3 lines): Building lxml version 4.5.2. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/2c/4d/3ec1ea8512a7fb f57f02dee3035e2cce2d63d0e9c0ab8e4e376e01452597/lxml-4.5.2.tar.gz#sha256=cdc13a16 82b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.5.1.tar.gz (4.5 MB)
|████████████████████████████████| 4.5 MB 16.3 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ml_bk7qp cwd: /tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/ Complete output (3 lines): Building lxml version 4.5.1. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are installed. ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/03/a8/73d795778143be51d8b86750b371b3efcd7139987f71618ad9f4b8b65543/lxml-4.5.1.tar.gz#sha256=27ee0faf8077c7c1a589573b1450743011117f1aa1a91d5ae776bbc5ca6070f2 (from https://pypi.org/simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4.*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Downloading lxml-4.5.0.tar.gz (4.5 MB)
|████████████████████████████████| 4.5 MB 10.2 MB/s
Using legacy 'setup.py install' for lxml, since package 'wheel' is not installed.
Installing collected packages: lxml
Running setup.py install for lxml ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml cwd: /tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/ Complete output (87 lines): Building lxml version 4.5.0. Building without Cython. ERROR: b'/bin/sh: xslt-config: not found\n' ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running install running build running build_py creating build creating build/lib.linux-x86_64-3.9 creating build/lib.linux-x86_64-3.9/lxml copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/sax.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/builder.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.9/lxml creating build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.9/lxml/includes creating build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.9/lxml/html creating build/lib.linux-x86_64-3.9/lxml/isoschematron copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.9/lxml/isoschematron copying src/lxml/etree.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/includes/__init__.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.9/lxml/includes creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 running build_ext building 'lxml.etree' extension creating build/temp.linux-x86_64-3.9 creating build/temp.linux-x86_64-3.9/src creating build/temp.linux-x86_64-3.9/src/lxml gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -DTHREAD_STACK_SIZE=0x100000 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/include/python3.9 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.9/src/lxml/etree.o -w Compile failed: command 'gcc' failed: No such file or directory creating tmp cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitbjb3i8mu.c -o tmp/xmlXPathInitbjb3i8mu.o ********************************************************************************* Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? ********************************************************************************* error: command 'gcc' failed: No such file or directory ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml Check the logs for full command output.
And now i tried to launch
➜ ~
➜ ~ cd /home/gehome-master/examples
➜ examples python3 websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 24, in
from gehomesdk import (
File "/home/gehome-master/gehomesdk/init.py", line 6, in
from .clients import *
File "/home/gehome-master/gehomesdk/clients/init.py", line 17, in
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in
from lxml import etree
ModuleNotFoundError: No module named 'lxml'
➜ examples ./websocket_example.py
./websocket_example.py: line 6:
Websocket client example
We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks
to update appliances every five minutes and to turn on our oven the first time we see it. Because that is safe!
: not found
./websocket_example.py: line 9: import: not found
./websocket_example.py: line 12: syntax error: unexpected "("
➜ examples
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/simbaja/gehome/issues/22#issuecomment-890309690, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOEHFXGPA3WT6E63337YDPTT2OVYVANCNFSM5BGS4YJA .
Please see here then, you probably have some extra steps to install due to missing dependencies: https://lxml.de/installation.html Also, you should install wheel
pip install wheel
it might help as well. … On Sat, Jul 31, 2021, 4:10 AM RobertusIT @.> wrote: pip install lxml should resolve that one. Gave me a lot of error ➜ ~ pip install lxml Collecting lxml Downloading lxml-4.6.3.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 1.5 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d6 29dd/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-i0elnirm cwd: /tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/ Complete output (3 lines): Building lxml version 4.6.3. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f 0051687eea3d3317557bde68736f038a3b105ac3809247/lxml-4.6.3.tar.gz#sha256=39b78571 b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.6.2.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 21.2 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a8 6289/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-o2jl7o8z cwd: /tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/ Complete output (3 lines): Building lxml version 4.6.2. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/db/f7/43fecb94d66959 c1e23aa53d6161231dca0e93ec500224cf31b3c4073e37/lxml-4.6.2.tar.gz#sha256=cd11c7e8 d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.6.1.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 14.9 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9 247c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-vnqwuctk cwd: /tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/ Complete output (3 lines): Building lxml version 4.6.1. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/c5/2f/a0d8aa3eee6d53 d5723d89e1fc32eee11e76801b424e30b55c7aa6302b01/lxml-4.6.1.tar.gz#sha256=c152b2e9 3b639d1f36ec5a8ca24cde4a8eefb2b6b83668fcd8e83a67badcb367 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.6.0.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 12.2 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334 adde/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ry8nmtsr cwd: /tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/ Complete output (3 lines): Building lxml version 4.6.0. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/3c/5a/81446fb5a4706b b07a98427634ab93219dc7fa393841d81f5da5c7e151b7/lxml-4.6.0.tar.gz#sha256=8319abac bbe9fd9791c2e3c23deb9b6a16abc0fcbdfcc26722035e865b3d207f (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.5.2.tar.gz (4.5 MB) |████████████████████████████████| 4.5 MB 32.6 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f 793b/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-8k5oeq54 cwd: /tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/ Complete output (3 lines): Building lxml version 4.5.2. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/2c/4d/3ec1ea8512a7fb f57f02dee3035e2cce2d63d0e9c0ab8e4e376e01452597/lxml-4.5.2.tar.gz#sha256=cdc13a16 82b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.5.1.tar.gz (4.5 MB) |████████████████████████████████| 4.5 MB 16.3 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ml_bk7qp cwd: /tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/ Complete output (3 lines): Building lxml version 4.5.1. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are installed. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/03/a8/73d795778143be51d8b86750b371b3efcd7139987f71618ad9f4b8b65543/lxml-4.5.1.tar.gz#sha256=27ee0faf8077c7c1a589573b1450743011117f1aa1a91d5ae776bbc5ca6070f2 (from https://pypi.org/simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4.*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.5.0.tar.gz (4.5 MB) |████████████████████████████████| 4.5 MB 10.2 MB/s Using legacy 'setup.py install' for lxml, since package 'wheel' is not installed. Installing collected packages: lxml Running setup.py install for lxml ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml cwd: /tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/ Complete output (87 lines): Building lxml version 4.5.0. Building without Cython. ERROR: b'/bin/sh: xslt-config: not found\n' make sure the development packages of libxml2 and libxslt are installed Using build configuration of libxslt running install running build running build_py creating build creating build/lib.linux-x86_64-3.9 creating build/lib.linux-x86_64-3.9/lxml copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/sax.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/init.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/builder.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.9/lxml creating build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/init.py -> build/lib.linux-x86_64-3.9/lxml/includes creating build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/init.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.9/lxml/html creating build/lib.linux-x86_64-3.9/lxml/isoschematron copying src/lxml/isoschematron/init.py -> build/lib.linux-x86_64-3.9/lxml/isoschematron copying src/lxml/etree.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/includes/init.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.9/lxml/includes creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 running build_ext building 'lxml.etree' extension creating build/temp.linux-x86_64-3.9 creating build/temp.linux-x86_64-3.9/src creating build/temp.linux-x86_64-3.9/src/lxml gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -DTHREAD_STACK_SIZE=0x100000 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/include/python3.9 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.9/src/lxml/etree.o -w Compile failed: command 'gcc' failed: No such file or directory creating tmp cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitbjb3i8mu.c -o tmp/xmlXPathInitbjb3i8mu.o *** Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? ***** error: command 'gcc' failed: No such file or directory ---------------------------------------- ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml Check the logs for full command output. And now i tried to launch ➜ ~ ➜ ~ cd /home/gehome-master/examples ➜ examples python3 websocket_example.py Traceback (most recent call last): File "/home/gehome-master/examples/websocket_example.py", line 24, infrom gehomesdk import ( File "/home/gehome-master/gehomesdk/init.py", line 6, in from .clients import * File "/home/gehome-master/gehomesdk/clients/init.py", line 17, in from .base_client import GeBaseClient File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in from lxml import etree ModuleNotFoundError: No module named 'lxml' ➜ examples ./websocket_example.py ./websocket_example.py: line 6: Websocket client example We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks to update appliances every five minutes and to turn on our oven the first time we see it. Because that is safe! : not found ./websocket_example.py: line 9: import: not found ./websocket_example.py: line 12: syntax error: unexpected "(" ➜ examples — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#22 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOEHFXGPA3WT6E63337YDPTT2OVYVANCNFSM5BGS4YJA .
wheel installed
➜ ~ pip install wheel
Requirement already satisfied: wheel in /usr/lib/python3.9/site-packages (0.36.2)
I lost installed log, anyway seems installed
➜ ~ wheel
usage: wheel [-h] {unpack,pack,convert,version,help} ...
positional arguments:
{unpack,pack,convert,version,help}
commands
unpack Unpack wheel
pack Repack wheel
convert Convert egg or wininst to wheel
version Print version and exit
help Show this help
optional arguments:
-h, --help show this help message and exit
➜ ~
About lxml seems there isn't any dep to install, because with pip should install all, or not?
I didn't see any command , except pip install lxml
but this command get errors.
need to install HA in another machine? like raspberry ? i guess change nothing, but you have the knowedge to understand if maybe can help.
Please see here then, you probably have some extra steps to install due to missing dependencies: https://lxml.de/installation.html Also, you should install wheel
pip install wheel
it might help as well. … On Sat, Jul 31, 2021, 4:10 AM RobertusIT @.> wrote: pip install lxml should resolve that one. Gave me a lot of error ➜ ~ pip install lxml Collecting lxml Downloading lxml-4.6.3.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 1.5 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d6 29dd/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-i0elnirm cwd: /tmp/pip-install-9_4s9wwy/lxml_704e82104ed84057a326e99035d629dd/ Complete output (3 lines): Building lxml version 4.6.3. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f 0051687eea3d3317557bde68736f038a3b105ac3809247/lxml-4.6.3.tar.gz#sha256=39b78571 b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.6.2.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 21.2 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a8 6289/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-o2jl7o8z cwd: /tmp/pip-install-9_4s9wwy/lxml_b0672826071f41eb9a68b418b9a86289/ Complete output (3 lines): Building lxml version 4.6.2. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/db/f7/43fecb94d66959 c1e23aa53d6161231dca0e93ec500224cf31b3c4073e37/lxml-4.6.2.tar.gz#sha256=cd11c7e8 d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.6.1.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 14.9 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9 247c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-vnqwuctk cwd: /tmp/pip-install-9_4s9wwy/lxml_650f91b691cb485e868820a91cc9247c/ Complete output (3 lines): Building lxml version 4.6.1. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/c5/2f/a0d8aa3eee6d53 d5723d89e1fc32eee11e76801b424e30b55c7aa6302b01/lxml-4.6.1.tar.gz#sha256=c152b2e9 3b639d1f36ec5a8ca24cde4a8eefb2b6b83668fcd8e83a67badcb367 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.6.0.tar.gz (3.2 MB) |████████████████████████████████| 3.2 MB 12.2 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334 adde/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ry8nmtsr cwd: /tmp/pip-install-9_4s9wwy/lxml_c2222dd279f74011a96d68319334adde/ Complete output (3 lines): Building lxml version 4.6.0. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/3c/5a/81446fb5a4706b b07a98427634ab93219dc7fa393841d81f5da5c7e151b7/lxml-4.6.0.tar.gz#sha256=8319abac bbe9fd9791c2e3c23deb9b6a16abc0fcbdfcc26722035e865b3d207f (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.5.2.tar.gz (4.5 MB) |████████████████████████████████| 4.5 MB 32.6 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/setup.py '"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f 793b/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.re ad().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file , '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-8k5oeq54 cwd: /tmp/pip-install-9_4s9wwy/lxml_b8247d53e37c4d8ba0b29449201f793b/ Complete output (3 lines): Building lxml version 4.5.2. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are ins talled. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/2c/4d/3ec1ea8512a7fb f57f02dee3035e2cce2d63d0e9c0ab8e4e376e01452597/lxml-4.5.2.tar.gz#sha256=cdc13a16 82b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6 (from https://pypi.org/ simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4 .). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.5.1.tar.gz (4.5 MB) |████████████████████████████████| 4.5 MB 16.3 MB/s ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ml_bk7qp cwd: /tmp/pip-install-9_4s9wwy/lxml_ffb29ccc4fb64f2184899dedd8dcf3eb/ Complete output (3 lines): Building lxml version 4.5.1. Building without Cython. Error: Please make sure the libxml2 and libxslt development packages are installed. ---------------------------------------- WARNING: Discarding https://files.pythonhosted.org/packages/03/a8/73d795778143be51d8b86750b371b3efcd7139987f71618ad9f4b8b65543/lxml-4.5.1.tar.gz#sha256=27ee0faf8077c7c1a589573b1450743011117f1aa1a91d5ae776bbc5ca6070f2 (from https://pypi.org/simple/lxml/) (requires-python:>=2.7, !=3.0., !=3.1., !=3.2., !=3.3., != 3.4.*). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. Downloading lxml-4.5.0.tar.gz (4.5 MB) |████████████████████████████████| 4.5 MB 10.2 MB/s Using legacy 'setup.py install' for lxml, since package 'wheel' is not installed. Installing collected packages: lxml Running setup.py install for lxml ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml cwd: /tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/ Complete output (87 lines): Building lxml version 4.5.0. Building without Cython. ERROR: b'/bin/sh: xslt-config: not found\n' make sure the development packages of libxml2 and libxslt are installed Using build configuration of libxslt running install running build running build_py creating build creating build/lib.linux-x86_64-3.9 creating build/lib.linux-x86_64-3.9/lxml copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/sax.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/init.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/builder.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.9/lxml creating build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/init.py -> build/lib.linux-x86_64-3.9/lxml/includes creating build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/init.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.9/lxml/html copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.9/lxml/html creating build/lib.linux-x86_64-3.9/lxml/isoschematron copying src/lxml/isoschematron/init.py -> build/lib.linux-x86_64-3.9/lxml/isoschematron copying src/lxml/etree.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.9/lxml copying src/lxml/includes/init.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.9/lxml/includes copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.9/lxml/includes creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/rng creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl creating build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.9/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 running build_ext building 'lxml.etree' extension creating build/temp.linux-x86_64-3.9 creating build/temp.linux-x86_64-3.9/src creating build/temp.linux-x86_64-3.9/src/lxml gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -fomit-frame-pointer -g -fno-semantic-interposition -DTHREAD_STACK_SIZE=0x100000 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/include/python3.9 -c src/lxml/etree.c -o build/temp.linux-x86_64-3.9/src/lxml/etree.o -w Compile failed: command 'gcc' failed: No such file or directory creating tmp cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitbjb3i8mu.c -o tmp/xmlXPathInitbjb3i8mu.o *** Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? ***** error: command 'gcc' failed: No such file or directory ---------------------------------------- ERROR: Command errored out with exit status 1: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"'; file='"'"'/tmp/pip-install-9_4s9wwy/lxml_74334279092f421cafc757be488c38ba/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /tmp/pip-record-445wsyzw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/include/python3.9/lxml Check the logs for full command output. And now i tried to launch ➜ ~ ➜ ~ cd /home/gehome-master/examples ➜ examples python3 websocket_example.py Traceback (most recent call last): File "/home/gehome-master/examples/websocket_example.py", line 24, infrom gehomesdk import ( File "/home/gehome-master/gehomesdk/init.py", line 6, in from .clients import * File "/home/gehome-master/gehomesdk/clients/init.py", line 17, in from .base_client import GeBaseClient File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in from lxml import etree ModuleNotFoundError: No module named 'lxml' ➜ examples ./websocket_example.py ./websocket_example.py: line 6: Websocket client example We're going to run the client in a pre-existing event loop. We're also going to register some event callbacks to update appliances every five minutes and to turn on our oven the first time we see it. Because that is safe! : not found ./websocket_example.py: line 9: import: not found ./websocket_example.py: line 12: syntax error: unexpected "(" ➜ examples — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#22 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOEHFXGPA3WT6E63337YDPTT2OVYVANCNFSM5BGS4YJA .
I take my RPI3 with another version of HA, old, and i did again:
1 . Install your sdk, but i remember that is useless, need to get the project. Anyway i did it.
pi@RASPBERRYPi3FLIRC:~ $ **pip install gehomesdk**
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting gehomesdk
Downloading https://www.piwheels.org/simple/gehomesdk/gehomesdk-0.3.21-py3-non e-any.whl (127 kB)
|████████████████████████████████| 127 kB 645 kB/s
Collecting websockets
Downloading websockets-9.1.tar.gz (76 kB)
|████████████████████████████████| 76 kB 766 kB/s
Collecting humanize
Downloading https://www.piwheels.org/simple/humanize/humanize-3.10.0-py3-none-any.whl (87 kB)
|████████████████████████████████| 87 kB 630 kB/s
Collecting bidict
Downloading https://www.piwheels.org/simple/bidict/bidict-0.21.2-py2.py3-none-any.whl (37 kB)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from gehomesdk) (2.21.0)
Collecting aiohttp
Downloading aiohttp-3.7.4.post0.tar.gz (1.1 MB)
|████████████████████████████████| 1.1 MB 3.2 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting typing-extensions>=3.6.5
Downloading https://www.piwheels.org/simple/typing-extensions/typing_extensions-3.10.0.0-py3-none-any.whl (26 kB)
Collecting attrs>=17.3.0
Downloading https://www.piwheels.org/simple/attrs/attrs-21.2.0-py2.py3-none-any.whl (53 kB)
|████████████████████████████████| 53 kB 489 kB/s
Collecting async-timeout<4.0,>=3.0
Downloading https://www.piwheels.org/simple/async-timeout/async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting multidict<7.0,>=4.5
Downloading multidict-5.1.0.tar.gz (53 kB)
|████████████████████████████████| 53 kB 436 kB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp->gehomesdk) (3.0.4)
Collecting yarl<2.0,>=1.0
Downloading yarl-1.6.3.tar.gz (176 kB)
|████████████████████████████████| 176 kB 8.1 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp->gehomesdk) (2.6)
Requirement already satisfied: setuptools in ./.local/lib/python3.8/site-packages (from humanize->gehomesdk) (57.0.0)
Building wheels for collected packages: aiohttp, multidict, yarl, websockets
Building wheel for aiohttp (PEP 517) ... done
Created wheel for aiohttp: filename=aiohttp-3.7.4.post0-cp38-cp38-linux_armv7l.whl size=1388946 sha256=1df4fd61e03c47ee34a6b5e416d4f6d71962edbafce03394645a8b4bc4ac68bb
Stored in directory: /home/pi/.cache/pip/wheels/70/a6/74/e3ee8e169262359ed1d452bdfbe82e6420aa40ccfc2d727126
Building wheel for multidict (PEP 517) ... done
Created wheel for multidict: filename=multidict-5.1.0-cp38-cp38-linux_armv7l.whl size=183941 sha256=b7621c90e7e7d284ed9d3ed29ff12bd636d610f63fb2bc09f8d1ecc83be1ca26
Stored in directory: /home/pi/.cache/pip/wheels/72/97/bc/5bffee542d18b454f73bd1a593cd104de3c46a50e4f2946728
Building wheel for yarl (PEP 517) ... done
Created wheel for yarl: filename=yarl-1.6.3-cp38-cp38-linux_armv7l.whl size=299193 sha256=4caa3e2c938c87e1d528b03616cb91d7fd7ab023e9d974dcc30bd3332a4ad28b
Stored in directory: /home/pi/.cache/pip/wheels/03/1d/d3/9693ea3024088fd2555f0cdbb42cb6b133e389a8e68502f85f
Building wheel for websockets (setup.py) ... done
Created wheel for websockets: filename=websockets-9.1-cp38-cp38-linux_armv7l.whl size=101058 sha256=b36d32d7451f7216cf3ae1f04d0347ed627a58666c6b9bd418f53950b8ec7741
Stored in directory: /home/pi/.cache/pip/wheels/91/27/c6/be3a97fd1c8633d2841fd00fddbbce4c8847837ebcd4bdfb8d
Successfully built aiohttp multidict yarl websockets
Installing collected packages: multidict, yarl, typing-extensions, attrs, async-timeout, websockets, humanize, bidict, aiohttp, gehomesdk
Successfully installed aiohttp-3.7.4.post0 async-timeout-3.0.1 attrs-21.2.0 bidict-0.21.2 gehomesdk-0.3.21 humanize-3.10.0 multidict-5.1.0 typing-extensions-3.10.0.0 websockets-9.1 yarl-1.6.3
WARNING: You are using pip version 21.1.2; however, version 21.2.2 is available.
You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
Now I get gehome-master and put it in home/pi folder.
pi@RASPBERRYPi3FLIRC:/home $ sudo wget https://github.com/simbaja/gehome/archive/refs/heads/master.zip
--2021-07-31 15:45:36-- https://github.com/simbaja/gehome/archive/refs/heads/master.zip
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/simbaja/gehome/zip/refs/heads/master [following]
--2021-07-31 15:45:36-- https://codeload.github.com/simbaja/gehome/zip/refs/heads/master
Resolving codeload.github.com (codeload.github.com)... 140.82.121.9
Connecting to codeload.github.com (codeload.github.com)|140.82.121.9|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘master.zip’
master.zip [ <=> ] 134.59K --.-KB/s in 0.1s
2021-07-31 15:45:37 (973 KB/s) - ‘master.zip’ saved [137824]
Unzip it
pi@RASPBERRYPi3FLIRC:/home $ sudo unzip master.zip
Archive: master.zip
be18ef8099f45ffa74e4be202f04429084dbe400
creating: gehome-master/
inflating: gehome-master/.gitattributes
inflating: gehome-master/.gitignore
inflating: gehome-master/LICENSE
extracting: gehome-master/MANIFEST.in
inflating: gehome-master/README.md
creating: gehome-master/examples/
extracting: gehome-master/examples/__init__.py
inflating: gehome-master/examples/websocket_example.py
inflating: gehome-master/examples/xmpp_example.py
creating: gehome-master/gehomesdk/
inflating: gehome-master/gehomesdk/__init__.py
creating: gehome-master/gehomesdk/clients/
inflating: gehome-master/gehomesdk/clients/__init__.py
inflating: gehome-master/gehomesdk/clients/async_helpers.py
inflating: gehome-master/gehomesdk/clients/async_login_flows.py
inflating: gehome-master/gehomesdk/clients/base_client.py
inflating: gehome-master/gehomesdk/clients/const.py
inflating: gehome-master/gehomesdk/clients/ge_client_xmpp.py
inflating: gehome-master/gehomesdk/clients/states.py
inflating: gehome-master/gehomesdk/clients/websocket_client.py
inflating: gehome-master/gehomesdk/clients/xmpp_client.py
creating: gehome-master/gehomesdk/erd/
inflating: gehome-master/gehomesdk/erd/__init__.py
creating: gehome-master/gehomesdk/erd/converters/
inflating: gehome-master/gehomesdk/erd/converters/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/abstract.py
creating: gehome-master/gehomesdk/erd/converters/advantium/
inflating: gehome-master/gehomesdk/erd/converters/advantium/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_cook_setting_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_cook_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_cook_time_adjust_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_cook_time_min_max_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_cook_time_remaining_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_kitchen_timer_min_max_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_microwave_min_max_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_precision_min_max_converter.py
inflating: gehome-master/gehomesdk/erd/converters/advantium/erd_advantium_remote_cook_mode_config_converter.py
creating: gehome-master/gehomesdk/erd/converters/dishwasher/
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/cycle_name_converter.py
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/erd_cycle_state_converter.py
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/erd_dishwasher_door_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/erd_rinse_agent_converter.py
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/erd_user_setting_converter.py
inflating: gehome-master/gehomesdk/erd/converters/dishwasher/operating_mode_converter.py
creating: gehome-master/gehomesdk/erd/converters/fridge/
inflating: gehome-master/gehomesdk/erd/converters/fridge/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/erd_filter_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/fridge_door_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/fridge_ice_bucket_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/fridge_model_info_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/fridge_set_point_limits_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/fridge_set_points_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/hot_water_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/fridge/ice_maker_control_status_converter.py
creating: gehome-master/gehomesdk/erd/converters/laundry/
inflating: gehome-master/gehomesdk/erd/converters/laundry/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/dryness_level_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/ecodry_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/laundry_cycle_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/laundry_door_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/laundry_sub_cycle_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/machine_state_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/rinse_option_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/sheet_usage_configuration_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/smart_dispense_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/smart_dispense_tank_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/soil_level_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/spintime_level_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/tank_selected_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/temperature_option_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/tumble_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/laundry/washtemp_level_converter.py
creating: gehome-master/gehomesdk/erd/converters/oven/
inflating: gehome-master/gehomesdk/erd/converters/oven/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/oven/cooktop_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_available_cook_mode_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_cooktop_config_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_oven_state_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_precision_cooking_app_probe_control_mode_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_precision_cooking_probe_battery_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_precision_cooking_probe_target_time_reached_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/erd_precision_cooking_start_sous_vide_timer_active_status_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/oven_configuration_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/oven_cook_mode_converter.py
inflating: gehome-master/gehomesdk/erd/converters/oven/oven_ranges_converter.py
creating: gehome-master/gehomesdk/erd/converters/primitives/
inflating: gehome-master/gehomesdk/erd/converters/primitives/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_bool_converter.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_bytes_converter.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_int_converter.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_signed_byte_converter.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_string_converter.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_time_span_converter.py
inflating: gehome-master/gehomesdk/erd/converters/primitives/erd_time_span_seconds_converter.py
creating: gehome-master/gehomesdk/erd/converters/specialized/
inflating: gehome-master/gehomesdk/erd/converters/specialized/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_appliance_type_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_clock_format_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_end_tone_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_measurement_units_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_model_serial_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_software_version_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_sound_level_converter.py
inflating: gehome-master/gehomesdk/erd/converters/specialized/erd_unit_type_converter.py
creating: gehome-master/gehomesdk/erd/converters/water_filter/
inflating: gehome-master/gehomesdk/erd/converters/water_filter/__init__.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_alert_settings_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_alert_state_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_filter_manual_mode_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_filter_mode_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_filter_position_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_filter_valve_state_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_leak_validity_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_waterfilter_flow_converter.py
inflating: gehome-master/gehomesdk/erd/converters/water_filter/erd_waterfilter_life_converter.py
inflating: gehome-master/gehomesdk/erd/erd_code_class.py
inflating: gehome-master/gehomesdk/erd/erd_codes.py
inflating: gehome-master/gehomesdk/erd/erd_configuration.py
inflating: gehome-master/gehomesdk/erd/erd_encoder.py
creating: gehome-master/gehomesdk/erd/values/
inflating: gehome-master/gehomesdk/erd/values/__init__.py
creating: gehome-master/gehomesdk/erd/values/advantium/
inflating: gehome-master/gehomesdk/erd/values/advantium/__init__.py
inflating: gehome-master/gehomesdk/erd/values/advantium/advantium_cook_setting.py
inflating: gehome-master/gehomesdk/erd/values/advantium/advantium_enums.py
inflating: gehome-master/gehomesdk/erd/values/advantium/advantium_operation_mode.py
inflating: gehome-master/gehomesdk/erd/values/advantium/advantium_operation_mode_mapping.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_cook_setting.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_cook_status.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_cook_time_min_max.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_kitchen_timer_min_max.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_microwave_min_max.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_precision_min_max.py
inflating: gehome-master/gehomesdk/erd/values/advantium/erd_advantium_remote_cook_mode_config.py
creating: gehome-master/gehomesdk/erd/values/common/
inflating: gehome-master/gehomesdk/erd/values/common/__init__.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_appliance_type.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_clock_format.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_end_tone.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_measurement_units.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_on_off.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_present.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_sound_level.py
inflating: gehome-master/gehomesdk/erd/values/common/erd_unit_type.py
creating: gehome-master/gehomesdk/erd/values/dishwasher/
inflating: gehome-master/gehomesdk/erd/values/dishwasher/__init__.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/cycle_state_mapping.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/erd_cycle_state.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/erd_dishwasher_door_status.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/erd_operating_mode.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/erd_rinse_agent.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/erd_user_setting.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/operating_mode.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/operating_mode_mapping.py
inflating: gehome-master/gehomesdk/erd/values/dishwasher/rinse_agent_mapping.py
creating: gehome-master/gehomesdk/erd/values/fridge/
inflating: gehome-master/gehomesdk/erd/values/fridge/__init__.py
inflating: gehome-master/gehomesdk/erd/values/fridge/erd_door_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/erd_filter_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/erd_full_not_full.py
inflating: gehome-master/gehomesdk/erd/values/fridge/erd_hot_water_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/erd_pod_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/fridge_door_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/fridge_ice_bucket_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/fridge_model_info.py
inflating: gehome-master/gehomesdk/erd/values/fridge/fridge_set_point_limits.py
inflating: gehome-master/gehomesdk/erd/values/fridge/fridge_set_points.py
inflating: gehome-master/gehomesdk/erd/values/fridge/hot_water_status.py
inflating: gehome-master/gehomesdk/erd/values/fridge/ice_maker_control_status.py
creating: gehome-master/gehomesdk/erd/values/laundry/
inflating: gehome-master/gehomesdk/erd/values/laundry/__init__.py
inflating: gehome-master/gehomesdk/erd/values/laundry/dryness_level.py
inflating: gehome-master/gehomesdk/erd/values/laundry/dryness_level_mapping.py
inflating: gehome-master/gehomesdk/erd/values/laundry/ecodry_status.py
inflating: gehome-master/gehomesdk/erd/values/laundry/ecodry_status_mapping.py
inflating: gehome-master/gehomesdk/erd/values/laundry/laundry_enums.py
inflating: gehome-master/gehomesdk/erd/values/laundry/machine_state.py
inflating: gehome-master/gehomesdk/erd/values/laundry/machine_state_mapping.py
inflating: gehome-master/gehomesdk/erd/values/laundry/temperature_option.py
inflating: gehome-master/gehomesdk/erd/values/laundry/temperature_option_mapping.py
inflating: gehome-master/gehomesdk/erd/values/laundry/washtemp_level.py
inflating: gehome-master/gehomesdk/erd/values/laundry/washtemp_level_mapping.py
creating: gehome-master/gehomesdk/erd/values/oven/
inflating: gehome-master/gehomesdk/erd/values/oven/__init__.py
inflating: gehome-master/gehomesdk/erd/values/oven/available_cook_mode.py
inflating: gehome-master/gehomesdk/erd/values/oven/burner.py
inflating: gehome-master/gehomesdk/erd/values/oven/const.py
inflating: gehome-master/gehomesdk/erd/values/oven/cooktop_status.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_available_cook_mode.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_closed_loop_cooking_configuration.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_closed_loop_cooking_devices_status.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_cooktop_config.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_cooktop_status.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_oven_configuration.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_oven_cook_mode.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_oven_state.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_precision_cooking_app_probe_control_mode.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_precision_cooking_probe_battery_status.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_precision_cooking_probe_target_time_reached.py
inflating: gehome-master/gehomesdk/erd/values/oven/erd_precision_cooking_start_sous_vide_timer_active_status.py
inflating: gehome-master/gehomesdk/erd/values/oven/oven_configuration.py
inflating: gehome-master/gehomesdk/erd/values/oven/oven_cook_mode.py
inflating: gehome-master/gehomesdk/erd/values/oven/oven_cook_mode_mapping.py
inflating: gehome-master/gehomesdk/erd/values/oven/oven_cook_setting.py
inflating: gehome-master/gehomesdk/erd/values/oven/oven_display_state_mapping.py
inflating: gehome-master/gehomesdk/erd/values/oven/oven_ranges.py
creating: gehome-master/gehomesdk/erd/values/water_filter/
inflating: gehome-master/gehomesdk/erd/values/water_filter/__init__.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_alert_settings.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_alert_state.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_flowrate.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_leak_validity.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_life.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_manual_mode.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_mode.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_position.py
inflating: gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_valve_state.py
creating: gehome-master/gehomesdk/exception/
inflating: gehome-master/gehomesdk/exception/__init__.py
inflating: gehome-master/gehomesdk/exception/ge_auth_failed_error.py
inflating: gehome-master/gehomesdk/exception/ge_client_disconnected_error.py
inflating: gehome-master/gehomesdk/exception/ge_duplicate_appliance_error.py
inflating: gehome-master/gehomesdk/exception/ge_exception.py
inflating: gehome-master/gehomesdk/exception/ge_general_server_error.py
inflating: gehome-master/gehomesdk/exception/ge_needs_reauthentication_error.py
inflating: gehome-master/gehomesdk/exception/ge_not_authenticated_error.py
inflating: gehome-master/gehomesdk/exception/ge_request_error.py
inflating: gehome-master/gehomesdk/exception/ge_set_erd_not_allowed_error.py
inflating: gehome-master/gehomesdk/exception/ge_unsupported_operation_error.py
inflating: gehome-master/gehomesdk/ge_appliance.py
creating: gehome-master/notes/
inflating: gehome-master/notes/oauth_secrets.py
inflating: gehome-master/setup.py
creating: gehome-master/tests/
extracting: gehome-master/tests/__init__.py
inflating: gehome-master/tests/test_decoders.py
Set up all permission to avoid any trouble
pi@RASPBERRYPi3FLIRC:/home $ sudo chmod 777 -R gehome-master/
Then sudo nano secrets.py into examples folder and insert mail and pass about ge appliances app https://play.google.com/store/apps/details?id=com.ge.comfort&hl=it&gl=US That is the europe version i guess of smarthq.
Now tried to launch:
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 8, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
No luck, so i have tried to install all dep from https://lxml.de/installation.html, like you suggested
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ **pip install lxml**
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: lxml in /usr/lib/python3/dist-packages (4.3.2)
WARNING: You are using pip version 21.1.2; however, version 21.2.2 is available.
You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo apt-get install python3-lxml
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-lxml is already the newest version (4.3.2-1+deb10u3).
The following package was automatically installed and is no longer required:
python-colorzero
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo apt-get install libxml2-dev libxslt-dev python-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libxslt1-dev' instead of 'libxslt-dev'
libxml2-dev is already the newest version (2.9.4+dfsg1-7+deb10u1).
libxslt1-dev is already the newest version (1.1.32-2.2~deb10u1).
The following package was automatically installed and is no longer required:
python-colorzero
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
libpython-dev libpython2-dev libpython2.7 libpython2.7-dev python2-dev python2.7-dev
The following NEW packages will be installed:
libpython-dev libpython2-dev libpython2.7 libpython2.7-dev python-dev python2-dev python2.7-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 32.1 MB of archives.
After this operation, 49.9 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:6 http://raspbian.raspberrypi.org/raspbian buster/main armhf python2-dev armhf 2.7.16-1 [1,216 B]
Get:1 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython2.7 armhf 2.7.16-2+deb10u1 [873 kB]
Get:7 http://raspbian.raspberrypi.org/raspbian buster/main armhf python-dev armhf 2.7.16-1 [1,192 B]
Get:2 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython2.7-dev armhf 2.7.16-2+deb10u1 [30.9 MB]
Get:3 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython2-dev armhf 2.7.16-1 [20.9 kB]
Get:4 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython-dev armhf 2.7.16-1 [20.9 kB]
Get:5 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python2.7-dev armhf 2.7.16-2+deb10u1 [291 kB]
Fetched 32.1 MB in 14s (2,343 kB/s)
Selecting previously unselected package libpython2.7:armhf.
(Reading database ... 50155 files and directories currently installed.)
Preparing to unpack .../0-libpython2.7_2.7.16-2+deb10u1_armhf.deb ...
Unpacking libpython2.7:armhf (2.7.16-2+deb10u1) ...
Selecting previously unselected package libpython2.7-dev:armhf.
Preparing to unpack .../1-libpython2.7-dev_2.7.16-2+deb10u1_armhf.deb ...
Unpacking libpython2.7-dev:armhf (2.7.16-2+deb10u1) ...
Selecting previously unselected package libpython2-dev:armhf.
Preparing to unpack .../2-libpython2-dev_2.7.16-1_armhf.deb ...
Unpacking libpython2-dev:armhf (2.7.16-1) ...
Selecting previously unselected package libpython-dev:armhf.
Preparing to unpack .../3-libpython-dev_2.7.16-1_armhf.deb ...
Unpacking libpython-dev:armhf (2.7.16-1) ...
Selecting previously unselected package python2.7-dev.
Preparing to unpack .../4-python2.7-dev_2.7.16-2+deb10u1_armhf.deb ...
Unpacking python2.7-dev (2.7.16-2+deb10u1) ...
Selecting previously unselected package python2-dev.
Preparing to unpack .../5-python2-dev_2.7.16-1_armhf.deb ...
Unpacking python2-dev (2.7.16-1) ...
Selecting previously unselected package python-dev.
Preparing to unpack .../6-python-dev_2.7.16-1_armhf.deb ...
Unpacking python-dev (2.7.16-1) ...
Setting up libpython2.7:armhf (2.7.16-2+deb10u1) ...
Setting up libpython2.7-dev:armhf (2.7.16-2+deb10u1) ...
Setting up libpython2-dev:armhf (2.7.16-1) ...
Setting up python2.7-dev (2.7.16-2+deb10u1) ...
Setting up python2-dev (2.7.16-1) ...
Setting up libpython-dev:armhf (2.7.16-1) ...
Setting up python-dev (2.7.16-1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
Try again also with other python version
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 13, in <module>
from examples.secrets import USERNAME, PASSWORD
ModuleNotFoundError: No module named 'examples'
secrets is inside
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ ls
__init__.py secrets.py websocket_example.py xmpp_example.py
Tried other way, no luck
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo python3.8 /home/gehome-master/examples/websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 8, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
Tried also to add this code in websocket_example.py
import os, sys
#Following lines are for assigning parent directory dynamically.
dir_path = os.path.dirname(os.path.realpath(__file__))
parent_dir_path = os.path.abspath(os.path.join(dir_path, os.pardir))
sys.path.insert(0, parent_dir_path)
No luck
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo python3.8 /home/gehome-master/examples/websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 16, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
Anyway this time, lxml doesn't have any error in istallation process, so is installed.
wheel is already installed
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ wheel
usage: wheel [-h] {unpack,pack,convert,version,help} ...
positional arguments:
{unpack,pack,convert,version,help}
commands
unpack Unpack wheel
pack Repack wheel
convert Convert egg or wininst to wheel
version Print version and exit
help Show this help
optional arguments:
-h, --help show this help message and exit
What miss?
The next one that you're missing appears to be aiohttp. You'll need to do pip install aiohttp
... not sure why some of these aren't there, but I'll see if I can get them added to the setup.py for the package so that others don't run into this as much.
The next one that you're missing appears to be aiohttp. You'll need to do
pip install aiohttp
... not sure why some of these aren't there, but I'll see if I can get them added to the setup.py for the package so that others don't run into this as much.
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ pip install aiohttp
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: aiohttp in /home/pi/.local/lib/python3.8/site-packages (3.7.4.post0)
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp) (3.0.4)
Requirement already satisfied: attrs>=17.3.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (21.2.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (5.1.0)
Requirement already satisfied: typing-extensions>=3.6.5 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (3.10.0.0)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (1.6.3)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (3.0.1)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp) (2.6)
WARNING: You are using pip version 21.1.2; however, version 21.2.2 is available.
You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo python3.8 /home/gehome-master/examples/websocket_example.py
Traceback (most recent call last):
File "/home/gehome-master/examples/websocket_example.py", line 16, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ ls
__init__.py secrets.py websocket_example.py xmpp_example.py
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 23, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in <module>
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in <module>
from lxml import etree
ImportError: cannot import name 'etree' from 'lxml' (/usr/lib/python3/dist-packages/lxml/__init__.py)
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 16, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
I'm really not sure what you're missing at this point. Looking through the logs, it looks like you have aiohttp, but then when try to run using python, it says you don't. I'm guessing you have multiple versions of Python out there and it's causing problems. It also may be a pathing issue (your PYTHONPATH environment variable may not include the place where these modules are installed). Try this command and see if you get a different error when running the example afterwards:
python3.8 -m pip install aiohttp
I'm really not sure what you're missing at this point. Looking through the logs, it looks like you have aiohttp, but then when try to run using python, it says you don't. I'm guessing you have multiple versions of Python out there and it's causing problems. It also may be a pathing issue (your PYTHONPATH environment variable may not include the place where these modules are installed). Try this command and see if you get a different error when running the example afterwards:
python3.8 -m pip install aiohttp
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3.8 -m pip install aiohttp
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: aiohttp in /home/pi/.local/lib/python3.8/site-packages (3.7.4.post0)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (1.6.3)
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp) (3.0.4)
Requirement already satisfied: attrs>=17.3.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (21.2.0)
Requirement already satisfied: typing-extensions>=3.6.5 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (3.10.0.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (5.1.0)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (3.0.1)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp) (2.6)
WARNING: You are using pip version 21.1.2; however, version 21.2.2 is available.
You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
I think it is some sort of pathing/versioning issue:
lxml is installed here: /usr/lib/python3/dist-packages aiohttp installed here: /home/pi/.local/lib/python3.8/site-packages
lxml may not be able to find aiohttp. I'd try the following:
pip uninstall aiohttp
sudo pip install aiohttp
Maybe that'll get them to play nicely together?
I think it is some sort of pathing/versioning issue:
lxml is installed here: /usr/lib/python3/dist-packages aiohttp installed here: /home/pi/.local/lib/python3.8/site-packages
lxml may not be able to find aiohttp. I'd try the following:
pip uninstall aiohttp sudo pip install aiohttp
Maybe that'll get them to play nicely together?
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ pip uninstall aiohttp
Found existing installation: aiohttp 3.7.4.post0
Uninstalling aiohttp-3.7.4.post0:
Would remove:
/home/pi/.local/lib/python3.8/site-packages/aiohttp-3.7.4.post0.dist-info/*
/home/pi/.local/lib/python3.8/site-packages/aiohttp/*
Proceed (y/n)? Your response ('') was not one of the expected responses: y, n
Proceed (y/n)? Y
Successfully uninstalled aiohttp-3.7.4.post0
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo pip install aiohttp
sudo: pip: command not found
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ pip install aiohttp
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting aiohttp
Using cached aiohttp-3.7.4.post0-cp38-cp38-linux_armv7l.whl
Requirement already satisfied: attrs>=17.3.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (21.2.0)
Requirement already satisfied: typing-extensions>=3.6.5 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (3.10.0.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (5.1.0)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (3.0.1)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/pi/.local/lib/python3.8/site-packages (from aiohttp) (1.6.3)
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp) (3.0.4)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp) (2.6)
Installing collected packages: aiohttp
Successfully installed aiohttp-3.7.4.post0
WARNING: You are using pip version 21.1.2; however, version 21.2.2 is available.
You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 23, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in <module>
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in <module>
from lxml import etree
ImportError: cannot import name 'etree' from 'lxml' (/usr/lib/python3/dist-packages/lxml/__init__.py)
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ python3 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 16, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
You have to install aiohttp using sudo so it can go into the right packages directory, doing it without sudo won't work, unfortunately. If pip isn't installed, try pip3. If that's not installed, you'll need to install pip while under sudo.
You have to install aiohttp using sudo so it can go into the right packages directory, doing it without sudo won't work, unfortunately. If pip isn't installed, try pip3. If that's not installed, you'll need to install pip while under sudo.
unistall aiohttp in pi user
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ pip uninstall aiohttp
Found existing installation: aiohttp 3.7.4.post0
Uninstalling aiohttp-3.7.4.post0:
Would remove:
/home/pi/.local/lib/python3.8/site-packages/aiohttp-3.7.4.post0.dist-info/*
/home/pi/.local/lib/python3.8/site-packages/aiohttp/*
Proceed (y/n)? Your response ('') was not one of the expected responses: y, n
Proceed (y/n)? y
Successfully uninstalled aiohttp-3.7.4.post0
Now on root user, pip isn't recognize
pi@RASPBERRYPi3FLIRC:/home/gehome-master/examples $ sudo -i
root@RASPBERRYPi3FLIRC:~# pip install aiohttp
-bash: pip: command not found
Need to install pip on root in first
root@RASPBERRYPi3FLIRC:~# sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
python-colorzero
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
gir1.2-glib-2.0 javascript-common libgirepository-1.0-1 libjs-jquery libjs-sphinxdoc libjs-underscore
libpython-all-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-configparser python-crypto
python-cryptography python-dbus python-entrypoints python-enum34 python-gi python-ipaddress python-keyring
python-keyrings.alt python-secretstorage python-setuptools python-six python-wheel python-xdg
Suggested packages:
apache2 | lighttpd | httpd python-crypto-doc python-cryptography-doc python-cryptography-vectors python-dbus-dbg
python-dbus-doc python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-gdata
python-keyczar python-secretstorage-doc python-setuptools-doc
The following NEW packages will be installed:
gir1.2-glib-2.0 javascript-common libgirepository-1.0-1 libjs-jquery libjs-sphinxdoc libjs-underscore
libpython-all-dev python-all python-all-dev python-asn1crypto python-cffi-backend python-configparser python-crypto
python-cryptography python-dbus python-entrypoints python-enum34 python-gi python-ipaddress python-keyring
python-keyrings.alt python-pip python-secretstorage python-setuptools python-six python-wheel python-xdg
0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,506 kB of archives.
After this operation, 10.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.raspberrypi.org/debian buster/main armhf python-pip all 18.1-5+rpt1 [215 kB]
Get:2 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf libgirepository-1.0-1 armhf 1.58.3-2 [78.8 kB]
Get:3 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf gir1.2-glib-2.0 armhf 1.58.3-2 [143 kB]
Get:4 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf javascript-common all 11 [6,120 B]
Get:5 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libjs-jquery all 3.3.1~dfsg-3+deb10u1 [332 kB]
Get:8 http://raspbian.raspberrypi.org/raspbian buster/main armhf libpython-all-dev armhf 2.7.16-1 [1,064 B]
Get:9 http://raspbian.raspberrypi.org/raspbian buster/main armhf python-all armhf 2.7.16-1 [1,044 B]
Get:10 http://raspbian.raspberrypi.org/raspbian buster/main armhf python-all-dev armhf 2.7.16-1 [1,068 B]
Get:6 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libjs-underscore all 1.9.1~dfsg-1+deb10u1 [100.0 kB]
Get:7 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libjs-sphinxdoc all 1.8.4-1 [95.9 kB]
Get:11 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-asn1crypto all 0.24.0-1 [78.1 kB]
Get:13 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-configparser all 3.5.0b2-1 [59.2 kB]
Get:14 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-crypto armhf 2.6.1-9+b1 [248 kB]
Get:12 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python-cffi-backend armhf 1.12.2-1 [69.4 kB]
Get:15 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-enum34 all 1.1.6-2 [35.3 kB]
Get:16 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-ipaddress all 1.0.17-1 [18.1 kB]
Get:17 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-six all 1.12.0-1 [15.7 kB]
Get:18 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python-cryptography armhf 2.6.1-3+deb10u2 [184 kB]
Get:19 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-dbus armhf 1.2.8-3 [95.7 kB]
Get:20 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-entrypoints all 0.3-1 [5,444 B]
Get:21 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-gi armhf 3.30.4-1 [208 kB]
Get:22 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-secretstorage all 2.3.1-2 [13.8 kB]
Get:23 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-keyring all 17.1.1-1 [47.1 kB]
Get:24 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python-keyrings.alt all 3.1.1-1 [18.3 kB]
Get:25 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python-setuptools all 40.8.0-1 [382 kB]
Get:26 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python-wheel all 0.32.3-2 [19.3 kB]
Get:27 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python-xdg all 0.25-5 [35.9 kB]
Fetched 2,506 kB in 6s (416 kB/s)
Selecting previously unselected package libgirepository-1.0-1:armhf.
(Reading database ... 50304 files and directories currently installed.)
Preparing to unpack .../00-libgirepository-1.0-1_1.58.3-2_armhf.deb ...
Unpacking libgirepository-1.0-1:armhf (1.58.3-2) ...
Selecting previously unselected package gir1.2-glib-2.0:armhf.
Preparing to unpack .../01-gir1.2-glib-2.0_1.58.3-2_armhf.deb ...
Unpacking gir1.2-glib-2.0:armhf (1.58.3-2) ...
Selecting previously unselected package javascript-common.
Preparing to unpack .../02-javascript-common_11_all.deb ...
Unpacking javascript-common (11) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../03-libjs-jquery_3.3.1~dfsg-3+deb10u1_all.deb ...
Unpacking libjs-jquery (3.3.1~dfsg-3+deb10u1) ...
Selecting previously unselected package libjs-underscore.
Preparing to unpack .../04-libjs-underscore_1.9.1~dfsg-1+deb10u1_all.deb ...
Unpacking libjs-underscore (1.9.1~dfsg-1+deb10u1) ...
Selecting previously unselected package libjs-sphinxdoc.
Preparing to unpack .../05-libjs-sphinxdoc_1.8.4-1_all.deb ...
Unpacking libjs-sphinxdoc (1.8.4-1) ...
Selecting previously unselected package libpython-all-dev:armhf.
Preparing to unpack .../06-libpython-all-dev_2.7.16-1_armhf.deb ...
Unpacking libpython-all-dev:armhf (2.7.16-1) ...
Selecting previously unselected package python-all.
Preparing to unpack .../07-python-all_2.7.16-1_armhf.deb ...
Unpacking python-all (2.7.16-1) ...
Selecting previously unselected package python-all-dev.
Preparing to unpack .../08-python-all-dev_2.7.16-1_armhf.deb ...
Unpacking python-all-dev (2.7.16-1) ...
Selecting previously unselected package python-asn1crypto.
Preparing to unpack .../09-python-asn1crypto_0.24.0-1_all.deb ...
Unpacking python-asn1crypto (0.24.0-1) ...
Selecting previously unselected package python-cffi-backend.
Preparing to unpack .../10-python-cffi-backend_1.12.2-1_armhf.deb ...
Unpacking python-cffi-backend (1.12.2-1) ...
Selecting previously unselected package python-configparser.
Preparing to unpack .../11-python-configparser_3.5.0b2-1_all.deb ...
Unpacking python-configparser (3.5.0b2-1) ...
Selecting previously unselected package python-crypto.
Preparing to unpack .../12-python-crypto_2.6.1-9+b1_armhf.deb ...
Unpacking python-crypto (2.6.1-9+b1) ...
Selecting previously unselected package python-enum34.
Preparing to unpack .../13-python-enum34_1.1.6-2_all.deb ...
Unpacking python-enum34 (1.1.6-2) ...
Selecting previously unselected package python-ipaddress.
Preparing to unpack .../14-python-ipaddress_1.0.17-1_all.deb ...
Unpacking python-ipaddress (1.0.17-1) ...
Selecting previously unselected package python-six.
Preparing to unpack .../15-python-six_1.12.0-1_all.deb ...
Unpacking python-six (1.12.0-1) ...
Selecting previously unselected package python-cryptography.
Preparing to unpack .../16-python-cryptography_2.6.1-3+deb10u2_armhf.deb ...
Unpacking python-cryptography (2.6.1-3+deb10u2) ...
Selecting previously unselected package python-dbus.
Preparing to unpack .../17-python-dbus_1.2.8-3_armhf.deb ...
Unpacking python-dbus (1.2.8-3) ...
Selecting previously unselected package python-entrypoints.
Preparing to unpack .../18-python-entrypoints_0.3-1_all.deb ...
Unpacking python-entrypoints (0.3-1) ...
Selecting previously unselected package python-gi.
Preparing to unpack .../19-python-gi_3.30.4-1_armhf.deb ...
Unpacking python-gi (3.30.4-1) ...
Selecting previously unselected package python-secretstorage.
Preparing to unpack .../20-python-secretstorage_2.3.1-2_all.deb ...
Unpacking python-secretstorage (2.3.1-2) ...
Selecting previously unselected package python-keyring.
Preparing to unpack .../21-python-keyring_17.1.1-1_all.deb ...
Unpacking python-keyring (17.1.1-1) ...
Selecting previously unselected package python-keyrings.alt.
Preparing to unpack .../22-python-keyrings.alt_3.1.1-1_all.deb ...
Unpacking python-keyrings.alt (3.1.1-1) ...
Selecting previously unselected package python-pip.
Preparing to unpack .../23-python-pip_18.1-5+rpt1_all.deb ...
Unpacking python-pip (18.1-5+rpt1) ...
Selecting previously unselected package python-setuptools.
Preparing to unpack .../24-python-setuptools_40.8.0-1_all.deb ...
Unpacking python-setuptools (40.8.0-1) ...
Selecting previously unselected package python-wheel.
Preparing to unpack .../25-python-wheel_0.32.3-2_all.deb ...
Unpacking python-wheel (0.32.3-2) ...
Selecting previously unselected package python-xdg.
Preparing to unpack .../26-python-xdg_0.25-5_all.deb ...
Unpacking python-xdg (0.25-5) ...
Setting up javascript-common (11) ...
Setting up python-enum34 (1.1.6-2) ...
Setting up python-crypto (2.6.1-9+b1) ...
Setting up libpython-all-dev:armhf (2.7.16-1) ...
Setting up python-wheel (0.32.3-2) ...
Setting up python-asn1crypto (0.24.0-1) ...
Setting up python-all (2.7.16-1) ...
Setting up python-six (1.12.0-1) ...
Setting up python-xdg (0.25-5) ...
Setting up python-dbus (1.2.8-3) ...
Setting up python-pip (18.1-5+rpt1) ...
Setting up python-setuptools (40.8.0-1) ...
Setting up libgirepository-1.0-1:armhf (1.58.3-2) ...
Setting up python-all-dev (2.7.16-1) ...
Setting up libjs-jquery (3.3.1~dfsg-3+deb10u1) ...
Setting up python-ipaddress (1.0.17-1) ...
Setting up libjs-underscore (1.9.1~dfsg-1+deb10u1) ...
Setting up python-cffi-backend (1.12.2-1) ...
Setting up python-keyrings.alt (3.1.1-1) ...
Setting up python-cryptography (2.6.1-3+deb10u2) ...
Setting up gir1.2-glib-2.0:armhf (1.58.3-2) ...
Setting up libjs-sphinxdoc (1.8.4-1) ...
Setting up python-gi (3.30.4-1) ...
Setting up python-secretstorage (2.3.1-2) ...
Setting up python-configparser (3.5.0b2-1) ...
Setting up python-entrypoints (0.3-1) ...
Setting up python-keyring (17.1.1-1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10+rpi1) ...
Now try to unistall aiohttp but is useless at the moment, anyway i have tried
root@RASPBERRYPi3FLIRC:~# pip uninstall aiohttp
Skipping aiohttp as it is not installed.
Now install on root aiohttp and error because need a version of python
root@RASPBERRYPi3FLIRC:~# pip install aiohttp
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting aiohttp
Downloading https://files.pythonhosted.org/packages/2e/e6/9175733f42cec4f2cd6834564517f2f6260e27dab5edb75afdaa66f101bb/iohttp-2.3.1.tar.gz (1.1MB)
100% |████████████████████████████████| 1.1MB 189kB/s
Installing build dependencies ... done
aiohttp requires Python '>=3.4.2' but the running Python is 2.7.16
Install python 3.4
root@RASPBERRYPi3FLIRC:~# apt-get install python3.4
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
python-colorzero
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
libpython3.4-minimal libpython3.4-stdlib python3.4-minimal
Suggested packages:
python3.4-venv python3.4-doc binfmt-support
The following NEW packages will be installed:
libpython3.4-minimal libpython3.4-stdlib python3.4 python3.4-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,020 kB of archives.
After this operation, 20.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython3.4-minimal armhf 3.4.4-3+rpi1 [464 kB]
Get:2 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3.4-minimal armhf 3.4.4-3+rpi1 [1,267 kB]
Get:3 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython3.4-stdlib armhf 3.4.4-3+rpi1 [2,059 kB]
Get:4 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3.4 armhf 3.4.4-3+rpi1 [229 kB]
Fetched 4,020 kB in 3s (1,374 kB/s)
Selecting previously unselected package libpython3.4-minimal:armhf.
(Reading database ... 51245 files and directories currently installed.)
Preparing to unpack .../libpython3.4-minimal_3.4.4-3+rpi1_armhf.deb ...
Unpacking libpython3.4-minimal:armhf (3.4.4-3+rpi1) ...
Selecting previously unselected package python3.4-minimal.
Preparing to unpack .../python3.4-minimal_3.4.4-3+rpi1_armhf.deb ...
Unpacking python3.4-minimal (3.4.4-3+rpi1) ...
Selecting previously unselected package libpython3.4-stdlib:armhf.
Preparing to unpack .../libpython3.4-stdlib_3.4.4-3+rpi1_armhf.deb ...
Unpacking libpython3.4-stdlib:armhf (3.4.4-3+rpi1) ...
Selecting previously unselected package python3.4.
Preparing to unpack .../python3.4_3.4.4-3+rpi1_armhf.deb ...
Unpacking python3.4 (3.4.4-3+rpi1) ...
Setting up libpython3.4-minimal:armhf (3.4.4-3+rpi1) ...
Setting up libpython3.4-stdlib:armhf (3.4.4-3+rpi1) ...
Setting up python3.4-minimal (3.4.4-3+rpi1) ...
Setting up python3.4 (3.4.4-3+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for mime-support (3.62) ...
Time to launch
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.4 websocket_example.py
File "websocket_example.py", line 39
async def log_state_change(data: Tuple[GeAppliance, Dict[ErdCodeType, Any]]):
^
SyntaxError: invalid syntax
You'll need at least python 3.8 instead of python 3.4, older versions don't support the newer functionality.
You'll need at least python 3.8 instead of python 3.4, older versions don't support the newer functionality.
delete python 3.4
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# apt-get purge python3.4
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libpython3.4-minimal libpython3.4-stdlib python-colorzero python3.4-minimal
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
python3.4*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 319 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 52067 files and directories currently installed.)
Removing python3.4 (3.4.4-3+rpi1) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for mime-support (3.62) ...
Then install 3.8 but is already installed
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# apt-get install python3.8
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3.8 is already the newest version (3.8.7-1~bpo10+1).
The following packages were automatically installed and are no longer required:
libpython3.4-minimal libpython3.4-stdlib python-colorzero python3.4-minimal
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Try again
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 16, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
Here we can see that aiohttp require python more than 3.4.2, but i have tried with 3.8 and doesn't works, like you see
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# pip install aiohttp
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting aiohttp
Using cached https://files.pythonhosted.org/packages/2e/e6/9175733f42cec4f2cd6834564517f2f6260e27dab5edb75afdaa66f101bb/aiohttp-2.3.1.tar.gz
Installing build dependencies ... done
aiohttp requires Python '>=3.4.2' but the running Python is 2.7.16
it appears that root is using a different version of python, so when you call pip
or python
it is using python 2.7 by default. (you can verify by running python --version
, it will return 2.7). You might be able to do sudo apt install python-is-python3
to get the system to use python3 by default. If not, you can try the following:
sudo apt-get install python3 python3-pip
Then see what the python alternatives are:
sudo update-alternatives --config python
If you don't see the 3.8 version listed, you can then install it:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
You might also be able to do pip3 install aiohttp
as well, which might be easier if it works.
it appears that root is using a different version of python, so when you call
pip
orpython
it is using python 2.7 by default. (you can verify by runningpython --version
, it will return 2.7). You might be able to dosudo apt install python-is-python3
to get the system to use python3 by default. If not, you can try the following:
sudo apt-get install python3 python3-pip
Then see what the python alternatives are:
sudo update-alternatives --config python
If you don't see the 3.8 version listed, you can then install it:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
In first i want to say thanks for the patience. On root:
root@RASPBERRYPi3FLIRC:~# python --version
Python 2.7.16
Tried to install python 3 in root
root@RASPBERRYPi3FLIRC:~# apt install python-is-python3
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python-is-python3
Now i tried to install with your 2nd command, about python3
root@RASPBERRYPi3FLIRC:~# apt-get install python3 python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3 is already the newest version (3.7.3-1).
python3 set to manually installed.
The following packages were automatically installed and are no longer required:
libpython3.4-minimal libpython3.4-stdlib python-colorzero python3.4-minimal
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
dh-python libpython3-dev libpython3.7-dev python3-asn1crypto
python3-cffi-backend python3-crypto python3-cryptography python3-dbus
python3-dev python3-distutils python3-entrypoints python3-gi python3-keyring
python3-keyrings.alt python3-lib2to3 python3-secretstorage
python3-setuptools python3-wheel python3-xdg python3.7-dev
Suggested packages:
python-crypto-doc python-cryptography-doc python3-cryptography-vectors
python-dbus-doc python3-dbus-dbg gnome-keyring libkf5wallet-bin
gir1.2-gnomekeyring-1.0 python-secretstorage-doc python-setuptools-doc
The following NEW packages will be installed:
dh-python libpython3-dev libpython3.7-dev python3-asn1crypto
python3-cffi-backend python3-crypto python3-cryptography python3-dbus
python3-dev python3-distutils python3-entrypoints python3-gi python3-keyring
python3-keyrings.alt python3-lib2to3 python3-pip python3-secretstorage
python3-setuptools python3-wheel python3-xdg python3.7-dev
0 upgraded, 21 newly installed, 0 to remove and 0 not upgraded.
Need to get 49.5 MB of archives.
After this operation, 80.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.raspberrypi.org/debian buster/main armhf python3-pip all 18 .1-5+rpt1 [171 kB]
Get:2 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-li b2to3 all 3.7.3-1 [76.7 kB]
Get:3 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-di stutils all 3.7.3-1 [142 kB]
Get:4 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf dh-python all 3.20190308 [99.3 kB]
Get:7 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python3-asn1crypto all 0.24.0-1 [78.2 kB]
Get:5 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython3 .7-dev armhf 3.7.3-2+deb10u3 [47.2 MB]
Get:9 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armhf python3-crypto armhf 2.6.1-9+b1 [251 kB]
Get:11 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armh f python3-dbus armhf 1.2.8-3 [95.9 kB]
Get:13 http://raspbian.raspberrypi.org/raspbian buster/main armhf python3-dev ar mhf 3.7.3-1 [1,264 B]
Get:14 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armh f python3-entrypoints all 0.3-1 [5,508 B]
Get:15 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armh f python3-gi armhf 3.30.4-1 [161 kB]
Get:16 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armh f python3-secretstorage all 2.3.1-2 [14.2 kB]
Get:17 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armh f python3-keyring all 17.1.1-1 [43.1 kB]
Get:18 http://raspbian.mirror.garr.it/mirrors/raspbian/raspbian buster/main armh f python3-keyrings.alt all 3.1.1-1 [18.2 kB]
Get:6 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf libpython3 -dev armhf 3.7.3-1 [20.1 kB]
Get:8 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-cf fi-backend armhf 1.12.2-1 [70.1 kB]
Get:10 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-c ryptography armhf 2.6.1-3+deb10u2 [184 kB]
Get:12 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3.7 -dev armhf 3.7.3-2+deb10u3 [513 kB]
Get:19 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-s etuptools all 40.8.0-1 [306 kB]
Get:20 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-w heel all 0.32.3-2 [19.4 kB]
Get:21 http://ftp.arnes.si/mirrors/raspbian/raspbian buster/main armhf python3-x dg all 0.25-5 [35.9 kB]
Fetched 49.5 MB in 14s (3,595 kB/s)
Selecting previously unselected package python3-lib2to3.
(Reading database ... 52047 files and directories currently installed.)
Preparing to unpack .../00-python3-lib2to3_3.7.3-1_all.deb ...
Unpacking python3-lib2to3 (3.7.3-1) ...
Selecting previously unselected package python3-distutils.
Preparing to unpack .../01-python3-distutils_3.7.3-1_all.deb ...
Unpacking python3-distutils (3.7.3-1) ...
Selecting previously unselected package dh-python.
Preparing to unpack .../02-dh-python_3.20190308_all.deb ...
Unpacking dh-python (3.20190308) ...
Selecting previously unselected package libpython3.7-dev:armhf.
Preparing to unpack .../03-libpython3.7-dev_3.7.3-2+deb10u3_armhf.deb ...
Unpacking libpython3.7-dev:armhf (3.7.3-2+deb10u3) ...
Selecting previously unselected package libpython3-dev:armhf.
Preparing to unpack .../04-libpython3-dev_3.7.3-1_armhf.deb ...
Unpacking libpython3-dev:armhf (3.7.3-1) ...
Selecting previously unselected package python3-asn1crypto.
Preparing to unpack .../05-python3-asn1crypto_0.24.0-1_all.deb ...
Unpacking python3-asn1crypto (0.24.0-1) ...
Selecting previously unselected package python3-cffi-backend.
Preparing to unpack .../06-python3-cffi-backend_1.12.2-1_armhf.deb ...
Unpacking python3-cffi-backend (1.12.2-1) ...
Selecting previously unselected package python3-crypto.
Preparing to unpack .../07-python3-crypto_2.6.1-9+b1_armhf.deb ...
Unpacking python3-crypto (2.6.1-9+b1) ...
Selecting previously unselected package python3-cryptography.
Preparing to unpack .../08-python3-cryptography_2.6.1-3+deb10u2_armhf.deb ...
Unpacking python3-cryptography (2.6.1-3+deb10u2) ...
Selecting previously unselected package python3-dbus.
Preparing to unpack .../09-python3-dbus_1.2.8-3_armhf.deb ...
Unpacking python3-dbus (1.2.8-3) ...
Selecting previously unselected package python3.7-dev.
Preparing to unpack .../10-python3.7-dev_3.7.3-2+deb10u3_armhf.deb ...
Unpacking python3.7-dev (3.7.3-2+deb10u3) ...
Selecting previously unselected package python3-dev.
Preparing to unpack .../11-python3-dev_3.7.3-1_armhf.deb ...
Unpacking python3-dev (3.7.3-1) ...
Selecting previously unselected package python3-entrypoints.
Preparing to unpack .../12-python3-entrypoints_0.3-1_all.deb ...
Unpacking python3-entrypoints (0.3-1) ...
Selecting previously unselected package python3-gi.
Preparing to unpack .../13-python3-gi_3.30.4-1_armhf.deb ...
Unpacking python3-gi (3.30.4-1) ...
Selecting previously unselected package python3-secretstorage.
Preparing to unpack .../14-python3-secretstorage_2.3.1-2_all.deb ...
Unpacking python3-secretstorage (2.3.1-2) ...
Selecting previously unselected package python3-keyring.
Preparing to unpack .../15-python3-keyring_17.1.1-1_all.deb ...
Unpacking python3-keyring (17.1.1-1) ...
Selecting previously unselected package python3-keyrings.alt.
Preparing to unpack .../16-python3-keyrings.alt_3.1.1-1_all.deb ...
Unpacking python3-keyrings.alt (3.1.1-1) ...
Selecting previously unselected package python3-pip.
Preparing to unpack .../17-python3-pip_18.1-5+rpt1_all.deb ...
Unpacking python3-pip (18.1-5+rpt1) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../18-python3-setuptools_40.8.0-1_all.deb ...
Unpacking python3-setuptools (40.8.0-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../19-python3-wheel_0.32.3-2_all.deb ...
Unpacking python3-wheel (0.32.3-2) ...
Selecting previously unselected package python3-xdg.
Preparing to unpack .../20-python3-xdg_0.25-5_all.deb ...
Unpacking python3-xdg (0.25-5) ...
Setting up python3-entrypoints (0.3-1) ...
Setting up python3-dbus (1.2.8-3) ...
Setting up libpython3.7-dev:armhf (3.7.3-2+deb10u3) ...
Setting up python3-xdg (0.25-5) ...
Setting up python3-wheel (0.32.3-2) ...
Setting up python3.7-dev (3.7.3-2+deb10u3) ...
Setting up python3-gi (3.30.4-1) ...
Setting up python3-crypto (2.6.1-9+b1) ...
Setting up python3-lib2to3 (3.7.3-1) ...
Setting up python3-asn1crypto (0.24.0-1) ...
Setting up python3-cffi-backend (1.12.2-1) ...
Setting up python3-distutils (3.7.3-1) ...
Setting up dh-python (3.20190308) ...
Setting up libpython3-dev:armhf (3.7.3-1) ...
Setting up python3-setuptools (40.8.0-1) ...
Setting up python3-cryptography (2.6.1-3+deb10u2) ...
Setting up python3-dev (3.7.3-1) ...
Setting up python3-pip (18.1-5+rpt1) ...
Setting up python3-keyrings.alt (3.1.1-1) ...
Setting up python3-secretstorage (2.3.1-2) ...
Setting up python3-keyring (17.1.1-1) ...
Processing triggers for man-db (2.8.5-2) ...
No alternative for python
root@RASPBERRYPi3FLIRC:~# update-alternatives --config python
update-alternatives: error: no alternatives for python
root@RASPBERRYPi3FLIRC:~# update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
update-alternatives: using /usr/bin/python3.8 to provide /usr/bin/python (python) in auto mode
Now install aiohttp
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# pip3 install aiohttp
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting aiohttp
Downloading https://www.piwheels.org/simple/aiohttp/aiohttp-3.7.4.post0-cp37-cp37m-linux_armv7l.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 197kB/s
Collecting async-timeout<4.0,>=3.0 (from aiohttp)
Downloading https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl
Collecting attrs>=17.3.0 (from aiohttp)
Downloading https://files.pythonhosted.org/packages/20/a9/ba6f1cd1a1517ff022b35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl (53kB)
100% |████████████████████████████████| 61kB 883kB/s
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp) (3.0.4)
Collecting typing-extensions>=3.6.5 (from aiohttp)
Downloading https://files.pythonhosted.org/packages/2e/35/6c4fff5ab443b57116cb1aad46421fb719bed2825664e8fe77d66d99bcbc/typing_extensions-3.10.0.0-py3-none-any.whl
Collecting yarl<2.0,>=1.0 (from aiohttp)
Downloading https://www.piwheels.org/simple/yarl/yarl-1.6.3-cp37-cp37m-linux_armv7l.whl (262kB)
100% |████████████████████████████████| 266kB 585kB/s
Collecting multidict<7.0,>=4.5 (from aiohttp)
Downloading https://files.pythonhosted.org/packages/1c/74/e8b46156f37ca56d10d895d4e8595aa2b344cff3c1fb3629ec97a8656ccb/multidict-5.1.0.tar.gz (53kB)
100% |████████████████████████████████| 61kB 1.5MB/s
Installing build dependencies ... done
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp) (2.6)
Building wheels for collected packages: multidict
Running setup.py bdist_wheel for multidict ... done
Stored in directory: /root/.cache/pip/wheels/e7/05/d2/f5c04c29d0e4b234dbcd4b609b51f8c65d67ff9bbd01c904b1
Successfully built multidict
Installing collected packages: async-timeout, attrs, typing-extensions, multidict, yarl, aiohttp
Successfully installed aiohttp-3.7.4.post0 async-timeout-3.0.1 attrs-21.2.0 multidict-5.1.0 typing-extensions-3.10.0.0 yarl-1.6.3
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 16, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
In the install log for python, it looks like it's using python 3.7.3-1, but you have python 3.8 as well, so still looks like a versioning thing potentially. It's clearly installed in some spot. Can you do the following:
pip --version
pip3 --version
pip show
pip3 show
pip3 --version
root@RASPBERRYPi3FLIRC:~# pip show
pip3 shERROR: Please provide a package name or names.
root@RASPBERRYPi3FLIRC:~# pip3 show
ERROR: Please provide a package name or names.
root@RASPBERRYPi3FLIRC:~# pip --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.8)
root@RASPBERRYPi3FLIRC:~# pip3 --version
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
So, it looks like we'll need to use pip
since it's tied to 3.8. Can you try pip install aiohttp
and then run the example and see if we get something different?
So, it looks like we'll need to use
pip
since it's tied to 3.8. Can you trypip install aiohttp
and then run the example and see if we get something different?
pip installed on root
root@RASPBERRYPi3FLIRC:~# pip install aiohttp
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting aiohttp
Downloading https://files.pythonhosted.org/packages/99/f5/90ede947a3ce2d6de161 4799f5fea4e93c19b6520a59dc5d2f64123b032f/aiohttp-3.7.4.post0.tar.gz (1.1MB)
100% |████████████████████████████████| 1.1MB 198kB/s
Installing build dependencies ... done
Collecting attrs>=17.3.0 (from aiohttp)
Using cached https://files.pythonhosted.org/packages/20/a9/ba6f1cd1a1517ff022b 35acd6a7e4246371dfab08b8e42b829b6d07913cc/attrs-21.2.0-py2.py3-none-any.whl
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packag es (from aiohttp) (3.0.4)
Collecting multidict<7.0,>=4.5 (from aiohttp)
Using cached https://files.pythonhosted.org/packages/1c/74/e8b46156f37ca56d10d 895d4e8595aa2b344cff3c1fb3629ec97a8656ccb/multidict-5.1.0.tar.gz
Installing build dependencies ... done
Collecting async_timeout<4.0,>=3.0 (from aiohttp)
Using cached https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c446 4f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl
Collecting yarl<2.0,>=1.0 (from aiohttp)
Downloading https://files.pythonhosted.org/packages/97/e7/af7219a0fe240e8ef6bb 555341a63c43045c21ab0392b4435e754b716fa1/yarl-1.6.3.tar.gz (176kB)
100% |████████████████████████████████| 184kB 1.0MB/s
Installing build dependencies ... done
Collecting typing_extensions>=3.6.5 (from aiohttp)
Using cached https://files.pythonhosted.org/packages/2e/35/6c4fff5ab443b57116c b1aad46421fb719bed2825664e8fe77d66d99bcbc/typing_extensions-3.10.0.0-py3-none-an y.whl
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp) (2.6)
Building wheels for collected packages: aiohttp, multidict, yarl
Running setup.py bdist_wheel for aiohttp ... done
Stored in directory: /root/.cache/pip/wheels/15/aa/5f/33df380f4940b1c1bda8d83967345fcb97d0749e2cfbb06794
Running setup.py bdist_wheel for multidict ... done
Stored in directory: /root/.cache/pip/wheels/e7/05/d2/f5c04c29d0e4b234dbcd4b609b51f8c65d67ff9bbd01c904b1
Running setup.py bdist_wheel for yarl ... done
Stored in directory: /root/.cache/pip/wheels/dc/fc/db/bca151751ff7119f584686572f716c4b35637210a3e52f6050
Successfully built aiohttp multidict yarl
Installing collected packages: attrs, multidict, async-timeout, yarl, typing-extensions, aiohttp
Successfully installed aiohttp-3.7.4.post0 async-timeout-3.0.1 attrs-21.2.0 multidict-5.1.0 typing-extensions-3.10.0.0 yarl-1.6.3
Tried to launch
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 23, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 4, in <module>
from gehomesdk.clients.async_login_flows import async_get_oauth2_token, async_refresh_oauth2_token
File "/home/gehome-master/gehomesdk/clients/async_login_flows.py", line 2, in <module>
from lxml import etree
ImportError: cannot import name 'etree' from 'lxml' (/usr/lib/python3/dist-packages/lxml/__init__.py)
different error :). Try pip install lxml
and see if that resolves that particular issue
different error :). Try
pip install lxml
and see if that resolves that particular issue
root@RASPBERRYPi3FLIRC:~# pip install lxml
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: lxml in /usr/lib/python3/dist-packages (4.3.2)
ah, that's an old version of lxml for some reason.
perhaps try pip install lxml --upgrade
and see if it gives you a newer version
pip install lxml --upgrade
root@RASPBERRYPi3FLIRC:~# pip install lxml --upgrade
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting lxml
Downloading https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f0051687eea3d3317557bde68736f038a3b105ac3809247/lxml-4.6.3.tar.gz (3.2MB)
100% |████████████████████████████████| 3.2MB 75kB/s
Building wheels for collected packages: lxml
Running setup.py bdist_wheel for lxml ... / done
Stored in directory: /root/.cache/pip/wheels/14/64/a2/36bb17509740641231ffab47b8e3052c41761581aba03f8ba4
Successfully built lxml
Installing collected packages: lxml
Found existing installation: lxml 4.3.2
Not uninstalling lxml at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'lxml'. No files were found to uninstall.
Successfully installed lxml-4.6.3
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 23, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 12, in <module>
from ..erd import ErdCode, ErdCodeType
File "/home/gehome-master/gehomesdk/erd/__init__.py", line 3, in <module>
from .values import *
File "/home/gehome-master/gehomesdk/erd/values/__init__.py", line 6, in <module>
from .oven import *
File "/home/gehome-master/gehomesdk/erd/values/oven/__init__.py", line 11, in <module>
from .oven_cook_mode_mapping import OVEN_COOK_MODE_MAP
File "/home/gehome-master/gehomesdk/erd/values/oven/oven_cook_mode_mapping.py", line 1, in <module>
import bidict
ModuleNotFoundError: No module named 'bidict'
pip install lxml --upgrade
root@RASPBERRYPi3FLIRC:~# pip install lxml --upgrade Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting lxml Downloading https://files.pythonhosted.org/packages/e5/21/a2e4517e3d216f0051687eea3d3317557bde68736f038a3b105ac3809247/lxml-4.6.3.tar.gz (3.2MB) 100% |████████████████████████████████| 3.2MB 75kB/s Building wheels for collected packages: lxml Running setup.py bdist_wheel for lxml ... / done Stored in directory: /root/.cache/pip/wheels/14/64/a2/36bb17509740641231ffab47b8e3052c41761581aba03f8ba4 Successfully built lxml Installing collected packages: lxml Found existing installation: lxml 4.3.2 Not uninstalling lxml at /usr/lib/python3/dist-packages, outside environment /usr Can't uninstall 'lxml'. No files were found to uninstall. Successfully installed lxml-4.6.3
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py Traceback (most recent call last): File "websocket_example.py", line 23, in <module> from gehomesdk import ( File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module> from .clients import * File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module> from .base_client import GeBaseClient File "/home/gehome-master/gehomesdk/clients/base_client.py", line 12, in <module> from ..erd import ErdCode, ErdCodeType File "/home/gehome-master/gehomesdk/erd/__init__.py", line 3, in <module> from .values import * File "/home/gehome-master/gehomesdk/erd/values/__init__.py", line 6, in <module> from .oven import * File "/home/gehome-master/gehomesdk/erd/values/oven/__init__.py", line 11, in <module> from .oven_cook_mode_mapping import OVEN_COOK_MODE_MAP File "/home/gehome-master/gehomesdk/erd/values/oven/oven_cook_mode_mapping.py", line 1, in <module> import bidict ModuleNotFoundError: No module named 'bidict'
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# pip install bidict
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting bidict
Downloading https://files.pythonhosted.org/packages/67/d4/eaf9242722bf991e0955380dd6168020cb15a71cc0d3cc2373f4911b1f1d/bidict-0.21.2-py2.py3-none-any.whl
Installing collected packages: bidict
Successfully installed bidict-0.21.2
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 23, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 12, in <module>
from ..erd import ErdCode, ErdCodeType
File "/home/gehome-master/gehomesdk/erd/__init__.py", line 3, in <module>
from .values import *
File "/home/gehome-master/gehomesdk/erd/values/__init__.py", line 9, in <module>
from .water_filter import *
File "/home/gehome-master/gehomesdk/erd/values/water_filter/__init__.py", line 5, in <module>
from .erd_waterfilter_life import ErdWaterFilterLifeRemaining
File "/home/gehome-master/gehomesdk/erd/values/water_filter/erd_waterfilter_life.py", line 3, in <module>
import humanize
ModuleNotFoundError: No module named 'humanize'
if you do pip install gehomesdk
, it should get all of these, I think we're almost there...
if you do
pip install gehomesdk
, it should get all of these, I think we're almost there...
root@RASPBERRYPi3FLIRC:~# pip install gehomesdk
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting gehomesdk
Downloading https://files.pythonhosted.org/packages/65/ab/edbfc38dfc8e4b61933b3a2e6e8eca2e8a4938f02e17119c709fd1e57e6d/gehomesdk-0.4.0-py3-none-any.whl (127kB)
100% |████████████████████████████████| 133kB 953kB/s
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from gehomesdk) (2.21.0)
Requirement already satisfied: bidict in /usr/local/lib/python3.8/dist-packages (from gehomesdk) (0.21.2)
Collecting humanize (from gehomesdk)
Downloading https://files.pythonhosted.org/packages/ef/0f/acefce93675412ddd1315785e086e22d42cc43506a41d77d310ad4e4c6bb/humanize-3.11.0-py3-none-any.whl (90kB)
100% |████████████████████████████████| 92kB 1.7MB/s
Requirement already satisfied: aiohttp in /usr/local/lib/python3.8/dist-packages (from gehomesdk) (3.7.4.post0)
Collecting websockets (from gehomesdk)
Downloading https://files.pythonhosted.org/packages/0d/bd/5262054455ab2067e51de331bfbc53a1dfa9071af7c424cf7c0793c4349a/websockets-9.1.tar.gz (76kB)
100% |████████████████████████████████| 81kB 1.6MB/s
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from humanize->gehomesdk) (40.8.0)
Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gehomesdk) (1.6.3)
Requirement already satisfied: chardet<5.0,>=2.0 in /usr/lib/python3/dist-packages (from aiohttp->gehomesdk) (3.0.4)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gehomesdk) (3.0.1)
Requirement already satisfied: typing-extensions>=3.6.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gehomesdk) (3.10.0.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gehomesdk) (5.1.0)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.8/dist-packages (from aiohttp->gehomesdk) (21.2.0)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp->gehomesdk) (2.6)
Building wheels for collected packages: websockets
Running setup.py bdist_wheel for websockets ... done
Stored in directory: /root/.cache/pip/wheels/e1/f7/3f/bb9bd14321f58f036e48804fb6bfe2cfd431c41d8306c801f4
Successfully built websockets
Installing collected packages: humanize, websockets, gehomesdk
Successfully installed gehomesdk-0.4.0 humanize-3.11.0 websockets-9.1
root@RASPBERRYPi3FLIRC:~# cd /home/gehome-master/examples/
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples#
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples#
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples#
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples#
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples#
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples#
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
Traceback (most recent call last):
File "websocket_example.py", line 23, in <module>
from gehomesdk import (
File "/home/gehome-master/gehomesdk/__init__.py", line 6, in <module>
from .clients import *
File "/home/gehome-master/gehomesdk/clients/__init__.py", line 17, in <module>
from .base_client import GeBaseClient
File "/home/gehome-master/gehomesdk/clients/base_client.py", line 14, in <module>
from ..ge_appliance import GeAppliance
File "/home/gehome-master/gehomesdk/ge_appliance.py", line 7, in <module>
from slixmpp import JID
ModuleNotFoundError: No module named 'slixmpp'
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# pip install slixmpp
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting slixmpp
Downloading https://www.piwheels.org/simple/slixmpp/slixmpp-1.7.1-py3-none-any .whl (468kB)
100% |████████████████████████████████| 471kB 452kB/s
Collecting pyasn1 (from slixmpp)
Downloading https://files.pythonhosted.org/packages/62/1e/a94a8d635fa3ce4cfc7f 506003548d0a2447ae76fd5ca53932970fe3053f/pyasn1-0.4.8-py2.py3-none-any.whl (77kB )
100% |████████████████████████████████| 81kB 852kB/s
Collecting aiodns>=1.0 (from slixmpp)
Downloading https://files.pythonhosted.org/packages/ab/72/991ee33a517df69c6cd6 f3486cfe9b6329557cb55acaa8cefac33c2aa4d2/aiodns-3.0.0-py3-none-any.whl
Collecting pyasn1-modules (from slixmpp)
Downloading https://files.pythonhosted.org/packages/95/de/214830a981892a3e286c 3794f41ae67a4495df1108c3da8a9f62159b9a9d/pyasn1_modules-0.2.8-py2.py3-none-any.w hl (155kB)
100% |████████████████████████████████| 163kB 1.1MB/s
Collecting pycares>=4.0.0 (from aiodns>=1.0->slixmpp)
Downloading https://files.pythonhosted.org/packages/25/5a/ed8cc3340b7e83a5e572 b5d27387a968a7e52b1e3c269442076ca902b7ba/pycares-4.0.0.tar.gz (819kB)
100% |████████████████████████████████| 829kB 282kB/s
Collecting cffi>=1.5.0 (from pycares>=4.0.0->aiodns>=1.0->slixmpp)
Downloading https://files.pythonhosted.org/packages/2e/92/87bb61538d7e60da8a7e c247dc048f7671afe17016cd0008b3b710012804/cffi-1.14.6.tar.gz (475kB)
100% |████████████████████████████████| 481kB 474kB/s
Collecting pycparser (from cffi>=1.5.0->pycares>=4.0.0->aiodns>=1.0->slixmpp)
Downloading https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024deb f82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl (11 2kB)
100% |████████████████████████████████| 112kB 1.7MB/s
Building wheels for collected packages: pycares, cffi
Running setup.py bdist_wheel for pycares ... done
Stored in directory: /root/.cache/pip/wheels/e4/f0/65/3bb85d314c75f47b43707eee 3651842076718e1b01ebd6f20d
Running setup.py bdist_wheel for cffi ... done
Stored in directory: /root/.cache/pip/wheels/01/f8/3e/9bde82a90cd06dfdc9017be6 769b2543d5177f044d6f95f500
Successfully built pycares cffi
Installing collected packages: pyasn1, pycparser, cffi, pycares, aiodns, pyasn1- modules, slixmpp
Successfully installed aiodns-3.0.0 cffi-1.14.6 pyasn1-0.4.8 pyasn1-modules-0.2. 8 pycares-4.0.0 pycparser-2.20 slixmpp-1.7.1
For now is stuck on there:
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example .py
2021-08-03 10:13:01,568 DEBUG Using selector: EpollSelector
websocket_example.py:82: DeprecationWarning: The object should be created within an async function
session = aiohttp.ClientSession()
2021-08-03 10:13:01,571 DEBUG Getting OAuth2 token
2021-08-03 10:13:01,581 DEBUG Client changed state: GeClientState.INITIALIZIN G to GeClientState.AUTHORIZING_OAUTH
2021-08-03 10:13:03,607 INFO The application requires authentication and wil l attempt to grant consent automatically. Visit https://accounts.brillion.geappl iances.com/consumer/active/applications to deauthorize.
2021-08-03 10:13:04,995 DEBUG Getting WS credentials
2021-08-03 10:13:04,997 DEBUG Client changed state: GeClientState.AUTHORIZING _OAUTH to GeClientState.AUTHORIZING_CLIENT
2021-08-03 10:13:05,271 INFO Starting GE Appliances client
2021-08-03 10:13:05,334 DEBUG Client changed state: GeClientState.AUTHORIZING _CLIENT to GeClientState.CONNECTING
2021-08-03 10:13:05,517 DEBUG client - state = CONNECTING
2021-08-03 10:13:05,668 DEBUG client - event = connection_made(<asyncio.sslpr oto._SSLProtocolTransport object at 0x73247238>)
2021-08-03 10:13:05,672 DEBUG client ! failing CONNECTING WebSocket connectio n with code 1006
2021-08-03 10:13:05,674 DEBUG client x closing TCP connection
2021-08-03 10:13:05,741 DEBUG client - event = eof_received()
2021-08-03 10:13:05,743 DEBUG client - event = connection_lost(None)
2021-08-03 10:13:05,744 DEBUG client - state = CLOSED
2021-08-03 10:13:05,745 DEBUG client x code = 1006, reason = [no reason]
2021-08-03 10:13:05,747 WARNING Unhandled exception on first connect attempt: m odule 'secrets' has no attribute 'token_bytes', disconnecting
2021-08-03 10:13:05,748 DEBUG Waiting before reconnecting
2021-08-03 10:13:05,750 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.DROPPED
2021-08-03 10:13:05,751 DEBUG Client changed state: GeClientState.DROPPED to GeClientState.WAITING
2021-08-03 10:13:07,752 DEBUG Refreshing authentication before reconnecting
2021-08-03 10:13:07,753 DEBUG Refreshing OAuth2 token
2021-08-03 10:13:07,757 DEBUG Client changed state: GeClientState.WAITING to GeClientState.AUTHORIZING_OAUTH
2021-08-03 10:13:08,153 DEBUG Getting WS credentials
2021-08-03 10:13:08,158 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
2021-08-03 10:13:08,245 INFO Disconnecting
2021-08-03 10:13:08,247 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.DISCONNECTING
2021-08-03 10:13:08,249 DEBUG Client changed state: GeClientState.DISCONNECTING to GeClientState.DISCONNECTED
2021-08-03 12:16:21,728 ERROR Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x732c6a90>
I'm going on it https://accounts.brillion.geappliances.com/consumer/active/applications and used same username and passwd. And i can see this
For now AC is off. Maybe need to be turn on ? I tried also with turn on AC, but same log
OK, some others have run into at least one of the issues in your log, so let's take them one at a time. Please try the following:
secrets.py
to secret.py
websocket_example.py
file, change the line to from examples.secret import USERNAME, PASSWORD
After this, you'll need to download SmartHQ, and make sure your appliance appears in there. You may need to remove and re-add it if it is there but doesn't show information properly.
OK, some others have run into at least one of the issues in your log, so let's take them one at a time. Please try the following:
- rename your
secrets.py
tosecret.py
- in the
websocket_example.py
file, change the line tofrom examples.secret import USERNAME, PASSWORD
- re-run to see if it clears the error
After this, you'll need to download SmartHQ, and make sure your appliance appears in there. You may need to remove and re-add it if it is there but doesn't show information properly.
I did it and now script, and now i have a lot of logs, run already.
But i use Geappliances, not Smarthq, because seems that Smarthq is for not europe or italian market.
Anyway from logs i can see the version of my general electric wifi usb pen.
As you can see from thi screenshot - https://play.google.com/store/apps/details?id=com.ge.comfort&hl=it&gl=US
Here, inside the app:
My AC, i have 2 AC General Electric, but for now i add only one, anyway are the same model, only one 9000BTU and another of 12000BTU
Here you can see the info and change some parameters about AC, anyway remote control is better because you can change also 3d airflow for example, i hope that is possible do that.
And here you can see the info about product and wifi usb pen
Here i paste log, but is running, so i don't understand when is stopped.
root@RASPBERRYPi3FLIRC:/home/gehome-master/examples# python3.8 websocket_example.py
2021-08-03 16:34:06,381 DEBUG Using selector: EpollSelector
websocket_example.py:82: DeprecationWarning: The object should be created within an async function
session = aiohttp.ClientSession()
2021-08-03 16:34:06,384 DEBUG Getting OAuth2 token
2021-08-03 16:34:06,396 DEBUG Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH
2021-08-03 16:34:08,479 DEBUG Getting WS credentials
2021-08-03 16:34:08,483 DEBUG Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
2021-08-03 16:34:08,772 INFO Starting GE Appliances client
2021-08-03 16:34:08,880 DEBUG Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING
2021-08-03 16:34:09,057 DEBUG client - state = CONNECTING
2021-08-03 16:34:09,208 DEBUG client - event = connection_made(<asyncio.sslproto._SSLProtocolTransport object at 0x75ee93b8>)
2021-08-03 16:34:09,210 DEBUG client > GET /?access_token=ew1cpr0va6n0d1v6uzyvkfvutyv8wn74 HTTP/1.1
2021-08-03 16:34:09,211 DEBUG client > Headers([('Host', 'ws-eu-west-1.brillion.geappliances.com'), ('Upgrade', 'websocket'), ('Connect ion', 'Upgrade'), ('Sec-WebSocket-Key', 'XdaMoCJJWs+PrJuL+mPzpA=='), ('Sec-WebSocket-Version', '13'), ('Sec-WebSocket-Extensions', 'permes sage-deflate; client_max_window_bits'), ('User-Agent', 'Python/3.8 websockets/9.1')])
2021-08-03 16:34:09,417 DEBUG client - event = data_received(<212 bytes>)
2021-08-03 16:34:09,418 DEBUG client < HTTP/1.1 101 Switching Protocols
2021-08-03 16:34:09,418 DEBUG client < Headers([('Date', 'Tue, 03 Aug 2021 14:34:09 GMT'), ('Connection', 'upgrade'), ('upgrade', 'webs ocket'), ('sec-websocket-accept', 'Wvnx1q+x9yG27tHd4U/vNIOM9gI='), ('sec-websocket-extensions', 'permessage-deflate')])
2021-08-03 16:34:09,419 DEBUG client - state = OPEN
2021-08-03 16:34:09,420 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#subscribe", "action": "subsc ribe", "resources": ["/appliance/*/erd/*"]}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,421 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance", "id": "List-appliances"}', rsv1=False, rsv2=False, rsv3=Fals e)
2021-08-03 16:34:09,423 DEBUG Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED
2021-08-03 16:34:09,526 DEBUG client - event = data_received(<49 bytes>)
2021-08-03 16:34:09,527 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#subscribe","success":true}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,619 DEBUG client - event = data_received(<16 bytes>)
2021-08-03 16:34:09,620 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#connect","success":true}', rs v1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,652 DEBUG client - event = data_received(<256 bytes>)
2021-08-03 16:34:09,653 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"List-appliances"," request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance"},"success":true,"code":200,"body":{"kind":"applianc e#applianceList","userId":"8iphzd059z7spke","items":[{"applianceId":"D828C9404C09","type":"Split Air Conditioner","brand":"Unknown","jid": "d828c9404c09_8iphzd059z7spke","nickname":"CondizionatoreStudio","online":"ONLINE"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,657 DEBUG D828C9404C09 marked available
2021-08-03 16:34:09,657 DEBUG Adding appliance D828C9404C09
2021-08-03 16:34:09,658 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:34:09,659 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,660 DEBUG Requesting features for client D828C9404C09
2021-08-03 16:34:09,661 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/feature", "id": "Request-features"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,663 DEBUG Registering update callback for GeAppliance(D828C9404C09) (Unknown Type)
2021-08-03 16:34:09,871 DEBUG client - event = data_received(<224 bytes>)
2021-08-03 16:34:09,872 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allEr d","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"bo dy":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000 000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000 000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{ "erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd ":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0 x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01"," value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01 ","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":" 2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07- 26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:09,875 DEBUG Setting ErdCode.MODEL_NUMBER to
2021-08-03 16:34:09,876 DEBUG Setting ErdCode.SERIAL_NUMBER to
2021-08-03 16:34:09,876 DEBUG Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.METRIC
2021-08-03 16:34:09,877 DEBUG Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.UNKNOWN
2021-08-03 16:34:09,879 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.6.32
2021-08-03 16:34:09,880 DEBUG Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
2021-08-03 16:34:09,881 DEBUG Setting ErdCode.ACM_UPDATING to False
2021-08-03 16:34:09,882 DEBUG Setting 0x7003 to b'\x00O'
2021-08-03 16:34:09,883 DEBUG Setting 0x7A00 to b'\x08'
2021-08-03 16:34:09,884 DEBUG Setting 0x7A01 to b'\x00'
2021-08-03 16:34:09,885 DEBUG Setting 0x7A02 to b'M'
2021-08-03 16:34:09,886 DEBUG Setting 0x7A0F to b'\x01'
2021-08-03 16:34:09,887 DEBUG Setting 0x7B00 to b'\x03'
2021-08-03 16:34:09,888 DEBUG Setting 0x7B05 to b'\xff'
2021-08-03 16:34:09,889 DEBUG Setting 0x7B06 to b'\xff\xff'
2021-08-03 16:34:09,891 DEBUG Setting 0x7B07 to b'\x00'
2021-08-03 16:34:09,893 DEBUG Got initial appliance type for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:34:09,894 DEBUG Appliance state change detected in GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN). Updated keys: Er dCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, ErdCode.APPLIANCE_TYPE, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_ MODULE_SW_VERSION_AVAILABLE, ErdCode.ACM_UPDATING, 0x7003, 0x7A00, 0x7A01, 0x7A02, 0x7A0F, 0x7B00, 0x7B05, 0x7B06, 0x7B07
2021-08-03 16:34:09,895 DEBUG client - event = data_received(<41 bytes>)
2021-08-03 16:34:09,896 DEBUG Appliance state change detected in GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:34:09,898 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"Request-features", "request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/feature"},"success":true,"code":200,"b ody":{"kind":"appliance#applianceFeature","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","features":[]}}', rsv1=False, rsv2=False , rsv3=False)
2021-08-03 16:34:09,899 DEBUG Received features [] for D828C9404C09
2021-08-03 16:34:10,180 DEBUG client - event = data_received(<50 bytes>)
2021-08-03 16:34:10,181 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"resource":"/appliance/*/erd/*","kind":"websock et#subscription","success":true,"change":"ADDED"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:29,426 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'y\x93nn', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:29,498 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:34:29,499 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'y\x93nn', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:29,500 DEBUG client - received solicited pong: 79936e6e
2021-08-03 16:34:39,425 DEBUG Sending keepalive ping
2021-08-03 16:34:39,426 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:39,515 DEBUG client - event = data_received(<28 bytes>)
2021-08-03 16:34:39,516 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:49,504 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'i\xb8\x91F', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:34:49,575 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:34:49,575 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'i\xb8\x91F', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:34:49,576 DEBUG client - received solicited pong: 69b89146
2021-08-03 16:35:09,448 DEBUG Sending keepalive ping
2021-08-03 16:35:09,449 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:09,543 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:35:09,544 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:09,577 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xac\xe2\xa8\xf5', rsv1=False, rsv2=False, rsv3= False)
2021-08-03 16:35:09,648 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:35:09,649 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xac\xe2\xa8\xf5', rsv1=False, rsv2=False, rsv3 =False)
2021-08-03 16:35:09,650 DEBUG client - received solicited pong: ace2a8f5
2021-08-03 16:35:09,665 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:35:09,666 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:35:09,667 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:09,888 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:35:09,889 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allEr d","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"bo dy":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000 000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000 000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{ "erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd ":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0 x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01"," value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01 ","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":" 2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07- 26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:29,672 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xec\x9c\xf4.', rsv1=False, rsv2=False, rsv3=Fal se)
2021-08-03 16:35:29,743 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:35:29,744 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xec\x9c\xf4.', rsv1=False, rsv2=False, rsv3=Fa lse)
2021-08-03 16:35:29,745 DEBUG client - received solicited pong: ec9cf42e
2021-08-03 16:35:39,461 DEBUG Sending keepalive ping
2021-08-03 16:35:39,461 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:39,546 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:35:39,547 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:49,757 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xb4vz\xfa', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:35:49,828 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:35:49,829 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xb4vz\xfa', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:35:49,830 DEBUG client - received solicited pong: b4767afa
2021-08-03 16:36:09,483 DEBUG Sending keepalive ping
2021-08-03 16:36:09,484 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:09,571 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:36:09,572 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:09,669 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:36:09,670 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:36:09,671 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:09,832 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'H^\xf6\xc5', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:09,849 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:36:09,850 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allEr d","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"bo dy":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000 000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000 000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{ "erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd ":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0 x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01"," value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01 ","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":" 2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07- 26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:09,904 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:36:09,905 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'H^\xf6\xc5', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:36:09,905 DEBUG client - received solicited pong: 485ef6c5
2021-08-03 16:36:29,927 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'ML\x86\xd6', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:29,999 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:36:30,001 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'ML\x86\xd6', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:36:30,001 DEBUG client - received solicited pong: 4d4c86d6
2021-08-03 16:36:39,496 DEBUG Sending keepalive ping
2021-08-03 16:36:39,497 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:39,583 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:36:39,584 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:50,004 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xff{\xa6]', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:36:50,075 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:36:50,076 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xff{\xa6]', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:36:50,077 DEBUG client - received solicited pong: ff7ba65d
2021-08-03 16:37:09,514 DEBUG Sending keepalive ping
2021-08-03 16:37:09,515 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:37:09,610 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:37:09,610 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:37:09,673 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:37:09,673 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:37:09,674 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:37:09,898 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:37:09,900 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allEr d","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"bo dy":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000 000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000 000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{ "erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd ":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0 x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01"," value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01 ","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":" 2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07- 26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:37:10,079 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x83\xa5n\xfc', rsv1=False, rsv2=False, rsv3=Fal se)
2021-08-03 16:37:10,151 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:37:10,152 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x83\xa5n\xfc', rsv1=False, rsv2=False, rsv3=Fa lse)
2021-08-03 16:37:10,153 DEBUG client - received solicited pong: 83a56efc
2021-08-03 16:37:30,175 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xca\xae\xc7\xdf', rsv1=False, rsv2=False, rsv3= False)
2021-08-03 16:37:30,246 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:37:30,247 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xca\xae\xc7\xdf', rsv1=False, rsv2=False, rsv3 =False)
2021-08-03 16:37:30,248 DEBUG client - received solicited pong: caaec7df
2021-08-03 16:37:39,526 DEBUG Sending keepalive ping
2021-08-03 16:37:39,527 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:37:39,617 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:37:39,618 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:37:50,261 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xb5\xbe\x0f3', rsv1=False, rsv2=False, rsv3=Fal se)
2021-08-03 16:37:50,332 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:37:50,332 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xb5\xbe\x0f3', rsv1=False, rsv2=False, rsv3=Fa lse)
2021-08-03 16:37:50,333 DEBUG client - received solicited pong: b5be0f33
2021-08-03 16:38:09,548 DEBUG Sending keepalive ping
2021-08-03 16:38:09,549 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:09,637 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:38:09,638 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:09,676 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:38:09,678 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:38:09,679 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:09,874 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:38:09,876 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allEr d","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"bo dy":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000 000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000 000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{ "erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd ":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0 x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01"," value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01 ","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":" 2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07- 26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:10,335 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x81}Ky', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:10,407 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:38:10,408 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x81}Ky', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:10,410 DEBUG client - received solicited pong: 817d4b79
2021-08-03 16:38:30,432 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x0cnqt', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:30,504 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:38:30,505 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x0cnqt', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:30,505 DEBUG client - received solicited pong: 0c6e7174
2021-08-03 16:38:39,560 DEBUG Sending keepalive ping
2021-08-03 16:38:39,561 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:39,649 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:38:39,650 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:38:50,519 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'"\x94\xe8\xe3', rsv1=False, rsv2=False, rsv3=Fal se)
2021-08-03 16:38:50,591 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:38:50,592 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'"\x94\xe8\xe3', rsv1=False, rsv2=False, rsv3=Fa lse)
2021-08-03 16:38:50,592 DEBUG client - received solicited pong: 2294e8e3
2021-08-03 16:39:09,582 DEBUG Sending keepalive ping
2021-08-03 16:39:09,583 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:09,672 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:39:09,673 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:09,683 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:39:09,684 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:39:09,685 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host ": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:09,928 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:39:09,929 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allEr d","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"bo dy":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000 000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000 000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{ "erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd ":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0 x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01"," value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01 ","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":" 2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07- 26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:10,596 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'!\xc5\x03i', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:10,667 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:39:10,668 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'!\xc5\x03i', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:39:10,669 DEBUG client - received solicited pong: 21c50369
2021-08-03 16:39:30,682 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'k\xb7\xc5D', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:30,754 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:39:30,755 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'k\xb7\xc5D', rsv1=False, rsv2=False, rsv3=False )
2021-08-03 16:39:30,756 DEBUG client - received solicited pong: 6bb7c544
2021-08-03 16:39:39,595 DEBUG Sending keepalive ping
2021-08-03 16:39:39,595 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping ", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:39,681 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:39:39,683 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}' , rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:39:50,770 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x9c\x81\xe4\x06', rsv1=False, rsv2=False, rsv3= False)
2021-08-03 16:39:50,841 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:39:50,842 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x9c\x81\xe4\x06', rsv1=False, rsv2=False, rsv3 =False)
2021-08-03 16:39:50,843 DEBUG client - received solicited pong: 9c81e406
2021-08-03 16:40:09,616 DEBUG Sending keepalive ping
2021-08-03 16:40:09,617 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:09,688 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:40:09,688 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:40:09,689 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:09,708 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:40:09,709 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:09,899 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:40:09,901 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:10,846 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xbf\xb2D\x17', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:10,918 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:40:10,919 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xbf\xb2D\x17', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:10,919 DEBUG client - received solicited pong: bfb24417
2021-08-03 16:40:30,941 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xda\x96\xaf\xaa', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:31,012 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:40:31,013 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xda\x96\xaf\xaa', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:31,014 DEBUG client - received solicited pong: da96afaa
2021-08-03 16:40:39,629 DEBUG Sending keepalive ping
2021-08-03 16:40:39,630 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:39,716 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:40:39,717 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:51,026 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x8a0\xb8\xa2', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:51,099 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:40:51,100 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x8a0\xb8\xa2', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:40:51,100 DEBUG client - received solicited pong: 8a30b8a2
2021-08-03 16:41:09,650 DEBUG Sending keepalive ping
2021-08-03 16:41:09,651 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:09,692 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:41:09,693 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:41:09,694 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:09,743 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:41:09,744 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:09,948 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:41:09,949 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:11,104 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x86I\xa22', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:11,175 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:41:11,176 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x86I\xa22', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:11,176 DEBUG client - received solicited pong: 8649a232
2021-08-03 16:41:31,198 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'?i\x02\xb8', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:31,270 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:41:31,271 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'?i\x02\xb8', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:31,272 DEBUG client - received solicited pong: 3f6902b8
2021-08-03 16:41:39,661 DEBUG Sending keepalive ping
2021-08-03 16:41:39,662 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:39,748 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:41:39,749 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:51,286 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xd1\xe5\x1fe', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:51,357 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:41:51,358 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xd1\xe5\x1fe', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:41:51,359 DEBUG client - received solicited pong: d1e51f65
2021-08-03 16:42:09,684 DEBUG Sending keepalive ping
2021-08-03 16:42:09,685 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:09,697 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:42:09,698 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:42:09,699 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:09,959 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:42:09,960 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:10,014 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:42:10,015 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:11,362 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xce\xca(P', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:11,434 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:42:11,435 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xce\xca(P', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:11,436 DEBUG client - received solicited pong: ceca2850
2021-08-03 16:42:31,458 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\\\xc1\x84_', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:31,529 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:42:31,530 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\\\xc1\x84_', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:31,530 DEBUG client - received solicited pong: 5cc1845f
2021-08-03 16:42:39,696 DEBUG Sending keepalive ping
2021-08-03 16:42:39,697 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:39,787 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:42:39,788 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:51,538 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xe7H\xb1\x9e', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:51,611 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:42:51,612 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xe7H\xb1\x9e', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:42:51,612 DEBUG client - received solicited pong: e748b19e
2021-08-03 16:43:09,714 DEBUG Sending keepalive ping
2021-08-03 16:43:09,715 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:09,716 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:43:09,716 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:43:09,717 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:09,800 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:43:09,802 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:10,033 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:43:10,035 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:11,615 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x9d\xfbz7', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:11,687 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:43:11,688 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x9d\xfbz7', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:11,689 DEBUG client - received solicited pong: 9dfb7a37
2021-08-03 16:43:31,711 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'T\x0e=\n', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:31,783 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:43:31,784 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'T\x0e=\n', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:31,785 DEBUG client - received solicited pong: 540e3d0a
2021-08-03 16:43:39,726 DEBUG Sending keepalive ping
2021-08-03 16:43:39,727 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:39,822 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:43:39,823 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:51,799 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xcb\xdfp"', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:51,871 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:43:51,872 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xcb\xdfp"', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:43:51,872 DEBUG client - received solicited pong: cbdf7022
2021-08-03 16:44:09,443 DEBUG Refreshing appliance list/state
2021-08-03 16:44:09,444 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance", "id": "List-appliances"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:09,629 DEBUG client - event = data_received(<11 bytes>)
2021-08-03 16:44:09,630 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"List-appliances","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance"},"success":true,"code":200,"body":{"kind":"appliance#applianceList","userId":"8iphzd059z7spke","items":[{"applianceId":"D828C9404C09","type":"Split Air Conditioner","brand":"Unknown","jid":"d828c9404c09_8iphzd059z7spke","nickname":"CondizionatoreStudio","online":"ONLINE"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:09,720 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:44:09,720 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:44:09,721 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:09,729 DEBUG Sending keepalive ping
2021-08-03 16:44:09,730 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:09,816 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:44:09,817 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:09,890 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:44:09,891 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:11,876 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xd7\x1e\xb0\x8a', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:11,948 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:44:11,949 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xd7\x1e\xb0\x8a', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:11,949 DEBUG client - received solicited pong: d71eb08a
2021-08-03 16:44:31,971 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'_*2j', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:32,043 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:44:32,045 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'_*2j', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:32,045 DEBUG client - received solicited pong: 5f2a326a
2021-08-03 16:44:39,735 DEBUG Sending keepalive ping
2021-08-03 16:44:39,736 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:39,826 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:44:39,827 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:52,059 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xae,\xf5|', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:52,131 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:44:52,132 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xae,\xf5|', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:44:52,133 DEBUG client - received solicited pong: ae2cf57c
2021-08-03 16:45:09,741 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:45:09,742 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:45:09,742 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:09,744 DEBUG Sending keepalive ping
2021-08-03 16:45:09,745 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:09,830 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:45:09,832 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:09,971 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:45:09,973 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:12,138 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x05\xe1H\x1c', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:12,209 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:45:12,210 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x05\xe1H\x1c', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:12,211 DEBUG client - received solicited pong: 05e1481c
2021-08-03 16:45:32,233 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xb8n|\xe3', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:32,304 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:45:32,305 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xb8n|\xe3', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:32,305 DEBUG client - received solicited pong: b86e7ce3
2021-08-03 16:45:39,755 DEBUG Sending keepalive ping
2021-08-03 16:45:39,755 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:39,839 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:45:39,840 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:52,320 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'"B\x81\xf3', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:52,391 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:45:52,392 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'"B\x81\xf3', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:45:52,392 DEBUG client - received solicited pong: 224281f3
2021-08-03 16:46:09,762 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:46:09,763 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:46:09,764 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:09,766 DEBUG Sending keepalive ping
2021-08-03 16:46:09,767 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:09,857 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:46:09,858 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:09,974 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:46:09,975 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:12,396 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xbf\xa6\xca\x8a', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:12,466 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:46:12,467 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xbf\xa6\xca\x8a', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:12,468 DEBUG client - received solicited pong: bfa6ca8a
2021-08-03 16:46:32,490 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'n\xd1\n6', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:32,560 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:46:32,561 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'n\xd1\n6', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:32,561 DEBUG client - received solicited pong: 6ed10a36
2021-08-03 16:46:39,776 DEBUG Sending keepalive ping
2021-08-03 16:46:39,777 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:39,863 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:46:39,864 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:52,574 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\t\x90\x98\xb4', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:52,644 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:46:52,644 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\t\x90\x98\xb4', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:46:52,645 DEBUG client - received solicited pong: 099098b4
2021-08-03 16:47:09,785 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:47:09,785 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:47:09,786 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:09,788 DEBUG Sending keepalive ping
2021-08-03 16:47:09,788 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:09,873 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:47:09,874 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:09,955 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:47:09,956 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:12,650 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x9bf\x1dO', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:12,719 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:47:12,720 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x9bf\x1dO', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:12,720 DEBUG client - received solicited pong: 9b661d4f
2021-08-03 16:47:32,742 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\x98\x88V"', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:32,813 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:47:32,814 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\x98\x88V"', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:32,815 DEBUG client - received solicited pong: 98885622
2021-08-03 16:47:39,798 DEBUG Sending keepalive ping
2021-08-03 16:47:39,798 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:39,885 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:47:39,886 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:52,824 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'rSu6', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:52,895 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:47:52,896 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'rSu6', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:47:52,897 DEBUG client - received solicited pong: 72537536
2021-08-03 16:48:09,806 DEBUG Requesting update for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
2021-08-03 16:48:09,806 DEBUG Requesting update for client D828C9404C09
2021-08-03 16:48:09,806 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#api", "action": "api", "host": "api.brillion.geappliances.com", "method": "GET", "path": "/v1/appliance/D828C9404C09/erd", "id": "D828C9404C09-allErd"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:09,807 DEBUG Sending keepalive ping
2021-08-03 16:48:09,808 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:09,895 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:48:09,895 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:09,991 DEBUG client - event = data_received(<21 bytes>)
2021-08-03 16:48:09,992 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#api","id":"D828C9404C09-allErd","request":{"host":"api.brillion.geappliances.com","method":"GET","path":"/v1/appliance/D828C9404C09/erd"},"success":true,"code":200,"body":{"kind":"appliance#erdList","userId":"8iphzd059z7spke","applianceId":"D828C9404C09","items":[{"erd":"0x0001","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0002","value":"0000000000000000000000000000000000000000000000000000000000000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0007","value":"01","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0008","value":"0E","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0100","value":"00000620","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0101","value":"00000000","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x0102","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7003","value":"004F","time":"2021-08-02T19:37:43.529Z"},{"erd":"0x7A00","value":"08","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A01","value":"00","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7A02","value":"4D","time":"2021-08-03T10:40:27.502Z"},{"erd":"0x7A0F","value":"01","time":"2021-08-03T08:40:02.572Z"},{"erd":"0x7B00","value":"03","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B05","value":"FF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B06","value":"FFFF","time":"2021-07-26T17:58:47.772Z"},{"erd":"0x7B07","value":"00","time":"2021-07-26T17:58:47.772Z"}]}}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:12,902 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xa2h\xa1o', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:12,972 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:48:12,973 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xa2h\xa1o', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:12,974 DEBUG client - received solicited pong: a268a16f
2021-08-03 16:48:32,996 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'It\xfa\x03', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:33,066 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:48:33,068 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'It\xfa\x03', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:33,068 DEBUG client - received solicited pong: 4974fa03
2021-08-03 16:48:39,817 DEBUG Sending keepalive ping
2021-08-03 16:48:39,817 DEBUG client > Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:39,899 DEBUG client - event = data_received(<7 bytes>)
2021-08-03 16:48:39,901 DEBUG client < Frame(fin=True, opcode=<Opcode.TEXT: 1>, data=b'{"kind":"websocket#pong","id":"keepalive-ping"}', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:53,084 DEBUG client > Frame(fin=True, opcode=<Opcode.PING: 9>, data=b'\xeaQ\xa5\xb2', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:53,153 DEBUG client - event = data_received(<6 bytes>)
2021-08-03 16:48:53,154 DEBUG client < Frame(fin=True, opcode=<Opcode.PONG: 10>, data=b'\xeaQ\xa5\xb2', rsv1=False, rsv2=False, rsv3=False)
2021-08-03 16:48:53,155 DEBUG client - received solicited pong: ea51a5b2
Can you attach the logs that you got when you ran the example?
Can you attach the logs that you got when you ran the example?
Yes i edited the previous message
https://accounts.brillion.geappliances.com/consumer/active/applications
On this i can see this now:
It say:
My application:
SmartHQ - that i didn't install because i can use only comfort - ge appliances
Ok, you can kill the example, that's all that I'll need to start getting this into the sdk.
Starting with the line D828C9404C09 marked available
and ending with Got initial appliance type for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
is the piece of interest for getting this setup.
I do see an issue in that the model/serial is not present on your device. I'm not sure why that would be, I will look into the what I can use as a substitute since the serial is what we use in HA for a unique identifier.
Ok, you can kill the example, that's all that I'll need to start getting this into the sdk. Starting with the line
D828C9404C09 marked available
and ending withGot initial appliance type for GeAppliance(D828C9404C09) (ErdApplianceType.UNKNOWN)
is the piece of interest for getting this setup.I do see an issue in that the model/serial is not present on your device. I'm not sure why that would be, I will look into the what I can use as a substitute since the serial is what we use in HA for a unique identifier.
my model is https://community.home-assistant.io/t/support-for-ge-appliances-smarthq/283815/14?u=robertusit
but i guess that can't help you
I can try something to change something in playstore and use smarthq ?
My application:
SmartHQ - that i didn't install because i can use only comfort - ge appliances
Well, I guess that confirms some new logic I added to help another user worked... the code auto-authorized SmartHQ on your behalf.
Let's see what we can do to make this work without you going into SmartHQ. If we need to, we can always try sideloading the app from another source if it's not appearing on Google Play.
Can you attach the logs that you got when you ran the example?
Yes i edited the previous message
Can you post a text file, the copy/pasted version has some odd line breaks that make it a little hard to read. If not, that's fine, I can work with what you posted.
Can you attach the logs that you got when you ran the example?
Yes i edited the previous message
Can you post a text file, the copy/pasted version has some odd line breaks that make it a little hard to read. If not, that's fine, I can work with what you posted.
You see a log a little malformed, because i used putty in a window that i expansed, so you can see some spaces between rows.
If needed i can re-launch command and put putty full size
I'll work with what you provided... let me look into things and figure it out.
Thanks to reply.
I make pip install gehomesdk and install sdk
Then nano secrets.py and I use my credentials in SmartHQ app, that in europe is Ge Appliances
And now? How can i launch websocket_example.py where is ?
I can't install locate in home assistant, so i don't know where is this file.
Also, after launch websocket_example.py, I need more something or only my AC on ? So get automatically debug log?
If yes, where can i get it, to open an issue here on github?
Thanks for the support
Originally posted by @RobertusIT in https://github.com/simbaja/gehome/issues/15#issuecomment-889149110