Sinope Thermostat Support

Thanks for your answer @claudegel! From what I see, everything I did looks as you describe it, just I did not have the “network:” line in the config, which I added now.

To summarize:

  • neviweb130 installed through HACS (and thermostat is through native Sinopé app connected to Neviweb)
  • my configuration.yaml looks now like this, added network and logging lines, user & password were already there before:
sinope_neviweb130:
  username: !secret sinope_user
  password: !secret sinope_pass
  network: !secret climate_gateway

logger:
  default: info
  logs:
    homeassistant.core: debug
    homeassistant.custom_components: debug
    custom_components.neviweb130: debug

and my secrets.yaml, added the last line:

sinope_user: my_email
sinope_pass: my_password
climate_gateway: Home
  • restarted HA. Sinope Neviweb130 is listed in my HACS intergrations, with 2 entities, update and (inactive) pre-release. Shows up only under HACS though, not by itself under configured integrations (like some others I have, e.g. Hilo). In devices, only the one described above is listed, not the thermostat. Clicking “add device” gives only a pop-up that the configuration must be done via the yaml
  • I don’t have a neviweb130_log.txt, and neither a config folder. The two yaml above are directly in /homeassistant:
/compose_data/homeassistant$ ls
automations.yaml  configuration.yaml  deps                          hilo_state.yaml     home-assistant.log.1      home-assistant_v2.db      home-assistant_v2.db-wal  scripts.yaml  tts
blueprints        custom_components   hilo_eventhistory_state.yaml  home-assistant.log  home-assistant.log.fault  home-assistant_v2.db-shm  scenes.yaml               secrets.yaml

This is running using the compose plugin of Open Media Vault, homeassistant-core container, version 2026.1.3.

  • The general HA logs show only irrelevant warning (that this is a HACS integration etc)
  • I double checked my password…

Do you have an idea what might go wrong?

Just a note: Verified, my /config folder of the container actually maps to /homeassistant on the drive, so there isn’t a wrong path or anything with it…

Also, I added quotes around my credentials (my password has special characters) and verified my location name “Home”. No change.

EDIT: Found the problem!
Not sure why, but I had in my config “sinope_neviweb130:” instead of “neviweb130:”, so it didn’t load…

So in your installation the config directory is homeassistant. neviweb130 is installed in homeassistant/custom_components/neviweb130
I’ll check why you don’t have the neviweb130_log.txt file it should be in the homeassistant directory. But if you have a file home-assistant.log the information should be inside. At the beginning you should see few lines about integration that are not official HA like hacs and neviweb130. But you should see after when neviweb130 load the welcome flag:

Sinope Neviweb130 (neviweb130)
Version: 4.1.1
Requirement: Home Assistant minimum version 2025.1.1
This is a custom integration!
If you have any issues with this you need to open an issue here:
https://github.com/claudegel/sinope-130/issues
Documentation: https://github.com/claudegel/sinope-130

and after you should see many lines like:
[custom_components.neviweb130] Number of networks found on Neviweb:…
[custom_components.neviweb130] networks:…
[custom_components.neviweb130] Received gateway data:…

If you don’t see that, look in Parameters, System, logging to see if there is something about neviweb130

As per my very last comment/edit, I have found my mistake in my configuration.yaml . Now that it loads, the log file is created as well and the device loaded. Of course, stupid mistake…
Thanks for your help!

Great, so everything is in place. let me know if there is anything else.

Bonjour!

J’aimerais créer une automation pour baisser la température minimum des mes planchers chauffants quand je suis absent. Mes thermostats son normalement en mode température ambiante et la température minimum du plancher est a 25. Quand je parts ne voyage et que l’automation baisse la température ambiante à disons 15, j’aimeras aussi pouvoir baisser la température minimum du plancher à 15. (sinon il chauffe pour maintenir le plancher à 25)

J’ai vu qu’il y a l’action “neviweb130.set_floor_limit_low”, mais je se sais pas où entrer la valeur de température que je veux obtenir. Ni dans le menu de l’automation, ni dans le code. Voici un screenshot de l’automation que j’essaie de créer.

Merci pour l’aide!

Bonjour @jeffsimard, la temperature minimum du plancher est la limite minimum de consigne lors que vous êtes en mode chauffage plancher. Voici les attributs disponibles:
paramètres fix:

  • floor_setpoint_max: consigne maximum en mode chauffage plancher
  • floor_setpoint_low: consigne minimum en mode chauffage plancher
  • floor_air_limit: Température limite de l’air en mode chauffage plancher
  • setpoint_max: consigne max en mode airByFloor
  • setpoint_min: consigne min en mode airByFloor
    Tu dois fixer ces paramètres via Paremetre / outils de développement / action avec les action suivantes:
  • neviweb130.set_floor_air_limit
  • neviweb130.set_floor_limit_high
  • neviweb130.set_floor_limit_low
  • neviweb130.set_setpoint_max
  • neviweb130.set_setpoint_min
    Tu les ajuste une seule fois en mettant tes limites.
    Pour selectionner le mode chauffage via plancher ou air ambiant c’est:
  • sensor_mode: floor (plancher) ou airByFloor air ambiant
    Tu l’ajuste via neviweb130.set_air_floor_mode
    Quand tu es en mode plancher la consigne du thermostat suit la température du plancher et tu ne peu la diminuer en dessous de floor_setpoint_low ou au dessus de floor_setpoint_max. Le plancher chauffera jusqu’à atteindre la température de consigne ou la valeur de floor_air_limit qui est la température maximum de l’air ambiant.
    Quand tu est en mode airByFloor la consigne du thermostat suit la température de l’air et les limites de consignes sont setpoint_max et setpoint_min

Maintenant tu veux abaisser la température de consigne du thermostat quand tu es absent. Pour ceci tu te sers de l’action climate.set_temperature simplement.
Voici un exemple:

  - id: baisse temperature absent
    alias: baisse temperature absent
    initial_state: true
    trigger: []
    condition: []
    action:
      service: climate.set_temperature
      entity_id: climate.bathroom_thermostat
      data:
        temperature: 15

Ceci va baisser la consigne à 15 et le thermostat va chauffer jusqu’à 15 pour soit l’air ambiant ou le plancher selon ce que tu as pour sensor_mode, floor ou airByFloor.
Changer la consigne c’est HA qui s’en occupe avec des actions climate.set_temperature. Pour les parametres de ton thermostat c’est neviweb130 qui s’en occupe via les actions neviweb130.set_…
Dans l’automation j’ai mis trigger et condition
trigger te permet de mettre un déclancheur. Il y a plusieurs façon de déclancher. avec une entité qui suit ton cellulaire. Avec un bouton que tu clic et qui déclanche l’automation, c’est ce que j’utilise.
condition c,est pour mettre un condition comme par exemple l,action s’execute seulement si c’est l’hiver.
Ensuite tu devras te faire une autre automation pour remettre la température à ce que tu veux quand tu es de retour.
Dans les automation tu peux mettre plusieurs entity_id pour changer la consigne de plusieurs thermostats d’un coup. Dans ce cas tu mets:

  - id: baisse temperature absent
    alias: baisse temperature absent
    initial_state: true
    trigger: []
    condition: []
    action:
      service: climate.set_temperature
      entity_id: 
        - climate.bathroom_thermostat
        - climate.kitchen_thermostat
      data:
        temperature: 15

et ils vont tous changer de consigne.
Enfin regarde l’application scheduler card dans HACS. C’est génial pour faire des automations
Laisse moi savoir si tu as d’autre questions.

Bonjour @claudegel , Merci beaucoup pour la réponse!

Je viens de trouve la solution à ma question. J’ai ajouté la ligne “floorLimitLow: 10” sous la ligne “entity_id”.
Maintenant, mon automation peut changer la température minimum du plancher tout en restant en mode température ambiante. Avec l’action “neviweb130.set_floor_limit_low” pour modifier le plancher et je peux, en même temps, utiliser l’action “climate.set_temperature” pour modifier la temperature ambiante voulue.

Je vais essayer scheduler card, merci du conseil.
Avez vous une suggestion de “card” qui est mieux que celle par défaut de HA pour les thermostats car on s’entend que l’application de Sinopé est mieux pour afficher les différents thermostats?

Merci encore!

Dans ton automation tu peux regrouper tes deux thermostats comme ceci:

actions:
  action: neviweb130.set_floor_limit_low
  data:
    entity_id:
      - climate.bathroom_floor
      - climate.bathroom_basement_floor
    floorLimitLow: 10

ça simplify l’automation et même si tu as beaucoup de thermostats tu peux les mettre dans un group ex: group.floor et dans entity_id appeler group.floor Tous tes thermostats vont être mis à jour en même temps.

Si tu veux avoir tous tes thermostats regroupés dans une carte. Alors il y a simplement vertical stack card ou carte pile verticale.
Et si tu copies les icones qui sont sur mon github dans le sous répertoire www.Tu les copies dans ton config/www/neviweb130. Ca va personnaliser tes thermostats pour afficher une icone dynamique qui change en fonction de l’intensité de chauffe.
Pour configurer le vertical stack tu mets simplement ceci:

type: vertical-stack
cards:
  - type: entities
    entities:
      - climate.bathroom_thermostat
      - climate.kitchen_thermostat

et le résultat est ceci:


Il y a aussi des icones pour les thermostats de plancher. Et quand tu click sur un thermostat dans la liste ça ouvre la carte du thermostat.

Hi @claudegel ,

I’m new to HA and I would like to ask for your help for setting up Home/Away mode in Sinope. I’m using this automation but it’s not working. Could you please tell me the best way to accomplish this?
alias: Set Mode Sinope Neviweb
triggers:

  • entity_id: input_select.house_mode
    trigger: state
    conditions:
    actions:
  • choose:
    • conditions:
      • condition: state
        entity_id: input_select.house_mode
        state:
        • Away
          sequence:
      • action: neviweb130.set_neviweb_status
        metadata: {}
        data: away
    • conditions:
      • condition: state
        entity_id: input_select.house_mode
        state:
        • Day
        • Evening
        • Alarm Off and Automations On
        • Everything Off
          sequence:
      • action: neviweb130.set_neviweb_status
        metadata: {}
        data: home

Thank you!

Merci beaucoup encore une fois!
Super avec vos icônes qu’on voit l’intensité du chauffage.
Dans l’automation neviweb130.set_floor_limit_low, ca ne fonctionne pas de regrouper les thermostats, message d’erreur. De tout façon j’en ai que 2 pour cette fonction.
Merci!

Hi @rfg81, for the action neviweb130.set_neviweb_status there is two way to use it.

  • via the GT130 if you have one
action: neviweb130.set_neviweb_status
data:
  entity_id: sensor.neviweb130_sensor_gt130
  mode: away
  • or via any thermostat device :
action: neviweb130.set_climate_neviweb_status
data:
  entity_id: climate.neviweb130_climate_office
  mode: away

The action used is different depending on which one you are using and you must put the device entity_id or HA won’t know how to manage that action.
The second one was added for those users who have only Wi-Fi device and no GT130 gateway.
So your complete automation should look like this:

- id: input_select.house_mode
  alias: house mode
  initial_state: true
  trigger:
    platform: state
    entity_id: input_select.house_mode
    to: "on"
  condition: []
  action:
    service: neviweb130.set_climate_neviweb_status
    data:
      entity_id: climate.neviweb130_climate_your_thermostat
      mode: away

You can use any of your thermostat if you use neviweb130.set_climate_neviweb_status but if you use instead
neviweb130.set_neviweb_status, you need to use your GT130 entity like
sensor.neviweb130_sensor_gt130 This is to make sure that HA will know which one to use and where to go, in clymate.py or in sensor.py to run the automation.
Try it and let me know

Pourtant j’en ai plusieurs avec un paquet de thermostats activés par le même service. Si tu peux m’envoyer l’erreur je vais te dire quoi faire pour corriger.

Thanks! It worked! Next one is the backlight of the thermostat. I tried to use the logic of what you said before but it didn’t work. Could you please let me know what is wrong here?

  • id: thermostat_display_front_bathroom
    alias: Thermostat Display Front Bathroom
    triggers:
    • entity_id:
      • binary_sensor.motion_presence_front_bathroom_motion
        trigger: state
        actions:
    • choose:
      • conditions:
        • condition: state
          entity_id: binary_sensor.motion_presence_front_bathroom_motion
          state:
          • ‘on’
            sequence:
        • action: neviweb130.set_backlight
          data:
          entity_id: climate.neviweb130_climate_front_bathroom
          mode: on
      • conditions:
        • condition: state
          entity_id: binary_sensor.motion_presence_front_bathroom_motion
          state:
          • ‘off’
            sequence:
        • action: neviweb130.set_backlight
          data:
          entity_id: climate.neviweb130_climate_front_bathroom
          mode: off

Thanks in advance!

Voici l’erreur dans “trace”
Error: value should be a string for dictionary value @ data[‘entity_id’]

Merci je vais regarder ça

When you use trigger in an automation you should tell what is the state change

trigger:
    platform: state
    entity_id: input_select.house_mode
    to: "on"

In your thermostat_display_front_bathroom automation you use a bad format:

triggers:

    entity_id:
        binary_sensor.motion_presence_front_bathroom_motion
        trigger: state
        actions:

But first you need to learn how to post code and keep the formating. When you post your code you need to paste it in your message. Then you need to select it and click on the </> icone above or hit ctrl+e. This will display your code perfectly formated and easier to understand.
Back to your automation trigger should be like this:

trigger:
    platform: state
    entity_id: binary_sensor.motion_presence_front_bathroom_motion
    to: true

You need to find out what is the value for the state. normally a binary_sensor in true or false but it can be expressed like present/absent, or on/off check your binary_sensor.motion_presence_front_bathroom_motion state value when it is on.
You don’t need a condition unless you have a specific condition. only during night or after 10:00 PM. If not you just need to put

condition: []

finally the value for neviweb130.set_backlight are: «auto», «on» or «bedroom»
On = backlight always on
auto = backlight off and turn on when you touch it
bedroom = On during days and turn off at night.

Also there is no mode attribute for set_backlight. it is backlightAdaptive that can be on, auto or bedroom
To find out what are the proper command and values go to parameters / dev tools / actions (paramètres / Outils de développement / Actions) and search for your action neviweb130.set_backlight you will see all parameters that can be used with an action in your automation.
If you explain to me what you want to acheive with your automation I can write one for you. You will probably need two automations one to turn on backlight when detected and another to turn auto when detection is finished.

If I understand correctly your automation, you can just replace
mode: on and mode: off
by
backlightAdaptive: on
backlightAdaptive: auto