Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

read failed: {'requestAttr': 'deviceid', 'id': []} #2

Open
slusaro2 opened this issue Aug 17, 2020 · 35 comments
Open

read failed: {'requestAttr': 'deviceid', 'id': []} #2

slusaro2 opened this issue Aug 17, 2020 · 35 comments

Comments

@slusaro2
Copy link

Such error occured in HA log:

Logger: pyit600
Source: /usr/local/lib/python3.8/site-packages/pyit600/gateway.py:279
First occurred: 21:39:03 (1 occurrences)
Last logged: 21:39:03

read failed: {'requestAttr': 'deviceid', 'id': []}

I'm using HA Supervised on ubuntu server 18.04
python3.8 is installed if that matters

@slusaro2
Copy link
Author

Whole HA log errors above:
https://pastebin.com/mRthEewD

@mindvisionro
Copy link

Such error occured in HA log:

Logger: pyit600
Source: /usr/local/lib/python3.8/site-packages/pyit600/gateway.py:279
First occurred: 21:39:03 (1 occurrences)
Last logged: 21:39:03

read failed: {'requestAttr': 'deviceid', 'id': []}

I'm using HA Supervised on ubuntu server 18.04
python3.8 is installed if that matters

try moving the library to the folder /config/python_scripts/
and the HA integration to config/custom_components/salus

@slusaro2
Copy link
Author

try moving the library to the folder /config/python_scripts/
and the HA integration to config/custom_components/salus

By library what do you mean? I'm python noob to be honest.
Integration is in config/custom_components/salus

@mindvisionro
Copy link

try moving the library to the folder /config/python_scripts/

and the HA integration to config/custom_components/salus

By library what do you mean? I'm python noob to be honest.

Integration is in config/custom_components/salus

This one from here https://github.com/jvitkauskas/pyit600/tree/master/pyit600

In to the folder /config/python_scripts/

So in the end you will have /config/python_scripts/pyit600

@slusaro2
Copy link
Author

This one from here https://github.com/jvitkauskas/pyit600/tree/master/pyit600
In to the folder /config/python_scripts/
So in the end you will have /config/python_scripts/pyit600

Unfortunatly it didn't work. I've tried many combinations:

  • config/python_scripts/pyit600
  • pyit600 files directly in python_scripts
  • I've tried coping it to /usr/local/lib/python3.8/site-packages/pyit600 (according to log error).
    I've tried to download it with pip3 (it's stored in /usr/local/lib/python3.8/dist-packages/pyit600)

Nothing works, I receive all the time error: read failed: {'requestAttr': 'deviceid', 'id': []}

@mindvisionro
Copy link

This one from here https://github.com/jvitkauskas/pyit600/tree/master/pyit600
In to the folder /config/python_scripts/
So in the end you will have /config/python_scripts/pyit600

Unfortunatly it didn't work. I've tried many combinations:

* config/python_scripts/pyit600

* pyit600 files directly in python_scripts

* I've tried coping it to /usr/local/lib/python3.8/site-packages/pyit600 (according to log error).
  I've tried to download it with pip3 (it's stored in /usr/local/lib/python3.8/dist-packages/pyit600)

Nothing works, I receive all the time error: read failed: {'requestAttr': 'deviceid', 'id': []}

Did you made this part:

_This integration is configured through configaration.yaml. Example :

climate:

  • platform: salus
    host: "192.168.0.15"
    token: 001E5C020214B243

    host - hostname or IP address of your Salus gateway
    token - EUID printed on bottom of your gateway_

?

@mindvisionro
Copy link

mindvisionro commented Aug 20, 2020

This one from here https://github.com/jvitkauskas/pyit600/tree/master/pyit600
In to the folder /config/python_scripts/
So in the end you will have /config/python_scripts/pyit600

Unfortunatly it didn't work. I've tried many combinations:

* config/python_scripts/pyit600

* pyit600 files directly in python_scripts

* I've tried coping it to /usr/local/lib/python3.8/site-packages/pyit600 (according to log error).
  I've tried to download it with pip3 (it's stored in /usr/local/lib/python3.8/dist-packages/pyit600)

Nothing works, I receive all the time error: read failed: {'requestAttr': 'deviceid', 'id': []}

Did you made this part:

_This integration is configured through configuration.yaml. Example :

climate:

* platform: salus
  host: "192.168.0.15"
  token: 001E5C020214B243
  host - hostname or IP address of your Salus gateway
  token - EUID printed on bottom of your gateway_

?

and did you add to the configuration.yaml python_script: ?

https://www.home-assistant.io/integrations/python_script/

@slusaro2
Copy link
Author

and did you add to the configaration.yaml python_script: ?

Well, yes, and yes.
And I've of course change token and ips to my gateway.

@mindvisionro
Copy link

and did you add to the configaration.yaml python_script: ?

Well, yes, and yes.
And I've of course change token and ips to my gateway.

Can you tell me what salus devices you have?

@slusaro2
Copy link
Author

Can you tell me what salus devices you have?

wiring center: KL08RF
gateway: uge600
room thermostats: HTRP-RF(50)

@mindvisionro
Copy link

Can you tell me what salus devices you have?

wiring center: KL08RF
gateway: uge600
room thermostats: HTRP-RF(50)

pyit600.exceptions.IT600CommandError: iT600 gateway rejected 'read' command with content '{'requestAttr': 'deviceid', 'id': []}'

you have a local problem.

If you open a browser window, on your local network with the IP address of your Salus gateway, it is opening?
You should normally see a white page with a 'Refresh ID List' button.

If you can't see this:

  • either you have the gateway closed, port 80
  • or you have turned off the wireless function of the gateway, it must be turned on even if it is connected by cable

@slusaro2
Copy link
Author

slusaro2 commented Aug 20, 2020

If you open a browser window, on your local network with the IP address of your Salus gateway, it is opening?
You should normally see a white page with a 'Refresh ID List' button.

I got Connection refused.

What I did is enable wifi in gateway (it was disabled) and I've forward port 80 in gateway, however I still can't open gateway adress in browser.
image
I also disactived router firewall, but it didnt help.

Now the log is quite obvious:
https://pastebin.com/ws35BP7N
connection refused, but I don't really know what do next.

@mindvisionro
Copy link

check if the gateway from salus is in the same vlan as the HA server

@slusaro2
Copy link
Author

check if the gateway from salus is in the same vlan as the HA server

You mean the same network? Both devices are connected by lan to the same network. My serwer doen't have vlan-card.

@slusaro2
Copy link
Author

I guess that port 80 in salus gateway is not open. When I use:

marcin@wyse:~$ telnet 192.168.8.112 80
Trying 192.168.8.112...
telnet: Unable to connect to remote host: Connection refused

Is there a way to open it within salus gateway?

@mindvisionro
Copy link

I guess that port 80 in salus gateway is not open. When I use:


marcin@wyse:~$ telnet 192.168.8.112 80

Trying 192.168.8.112...

telnet: Unable to connect to remote host: Connection refused

Is there a way to open it within salus gateway?

You can try to forward the port of salus gateway 80 to other available...

@slusaro2
Copy link
Author

You can try to forward the port of salus gateway 80 to other available...

Sorry, I don't understand :(

@mindvisionro
Copy link

You can try to forward the port of salus gateway 80 to other available...

Sorry, I don't understand :(

Forward the port 80 to 8000 for example.
You can do this from router.

Ex:

Salus ip gateway:: port from:80 :: port to:8000

@slusaro2
Copy link
Author

You can try to forward the port of salus gateway 80 to other available...

Ok, I had something messed with network setting. I've reset gateway, configured access through wifi (gateway ip is now 192.168.8.170, I've change it in configuration.yaml), and I can see in web browser empty ID List:
image

Yet, it still doesn't work. Now HA log errors are similar to the previous one (from the issue start):
https://pastebin.com/vGrvhGEh
Is there any hope?

@mindvisionro
Copy link

now it should work ok, are you sure euid is correctly write?
The next step would be to test the script(https://github.com/jvitkauskas/pyit600/) on localhost, without HA integration, do you have windows or linux?

@slusaro2
Copy link
Author

do you have windows or linux?

HA is on ubuntu server. laptop is on windows. I'm quite comfortably with both OS'es.

@mindvisionro
Copy link

do you have windows or linux?

HA is on ubuntu server. laptop is on windows. I'm quite comfortably with both OS'es.

then you can do the test on which machine you want, after that it will be much easier to find the problem.

@slusaro2
Copy link
Author

then you can do the test on which machine you want, after that it will be much easier to find the problem.

If you mind helping me. I'm not familiar with python, and I don't really know how to use it. I've downloaded it(library) with pip, and what next? I have no idea where to look for any help.

@slusaro2
Copy link
Author

Any chance for help? I've tried clean HA installation on second terminal and some errors occurred.

@d0d0oo
Copy link

d0d0oo commented Aug 25, 2020

Hi, I'm having here same problem.
My devices are:

  • UGE600 (connection gateway)
  • TS600 (Room Thermostat)

SR600 and OS600 are waiting to first run thermostat integration...

  1. Home-assistant runs on virtualbox so I can't run "python" command from ssh.
  2. Host and token (EUID) are correct - when it is incorrect there is information in logs about connection errors.
  3. Salus gateway local page opens and show 'Refresh ID List' button.
  4. @mindvisionro, I do not know how to perform unit tests for pyit600 - I'm totaly new with HA and python.
  5. I have same error like @slusaro2 :
Logger: pyit600
Source: /usr/local/lib/python3.8/site-packages/pyit600/gateway.py:279
First occurred: 00:25:44 (1 occurrences)
Last logged: 00:25:44

read failed: {'requestAttr': 'deviceid', 'id': []
  1. My configuration.yaml :
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Text to speech
tts:
  - platform: google_translate

python_script:
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

climate:
  - platform: salus
    host: "192.168.1.15"
    token: XXXXXXXXXXXXXX
    
logger:
  default: info
  logs:
    homeassistant.components.yamaha: critical
    custom_components.my_integration: critical

I think we just do not know how to install it properly.

Whole logs:

2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain logger took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up http
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain http took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up system_log
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain system_log took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain recorder took 0.2 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 1: {'webhook', 'hassio', 'person', 'cloud', 'lovelace', 'auth', 'http', 'alexa', 'frontend', 'device_automation', 'onboarding', 'system_log', 'search', 'websocket_api', 'config', 'api'}
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up person
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up lovelace
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up device_automation
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain device_automation took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up webhook
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain webhook took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up hassio
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up auth
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain auth took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up alexa
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain alexa took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up websocket_api
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain websocket_api took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up config
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up api
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain lovelace took 0.4 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain api took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain config took 0.0 seconds
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setting up search
2020-08-26 00:46:30 INFO (MainThread) [homeassistant.setup] Setup of domain search took 0.0 seconds
2020-08-26 00:46:30 INFO (SyncWorker_2) [homeassistant.loader] Loaded google_assistant from homeassistant.components.google_assistant
2020-08-26 00:46:30 INFO (SyncWorker_0) [homeassistant.loader] Loaded camera from homeassistant.components.camera
2020-08-26 00:46:30 INFO (SyncWorker_0) [homeassistant.loader] Loaded media_player from homeassistant.components.media_player
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up cloud
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain person took 1.3 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up onboarding
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain cloud took 0.1 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain onboarding took 0.0 seconds
2020-08-26 00:46:31 INFO (SyncWorker_1) [homeassistant.loader] Loaded device_tracker from homeassistant.components.device_tracker
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain hassio took 1.2 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up frontend
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain frontend took 0.0 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 2: {'sun', 'input_datetime', 'system_health', 'automation', 'ssdp', 'python_script', 'logbook', 'input_select', 'climate', 'zone', 'input_number', 'zeroconf', 'input_boolean', 'input_text', 'map', 'met', 'mobile_app', 'script', 'default_config', 'history', 'group', 'updater', 'scene', 'tts'}
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up sun
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain sun took 0.0 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up input_datetime
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up automation
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain automation took 0.0 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up python_script
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up input_select
2020-08-26 00:46:31 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for salus which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up climate
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setup of domain climate took 0.0 seconds
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up zone
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up input_number
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up input_boolean
2020-08-26 00:46:31 INFO (MainThread) [homeassistant.setup] Setting up input_text
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up met
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain met took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up script
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain script took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up group
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain group took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up updater
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain updater took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up scene
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.components.scene] Setting up scene.homeassistant
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.components.climate] Setting up climate.salus
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded binary_sensor from homeassistant.components.binary_sensor
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up system_health
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain system_health took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up logbook
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up map
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain map took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up history
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain history took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain scene took 0.1 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain input_datetime took 0.3 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain input_select took 0.3 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain input_number took 0.2 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain input_boolean took 0.2 seconds
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded weather from homeassistant.components.weather
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain input_text took 0.2 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up binary_sensor
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain binary_sensor took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain logbook took 0.1 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up zeroconf
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up mobile_app
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded google_translate from homeassistant.components.google_translate
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up weather
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain weather took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain zone took 0.3 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain python_script took 0.4 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up tts
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.components.weather] Setting up weather.met
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.updater
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain mobile_app took 0.1 seconds
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded notify from homeassistant.components.notify
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up notify
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain notify took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain tts took 0.0 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.components.notify] Setting up notify.mobile_app
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain zeroconf took 0.1 seconds
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up ssdp
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setup of domain ssdp took 0.0 seconds
2020-08-26 00:46:32 ERROR (MainThread) [pyit600] read failed: {'requestAttr': 'deviceid', 'id': []}
2020-08-26 00:46:32 ERROR (MainThread) [custom_components.salus.climate] Unexpected error fetching sensor data: Unknown error occurred while communicating with iT600 gateway
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/pyit600/gateway.py", line 280, in _make_encrypted_request
    raise IT600CommandError(
pyit600.exceptions.IT600CommandError: iT600 gateway rejected 'read' command with content '{'requestAttr': 'deviceid', 'id': []}'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 143, in async_refresh
    self.data = await self._async_update_data()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 131, in _async_update_data
    return await self.update_method()
  File "/config/custom_components/salus/climate.py", line 73, in async_update_data
    await gateway.poll_status()
  File "/usr/local/lib/python3.8/site-packages/pyit600/gateway.py", line 115, in poll_status
    status = await self._make_encrypted_request(
  File "/usr/local/lib/python3.8/site-packages/pyit600/gateway.py", line 292, in _make_encrypted_request
    raise IT600CommandError(
pyit600.exceptions.IT600CommandError: Unknown error occurred while communicating with iT600 gateway
2020-08-26 00:46:32 ERROR (Thread-2) [root] Uncaught thread exception
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.8/logging/handlers.py", line 1483, in _monitor
    self.handle(record)
  File "/usr/local/lib/python3.8/logging/handlers.py", line 1464, in handle
    handler.handle(record)
  File "/usr/local/lib/python3.8/logging/__init__.py", line 950, in handle
    self.emit(record)
  File "/usr/src/homeassistant/homeassistant/components/system_log/__init__.py", line 195, in emit
    entry = LogEntry(record, stack, _figure_out_source(record, stack, self.hass))
  File "/usr/src/homeassistant/homeassistant/components/system_log/__init__.py", line 100, in __init__
    self.message = deque([record.getMessage()], maxlen=5)
  File "/usr/local/lib/python3.8/logging/__init__.py", line 369, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
2020-08-26 00:46:32 INFO (MainThread) [homeassistant.setup] Setting up default_config
2020-08-26 00:46:32 ERROR (MainThread) [homeassistant.components.climate] Error while setting up salus platform for climate
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 184, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/salus/climate.py", line 90, in async_setup_platform
    async_add_entities(SalusThermostate(coordinator, idx, gateway) for idx
TypeError: 'NoneType' object is not iterable
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded stream from homeassistant.components.stream
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded dialogflow from homeassistant.components.dialogflow
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded coolmaster from homeassistant.components.coolmaster
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded local_ip from homeassistant.components.local_ip
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded pvpc_hourly_pricing from homeassistant.components.pvpc_hourly_pricing
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded ipp from homeassistant.components.ipp
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded ps4 from homeassistant.components.ps4
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded ecobee from homeassistant.components.ecobee
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded hue from homeassistant.components.hue
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded roku from homeassistant.components.roku
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded cert_expiry from homeassistant.components.cert_expiry
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded gdacs from homeassistant.components.gdacs
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded tado from homeassistant.components.tado
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded solarlog from homeassistant.components.solarlog
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded geonetnz_volcano from homeassistant.components.geonetnz_volcano
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded sense from homeassistant.components.sense
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded tradfri from homeassistant.components.tradfri
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded point from homeassistant.components.point
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded volumio from homeassistant.components.volumio
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded azure_devops from homeassistant.components.azure_devops
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded vilfo from homeassistant.components.vilfo
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded huawei_lte from homeassistant.components.huawei_lte
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded twentemilieu from homeassistant.components.twentemilieu
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded xiaomi_aqara from homeassistant.components.xiaomi_aqara
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded zwave from homeassistant.components.zwave
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded airly from homeassistant.components.airly
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded axis from homeassistant.components.axis
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded ios from homeassistant.components.ios
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded enocean from homeassistant.components.enocean
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded owntracks from homeassistant.components.owntracks
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded solaredge from homeassistant.components.solaredge
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded samsungtv from homeassistant.components.samsungtv
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded nws from homeassistant.components.nws
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded bsblan from homeassistant.components.bsblan
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded glances from homeassistant.components.glances
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded arcam_fmj from homeassistant.components.arcam_fmj
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded mikrotik from homeassistant.components.mikrotik
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded plex from homeassistant.components.plex
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded griddy from homeassistant.components.griddy
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded guardian from homeassistant.components.guardian
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded spider from homeassistant.components.spider
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded mqtt from homeassistant.components.mqtt
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded unifi from homeassistant.components.unifi
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded transmission from homeassistant.components.transmission
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded metoffice from homeassistant.components.metoffice
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded heos from homeassistant.components.heos
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded elgato from homeassistant.components.elgato
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded neato from homeassistant.components.neato
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded pi_hole from homeassistant.components.pi_hole
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded cast from homeassistant.components.cast
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded tesla from homeassistant.components.tesla
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded smappee from homeassistant.components.smappee
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded shopping_list from homeassistant.components.shopping_list
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded almond from homeassistant.components.almond
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded flume from homeassistant.components.flume
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded nut from homeassistant.components.nut
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded denonavr from homeassistant.components.denonavr
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded coronavirus from homeassistant.components.coronavirus
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded hangouts from homeassistant.components.hangouts
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded locative from homeassistant.components.locative
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded smarthab from homeassistant.components.smarthab
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded iaqualink from homeassistant.components.iaqualink
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded velbus from homeassistant.components.velbus
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded tuya from homeassistant.components.tuya
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded twilio from homeassistant.components.twilio
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded withings from homeassistant.components.withings
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded toon from homeassistant.components.toon
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded vera from homeassistant.components.vera
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded accuweather from homeassistant.components.accuweather
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded ipma from homeassistant.components.ipma
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded acmeda from homeassistant.components.acmeda
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded agent_dvr from homeassistant.components.agent_dvr
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded plugwise from homeassistant.components.plugwise
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded upnp from homeassistant.components.upnp
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded nest from homeassistant.components.nest
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded airvisual from homeassistant.components.airvisual
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded openuv from homeassistant.components.openuv
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded sms from homeassistant.components.sms
2020-08-26 00:46:32 INFO (SyncWorker_1) [homeassistant.loader] Loaded ring from homeassistant.components.ring
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded esphome from homeassistant.components.esphome
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded iqvia from homeassistant.components.iqvia
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded monoprice from homeassistant.components.monoprice
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded gpslogger from homeassistant.components.gpslogger
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded smhi from homeassistant.components.smhi
2020-08-26 00:46:32 INFO (SyncWorker_4) [homeassistant.loader] Loaded soma from homeassistant.components.soma
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded hunterdouglas_powerview from homeassistant.components.hunterdouglas_powerview
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded wemo from homeassistant.components.wemo
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded elkm1 from homeassistant.components.elkm1
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded poolsense from homeassistant.components.poolsense
2020-08-26 00:46:32 INFO (SyncWorker_2) [homeassistant.loader] Loaded simplisafe from homeassistant.components.simplisafe
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded powerwall from homeassistant.components.powerwall
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded lifx from homeassistant.components.lifx
2020-08-26 00:46:32 INFO (SyncWorker_3) [homeassistant.loader] Loaded tellduslive from homeassistant.components.tellduslive
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded freebox from homeassistant.components.freebox
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded isy994 from homeassistant.components.isy994
2020-08-26 00:46:32 INFO (SyncWorker_0) [homeassistant.loader] Loaded harmony from homeassistant.components.harmony
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded wled from homeassistant.components.wled
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded netatmo from homeassistant.components.netatmo
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded rachio from homeassistant.components.rachio
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded panasonic_viera from homeassistant.components.panasonic_viera
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded gogogate2 from homeassistant.components.gogogate2
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded songpal from homeassistant.components.songpal
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded vizio from homeassistant.components.vizio
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded geonetnz_quakes from homeassistant.components.geonetnz_quakes
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded avri from homeassistant.components.avri
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded somfy from homeassistant.components.somfy
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded blebox from homeassistant.components.blebox
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded juicenet from homeassistant.components.juicenet
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded sonos from homeassistant.components.sonos
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded life360 from homeassistant.components.life360
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded vesync from homeassistant.components.vesync
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded sentry from homeassistant.components.sentry
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded homekit_controller from homeassistant.components.homekit_controller
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded hvv_departures from homeassistant.components.hvv_departures
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded emulated_roku from homeassistant.components.emulated_roku
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded ovo_energy from homeassistant.components.ovo_energy
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded ambient_station from homeassistant.components.ambient_station
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded doorbird from homeassistant.components.doorbird
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded garmin_connect from homeassistant.components.garmin_connect
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded devolo_home_control from homeassistant.components.devolo_home_control
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded wiffi from homeassistant.components.wiffi
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded dexcom from homeassistant.components.dexcom
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded notion from homeassistant.components.notion
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded traccar from homeassistant.components.traccar
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded minecraft_server from homeassistant.components.minecraft_server
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded directv from homeassistant.components.directv
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded squeezebox from homeassistant.components.squeezebox
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded hisense_aehw4a1 from homeassistant.components.hisense_aehw4a1
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded melcloud from homeassistant.components.melcloud
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded xiaomi_miio from homeassistant.components.xiaomi_miio
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded speedtestdotnet from homeassistant.components.speedtestdotnet
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded mill from homeassistant.components.mill
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded onvif from homeassistant.components.onvif
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded spotify from homeassistant.components.spotify
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded blink from homeassistant.components.blink
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded opentherm_gw from homeassistant.components.opentherm_gw
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded plaato from homeassistant.components.plaato
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded ifttt from homeassistant.components.ifttt
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded tibber from homeassistant.components.tibber
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded zha from homeassistant.components.zha
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded roomba from homeassistant.components.roomba
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded tile from homeassistant.components.tile
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded brother from homeassistant.components.brother
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded nexia from homeassistant.components.nexia
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded nuheat from homeassistant.components.nuheat
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded home_connect from homeassistant.components.home_connect
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded sonarr from homeassistant.components.sonarr
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded icloud from homeassistant.components.icloud
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded meteo_france from homeassistant.components.meteo_france
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded fritzbox from homeassistant.components.fritzbox
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded atag from homeassistant.components.atag
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded abode from homeassistant.components.abode
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded dunehd from homeassistant.components.dunehd
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded bond from homeassistant.components.bond
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded hlk_sw16 from homeassistant.components.hlk_sw16
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded starline from homeassistant.components.starline
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded plum_lightpad from homeassistant.components.plum_lightpad
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded forked_daapd from homeassistant.components.forked_daapd
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded tplink from homeassistant.components.tplink
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded control4 from homeassistant.components.control4
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded august from homeassistant.components.august
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded luftdaten from homeassistant.components.luftdaten
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded totalconnect from homeassistant.components.totalconnect
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded homekit from homeassistant.components.homekit
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded smartthings from homeassistant.components.smartthings
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded deconz from homeassistant.components.deconz
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded myq from homeassistant.components.myq
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded adguard from homeassistant.components.adguard
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded logi_circle from homeassistant.components.logi_circle
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded ozw from homeassistant.components.ozw
2020-08-26 00:46:33 INFO (SyncWorker_4) [homeassistant.loader] Loaded rainmachine from homeassistant.components.rainmachine
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded daikin from homeassistant.components.daikin
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded flick_electric from homeassistant.components.flick_electric
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded wolflink from homeassistant.components.wolflink
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded geofency from homeassistant.components.geofency
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded awair from homeassistant.components.awair
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded gios from homeassistant.components.gios
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.loader] Loaded upb from homeassistant.components.upb
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded zerproc from homeassistant.components.zerproc
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded homematicip_cloud from homeassistant.components.homematicip_cloud
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded synology_dsm from homeassistant.components.synology_dsm
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded konnected from homeassistant.components.konnected
2020-08-26 00:46:33 INFO (SyncWorker_0) [homeassistant.loader] Loaded izone from homeassistant.components.izone
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded braviatv from homeassistant.components.braviatv
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded flunearyou from homeassistant.components.flunearyou
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded mailgun from homeassistant.components.mailgun
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded syncthru from homeassistant.components.syncthru
2020-08-26 00:46:33 INFO (SyncWorker_1) [homeassistant.loader] Loaded dynalite from homeassistant.components.dynalite
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded islamic_prayer_times from homeassistant.components.islamic_prayer_times
2020-08-26 00:46:33 INFO (SyncWorker_3) [homeassistant.loader] Loaded ambiclimate from homeassistant.components.ambiclimate
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.components.updater] Submitted analytics to Home Assistant servers. Information submitted includes {}
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.setup] Setting up stream
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.setup] Setup of domain stream took 0.0 seconds
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.setup] Setup of domain default_config took 0.7 seconds
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.bootstrap] Home Assistant initialized in 4.02s
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.core] Starting Home Assistant
2020-08-26 00:46:33 INFO (SyncWorker_2) [homeassistant.components.zeroconf] Starting Zeroconf broadcast
2020-08-26 00:46:33 INFO (MainThread) [homeassistant.core] Timer:starting

@dyrvigk
Copy link

dyrvigk commented Sep 7, 2020

I have same problem i tryed to make a py file to run with the text here and run it with python but i get this error
i just used this test file i modifyed test_encryptor.py
async with IT600Gateway(host="192.168.1.122", euid="001E5E0902134BAB") as gateway:
await gateway.connect()
await gateway.poll_status()
print("All climate devices:")
print(repr(gateway.get_climate_devices()))

 climate_devices = gateway.get_climate_devices()

 for climate_device_id in climate_devices:
	print(f"Climate device {climate_device_id} status:")
	print(repr(climate_devices.get(climate_device_id)))

	print(f"Setting heating device {climate_device_id} temperature to 21 degrees celsius")
	await gateway.set_climate_device_temperature(climate_device_id, 21)

C:\Users\dyrvi\Downloads\pyit600-master\pyit600-master\tests>python test_encryptor.py
File "test_encryptor.py", line 4
print("All climate devices:")
^
TabError: inconsistent use of tabs and spaces in indentation

@d0d0oo
Copy link

d0d0oo commented Sep 8, 2020

Looks like it is a problem with pyit600 library. I have asked my friend to help me launch connection with salus gateway in python from my local windows system. He found "main.py" in @jvitkauskas repository (https://github.com/jvitkauskas/pyit600/blob/master/main.py) of pyit600 which is demo app and example of how to use it. I get very similar error using only this file (the connection to gateway was established):

C:\Projekty\Python_sandbox\it600>python main.py --host 192.168.1.15 --euid 001E5E0########
DEBUG:pyit600:Trying to connect to gateway at 192.168.1.15
ERROR:pyit600:read failed: {'requestAttr': 'deviceid', 'id': []}
--- Logging error ---
Traceback (most recent call last):
  File "C:\Python38\lib\site-packages\pyit600\gateway.py", line 280, in _make_encrypted_request
    raise IT600CommandError(
pyit600.exceptions.IT600CommandError: iT600 gateway rejected 'read' command with content '{'requestAttr': 'deviceid', 'id': []}'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python38\lib\logging\__init__.py", line 1081, in emit
    msg = self.format(record)
  File "C:\Python38\lib\logging\__init__.py", line 925, in format
    return fmt.format(record)
  File "C:\Python38\lib\logging\__init__.py", line 664, in format
    record.message = record.getMessage()
  File "C:\Python38\lib\logging\__init__.py", line 369, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Call stack:
  File "main.py", line 78, in <module>
    asyncio.run(main())
  File "C:\Python38\lib\asyncio\runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "C:\Python38\lib\asyncio\base_events.py", line 603, in run_until_complete
    self.run_forever()
  File "C:\Python38\lib\asyncio\windows_events.py", line 316, in run_forever
    super().run_forever()
  File "C:\Python38\lib\asyncio\base_events.py", line 570, in run_forever
    self._run_once()
  File "C:\Python38\lib\asyncio\base_events.py", line 1859, in _run_once
    handle._run()
  File "C:\Python38\lib\asyncio\events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
  File "main.py", line 62, in main
    await gateway.poll_status(send_callback=True)
  File "C:\Python38\lib\site-packages\pyit600\gateway.py", line 115, in poll_status
    status = await self._make_encrypted_request(
  File "C:\Python38\lib\site-packages\pyit600\gateway.py", line 291, in _make_encrypted_request
    _LOGGER.error("Exception. %s / %s", type(e), repr(e.args), e)
Message: 'Exception. %s / %s'
Arguments: (<class 'pyit600.exceptions.IT600CommandError'>, '("iT600 gateway rejected \'read\' command with content \'{\'requestAttr\': \'deviceid\', \'id\': []}\'",)', IT600CommandError("iT600 gateway rejected 'read' command with content '{'requestAttr': 'deviceid', 'id': []}'"))
Traceback (most recent call last):
  File "C:\Python38\lib\site-packages\pyit600\gateway.py", line 280, in _make_encrypted_request
    raise IT600CommandError(
pyit600.exceptions.IT600CommandError: iT600 gateway rejected 'read' command with content '{'requestAttr': 'deviceid', 'id': []}'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 78, in <module>
    asyncio.run(main())
  File "C:\Python38\lib\asyncio\runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "C:\Python38\lib\asyncio\base_events.py", line 616, in run_until_complete
    return future.result()
  File "main.py", line 62, in main
    await gateway.poll_status(send_callback=True)
  File "C:\Python38\lib\site-packages\pyit600\gateway.py", line 115, in poll_status
    status = await self._make_encrypted_request(
  File "C:\Python38\lib\site-packages\pyit600\gateway.py", line 292, in _make_encrypted_request
    raise IT600CommandError(
pyit600.exceptions.IT600CommandError: Unknown error occurred while communicating with iT600 gateway

@jvitkauskas
Copy link
Contributor

@dyrvigk which thermostat are you using?

@slusaro2 can you pull latest master of https://github.com/jvitkauskas/pyit600 run main.py with --debug and send me the output or post it here? My email is [email protected]

@dyrvigk
Copy link

dyrvigk commented Sep 9, 2020 via email

@dyrvigk
Copy link

dyrvigk commented Sep 11, 2020

i can get the main.py to connect and find the termostat but the homeassistant part not working

DEBUG:pyit600:Gateway request: POST http://192.168.1.122:80/deviceid/read
{"requestAttr": "readall"}

DEBUG:pyit600:Gateway response:
{"status":"success","id":[{"sOTA":{"endPoint_i":0,"OTAFirmwareVersion_d":"20200115","OTAFirmwareURL_d":"http://eu.salusconnect.io/download/firmware/39a1449c-8dba-472f-add8-c76b1c511f71/SAU2AG1-ZC_20200115.tar.gz","OTAStatus_d":0},"data":{"DeviceType":200,"Endpoint":0,"UniID":"0000000000000000"},"DeviceL":{"DeviceType":200,"DeviceSubType":0,"UnquieID":"0000000000000000","DeviceEndpointNum_i":1,"AttributeList":"000100040003001100050008000b001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","ModelIdentifier_i":"SAU2AG1-ZC","getModelIdentifierFlag_i":1},"sZDO":{"MACAddress":"001e5e0902134bab","ProtocalType_i":2,"DeviceName":"{"deviceName":"VR00ZN000093517","ShortID_d":0}","LeaveRequest_d":0,"ShortID_d":0,"FirmwareVersion":"20200115","LeaveNetwork":0},"sEndpt":{"DeviceType":0,"Endpoint_i":0},"sBasicS":{"ModelIdentifier":"SAU2AG1-ZC","HardwareVersion":"197"},"sCoord":{"PANID_d":27580,"IdentifyInProgress_i":0,"Channel_d":24,"TimeFormat24Hour":1,"Form_d":1,"ReceiveZigbeeCommand_d":"7c0f990300bee50900427e01000086","ErrorCoordUART":0,"PermitJoinTime_i":43200,"PermitJoinState_d":1},"sZDOInfo":{"OnlineStatus_i":1,"GatewayNodeDSN_i":"VR00ZN000093518"}},{"sOTA":{"endPoint_i":0,"OTAFirmwareVersion_d":"020140200226","OTAFirmwareURL_d":"http://eu.salusconnect.io/download/firmware/ca6c916a-aae2-41c3-a051-e9ed920c3c8d/SAU2AG1-GW_020140200226.tar.gz","OTAStatus_d":0},"data":{"DeviceType":300,"Endpoint":0,"UniID":"0000000000000000"},"DeviceL":{"DeviceType":300,"DeviceSubType":0,"UnquieID":"0000000000000000","DeviceEndpointNum_i":1,"AttributeList":"00010002000b000c001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","ModelIdentifier_i":"SAU2AG1-GW","getModelIdentifierFlag_i":1},"sGateway":{"DisableLocalMode":0,"NetworkWiFiMAC":"00:1e:5e:00:eb:64","NetworkLANMAC":"00:1e:5e:00:eb:65","GatewaySoftwareVersion":"020140200226","NetworkLANSubnet":"255.255.255.0","GatewayHardwareVersion":"197","NetworkPassword":"fdb783604bdf1a2e4d6a78802c91ab7b","EnableNetworkReset":0,"NetworkSSID":"fdb783604bdf1a2e4d6a78802c91ab7b","NetworkWiFiIP":"","NetworkLANMode":1,"LocalModeAccessCode":"2ca44efc0c3316b53e65c02b8307f509145fadc2bcee00a248f12b2676c2f399","NetworkLANIP":"192.168.1.122","NetworkPriDNS":"192.168.1.1","KeyState_i":0,"LANConnected_d":1,"AylaConnected_i":1,"WiFiConnected_d":0,"TimeZone":"Europe/Copenhagen","IsRtcRight_i":1,"IsSdCardNormal_i":0,"ModelIdentifier":"UGE600","LEDMode":1,"TimeStatus_i":2,"DSTEnable_i":1,"WiFiMode":0,"PhoneLocation":"","TimeOffset_i":1,"OutdoorTemperature":1600.0,"DeviceTimeZone_i":3600,"LocationMode_C":"","WirelessAPpassword":"fdc8db1e464cc8d31676eab97ad74ce1","NetworkLANRouterAddr":"192.168.1.1","Sunrise":"1599886253","Sunset":"1599846783"},"sDebug":{"LocalDebugMsg_d":"don't read data 1 from datamodel","AylaHeartBeatFrequency":0,"OtherDebugMsg_d":"del device euid:001e5e09025f4c40, shortid: 0xe5be, debug_code:1"},"Product":{"Model":"SAL2BG1","Mode":1},"sAyla_i":{"aylaConfigStatus":1,"aylaDeviceID":"AC000W000531357","aylaNetWorkStatus":1,"aylaTimeConfig":"1,1,60,1603587600","aylaSetUTCTimeStatus":1,"aylaGateWayDsn":"VR00ZN000093518"}},{"data":{"DeviceType":100,"Endpoint":9,"UniID":"001e5e09025f4c40"},"DeviceL":{"DeviceType":100,"DeviceSubType":64,"UnquieID":"001e5e09025f4c40","DeviceEndpointNum_i":1,"AttributeList":"0001000500080010000b000a0028000300110012002a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","ModelIdentifier_i":"SQ610RF","getModelIdentifierFlag_i":1},"sIT600TH":{"Error22":0,"SystemMode":4,"Error21":0,"Error09":0,"Status_d":"71150d0225500000012900210021000404013030303000004202ffffffffffffffffffffffff010003860005003500030104b8ca00000000000000ffffffffffffffffffffffffffffffffff1c","Status_2_d":"7209010000010500350000000301040027001000060035000500350005000100000001018000000011fd010000000100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","Error04":0,"LockKey":0,"Error24":0,"SystemMode_a":4,"OUTSensorType":0,"OUTSensorProbe":0,"Error30":0,"Error06":0,"ProgramOperationMode":0,"AutoHeatingSetpoint_x100":2100,"Error01":0,"Error32":0,"LocalTemperature_x100":2550,"RunningState":1,"Error02":0,"AutoCoolingSetpoint_x100":2100,"Error03":0,"AutoCoolingSetpoint_x100_a":2100,"CoolingSetpoint_x100":2900,"Error07":0,"Error08":0,"Error23":0,"Error31":0,"Error25":0,"SunnySetpoint_x100":42,"HeatingSetpoint_x100":2900,"RunningMode":4,"PairedWCNumber":102,"CloudySetpoint_x100":0,"ScheduleType":1,"Schedule":"7209010000010500350000000301040027001000060035000500350005000100000001018000000011fd010000000100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","HoldType":2,"HoldType_a":2,"HeatingControl":1,"CoolingControl":0,"PairedTRVShortID":"FFFFFFFFFFFFFFFFFFFFFFFF","TimeFormat24Hour":1,"TemperatureDisplayMode":0,"MaxHeatSetpoint_x100":3500,"AutoHeatingSetpoint_x100_a":2100,"MaxHeatSetpoint_x100_a":3500,"MinHeatSetpoint_x100":500,"MaxCoolSetpoint_x100":3500,"MinCoolSetpoint_x100":500,"MinCoolSetpoint_x100_a":500,"CoolingSetpoint_x100_a":2900,"HeatingSetpoint_x100_a":2900,"LockKey_a":0},"sZDO":{"ProtocalType_i":1,"MACAddress":"001e5e09025f4c40","ShortID_d":61919,"DeviceName":"{"deviceName":"Køkken","ShortID_d":61919}","FirmwareVersion":"0000001D","LeaveRequest_d":0,"LeaveNetwork":0,"JoinConfigVersion_i":"190629"},"sIT600D":{"DeviceIndex":32,"SyncResponseVersion_d":"0000001D","ConnectType_i":3},"sEndpt":{"DeviceType":64,"Endpoint_i":9},"sBasicS":{"ModelIdentifier":"SQ610RF","HardwareVersion":"2"},"sZDOInfo":{"OnlineStatus_i":1,"GatewayNodeDSN_i":"VR00ZN000093518","JoinConfigEnd":1},"sScheS":{"HeatSchedule1":"01010600210023001900ffff2100ffff2100ffff1800ffff2100dd0600210023001900ffff2100ffff2100ffff1800ffff2100ffffffffffffffffffffffff","ScheduleEnable":2,"HeatSchedule2":"01ffffffffffffffffffffffffffffffffffffffffffffffffddffffffffffffffffffffffffffffffffffffffffffffffffdd","HeatSchedule3":"01ffffffffffffffffffffffffffffffffffffffffffffffffddffffffffffffffffffffffffffffffffffffffffffffffffdd"},"sIT600I":{"CommandResponse_d":"42323101"}}]}

DEBUG:pyit600:Refreshed 0 climate devices
Warning: no climate devices found. Ensure that you have paired your thermostat(s) with gateway and you can see it in the official Salus app. If it works there, your thermostat might not be supported. If you want to help to get it supported, open GitHub issue and add your thermostat model number and output of this program. Be sure to run this program with --debug option.

C:\Users\dyrvi\Downloads\pyit600-master\pyit600-master>

@d0d0oo
Copy link

d0d0oo commented Sep 14, 2020

@dyrvigk
Looks like your thermostat is not recognized properly by the pyit600. In gateway.py there is a filter (https://github.com/jvitkauskas/pyit600/blob/620b79cd1c55886c3bf860e8cd378d79e145c12d/pyit600/gateway.py#L114) - looking at your logs there is no matching result.
Go to pyit600 page (https://github.com/jvitkauskas/pyit600) and start new issue as it is recommended at the bottom.

I was able to start integration with HA and it works quite well (even with two TS600!) except that I have realized that the information about actual state (heating or not) is unsupported. It is because data model of TS600 thermostat is a little bit different from default in pyit600 master and integration code. It is something that would not be hard to change but right now I had to switch to different things... There is also strange error appearing after several hours which I described in TS600 issue (epoplavskis/pyit600#3 (comment)).

If @jvitkauskas will start new branch for sq610rf you will be able to switch to it changing requirements in:

\\homeassistant.local\config\custom_components\salus\manifest.json

For TS600 my looks like that BUT I AM NEWBIE SO CHECK IF THAT IS CORRECT APPROACH:

{
    "domain": "salus",
    "name": "Salus",
    "documentation": "https://github.com/konradb3/homeassistant_salus",
    "dependencies": [],
    "codeowners": ["konradb3"],
    "requirements": ["git+https://github.com/jvitkauskas/pyit600.git@ts600#ts600"]
  }

Finally, I checked main.py response for SALUS OS600 window sensor and there is no problem to integrate it unless you have to learn python ;) Right now I am working on remote access to place where normally my salus devices work. If I will managed to connect I would be able to start learning python and working on thermostats and other sensors.

@jvitkauskas
Copy link
Contributor

jvitkauskas commented Sep 14, 2020

I have made thermostat filtering much less strict and opened a PR #3 hopefully @konradb3 will accept it.

In the meanwhile you can try using my fork https://github.com/jvitkauskas/homeassistant_salus

@dyrvigk
Copy link

dyrvigk commented Sep 14, 2020 via email

@jvitkauskas
Copy link
Contributor

jvitkauskas commented Sep 15, 2020

@dyrvigk unfortunately, the log doesn't say much. Can you try running pyit600 main.py in debug mode and post the output?

https://github.com/jvitkauskas/pyit600

sudo apt update
sudo apt install git python3 python3-pip
git clone https://github.com/jvitkauskas/pyit600.git
cd pyit600
pip3 install .
python3 main.py --host YOUR_GATEWAYS_IP_ADDRESS_HERE --euid YOUR_GATEWAYS_EUID_HERE --debug

@dyrvigk
Copy link

dyrvigk commented Sep 15, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants