Sinope Thermostat Support

Yes, it worked! Thanks for all the explanation, it helped a lot :slight_smile:

Hi Claude,
I was wondering how to get the information on the water leak sensor on the RM3500ZB . Could you please tell me what should I use for that?
Thanks in advance!

Your RM3500ZB is connected to neviweb130 or ZHA ?
in neviweb130: it is the attribute water_leak_status which have value ok when no leak and water when leak detected.
You need to create a template sensor:

template:
  sensor:
    name: "watter_chauffe_eau"
    device_class: enum
    unique_id: watter_chauffe_eau_1
    state: "{{ state_attr('switch.neviweb130_switch_calypso_chauffe_eau', 'water_leak_status') }}"

in ZHA: it’s cluster 0x0500, attribute 0x0002, ZoneStatus
value 48 = ok
value 49 = leak detected or connector 1 detection
value 50 = Low temp detected or connector 2 detection
value 56 = both connector detection

Hi Claude
New to Home Assistant, but already have a few things installed and working.

First of all, thanks for all the hard work! Amazing what you did since 2016!!!

I do have 2 networks setup in Neviweb: My Chalet and Maison : all Sinope (GT130) … My Home Assistant is installed at home.

I just tried installing the Sinope130 integrations (Version 4.2.2) since all thermostat are ZB … except my HVAC that is the TH6500WF. Something is not right with my install …

my pasted configuration.yaml

  neviweb130:
  username: '[email protected]'
  password: 'xxx'
  network: 'Maison'
  scan_interval: 360
  homekit_mode: False
  ignore_miwi: False
  stat_interval: 1800
  notify: "both"
  1. HA has a notification
Neviweb130 integration 4.2.2
[Missing translation: error_code]
  1. my neviweb130_log.txt
2026-03-25 20:24:52.722 WARNING [custom_components.neviweb130] Number of networks found on Neviweb: 2
[...]
Your network name Maison do not correspond to discovered network Chalet, skipping this one... Please check your config if nothing get discovered

→ which I assume is valid … but then :

2026-03-25 20:25:04.301 WARNING [custom_components.neviweb130.climate] Device attribute not supported for neviweb130 climate Thermostat Central (id: 866613): DVCATTRNSPTD... (SKU: TH6500WF)
2026-03-25 20:25:04.358 WARNING [custom_components.neviweb130.climate] [Missing translation: error_code]

Anything wrong on my side?
Thanks a lot for your time!

As a side note, found more info on your git …

DVCATTRNSPTD: Device attribute not supported, The device you have installed have and older firmware and do not support 
  some attributes. Wait for firmware update in Neviweb and the error should disappear or file an issue so we can put an 
  exception in the code.

It looks like this is exactly what I have … also, it seems that your latest actually was fixing a typo for the TH6500WF but either it’s not in the latest version, or there’s more typo …

As for my thermostat, here’s more info from the Neviweb app:

TH6500WF

ID Appareil : 866613
Modele: 6727
Version du logiciel : 4.3.7
Version materielle : 3

Hope it helps! :slight_smile:

I’m using the neviweb130. What would be the values for the water_leak_status?
Thanks for helping me out!
Edit I think I got it:

{{ state_attr('switch.neviweb130_switch_rm3500zb', 'water_leak_status') == 'water' }}

For my understanding as I’m new to Home Assistant, could you please tell me why this is not an entity inside switch.neviweb130_switch_rm3500zb?

In version 4.2.2 there is a bug for the TH6500WF and TH6250WF that prevent them to load in HA. I’m working on it but as I don’t have this device it is hard to find which is the wrong attribute.
To can install instead neviweb130 4.2.1 which is working.
For the missing translation I’ve introduced in neviweb130 a translation for all error message but as it is using the translation engine from HA it look like the startup error occur before the translation file is loaded. In next version I’ve a fix for all error messages. But first I need to fis the TH6500WF bug.

If you want to help keep 4.2.2 and go to my git in branch wrong-param

and pick files helpers.py and climate.py to replace the one you have in config/custom_components/neviweb130 and restart HA. I’m trying to find out which attribut produce the
DVCATTRNSPTD and Neviweb is not very helpfull to give indice of which one is offending.

It is not an entity as you are in neviweb130 V1. You need to create sensor to follow them and be able to use them.
I’ll push this spring neviweb130 V2 which have all attributes as entities in the device page. It is almost a complete rewrite of V1.


You willl have sensor, select, number, button, binary_sensor depencing on attribute type.

With pleasure!

2026-03-30 21:13:11.242 WARNING [custom_components.neviweb130.climate] Running update helper
2026-03-30 21:13:15.176 WARNING [custom_components.neviweb130.climate] Unsupported or ignored attribute detected for device 866613 (SKU: TH6500WF, Model: 6727, Firmware: 4.3.7). Testing attributes individually...
2026-03-30 21:13:16.145 WARNING [custom_components.neviweb130.climate] Attribute 'backlight' ignored or unsupported for device 866613 (SKU: TH6500WF, Model: 6727, Firmware: 4.3.7)
2026-03-30 21:13:19.668 WARNING [custom_components.neviweb130.climate] [Missing translation: error_code]

Weirdly, I do see “Retroeclairage” in the app device params … I am assuming this is the backlight here …

Je parle francais by the way :slight_smile:

Moi ausi :slight_smile:
There are two parameters, backlight and backlightAutoDim, Neviweb just ignore backlight but return data for the second one. I’ve sent a notice to Sinopé because there are many devices that have ignored parameters when we do the device update.
In Neviweb app you should see for backlightAutoDim: alwaysOn, auto or bedroom as parameter values. So if you get the same values for Retroeclairage it is in fact backlightAutoDim parameter.
You can validate in Neviweb when you open de device configuration, hitting F12 will open the browser dev console and in it you will see what Neviweb is sending back (numéro de l’appareil is different from yours)


Check in Réponse instead of Requête you will see all parameters send back by neviweb when you open the device configuration page.
If you get something for backlight then it is a bug from Sinopé. Send me what you get.

About Missing translation: error_code this is because the HA translation engine is loaded after we get that errror in neviweb130.
Today I’ll update wrong-param with a fix for that. A default error message in case translation is not loaded soon enough.

I was able to F12 and get to the Console tab but couldn’t find that second bottom window … I’m using Chrome though…

Not sure if that will help ?

As for the backlightAutoDim, values are : alwaysOn, onUserAction and bedroom

Yes this is ok. Chrome have a dev console on the right of the screen and firefox put the console at the bottom. But you get to the rite place. You have backLightAutoDim but no backLight attribute. Neviweb just ignore it and it was causing a bug.
Tomorrow I’m releasing v4.2.3b0 with all fix for TH6250WF and TH6500WF. I’ll release it as a pre-release so more users can test. If everything is OK I’ll push a normal release soon after.
To see the pre-release you need to activate that in HACS config for neviweb130 or use the new neviweb130 updater which is able to find and update pre-release.
You can still use v4.2.1 if you want.

Hi Claude
Just updated to your newly release and now I have this :

Hope this helps!

Yes this is normal. In previous version you had an error about Error code not found. Now I’ve fixed the translation that set a default message if an error occur before the HA translation engine is loaded at startup.
The external sensor disconnected is because Sinopé added the possibility to connect a temperature sensor to your TH6500WF in your firmware but didn’t provide the sensor and didn’t set in Neviweb the possibility to tell that you don’t have the sensor.
You’ll get this error once at each reboot until Sinopé wake up and fix it.
This is the proof that my fix is OK for the error messages :slight_smile:

Bonjour Claude,

J’ai à l’occasion ce type d’erreur.

Erreur dans le log:

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:987
First occurred: 10:43:42 AM (3 occurrences)
Last logged: 10:43:55 AM

Update for climate.neviweb130_climate_th1124zb_g2_11 fails
Update for climate.neviweb130_climate_th1124zb_g2_10 fails
Update for climate.neviweb130_climate_th1124zb_g2_6 fails
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 987, in async_update_ha_state
await self.async_device_update()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1365, in async_device_update
await hass.async_add_executor_job(self.update)
File “/usr/local/lib/python3.14/concurrent/futures/thread.py”, line 86, in run
result = ctx.run(self.task)
File “/usr/local/lib/python3.14/concurrent/futures/thread.py”, line 73, in run
return fn(*args, **kwargs)
File “/config/custom_components/neviweb130/climate.py”, line 3641, in update
self._occupancy_mode = neviweb_status[ATTR_OCCUPANCY]
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: ‘occupancyMode’


Ma configuration de Neviweb130 est:

#Sinope Neviweb130
neviweb130:
username: !secret neviweb_username
password: !secret neviweb_password
network: “Maison”
scan_interval: 360
homekit_mode: False
stat_interval: 1800


Ma version actuelle: 4.2.3


Pour ton information j’ai ajouter un délais de 2s entre chacune des commandes transmises aux thermostats.

Dans ce cas-ci ce n’est pas moi qui exécute une automatisation, j’en déduis que c’est HA qui interroge le GT130 et qui n’obtient pas de réponse?


J’ai aussi à l’occasion ce type d’erreur:

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:1333
First occurred: 1:31:49 PM (1 occurrence)
Last logged: 1:31:49 PM

Update of climate.neviweb130_climate_th1124zb_g2_13 is taking over 10 seconds


Tu en penses quoi?

Merci

Salut @mrochette01
self._occupancy_mode = neviweb_status[ATTR_OCCUPANCY] c’est la mise a jour du statut home/away de Neviweb. Ça n’a rien a voir avec tes automations. C’est neviweb qui ne répond pas et ne retourne pas l’attribut ATTR_OCCUPANCY. Il faudrait que j’ajuste mon code pour avoir une valeur fallback quand Neviweb ne retourne pas l’attribut ni sa valeur.
Ca va aller sur la prochaine version de neviweb130
En attendant tu peux remplacer la ligne 3641 par ceci dans climate.py:

status = neviweb_status.get(ATTR_OCCUPANCY)
if isinstance(status, str):
    self._occupancy_mode = status

Attention à l’indentation.
je vais créer une branche cette semaine pour y mettre ce fix. Dans climate.py il y a plusieurs endroit ou je fais la requête neviweb_status.