claudegel / sinope-130

Neviweb130 custom component for Home Assistant to manage devices connected via a GT130 and wifi devices from Sinopé
GNU General Public License v3.0
68 stars 15 forks source link

Received gateway data: {'error': {'code': 'VALINVLD', #21

Closed marc-trudel closed 3 years ago

marc-trudel commented 3 years ago

Hi Claude I am trying to test your integration in HA. I fail to set it up properly. I get error DEBUG (SyncWorker_1) [custom_components.neviweb130] Received gateway data: {'error': {'code': 'VALINVLD', 'data': {'value': None, 'name': 'location$id'}}} 2020-12-29 16:04:34 ERROR (MainThread) [homeassistant.setup] Error during setup of component neviweb130 Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component result = await task File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/config/custom_components/neviweb130/init.py", line 41, in setup data = Neviweb130Data(hass_config[DOMAIN]) File "/config/custom_components/neviweb130/init.py", line 64, in init self.neviweb130_client = Neviweb130Client(username, password, network) File "/config/custom_components/neviweb130/init.py", line 100, in init self.__get_gateway_data() File "/config/custom_components/neviweb130/init.py", line 175, in __get_gateway_data data = self.get_device_attributes(device["id"], [ATTR_SIGNATURE]) TypeError: string indices must be integers

I set this config neviweb130: username: 'xxxxx' password: 'xxxx' network: '' scan_interval: 360

For network I dont know what to put. In french, I did not find the term "Reseau" anywere in Neviweb. I have a GT130 name that is GT130 too. My "Location/Emplacement" name is Zigbee But nothing that says "network/réseau"

it did connect to Neviweb correctly. 2020-12-29 15:43:57 DEBUG (SyncWorker_1) [custom_components.neviweb130] Login response: {'user': {'id': xxxxx, 'role': 'owner', 'email': 'xxxxxxxxxxxxx', 'locale': 'fr', 'format': {'time': '24', 'temperature': 'c'}, 'initialized': 1}, 'account': {'id': xxxxx, 'interface': 'neviweb', 'type': 'free'}, 'iat': 9999999999999999999999, 'session': '79c4223423453daa407d9e36a8fddfsfsdfs33dcb7739bb8618', 'refreshToken': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'} 2020-12-29 15:43:57 DEBUG (SyncWorker_1) [custom_components.neviweb130] Successfully logged in

OK I figured it out ... though I thought it was the first thing I tried ... seems not.

"Network" in the configuration is called "Location or Emplacement" in Neviweb. Not "Network" I put the Location name "Maison" in the "Network" in the configuration file and now it detected all my devices.

Claude maybe you can add a more descriptive message if the "Network" is wrong. See the "Received gateway data: " message above. Contrary to what the documentation says, leaving Network to '' in the configuration did not work in my situation. Look at the log above to see what Neviweb returned

marc-trudel commented 3 years ago

Issue with TH1500ZB. Neviweb reports the Family to be 737-DP and not 1500.

So as a temporary patch I deactivated the IF in climate.py that checks implemented devices. With this IF disabled, the TH1500ZB shows in HA. I tried to add the 737-DP this way DEVICE_MODEL_HEAT = [1123, 1124, 1500, '737-DP'] but it had no effect.

Here is my temporary code. `async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): """Set up the neviweb130 thermostats.""" data = hass.data[DOMAIN]

devices = []
for device_info in data.neviweb130_client.gateway_data:
   # if "signature" in device_info and \
   #     "model" in device_info["signature"] and \
   #     device_info["signature"]["model"] in IMPLEMENTED_DEVICE_MODEL:
        device_name = "{} {}".format(DEFAULT_NAME, device_info["name"])
        devices.append(Neviweb130Thermostat(data, device_info, device_name))

async_add_entities(devices, True)

` Being totally new to HA, I have no clue how to properly fix this. Adding your integration was my VERY first step after installing HA.

Here is my log. I added linefeed to the gateway data so it is easier to compare devices row by row. Notice the TH1500ZB reports the family to be 737-DP (i put it in bold so the real value is not enclosed in ) 2020-12-29 17:25:44 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received gateway data: [{'id': 101281, 'identifier': '500b914000022aca', 'name': 'Chambre Marc', 'family': '1123', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16772, 'orderIdx': 0, 'sku': 'TH1123ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 119957, 'identifier': '000d6f0015663870', 'name': 'Chaufferette', 'family': '2600', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16459, 'orderIdx': 0, 'sku': 'SP2600ZB', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/produit/prise-electrique-intelligente-zigbee/', 'url_fr': 'https://www.sinopetech.com/en/product/smart-plug-zigbee/'}, {'id': 101279, 'identifier': '500b914000022cbb', 'name': 'Cuisine', 'family': '1123', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16429, 'orderIdx': 0, 'sku': 'TH1123ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 148459, 'identifier': '000d6f0015662295', 'name': 'Fan Salon', 'family': '2600', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16771, 'orderIdx': 0, 'sku': 'SP2600ZB', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/produit/prise-electrique-intelligente-zigbee/', 'url_fr': 'https://www.sinopetech.com/en/product/smart-plug-zigbee/'}, {'id': 148457, 'identifier': '500b91400001c1c1', 'name': 'Fuite bain', 'family': '5051', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 21589, 'orderIdx': 0, 'sku': 'WL4200S', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 111037, 'identifier': '500b914000015e0b', 'name': 'Fuite cuisine', 'family': '5051', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16429, 'orderIdx': 0, 'sku': 'WL4200S', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 111041, 'identifier': '000d6f0015662167', 'name': 'Lampe salon', 'family': '2600', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16459, 'orderIdx': 0, 'sku': 'SP2600ZB', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/produit/prise-electrique-intelligente-zigbee/', 'url_fr': 'https://www.sinopetech.com/en/product/smart-plug-zigbee/'}, {'id': 111042, 'identifier': '000d6f0015661d76', 'name': 'Lampe sous-sol', 'family': '2600', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 21587, 'orderIdx': 0, 'sku': 'SP2600ZB', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/produit/prise-electrique-intelligente-zigbee/', 'url_fr': 'https://www.sinopetech.com/en/product/smart-plug-zigbee/'}, {'id': 119955, 'identifier': '000d6f00156639d8', 'name': 'Lampe Tortue', 'family': '2600', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16459, 'orderIdx': 0, 'sku': 'SP2600ZB', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/produit/prise-electrique-intelligente-zigbee/', 'url_fr': 'https://www.sinopetech.com/en/product/smart-plug-zigbee/'}, {'id': 101384, 'identifier': '500b914000012b56', 'name': 'Lumière avant', 'family': '2121', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 21818, 'orderIdx': 0, 'sku': 'SW2500ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 101418, 'identifier': '500b914000012119', 'name': 'Lumière Spots', 'family': '2131', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 21818, 'orderIdx': 0, 'sku': 'DM2500ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 100684, 'identifier': 'ccccccfffe6fb3ce', 'name': 'MyGT130', 'family': 'GT130', 'location$id': 16886, 'parentDevice$id': None, 'group$id': 21587, 'orderIdx': 0, 'sku': 'GT130', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/produit/passerelle-zigbee/', 'url_fr': 'https://www.sinopetech.com/en/product/gateway-zigbee/'}, {'id': 121805, 'identifier': '500b914000012e79', 'name': 'Pompe piscine', 'family': '2506', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 25253, 'orderIdx': 0, 'sku': 'RM3250ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 100685, 'identifier': '500b914000023ab1', 'name': 'Salle a diner', 'family': '1123', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16459, 'orderIdx': 0, 'sku': 'TH1123ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 111040, 'identifier': '500b91400001ca1e', 'name': 'Salle de bain', 'family': '1123', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 21589, 'orderIdx': 0, 'sku': 'TH1123ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 101280, 'identifier': '500b9140000229a0', 'name': 'Salle de lavage', 'family': '1123', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 35292, 'orderIdx': 0, 'sku': 'TH1123ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 134752, 'identifier': '500b914000021fd7', 'name': 'Salon', 'family': '737-DP', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 16771, 'orderIdx': 0, 'sku': 'TH1500ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}, {'id': 111038, 'identifier': '500b91400001c7f3', 'name': 'Sous-sol', 'family': '1123', 'location$id': 16886, 'parentDevice$id': 100684, 'group$id': 21587, 'orderIdx': 0, 'sku': 'TH1123ZB', 'vendor': 'Sinopé', 'url_en': None, 'url_fr': None}] 2020-12-29 17:25:45 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 1123, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 4, 'middle': 6, 'major': 0}, 'hardRev': 2, 'protocol': 'sinopcom'}} 2020-12-29 17:25:45 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2600, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 9, 'middle': 0, 'major': 0}, 'hardRev': 1, 'protocol': 'sinopcom'}} 2020-12-29 17:25:45 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 1123, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 4, 'middle': 6, 'major': 0}, 'hardRev': 2, 'protocol': 'sinopcom'}} 2020-12-29 17:25:45 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2600, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 9, 'middle': 0, 'major': 0}, 'hardRev': 1, 'protocol': 'sinopcom'}} 2020-12-29 17:25:45 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 5051, 'modelCfg': 1, 'softBuildCfg': 0, 'softVersion': {'minor': 3, 'middle': 1, 'major': 1}, 'hardRev': 0, 'protocol': 'sinopcom'}} 2020-12-29 17:25:45 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 5051, 'modelCfg': 1, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 0, 'major': 1}, 'hardRev': 0, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2600, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 9, 'middle': 0, 'major': 0}, 'hardRev': 1, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2600, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 9, 'middle': 0, 'major': 0}, 'hardRev': 1, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2600, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 9, 'middle': 0, 'major': 0}, 'hardRev': 1, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2121, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 3, 'major': 1}, 'hardRev': 0, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2131, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 3, 'major': 1}, 'hardRev': 0, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 130, 'modelCfg': 1, 'softBuildCfg': 0, 'softVersion': {'major': 1, 'middle': 13, 'minor': 0}, 'hardRev': 3, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 2506, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 3, 'major': 1}, 'hardRev': 0, 'protocol': 'sinopcom'}} 2020-12-29 17:25:46 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 1123, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 4, 'middle': 6, 'major': 0}, 'hardRev': 2, 'protocol': 'sinopcom'}} 2020-12-29 17:25:47 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 1123, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 4, 'middle': 6, 'major': 0}, 'hardRev': 2, 'protocol': 'sinopcom'}} 2020-12-29 17:25:47 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 1123, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 4, 'middle': 6, 'major': 0}, 'hardRev': 2, 'protocol': 'sinopcom'}} 2020-12-29 17:25:47 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 7373, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 3, 'middle': 0, 'major': 0}, 'hardRev': 0, 'protocol': 'sinopcom'}} 2020-12-29 17:25:47 DEBUG (SyncWorker_2) [custom_components.neviweb130] Received signature data: {'signature': {'model': 1123, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 4, 'middle': 6, 'major': 0}, 'hardRev': 2, 'protocol': 'sinopcom'}}

claudegel commented 3 years ago

Ok first you were missing the network parameter. It's the name you have set in Neviweb for your GT130 zigbee devices.It's the Location name (Emplacement). I'll add more info in debug message for this. So in your HA config you will have:

neviweb130:
  username: !secret climate_username
  password: !secret climate_password
  network: !secret climate_gateway130 <---- you can remove completely this line if you have only one location in Neviweb
  scan_interval: 360

The !secret climate_username etc is for more security. those parameter are placed in the file secrets.yaml in config dir.

climate_username: 'me@my.place'
climate_password: '12345'
climate_gateway130: 'Location'

In configuration.yaml add this at the end

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

Then restart HA. You will find all debug in file home-assistant.log

For your devices it is not the family I need but the model. I see in your log those model number Received signature data: {'signature': {'model': 1123, 1123 is for TH1123ZB 2600 is for SP2600ZB 5051is for WL4200ZB 2121 is for SW2500ZB 2131 is for DM2500ZB 130 is for your GT130 2506 is for RM3250ZB 7373 <----- should be the TH1500ZB ?

so in climate.py just replace 1500 by 7373 and it should work

claudegel commented 3 years ago

Next step will be to sniff some information when you connect to Neviweb to check all parameter exchanged between you browser and Neviweb for your TH 1500ZB. If needed I'll add more code in my neviweb130 to take care of every parameter

marc-trudel commented 3 years ago

Hi Claude First, I will start by telling you how much I appreciate all the time you spent programming this integration. It is awesome and was the incentive that I needed to start with HA. My home uses 2 brands of iOT devices; Neviweb and Sonoff. I dont remember what I was Googling but when I stepped on a page saying there was an HA integration for Neviweb it was the kick in the ass to go ahead with HA. What I love with Neviweb is their incredible power consumption graphics that I was not willing to loose by changing platform like SmartThings or Hubitat.

So thank you so much for your integration.

I added 7373 to the climate.py file and reactivated the IF. It works fine now. the TH1500ZB is properly detected by the IF I also made the following changes.... I did not like the fact that each device name was prefixed with "neviweb130 devicetype" so I added some constants to let users decide of the prefixes.

const.py

# Added by Marc Trudel and used in each .py file
# replaced hard coded DEFAULT_NAME in each .py file
# this change let the user decide of the prefix automatically added to each devices name.
# You may leave each prefix empty if desired.
ATTR_DEVICE_NAME_PREFIX_CLIMATE = "Thermostat"
ATTR_DEVICE_NAME_PREFIX_LIGHT = "Light"
ATTR_DEVICE_NAME_PREFIX_DIMMER = "Dimmer"
ATTR_DEVICE_NAME_PREFIX_SENSOR = "Sensor"
ATTR_DEVICE_NAME_PREFIX_SWITCH = "Switch"
climate.py
from .const import (DOMAIN, ATTR_SETPOINT_MODE, ATTR_ROOM_SETPOINT,
    ATTR_OUTPUT_PERCENT_DISPLAY, ATTR_ROOM_TEMPERATURE, ATTR_ROOM_SETPOINT_MIN,
    ATTR_ROOM_SETPOINT_MAX, ATTR_WATTAGE, ATTR_GFCI_STATUS, ATTR_FLOOR_MODE, MODE_AUTO, MODE_AUTO_BYPASS, 
    MODE_MANUAL, MODE_OFF, MODE_AWAY, ATTR_FLOOR_AUX, ATTR_FLOOR_OUTPUT2, ATTR_KEYPAD, ATTR_WIFI_FLOOR_OUTPUT1,
    ATTR_WIFI_WATTAGE, ATTR_WIFI, ATTR_WIFI_DISPLAY2, ATTR_WIFI_KEYPAD

    **,ATTR_DEVICE_NAME_PREFIX_CLIMATE  # 2020-12-30 MT**
    )

_LOGGER = logging.getLogger(__name__)

SUPPORT_FLAGS = (SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE)

DEFAULT_NAME = **ATTR_DEVICE_NAME_PREFIX_CLIMATE    #"neviweb130 climate"** 

I did the same for each .py file. for light.py I did... added to .const ATTR_DEVICE_NAME_PREFIX_LIGHT,ATTR_DEVICE_NAME_PREFIX_DIMMER # 2020-12-30 MT

        device_name = '{} {} {}'.format(
            '', # 2020-12-30 MT DEFAULT_NAME, 

            # 2020-12-30 MT Below, replaced literal with const ATTR_DEVICE_NAME_PREFIX_xxxxx
            ATTR_DEVICE_NAME_PREFIX_DIMMER if device_info["signature"]["model"] in DEVICE_MODEL_DIMMER 
            else 
            ATTR_DEVICE_NAME_PREFIX_LIGHT, device_info["name"])

Personally, I left all prefixes empty since my devices name are descriptive enough You may implement these changes in your code they way you want. It is a 5 min change. You may drop my comments and make these changes yours. Notice that I used 2 prefixes for lights (DIMMER and LIGHT) Thank you

claudegel commented 3 years ago

Hi Marc. I'll check your idea of personalized prefix name this weekend. It sound good but I need to check that if we change the prefix it could affect device list in HA. For those people who have many devices already in HA it could be complicated to go over all there automation to make the name change. So we should keep the default prefix but add the possibility to change it if we want. Having the users dig in the code to change the prefix is not the preferred way. But I thing we can have some optional parameters in configuration.yaml to overwrite the default prefix name. The devices name is use in background by HA and you still have the possibility to change the devices name in the front end by changing the friendly name of each devices. I'm happy that the TH1500ZB work. If you could, can you check with your browser when you're logged in Neviweb. Open the browser debug console and send me the parameter list that is sent by the browser to Neviweb when you are in the configuration of your TH1500ZB device. It will give me all the parameters that I need to manage in neviweb130 to fully support that thermostat. If you are using Firefox then, once in Neviweb, just hit «Ctrl Maj K» to open the console at the bottom of the screen. you will see all the trafic exchanged to and from Neviweb. Each line is a request that you can open tosee the parameter s sent to Neviweb and the answer received from Neviweb. This way I'll be able to fine tune neviweb130 for your TH1500ZB

claudegel commented 3 years ago

I've done a new release with TH1500ZB support included

marc-trudel commented 3 years ago

Hi Claude I use Chrome and am not used to debug mode. Here is the info I could retrieve

Does it help ?

Request URL: https://neviweb.com/api/device/134752/attribute?attributes=roomTemperature,outputPercentDisplay,roomSetpoint Request Method: GET Status Code: 200 Remote Address: xxx.xxx.xxx.xxx:xxx Referrer Policy: strict-origin-when-cross-origin content-encoding: gzip content-type: application/json date: Sun, 03 Jan 2021 22:03:33 GMT server: nginx/1.16.1 session-id: 7ea7abc28a15c4ce280a5eab032c3c67af8f0dd6f020a245 strict-transport-security: max-age=31536000; includeSubDomains :authority: neviweb.com :method: GET :path: /api/device/134752/attribute?attributes=roomTemperature,outputPercentDisplay,roomSetpoint :scheme: https accept: application/json, text/plain, / accept-encoding: gzip, deflate, br accept-language: e

Marc Trudel, B.Sc.A. • Associé 514 316.6650, poste 210 • e3k.cohttp://blapriseae3k.co/

From: Claude Gelinas notifications@github.com Sent: 30 décembre 2020 19:00 To: claudegel/sinope-130 sinope-130@noreply.github.com Cc: Marc Trudel mtrudel@e3k.co; Author author@noreply.github.com Subject: Re: [claudegel/sinope-130] Received gateway data: {'error': {'code': 'VALINVLD', (#21)

Hi Marc. I'll check your idea of personalized prefix name this weekend. It sound good but I need to check that if we change the prefix it could affect device list in HA. For those people who have many devices already in HA it could be complicated to go over all there automation to make the name change. So we should keep the default prefix but add the possibility to change it if we want. Having the users dig in the code to change the prefix is not the preferred way. But I thing we can have some optional parameters in configuration.yaml to overwrite the default prefix name. The devices name is use in background by HA and you still have the possibility to change the devices name in the front end by changing the friendly name of each devices. I'm happy that the TH1500ZB work. If you could, can you check with your browser when you're logged in Neviweb. Open the browser debug console and send me the parameter list that is sent by the browser to Neviweb when you are in the configuration of your TH1500ZB device. It will give me all the parameters that I need to manage in neviweb130 to fully support that thermostat. If you are using Firefox then, once in Neviweb, just hit «Ctrl Maj K» to open the console at the bottom of the screen. you will see all the trafic exchanged to and from Neviweb. Each line is a request that you can open tosee the parameter s sent to Neviweb and the answer received from Neviweb. This way I'll be able to fine tune neviweb130 for your TH1500ZB

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/claudegel/sinope-130/issues/21#issuecomment-752794970, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKEDMTWGK4E4FKREYG2H7BDSXO5GPANCNFSM4VNTKSKA.

claudegel commented 3 years ago

Hi  Marc,The line I need is attributes....You have the three basic one, roomtemperature, roomsetpoint and outputpercentdisplayTo get the other one, go into your device and open the configuration, the gear button.You will get more attributes.This is what I needClaudeClaude Gelinas agr.Phyto Ressources inc -------- Message d'origine --------De : mtrudel-e3k notifications@github.com Date : 21-01-03 5 h 14 p.m. (GMT-05:00) À : claudegel/sinope-130 sinope-130@noreply.github.com Cc : Claude Gelinas claude@phyto.qc.ca, State change state_change@noreply.github.com Objet : Re: [claudegel/sinope-130] Received gateway data: {'error': {'code': 'VALINVLD', (#21)

Hi Claude

I use Chrome and am not used to debug mode.

Here is the info I could retrieve

Does it help ?

Request URL: https://neviweb.com/api/device/134752/attribute?attributes=roomTemperature,outputPercentDisplay,roomSetpoint

Request Method: GET

Status Code: 200

Remote Address: xxx.xxx.xxx.xxx:xxx

Referrer Policy: strict-origin-when-cross-origin

content-encoding: gzip

content-type: application/json

date: Sun, 03 Jan 2021 22:03:33 GMT

server: nginx/1.16.1

session-id: 7ea7abc28a15c4ce280a5eab032c3c67af8f0dd6f020a245

strict-transport-security: max-age=31536000; includeSubDomains

:authority: neviweb.com

:method: GET

:path: /api/device/134752/attribute?attributes=roomTemperature,outputPercentDisplay,roomSetpoint

:scheme: https

accept: application/json, text/plain, /

accept-encoding: gzip, deflate, br

accept-language: e

Marc Trudel, B.Sc.A. • Associé

514 316.6650, poste 210 • e3k.cohttp://blapriseae3k.co/

From: Claude Gelinas notifications@github.com

Sent: 30 décembre 2020 19:00

To: claudegel/sinope-130 sinope-130@noreply.github.com

Cc: Marc Trudel mtrudel@e3k.co; Author author@noreply.github.com

Subject: Re: [claudegel/sinope-130] Received gateway data: {'error': {'code': 'VALINVLD', (#21)

Hi Marc. I'll check your idea of personalized prefix name this weekend. It sound good but I need to check that if we change the prefix it could affect device list in HA. For those people who have many devices already in HA it could be complicated to go over all there automation to make the name change. So we should keep the default prefix but add the possibility to change it if we want. Having the users dig in the code to change the prefix is not the preferred way. But I thing we can have some optional parameters in configuration.yaml to overwrite the default prefix name.

The devices name is use in background by HA and you still have the possibility to change the devices name in the front end by changing the friendly name of each devices.

I'm happy that the TH1500ZB work. If you could, can you check with your browser when you're logged in Neviweb. Open the browser debug console and send me the parameter list that is sent by the browser to Neviweb when you are in the configuration of your TH1500ZB device. It will give me all the parameters that I need to manage in neviweb130 to fully support that thermostat.

If you are using Firefox then, once in Neviweb, just hit «Ctrl Maj K» to open the console at the bottom of the screen. you will see all the trafic exchanged to and from Neviweb. Each line is a request that you can open tosee the parameter s sent to Neviweb and the answer received from Neviweb. This way I'll be able to fine tune neviweb130 for your TH1500ZB

You are receiving this because you authored the thread.

Reply to this email directly, view it on GitHubhttps://github.com/claudegel/sinope-130/issues/21#issuecomment-752794970, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AKEDMTWGK4E4FKREYG2H7BDSXO5GPANCNFSM4VNTKSKA.

—You are receiving this because you modified the open/close state.Reply to this email directly, view it on GitHub, or unsubscribe.