Sinope Line Voltage Thermostats

Hello,
I have 15 synope RF 14’000 and I am very intersted of the plug in.
Unfortunatli, I get an error:

Logger: homeassistant.setup
Source: custom_components/neviweb/__init__.py:142
First occurred: 20:59:13 (1 occurrences)
Last logged: 20:59:13

Error during setup of component neviweb
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 190, in _async_setup_component
    result = await asyncio.wait_for(task, SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  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 98, in __init__
    self.__get_network()
  File "/config/custom_components/neviweb/__init__.py", line 142, in __get_network
    self._gateway_id = networks[0]["id"]
KeyError: 0

I am not schur for credentials, how can I check it ?

Best regards and many thanks for your help.

Thierry

Ok first I need to know if you have only one GT125 or if you have also a GT130
also I need your configuration.yaml for neviweb. It should look like:

neviweb:
  username: !secret climate_username
  password: !secret climate_password
  network: !secret climate_gateway
  scan_interval: 360

from what you’ve sent I assume that you didn’t put the line network:…
If so the component will pick the first one. But it look like it cannot login to Neviweb. You should provide your login and password you use to connect to neviweb. You can add them directly in configuration.yaml:

neviweb:
  username: «my neviweb username»
  password: «my neviweb password»
  scan_interval: 360

or add them to secrets.yaml, more secure. just follow the first example above. In secrets.yaml add the following lines:

climate_username: 'My_neviweb_username'
climate_password: 'My_neviweb_password'

In your log you should see the login result like this:
[custom_components.neviweb] Login response: {'user': {'id': 12345, 'role': 'owner', 'email': 'Your@email', 'locale': 'fr', 'format': {'time': '24', 'temperature': 'c'}},...... '}

look like you didn’t login succesfully to Neviweb. This is the first step.

Also make sure to add the following in your configuration.yaml

logger:
  default: warning
  logs:
    custom_components.neviweb: debug

This will give you more info on what is the problem.

Then you should find in your log
[custom_components.neviweb] Successfully logged in
if not then your login/password in incorrect

Hello,

Many thanks for your reply.
How can I check and validate credentials ?
Can I chang the password without any problem?

Many thanks for your work too!

Best regards

Thierry from Quebec.

You should use the same login and password you use to connect directly to Neviweb with your browser. When you login to https://neviweb.com/login

You can’t use a different login and password then what you use to connect to Neviweb with your browser.
Open Chrome or Firefox and try to connect to https://neviweb.com/login. Once it work use the same login and password in HA

Ok, thanks,
I check credentials, and put email_address as username.

I have now the following errors:

Logger: custom_components.neviweb.light
Source: custom_components/neviweb/light.py:102
Integration: Sinope Neviweb (documentation)
First occurred: 23:36:23 (1 occurrences)
Last logged: 23:36:23

Error in reading device neviweb dimmer Salon: ({'errorCode': 'ReadTimeout'}), too slow to respond or busy.
Logger: homeassistant.components.climate
Source: custom_components/neviweb/climate.py:112
Integration: Thermostat (documentation, issues)
First occurred: 23:35:52 (10 occurrences)
Last logged: 23:36:10

neviweb: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 319, 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/climate.py", line 112, in update
    self._wattage = device_data[ATTR_WATTAGE]["value"]
KeyError: 'wattage'
Logger: homeassistant.components.climate
Source: __main__.py:356
Integration: Thermostat (documentation, issues)
First occurred: 23:36:01 (1 occurrences)
Last logged: 23:36:01

Setup of climate platform neviweb is taking over 10 seconds.
Logger: custom_components.neviweb.climate
Source: custom_components/neviweb/climate.py:122
Integration: Sinope Neviweb (documentation)
First occurred: 23:36:00 (1 occurrences)
Last logged: 23:36:00

Cannot update neviweb climate Garage: {'error': {'code': 'DVCCOMMTO', 'data': {'retry': 2}}}. Device is busy or does not respond quickly enough.

Many thanks for your help

Best regards

So you get all your devices. But on update some are busy and do not respond to your request fast enough. ```
{‘errorCode’: ‘ReadTimeout’}

the device is busy with another request probably from Neviweb that is polling your devices regularly.
HA will retry few minutes later.

For  `KeyError: 'wattage'` what type of thermostat do you have ? Is it a TH1400RF low voltage ?
It is possible that for this one there is no attribute wattage. Please open your browser and connect to Neviweb. Pick one of your thermostat and check the parameters. For thermostat TH1120RF 3000W and 4000W and probably thermostat TH1300RF there is a «Charge connectée (watts)» parameter. For your TH1400RF if this parameter is missing then we should not check for wattage.
Check also in HA log home-assistant.log for the update of your thermostat. check for 
`[custom_components.neviweb.climate] Updating neviweb climate «your thermostat name»... 'wattage': {'error': None, 'value': 783}`
What do you get for wattage ?

For  `'code': 'DVCCOMMTO'` it is the same as for first error kind of timeout

Hmmm … sorry but not really.
I added the power for all thermostats and rebooted the have server.
I have 15 thermostats but only two are detected by have.

One is unreachable (may be to far of the gateway)
The second are detected but a lot of data are missing or false:
Attributs d’état (YAML, facultatif)

1 restored: true

2 hvac_modes:

3 - ‘off’

4 - auto

5 - heat

6 max_temp: 0

7 min_temp: 0

8 preset_modes:

9 - none

10 - away

11 - temporary

12 supported_features: 17

13 friendly_name: neviweb climate Atelier Thierry

14

I am presently outside of home for fiew days. When I will be back home I can send you more logs and info.

Thank you another time for your work.
Regards
Thierry

If Neviweb can see your thermostat then HA should see them because it get the data from Neviweb. If you see only two thermostat in HA it’s probably because the other are from different type or family. When we receive data from Neviweb the devices are registered to climate, light or switch according to there type number. Presently we recognise three type for thermostat:

type 10 = thermostat TH1120RF 3000W and 4000W
type 20 = thermostat TH1300RF 3600W floor, TH1500RF double pole thermostat
type 21 = thermostat TH1400RF low voltage

if your thermostat have a different type it won’t be registered as a climate device and won’t appear as thermostat in HA.
In custom_components/neviweb edit __init__.py and uncomment lines #215 and 221. Remove the # and the space in front of those line so it look like this:

for device in self.gateway_data:
            data = self.get_device_attributes(device["id"], [ATTR_SIGNATURE])
            if ATTR_SIGNATURE in data:
                device[ATTR_SIGNATURE] = data[ATTR_SIGNATURE]
            _LOGGER.debug("Received signature data: %s", data)  <--
        if self._gateway_id2 is not None:          
            for device in self.gateway_data2:
                data2 = self.get_device_attributes(device["id"], [ATTR_SIGNATURE])
                if ATTR_SIGNATURE in data2:
                    device[ATTR_SIGNATURE] = data2[ATTR_SIGNATURE]
                _LOGGER.debug("Received signature data: %s", data)  <--

_LOGGER should be alligned with the «if» above
Then restart HA and check in home-assistant.log for lines like this:
[custom_components.neviweb] Received signature data: {'signature': {'protocol': 'miwi', 'type': 10.....
type 10 is a thermostat TH1120RF
with this we can get the type of your thermostat and add them to HA

Hello,
I write the power for all thermostats and lamps.
Now, when I restart H.A I see 6 of 6 lamps. For each I can see details on developpment tools.
For thermostats, I see only 2 of 11 thermostats. For each two, the state is unavailable.
I modified the software as you wrote me and restart H.A
I double check that all power are written in devices.
I have the same error:

2020-07-06 21:28:38 ERROR (MainThread) [homeassistant.components.climate] neviweb: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 319, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 466, in async_device_update
    self.update  # 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/climate.py", line 112, in update
    self._wattage = device_data[ATTR_WATTAGE]["value"]
KeyError: 'wattage'

But I double check that all device as the power attribute ie wattage correct.

Is that possible to write the name of the device that as an error on the config in the python exception ?

Best regards and thanks for your help.

Ok I’ve created a new branch «Wattage-attribute» copy file climate.py over the one you have in custom_components/neviweb. I’ve added debug for the wattage to tel you which device it is.

To find out what are the thermostat that are not discovered, I need your log. Did you removed the # in front of line 215 and 221 of __init__.py ? this will give us the signature data for each devices to find out if some of your thermostat have a different type number.

Then send me your log for the line with «Received signature data:…»

See my previous post. We need to find out why your thermostat do not appear. Are they all GT125 thermostats. If they are GT130 Zigbee thermostats, you need to install sinope-130 custom component to be able to see them.

Hello,
About my config. I have one GT125 no more gateway.
I have low voltage thermostats GT125 and light regulator. No more devices.
All devices are seen on the Neviweb web site.
I remove the # in line 215 and 221 on init.py.
I put the log in pastebin: https://pastebin.com/VWHjQiRE

May be you can see someting…
Many thanks for your help and I will try the branch you create for me!
Question: wha you read the wattage attribute ? is it used in home assistant ?
Best regards
Thierry

Ok, I just replaced the climate.py file and reboot.
That’s instersting !
Its appears that a lot of thermostat as the wattage attribute missing !
But… in reality, the attribute is ok in the neviweb web site.

So, the problem is why some thermostat are well detected and other no…
Thanks for your help and best regards.
Thierry

After fiew minutes devices appears, I added some in the ui.
I will do more check and inform you !

Thanks for your log. I can see all 10 thermostats. Effectively there is no Wattage attribute for that thermostat. In Neviweb, the wattage is calculated by the thermostats and it appear in the device configuration but you cannot change it. Probably for your thermostat, as the device cannot calculate what is the connected load, you need to add it to the parameters manually. So I’ll update climate.py to reflect that. Could you tell me if your thermostats can do a variable heating %, or just on/off ?

Could you tell me the name of one of the thermostats that were detected first. I’ll check you log to see if there is something different for those one.

I<ve updated Wattage-attribute branch for your thermostat. Please test

Ok I’ve found it. The wattage you write in your Neviweb thermostat parameters (last line) is for the wattage for the auxiliary heating system. If you don’t have auxiliary heating system you leave it to 0 (zero). This low volage thermostat is equiped with and auxiliary control to manage an emergency heating system in case of your main heating is defective. This is the same for the floor thermostat that can heat the floor or manage an emergency heating in case of defect.
This is why you also have the «cycle sortie auxiliaire» parameter, that is used to manage the auxiliary heating system.
So there is no wattage attribute for this thermostat but there should be an auxiliary wattage parameter.

1 Like

Hello,
Many thanks for your new version of software.
I have no more error and it’s seams to work very well.
Now, I will try to access to the temperature and command curtains when the temperature is to high !

Many thanks another time !
Best regards
Thierry