Skip to content

Neviweb custom component for Home Assistant to manage devices connected via a GT130 and wifi devices from Sinopé

License

Notifications You must be signed in to change notification settings

kris2k2/sinope-130

 
 

Repository files navigation

Home Assistant Neviweb130 Custom Components

Here is a custom components to suport Neviweb in Home Assistant. Neviweb is a platform created by Sinopé Technologies to interact with their smart devices like thermostats, light switches/dimmers , load controllers, plug and water leak detector etc.

Neviweb130 will manage the devices connected to Neviweb via the GT130 gateway and the new wifi devices. It is presently in pre-release stage as some information are still missing from Sinopé.

Supported Devices

Here is a list of currently supported devices. Basically, it's everything that can be added in Neviweb.

  • Zigbee thermostats
    • Sinopé TH1124ZB 3000W Line voltage thermostat
    • Sinopé TH1124ZB 4000W Line voltage thermostat
    • Sinopé TH1124ZB 3000W Thermostat for public areas
    • Sinopé TH1124ZB 4000W Thermostat for public areas
    • Sinopé TH1300ZB 3600W Floor heating thermostat
    • Sinopé TH1400ZB Low voltage thermostat
    • Sinopé TH1500ZB 3600W double pole thermostat
    • Ouellet OTH3600-GA-ZB Floor thermostat
    • Ouellet OTH4000-ZB 4000W Line voltage thermostat
  • Wifi thermostats (no need for GT130)
    • Sinopé TH1124WF wifi 4000W Line voltage thermostat
    • Sinopé TH1123WF wifi 3000W Line voltage thermostat
    • Sinopé TH1300WF wifi 3600W floor thermostat
    • Sinopé TH1310WF wifi 3600W floor thermostat
    • Sinopé TH1400WF wifi low voltage thermostat
    • Flextherm concerto connect FLP55 floor thermostat (sku FLP55 do not provide energy stats in Neviweb)
  • Zigbee lighting
    • Sinopé SW2500ZB Light switch
    • Sinopé DM2500ZB Dimmer
    • Sinopé DM2550ZB Dimmer
  • Zigbee specialized Control
    • Sinopé RM3250ZB Load controller 50A
    • Sinopé RM3500ZB Load controller for water heater
    • Sinopé SP2610ZB in-wall outlet
    • Sinopé SP2600ZB smart portable plug
    • Sinopé MC3100ZB Sedna valve multi-controller for allarm system
  • Wifi specialized control
    • Sinopé RM3500WF Load controller for water heater
  • Water leak detector
    • Sinopé VA4201WZ, VA4221WZ, sedna valve 1 inch
    • Sinopé VA4200WZ, VA4220WZ, sedna valve 3/4 inch wifi
    • Sinopé VA4200ZB, VA4220ZB, sedna valve 3/4 inch zigbee
    • Sinopé VA4220WZ, sedna 2e gen 3/4 inch
    • Sinopé VA4220WF, sedna 2e gen 3/4 inch, wifi
    • Sinopé VA4221WZ, sedna 2e gen 1 inch
    • Sinopé VA4221WF, sedna 2e gen 1 inch, wifi
    • Sinopé WL4200, water leak detector
    • Sinopé WL4200S, water leak detector with sensor
    • Sinopé WL4200C, perimeter cable water leak detector
    • Sinopé WL4200ZB, water leak detector
  • Tank level monitor
    • Sinopé LM4110-ZB, level monitor

Prerequisite

You need to connect your devices to a GT130 web gateway and add them in your Neviweb portal before being able to interact with them within Home Assistant. Please refer to the instructions manual of your device or visit Neviweb support.

For wifi thermostats you need to connect your devices to Neviweb and add them in the same network then the GT130 zigbee devices. Later I'll add support to add them in the GT125 network.

There are two custom component giving you the choice to manage your devices via the neviweb portal or directly via your GT130 gateway:

  • Neviweb130 custom component to manage your devices via neviweb portal
  • Buy a zigbee gateway like Dresden Conbe II usb dongle and manage directly your zigbee device via ZHA component. I'm adding support for Sinopé zigbee there

You need to install only one of them but both can be used at the same time on HA. Zigbee devices managed directly via Conbe II must be removed from Neviweb.

Neviweb custom component to manage your device via Neviweb portal:

Installation

There are two methods to install this custom component:

  • via HACS component:
    • This repository is compatible with the Home Assistant Community Store (HACS).
    • After installing HACS, install 'sinope-130' from the store, and use the configuration.yaml example below.
  • Manually via direct download:
    • Download the zip file of this repository using the top right, green download button.

    • Extract the zip file on your computer, then copy the entire custom_components folder inside your Home Assistant config directory (where you can find your configuration.yaml file).

    • Your config directory should look like this:

      config/
        configuration.yaml
        custom_components/
          neviweb130/
            __init__.py
            light.py
            const.py
            switch.py
            climate.py
            sensor.py
            services.yaml
        ...
      

Configuration

To enable Neviweb130 management in your installation, add the following to your configuration.yaml file, then restart Home Assistant.

# Example configuration.yaml entry
neviweb130:
  username: '<your Neviweb username>'
  password: '<your Neviweb password>'
  network: '<your gt130 location name in Neviweb>' (gt130 emplacement dans Neviweb)
  scan_interval: 360

Networks names are the names found on top of first page after loging into Neviweb. If you have more then one network, just click on icon on top to find all networks names. Select the one used for GT130 or wifi devices. Both device type must be on same network to work in neviweb130.

Configuration options:

key required default description
username yes Your email address used to log in Neviweb.
password yes Your Neviweb password.
network no if not specified, 1st location found is used. Write the name of the GT130 location in Neviweb you want to control.
scan_interval no 540 The number of seconds between each access to Neviweb to update device state. Sinopé asked for a minimum of 5 minutes between polling now so you can reduce scan_interval to 300. Don't go over 600, the session will expire.

Sedna valve

For Sedna valve there is two way to connect it to Neviweb:

  • Via wifi direct connection. This way leak sensor are connected directly to the Sedna valve which will close if leak is detected.
  • via GT130 in zigbee mode. This way leak sensor are also connected to the GT130 but on leak detection nothing is passed to the valve. You'll need to set some automation rule to have the Sedna valve close if leak is detected by sensor.

Both mode are supported by this custom component.

Custom services

Automations require services to be able to send commande. Ex. light.turn_on. For the Sinopé devices connected via neviweb130, it is possible to use custom services to send specific information to devices or to change some devices parameters. Those custom services can be accessed via development tool/services or can be used in automation:

  • neviweb130.set_second_display, allow to change setting of the thermostats second display from setpoint temperature to outdoor temperature. This need to be sent only once to each devices.
  • neviweb130.set_climate_keypad_lock, allow to lock the keypad of the climate device.
  • neviweb130.set_light_keypad_lock, allow to lock the keypad of the light device.
  • neviweb130.set_switch_keypad_lock, allow to lock the keypad of the switch device.
  • neviweb130.set_light_timer, this is used to set a timer in seconds (0 to 10800) to the light devices to turn_off after that delay.
  • neviweb130.set_switch_timer, this is used to set a timer in seconds (0 to 10800) to the switch devices to turn_off after that delay.
  • neviweb130.set_led_indicator, this allow to change led indicator color and intensity on light devices for «on» and «off» state. you can send any color in the RGB list via the three color parameters red, green and blue and you can set intensity of the led indicator.
  • neviweb130.set_time_format to display time in 12h or 24h on thermostats.
  • neviweb130.set_temperature_format to disply temperature in celsius or fahrenheit format on thermostats.
  • neviweb130.set_backlight to set bakclight intensity in state «on» or «off» for thermostats.
  • neviweb130.set_wattage to set wattageOverload for light devices.
  • neviweb130.set_setpoint_min to set minimum setpoint temperature for thermostats.
  • neviweb130.set_setpoint_max to set maximum setpoint temperature for thermostats.
  • neviweb130.set_sensor_alert to set all alert for water leak sensor, temperature, battery, leak, status and set action on valve.
  • neviweb130.set_valve_alert to set low battery alert status.
  • neviweb130.set_valve_temp_alert to set low temperature alert on sedna valve.
  • neviweb130.set_early_start to set early heating on/off for wifi thermostats.
  • neviweb130.set_air_floor_mode to switch between floor or ambiant temperature sensor to control room temperature.
  • neviweb130.set_phase_control to set phase control mode for DM2550ZB dimmer (reverse or forward).
  • neviweb130.set_hvac_dr_options to set or reset DR period option in Neviweb for thermostats.
  • neviweb130.set_hvac_dr_setpoint to adjust thermostat setpoint reduction during DR period, 0 to -10 oC.
  • neviweb130.set_load_dr_options to set or reset DR period options in Neviweb for load controler.
  • neviweb130.set_control_onOff set change status of output 1 and 2 on alarm multi-controller for sedna valve.

Catch Éco Sinopé signal for peak period

If you have at least on thermostat or one load controler registered with Éco Sinopé program, it is now possible to catch when Neviweb send the signal for pre-heating start period for thermostats or start signal for the load controler. Three attributes have been added to know that peak period is comming:

  • For thermostats:
    • As to now there is no attributes available to catch peak period start.
  • For load controler:
    • eco_status: set to «off» during normal operation, to «on» during peak period.
    • eco_power: set to «off» during normal operation, to «on» during peak period.
    • eco_optout: set to «off» during normal operation during peak period, to «on» if somebody turn on the load controler during peak period.

It is then possible to make an automation to set all devices ready for peak period.

Statistic for energy

Six attributes are added to track energy usage for devices:

  • hourly_kwh_count: total count of kwh hourly usage
  • daily_kwh_count: total count of kwh daily usage
  • monthly_kwh_count: total count of kwh monthly usage
  • hourly_kwh: kwh used for last hour
  • daily_kwh: kwh used for last day
  • monthly_kwh: kwh used for last month

They are polled from Neviweb every 30 minutes.

Track energy consumption in HA Energy dashboard

When energy attributes are available, it is possible to track energy consumption of individual devices in Home Assistant energy dashboard by creating a Template sensor

template:
  - sensor:
    - name: Basement energy usage
      unit_of_measurement: kWh
      device_class: energy
      state_class: total_increasing
      state: >
        {{ state_attr("climate.th1124zb_basement","hourly_kwh_count") }}

Troubleshooting

if you see your device in the log but it do not apear in entity list you need to add the device model number in the code. Or you can send the model number to me so I can add it in the code.

In the log look for lines:

[custom_components.neviweb130] Received gateway data: [{'id': 100225, 'identifier': '500b91400001f750', 'name': 'Chargeur auto', 'family': '2506',...
[custom_components.neviweb130] Received signature data: {'signature': {'model': 2506, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 9, 'middle': 2, 'major': 1}, 'hardRev': 2, 'protocol': 'sinopcom'}}

'family': '2506' and 'model': 2506 is what you need to find the model number of your device. It should be added in climate.py, light.py, switch.py or sensor.py near line 132 to 136 (climate.py) depending on device type. Than restart HA and your device will be listed in entity list.

If you get a stack trace related to a Neviweb130 component in your home-assistant.log file, you can file an issue in this repository.

You can also post in one of those threads to get help:

Turning on Neviweb130 debug messages in home-assistant.log file

To have a maximum of information to help you, please provide a snippet of your home-assistant.log file. I've added some debug log messages that could help diagnose the problem.

Add thoses lines to your configuration.yaml file

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

This will set default log level to warning for all your components, except for Neviweb which will display more detailed messages.

Error messages received from Neviweb

In you log you can get those messages from Neviweb:

  • VALINVLD : Invalid value sent to Neviweb.
  • SVCINVREQ: Invalid request sent to Neviweb, service do not exist or malformed request.
  • DVCCOMMTO: Device Communication Timeout: device do not respond fast enough or you are polling that device too frequently.
  • DVCACTNSPTD: Device action not supported. Service call is not supported for that specific device.
  • USRSESSEXP: User session expired. Reduce your scan_intervall below 6 minutes or your session will be terminated.
  • ACCSESSEXC: To many open session at the same time. This is common if you restart Home Assistant many time and/or you also have an open session on Neviweb.
  • DVCUNVLB: Device unavailable. Neviweb is unable to connect with specific device.
  • SVCERR: Service error. Device cannot send daily stat. Try later.

Customization

Install Custom-Ui custom_component via HACS and add the following in your code:

Icons for heat level: create folder www in the root folder .homeassistant/www copy the six icons there. You can find them under local/www feel free to improve my icons and let me know. (See icon_view2.png)

For each thermostat add this code in customize.yaml

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

In configuration.yaml add this

homeassistant:
  customize: !include customize.yaml

Customization for leak sensor

Same as above. -Create a sensor:

battery_spa:
        friendly_name: "Batterie spa"
        unit_of_measurement: "%"
        value_template: "{{ state_attr('sensor.neviweb130_sensor_spa', 'Battery_level') }}"

-For each leak detector add this to your customize.yaml file

sensor.battery_spa:
  templates:
    entity_picture: >
      if (entity.state < 20) return '/local/battery-1.png';
      if (entity.state < 40) return '/local/battery-2.png';
      if (entity.state < 60) return '/local/battery-3.png';
      if (entity.state < 80) return '/local/battery-4.png';
      return '/local/battery-5.png';
sensor.neviweb130_sensor_spa:    
      if (attributes.Leak_status == "ok") return ''/local/drop.png'';
      return ''/local/leak.png'';'

Icons are availables from www directory. copy them in config/www

If you find a bug it's very new release without all the doc from Sinopé.

TO DO

  • when this component will be stable. Merge it with The Neviweb component to poll all devices from only one component.

About

Neviweb custom component for Home Assistant to manage devices connected via a GT130 and wifi devices from Sinopé

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%