Sinope Line Voltage Thermostats

For that error I think it will disappear once we fix the network discovery

Both networks are now discovered… no error. Still Tagging Network with Network2…

neviweb:
username: !secret neviweb_username
password: !secret neviweb_password
network: ‘Louiseville’
network2: ‘Quebec’
scan_interval: 360

DEBUG (SyncWorker_17) [custom_components.neviweb] Login response: {‘user’: {‘id’: 11901, ‘role’: ‘owner’, ‘email’: ‘[email protected]’, ‘locale’: ‘fr’, ‘format’: {‘time’: ‘24’, ‘temperature’: ‘c’}}, ‘account’: {‘id’: 12133, ‘interface’: ‘neviweb’, ‘type’: ‘free’}, ‘iat’: 1590715102921, ‘session’:
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Successfully logged in
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Selecting Louiseville network among: [{‘id’: 12702, ‘location$id’: None, ‘name’: ‘Louiseville’, ‘postalCode’: ’ ', ‘mode’: ‘home’, ‘icon’: 3, ‘kwhCost’: 0.087, ‘deviceListUpdate’: ‘2020-05-28 19:09:50’, ‘modified’: ‘2020-03-17 10:53:56’, ‘created’: ‘2019-08-20 17:23:12’}, {‘id’: 12703, ‘location$id’: None, ‘name’: ‘Quebec’, ‘postalCode’: ‘’, ‘mode’: ‘home’, ‘icon’: 1, ‘kwhCost’: 0.0871, ‘deviceListUpdate’: ‘2020-02-19 07:53:50’, ‘modified’: ‘2019-11-02 01:41:27’, ‘created’: ‘2019-08-20 17:23:12’}]
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Your network name Louiseville do not correspond to Louiseville
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Your network name Louiseville do not correspond to Quebec
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Selecting Quebec network among: [{‘id’: 12702, ‘location$id’: None, ‘name’: ‘Louiseville’, ‘postalCode’: ‘’, ‘mode’: ‘home’, ‘icon’: 3, ‘kwhCost’: 0.087, ‘deviceListUpdate’: ‘2020-05-28 19:09:50’, ‘modified’: ‘2020-03-17 10:53:56’, ‘created’: ‘2019-08-20 17:23:12’}, {‘id’: 12703, ‘location$id’: None, ‘name’: ‘Quebec’, ‘postalCode’: ‘’, ‘mode’: ‘home’, ‘icon’: 1, ‘kwhCost’: 0.0871, ‘deviceListUpdate’: ‘2020-02-19 07:53:50’, ‘modified’: ‘2019-11-02 01:41:27’, ‘created’: ‘2019-08-20 17:23:12’}]
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Received gateway data: [{‘id’: 68696, ‘identifier’: 'D880392B1BA8-0000D3EE-0-0001721
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Received gateway data 2: [{‘id’: 68711, ‘identifier’: ‘D880398DCC77-0001416B-0-00017B73’, 'na
2020-05-29 01:18:23 DEBUG (SyncWorker_17) [custom_components.neviweb] Gateway_data2 : [{‘id’: 68711, ‘identifier’: ‘D880398DCC77-0001416B-0-00017B73’,
2020-05-29 01:18:34 DEBUG (SyncWorker_17) [custom_components.neviweb] Setting scan interval to: 0:06:00

Great. I jsut fix a typo in my debug that was saying

Your network name Louiseville do not correspond to Louiseville

It should be written:

Your network name Quebec do not correspond to Louiseville

Few tests

network: ‘Louiseville’
network2: ‘Quebec’
scan_interval: 360

[custom_components.neviweb] Selecting Louiseville network among:
[custom_components.neviweb] Your network name Louiseville do not correspond to Louiseville
[custom_components.neviweb] Your network name Louiseville do not correspond to Quebec
[custom_components.neviweb] Selecting Quebec network among: [{‘id’: 12702,
[custom_components.neviweb] Received gateway data: [{‘id’: 68696
[custom_components.neviweb] Gateway_data
[custom_components.neviweb] Received gateway data 2
[custom_components.neviweb] Gateway_data2
[homeassistant.setup] Setup of neviweb is taking over 10 seconds.

network: ‘Quebec’
network2: ‘Louiseville’
scan_interval: 360

[custom_components.neviweb] Your network name Quebec do not correspond to Louiseville
[custom_components.neviweb] Selecting Louiseville network among:
[custom_components.neviweb] Selecting Quebec network among:
[custom_components.neviweb] Your network name Quebec do not correspond to Quebec

neviweb:
username: !secret neviweb_username
password: !secret neviweb_password
network: ‘louiseville’
network2: ‘Quebec’
scan_interval: 360

neviweb:
username: !secret neviweb_username
password: !secret neviweb_password
network: ‘louiseville’
network2: ‘Quebec’
scan_interval: 360

[custom_components.neviweb] Your network name louiseville do not correspond to Louiseville
[custom_components.neviweb] Your network name louiseville do not correspond to Louiseville
[custom_components.neviweb] Your network name louiseville do not correspond to Quebec
[custom_components.neviweb] Received gateway data: {‘error’: {‘code’: ‘VALINVLD’
[custom_components.neviweb] Gateway_data : {‘error’:
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/setup.py”, line 175, in _async_setup_component
component.setup, hass, processed_config # type: ignore
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/config/custom_components/neviweb/init.py”, line 44, in setup
data = NeviwebData(hass_config[DOMAIN])
File “/config/custom_components/neviweb/init.py”, line 67, in init
self.neviweb_client = NeviwebClient(username, password, network, network2)
File “/config/custom_components/neviweb/init.py”, line 99, in init
self.__get_gateway_data()
File “/config/custom_components/neviweb/init.py”, line 198, in __get_gateway_data
data = self.get_device_attributes(device[“id”], [ATTR_SIGNATURE])
TypeError: string indices must be integers

Yesterday I’ve updated the code. Did you run those test with the latest version ?

not since my last update. Let me check

Seem all good if networks are well Spelled and defined (Louiseville-Quebec or Quebec-Louiseville)

Error with the 1st Cap letter - louiseville instead of Louiseville

[custom_components.neviweb] Your network name louiseville do not correspond to discovered network Louiseville
2020-05-30 02:14:09 DEBUG (SyncWorker_8) [custom_components.neviweb] Your network name Quebec do not correspond to discovered network Louiseville
2020-05-30 02:14:09 DEBUG (SyncWorker_8) [custom_components.neviweb] Your network name louiseville do not correspond to discovered network Quebec
2020-05-30 02:14:10 ERROR (MainThread) [homeassistant.setup] Error during setup of component neviweb
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/setup.py”, line 175, in _async_setup_component
component.setup, hass, processed_config # type: ignore
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/config/custom_components/neviweb/init.py”, line 44, in setup
data = NeviwebData(hass_config[DOMAIN])
File “/config/custom_components/neviweb/init.py”, line 67, in init
self.neviweb_client = NeviwebClient(username, password, network, network2)
File “/config/custom_components/neviweb/init.py”, line 99, in init
self.__get_gateway_data()
File “/config/custom_components/neviweb/init.py”, line 198, in __get_gateway_data
data = self.get_device_attributes(device[“id”], [ATTR_SIGNATURE])
TypeError: string indices must be integers

Should we make the first lettre in capital automatically? I’ve checked in Neviweb and it is possible to have networks names first letter in capital or not.
Maybe add some test and flag this to the user if only first letter is to be changed.

I’ve added test for both possibility, capital or not, and accept network name if only first letter is different for capitalization.

Yes maybe overkill. Doc can defined that Network should represent Neviweb spelling and Cap

Last code error with the following config

neviweb:
username: !secret neviweb_username
password: !secret neviweb_password
network: ‘Louiseville’
network2: ‘Quebec’
scan_interval: 360

2020-05-31 01:28:28 ERROR (MainThread) [homeassistant.setup] Setup failed for neviweb: unknown error
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/setup.py”, line 137, in _async_setup_component
component = integration.get_component()
File “/usr/src/homeassistant/homeassistant/loader.py”, line 264, in get_component
cache[self.domain] = importlib.import_module(self.pkg_path)
File “/usr/local/lib/python3.7/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1006, in _gcd_import
File “”, line 983, in _find_and_load
File “”, line 967, in _find_and_load_unlocked
File “”, line 677, in _load_unlocked
File “”, line 724, in exec_module
File “”, line 860, in get_code
File “”, line 791, in source_to_code
File “”, line 219, in _call_with_frames_removed
File “/config/custom_components/neviweb/init.py”, line 154
elif network[“name”] == self._network_name[0].upper()+self._network_name[1:] OR network[“name”] == self._network_name[0].lower()+self._network_name[1:]:

Ok it should work with my last update. I’ve tested on my side and there are no error. I had to add an exception if you don’t have a second GT125 network because I have only one GT125 along with a GT130 network.
Because nobody read the manual I think that is is better to add some check in the code as a remembering for network name capitalization or not.
I’ve updated also the Readme.md file to reflect the network naming and the two parameters «network» and «network2»

Hi there,

I have successfully installed Sinope integration from HACS following the guide steps(via direct conection to the gt125). HA version is 0.110.4. Added two thermostats. Both work correctly.

However I’m getting these warning messages in the log.


2020-05-31 08:04:43 WARNING (SyncWorker_19) [custom_components.sinope] Error code: 7ffc (None or invalid value for b5b60000)                             
2020-05-31 08:04:46 WARNING (SyncWorker_2) [custom_components.sinope] Error code: 7ffc (None or invalid value for f57b0000)                              
2020-05-31 08:07:44 WARNING (SyncWorker_12) [custom_components.sinope] Error code: 7ffc (None or invalid value for b5b60000)                             
2020-05-31 08:07:47 WARNING (SyncWorker_6) [custom_components.sinope] Error code: 7ffc (None or invalid value for f57b0000)                              
2020-05-31 08:10:44 WARNING (SyncWorker_14) [custom_components.sinope] Error code: 7ffc (None or invalid value for b5b60000)                             
2020-05-31 08:10:47 WARNING (SyncWorker_16) [custom_components.sinope] Error code: 7ffc (None or invalid value for f57b0000)

What Error code: 7ffc means?

Thanks in advance.

Only one error on both tests (Louiseville - Quebec) and (louiseville - Quebec)

2020-05-31 11:42:15 ERROR (MainThread) [homeassistant.components.switch] neviweb: Error on device update!
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity_platform.py”, line 322, in _async_add_entity
await entity.async_device_update(warning=False)
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 472, in async_device_update
await self.hass.async_add_executor_job(self.update)
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/config/custom_components/neviweb/switch.py”, line 89, in update
device_daily_stats[0] is not None else 0
IndexError: list index out of range

Hi, sometimes the thermostats are sending temperature values out of range as error codes. 7ffc can be safely ignored.

7ffc mean : No value returned, invalid value returned or disabled value returned. You can find all error code in __ini__.py file line 261.
It could be interference between Neviweb that is polling the devices and sinope component that is polling at the same time.

Thanks, This as nothing to do with the merge-networks update but it is what happen when your switch does not respond or does not respond fast enough because of a time out. The update of the switch was not received and the value for device_daily_stats is empty. (my next thing to fix)
In your log you should see something like:
[custom_components.neviweb.switch] Updating neviweb switch *Your_switch_name* (30.176 sec): {'errorCode': 'ReadTimeout'}
If you restart HA frequently to test new component like what we are doing now. Some devices do not respond fast enough and generate timeout, no answer.

So if there is no more error for the merge-network I’ll start merging that update.
For others who use the neviweb custom_component be aware that with this update you will have to update your config as follow:
If you have only GT125 network, one or two, on Neviweb: nothing to do
If you have one or two GT125 network plus one GT130 network on Neviweb: you have to add the network names in your configuration.yaml

neviweb:
  username: !secret climate_username
  password: !secret climate_password
  network: !secret climate_gateway
  network2: !secret climate_gateway2  (this line can be omitted if you have only one GT125 network
  scan_interval: 360
  
neviweb130:
  username: !secret climate_username
  password: !secret climate_password
  network: !secret climate_gateway130  (required)
  scan_interval: 360

Got it. Thank you!
Is there a way to suppress this warning message? It is flooding the log file.

Update. Found my answer :slight_smile:
Thanks again for your help.

logger:
  default: info
  logs:
    custom_components.sinope: error

I need a little more help please.
I’d like to display current room temperature from Sinope thermostat in a Badge at the top of the dashboard. Spent half a day trying to figure it out, but failed (I’m just starting with HA). Could someone help with that please?

Yes are you with lovelace