Sinope Line Voltage Thermostats

I saw it flashing on my zigbee Sinope thermostats during the pre and peak events when it was managed by Neviweb (Éco Sinopé). I guess Sinopé doesn’t provide that information :-(. Please let me know if you find it.

I have the email automation working now and the different input booleans based on your example… I am now at figuring out my automations to increase by 2-3 degrees celcius everywhere before the event, bring them to a preset (10C) for the event and bring them all back to where they were (or to a preset) after the event. All of this mixed with the normal operations… Need to wrap my head around that part… Any suggestions example you could share?

Merci
Stéphane

My thermostat on Éco Sinopé is also managed by some automation in HA so I suppose that when the signal is sent I miss it. Can you check in Neviweb with your debug console to see if the drStatus parameter is sent to the thermostat. I can’t see it on mine but maybe it is overwritten by my own automations. I’ll try to sniff the communication on the thermostat when the peak finish.
I’m writing a PR to add many cluster and attributes to ZHA quirks for light and thermostats.

Bonsoir, Je reçois ce message suite à la mise à jour 0.9.2.

Verifiez dans custom_components/neviweb130 si les fichier sont présent: __init__.py, climate.py etc
Il semble que votre mise a jour ne s’est pas faite correctement.
Vous pouvez réinstaller neviweb130 en allant dans HACS, integrations et dans le bas de la page il y a vos intégrations installé. cliquer sur réinstaller sinope neviweb130, sur la carte il y a trois petits points en bas à droite. cliquez dessus et sur retélécharger.
Vous pouvez aussi ajouter ceci dans configuration.yaml

logger:
  default: warning
  logs:
    homeassistant.custom_components: debug
    custom_components.neviweb130: debug

Puis regardez dans home-assistant.log pour des messages d’erreur au début du fichier.
Quel est la configuration que vous avez mi dans configuration.yaml pour neviweb130 ?

I just added two PR in zha-device-handlers to add many manufacturer cluster specific attributes for thermostats, light and dimmer. Timer set, lock keypad, led color and intensity, load connected, pump protection, time format, sensor type, max floor temp, min floor temp, max air temp, air-floor mode, aux connected load, output cycle length etc.
I’m gonna work on documentation for all those cluster attributes soon. We need to have better documentation for ZHA Sinopé devices configuration.

Thanks Claude!

PR was submitted this morning.

If desired the quirks can be manually added to your current install. Instructions and more information about quirks can be found here.

The file you need for the SP2600ZB is switch.py from this fork.

From experience quirks get merged after about a week, so I’m hoping it will be incorporated in the February 2nd release.

Let me know if you need more help to set it all up in the meantime.

1 Like

Bonjour,

J’ai réussi à faire la mise à jour vers 0.9.2. Je ne sait pas s’il y a un lien, mais il y a eu une mise à jour de HACS vers la version 1.19.2. Après cette mise à jour, l’installation de la nouvelle version de Sinopé Neviweb130 c’est effectuée correctement. Merci.

Outch, this is a bit too advanced for me at this point! I understand what it does at a high level but implementing one is another story! Merci pour le partage.

Stéphane

It’s not as scary as it sounds. Are you familiar with the portainer addon?

I’m familiar with Docker and Kubernetes but not really with the portainer addon… What kind of addon ?

Portainer is a docker environment manager. It will give you access to the Home-assistant docker so you can add new quirks or modifi a component to test a new version.
see GitHub - hassio-addons/addon-portainer: Portainer - Home Assistant Community Add-ons

1 Like

Bonjour / Hi,

I am still relatively new to home-assistant. The neviweb application can’t be shared with my spouse, and the automation isn’t great when you try to have many.
I installed Home-Assistant on my home server and added your Neviweb130 components throw HACS. BTW : thank you very much for your hard work.

the issue is that the default card is not really useful with the gauge. I wanted to add a custom one like you did. Looks like I am missing something.
I downloaded the pictures to my www/community/image/ folder
I added the customize.yaml file to my configuration yaml and then I added this for all my thermostat.

customize:
    climate.neviweb130_climate_chambre_adulte:
      templates:
        entity_picture: >
          if (attributes.heat_level < 1) return '/local/image/heat-0.png';
          if (attributes.heat_level < 21) return '/local/image/heat-1.png';
          if (attributes.heat_level < 41) return '/local/image/heat-2.png';
          if (attributes.heat_level < 61) return '/local/image/heat-3.png';
          if (attributes.heat_level < 81) return '/local/image/heat-4.png';
          return '/local/image/heat-5.png';
    climate.neviweb130_climate_chambre_calme:
      templates:
        entity_picture: >
          if (attributes.heat_level < 1) return '/local/image/heat-0.png';
          if (attributes.heat_level < 21) return '/local/image/heat-1.png';
          if (attributes.heat_level < 41) return '/local/image/heat-2.png';
          if (attributes.heat_level < 61) return '/local/image/heat-3.png';
          if (attributes.heat_level < 81) return '/local/image/heat-4.png';
          return '/local/image/heat-5.png';

etc…

But I end up with this :
2022-01-09 21_35_07-test - Home Assistant

Hi @Watever44, welcome to HA.
I think that you put the pictures in the wrong place. Move them in
config/www/image/heat-0.png …etc
local refer to config/www in hassio

make sure you have in configuration.yaml just under homeassistant:

homeassistant:
  customize: !include customize.yaml

This way you can have a separate customize.yaml file

It looks like we are no longer able to install it. It is mentioned that the addon is discontinued and no longer available.

The official addon was discontinued, but you can find a community supported one here.

If you dabble in Docker you could make it work without it. Portainer is just one of a few ways to install the quirks. You need to access your Home Assistant Docker container and place the switch.py file in /usr/local/lib/python3.9/site-packages/zhaquirks/sinope and delete the pycache folder.

Thanks for your input.

This is what I use in Node-Red (with zigbee2mqtt). could help someone in the future.

Basically, it sets time and outdoor temperature using the AccuWeather integration. It search for all “climate.thermistat_” entities (thats the name i gave them), splits into a array, loops each thermostats in the list and sends the info to MQTT.

The code below can be imported into a new flow in node-red

[{"id":"2482ec1a27369a3a","type":"tab","label":"Sinope thermostats","disabled":false,"info":""},{"id":"69a0c53f022704d3","type":"group","z":"2482ec1a27369a3a","name":"Set time every hour","style":{"fill":"#92d04f","label":true,"color":"#000000"},"nodes":["d4ca37942b589b3b","7e531d1aa32bd73d","a96f7634ce0ad432","4f9914f0897f0f3e"],"x":74,"y":59,"w":872,"h":82},{"id":"f32457fe8d036c37","type":"group","z":"2482ec1a27369a3a","name":"Set outdoor temp on Accuweather changes","style":{"fill":"#ffC000","label":true,"color":"#000000"},"nodes":["c2aa85cfb612d955","def64bd64d9ec087","7225751d8a9c65ba","5f723299d3c658cd"],"x":74,"y":179,"w":872,"h":82},{"id":"d4ca37942b589b3b","type":"ha-get-entities","z":"2482ec1a27369a3a","g":"69a0c53f022704d3","name":"Sinope Thermostat List","server":"26a73422.2f588c","version":0,"rules":[{"property":"entity_id","logic":"starts_with","value":"climate.thermostat_","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":470,"y":100,"wires":[["a96f7634ce0ad432"]]},{"id":"7e531d1aa32bd73d","type":"inject","z":"2482ec1a27369a3a","g":"69a0c53f022704d3","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"3600","crontab":"","once":true,"onceDelay":"0,1","topic":"","payloadType":"date","x":190,"y":100,"wires":[["d4ca37942b589b3b"]]},{"id":"a96f7634ce0ad432","type":"split","z":"2482ec1a27369a3a","g":"69a0c53f022704d3","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":690,"y":100,"wires":[["4f9914f0897f0f3e"]]},{"id":"4f9914f0897f0f3e","type":"function","z":"2482ec1a27369a3a","g":"69a0c53f022704d3","name":"","func":"thermostat_name = msg.payload.attributes.friendly_name;\nreturn {payload : \"\", topic: \"zigbee2mqtt/\" + thermostat_name + \"/set/thermostat_time\"};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":860,"y":100,"wires":[["929aa253eae9fa28"]]},{"id":"929aa253eae9fa28","type":"mqtt out","z":"2482ec1a27369a3a","name":"MQTT zigbee2mqtt Thermostats","topic":"","qos":"0","retain":"false","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"89f33f95.1b2a5","x":1110,"y":160,"wires":[]},{"id":"c2aa85cfb612d955","type":"server-state-changed","z":"2482ec1a27369a3a","g":"f32457fe8d036c37","name":"accuweather_temperature","server":"26a73422.2f588c","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.accuweather_temperature","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"outputProperties":[{"property":"temperature","propertyType":"msg","value":"","valueType":"entityState"}],"x":210,"y":220,"wires":[["def64bd64d9ec087"]]},{"id":"def64bd64d9ec087","type":"ha-get-entities","z":"2482ec1a27369a3a","g":"f32457fe8d036c37","name":"Sinope Thermostat List","server":"26a73422.2f588c","version":0,"rules":[{"property":"entity_id","logic":"starts_with","value":"climate.thermostat_","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":470,"y":220,"wires":[["7225751d8a9c65ba"]]},{"id":"7225751d8a9c65ba","type":"split","z":"2482ec1a27369a3a","g":"f32457fe8d036c37","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":690,"y":220,"wires":[["5f723299d3c658cd"]]},{"id":"5f723299d3c658cd","type":"function","z":"2482ec1a27369a3a","g":"f32457fe8d036c37","name":"","func":"thermostat_name  = msg.payload.attributes.friendly_name;\naccu_temperature = String(msg.temperature);\n\nreturn {payload : accu_temperature, topic: \"zigbee2mqtt/\" + thermostat_name + \"/set/thermostat_outdoor_temperature\"};","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":860,"y":220,"wires":[["929aa253eae9fa28"]]},{"id":"26a73422.2f588c","type":"server","name":"Main HA Server","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"30"},{"id":"89f33f95.1b2a5","type":"mqtt-broker","name":"HA-MQTT","broker":"172.20.10.10","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]

Thanks Claude, Thats what I was affraid… by the looks of things, my firmware date is almost one year old. i’m pretty sure that there is a newer one release since then.

I just have to see if 100$+tx is worth to update my Sinope from time to time.

I should rent my GT130 so you can update your firmware :slight_smile:
Look like Sinopé have an opening to support HA. Maybe it could be possible to have a new firmware file to do the upgrade whitout the GT130.

depending on where you are in the province… yeah, that would be a good idea :wink:

south shore of Montreal.