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
62 stars 13 forks source link

New HA Core Vr 2024.6.4 #251

Open PapaZodi opened 6 days ago

PapaZodi commented 6 days ago

I've been a long use of Neviweb, I'm trying to integrate it too HA. Yes, I am new to HA, I did have Hubitat before but had limitations.

I'm assuming these two error logs are related. From the HACS neviweb130 page, I followed the instructions, regarding the gateway info... What if I don't have more than one network for Neviweb, do I leave the Network2 blank?

Or would these be related to do the current version of HA Core vr 2024.6.4, I've just installed vr 2.7.8 of sinpe-130

neviweb130: username: (confidential) password: (confidential) network: (confidential) network2: scan_interval: 540 homekit_mode: False stat_interval: 1800

Here is my first Error Log

`Logger: homeassistant.setup Source: setup.py:269 First occurred: 9:20:56 PM (2 occurrences) Last logged: 9:20:58 PM

Setup failed for 'description': Integration not found. Setup failed for custom integration 'neviweb130': Invalid config.`

Here is my second Error Log

`Logger: homeassistant.config Source: config.py:1327 First occurred: 9:20:58 PM (1 occurrences) Last logged: 9:20:58 PM

Invalid config for 'neviweb130' at configuration.yaml, line 17: string value is None for dictionary value 'neviweb130->network2', got None, please check the docs at https://github.com/claudegel/sinope-130`

Most information has outdated info, which most are using earlier versions of HA. From what I've read from the HA site is the Config/Secreats.yaml, is fairely recent.

Can you assist?

claudegel commented 5 days ago

If you have only one network in Neviweb just remove the line about network2. You can also remove homekit_mode: False as it is the default value.

neviweb130:
  username: !secret climate_username
  password: !secret climate_password
  network: !secret climate_gateway130
  scan_interval: 360
  stat_interval: 1800

The secrets is there since long time it protect your sensitive data in configuration.yaml secrets.yaml:

climate_username: 'me@ha.com'
climate_password: '123456'
climate_gateway: 'my_home'

Put what you have for those three values.

PapaZodi commented 5 days ago

Thank you! so much, (merci beaucoup!), I've done only one adjustment, I added the '130' to the secrets.yaml, line 3.

I still have a lot to learn about yaml & Github. I've only used the Excel VBA coding for work, which is similar, but not the same.

Now I got these in my error message, see below;

Logger: homeassistant.setup
Source: setup.py:402
First occurred: 11:18:47 AM (1 occurrences)
Last logged: 11:18:47 AM

Error during setup of component neviweb130
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 402, in _async_setup_component
    result = await task
             ^^^^^^^^^^
  File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/neviweb130/__init__.py", line 135, in setup
    data = Neviweb130Data(hass_config[DOMAIN])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/neviweb130/__init__.py", line 168, in __init__
    self.neviweb130_client = Neviweb130Client(username, password, network, network2)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/neviweb130/__init__.py", line 199, in __init__
    self.__get_network()
  File "/config/custom_components/neviweb130/__init__.py", line 244, in __get_network
    raw_res = requests.get(LOCATIONS_URL + self._account, headers=self._headers,
                          ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
TypeError: can only concatenate str (not "NoneType") to str

_Which seems logical, the first 2 error lines should be fixed once my thermostat names are identified, in the init file, then remove the mention of Network2 from this init file to sync my HA configuration file and to remove the Network2 from _init__ is this correct?

Is there an easy line of code in yaml, to disregard the “Network2”?

claudegel commented 5 days ago

If you have only one location (network) in Neviweb just omit the line about network2 in configuration.yaml. See my example above, there is no line network2.

claudegel commented 4 days ago

Did you succeed ?

PapaZodi commented 3 days ago

Thank you for asking, but not yet, I haven't taken the time to try to fix error messages, mentioned above. I'm taking a look at this evening, I've notice, did we have the same details in the Troubleshooting section has last week, or is this new?

I have 12 sinope thermostats with 1 gateway 130. Looking over my climate.py, I don't see it being picked up by HA.

1 - TH1300ZB - around line 1731 3 - TH1134ZB-HC - around line 2917 8 - TH1124ZB-G2 - around line 1573

I can see where you are picking up some of this info for this section, but I'm a bit lost also, where you got some of these other details.

TH1300ZB

[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'}}

Once, I have these lines where (which folder) would I add them too?

Your assistance is much appreciated

claudegel commented 3 days ago

What devices do you have exactly. Only thermostats or also load controller. You don't have to play with the code except maybe for the TH1134ZB-HC because I don't have this one but it is supported in the component. Maybe we will have to do few little adjustment. Once you succeed to logging Neviweb you get this in your home-assistant.log file: [custom_components.neviweb130] Login response: ... [custom_components.neviweb130] Successfully logged in to: xxxxx (your id number in Neviweb) [custom_components.neviweb130] Number of networks found on Neviweb: 1 [custom_components.neviweb130] networks: [{'id': xxxxxx.... (Your network id in neviweb) [custom_components.neviweb130] Selecting «your network name» network ...

[custom_components.neviweb130] Received gateway data: [{'id': xxxx, ... (this line contain all your devices)

Then you will see one line for each device with the model number [custom_components.neviweb130] Received signature data: {'signature': {'model': 737, (Which is your TH1300ZB)

After all signature lines you will start to see devices setup: [custom_components.neviweb130.climate] Setting up neviweb130 climate «your thermostat»... [custom_components.neviweb130.switch] Setting up neviweb130 switch Chargeur auto...

And finally the update lines: [custom_components.neviweb130.climate] Updating neviweb130 climate «your thermostat»... [custom_components.neviweb130.switch] Updating neviweb130 switch chargeur auto....

To get better logging add this to your configuration.yaml file and restart HA

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

If you see all this your devices can be seen in developer tools / states look for line containing climate.neviweb130climate«thermostats_name» and switch.neviweb130_switch_chargeur_auto

After I'll show you how to see your device in the dashboard

claudegel commented 3 days ago

At the beginning of file climate.py you have all thermostat model number. ex. 737 for TH1300ZB, 1134 for TH1134ZB-HC, 300 for TH1124ZB-G2 in the file switch.py you have the model number for your load controller 2506 for RM3250ZB

claudegel commented 3 days ago

I have TH1123ZB-G2, TH1124ZB-G2, TH1300ZB and they are all picked up by neviweb130. For the TH1134ZB-HC if it is not picked up it is just because the model number is wrong. We will fix that after other thermostats are working.

PapaZodi commented 2 days ago

I'm still fairly new to HA should I do the updates when available? Core 2024.7.0 is now available.

I did add your code and did a restart, here are my log details Logger: homeassistant.setup Source: setup.py:402 First occurred: 6:52:15 PM (1 occurrences) Last logged: 6:52:15 PM

Error during setup of component neviweb130 Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/setup.py", line 402, in _async_setup_component result = await task ^^^^^^^^^^ File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/neviweb130/init.py", line 135, in setup data = Neviweb130Data(hass_config[DOMAIN]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/neviweb130/init.py", line 168, in init self.neviweb130_client = Neviweb130Client(username, password, network, network2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/neviweb130/init.py", line 199, in init self.get_network() File "/config/custom_components/neviweb130/init.py", line 244, in get_network raw_res = requests.get(LOCATIONS_URL + self._account, headers=self._headers,


TypeError: can only concatenate str (not "NoneType") to str
PapaZodi commented 2 days ago

wait a min my password in HA needs to be updated

PapaZodi commented 2 days ago

Success for connecting to neviweb to HA

PapaZodi commented 2 days ago

I'm now only missing those TH1134ZB-HC image

PapaZodi commented 2 days ago

Is this the info you needed for the TH1134ZB-HC image

claudegel commented 2 days ago

It is always a good idea to do all updates about HA or any custom_component. yes this is what I need, the model number 1512 Just change line # 307 from: DEVICE_MODEL_HC = [1134] to DEVICE_MODEL_HC = [1512]

and your thermostat will be available. Then we will need to validate if we receive all the attributes for that thermostat from Neviweb

claudegel commented 2 days ago

Do you also have HP6000ZB-xx inter connect for heat pump ?

PapaZodi commented 1 day ago

Sorry, at the moment I only have the thermostat.

I did do the updates, updated from DEVICE_MODEL_HC = [1134] to DEVICE_MODEL_HC = [1512]

did a restart, but they are not showing up in my entity list image

Is there something else I can try?

claudegel commented 1 day ago

Ok look in your home-assistant.log there is a line [custom_components.neviweb130.climate] Setting up neviweb130 climate «name of your TH1134ZB-HC» if it is there then your device is detected after there will be a line like this [custom_components.neviweb130.climate] Updating neviweb130 climate «name of your TH1134ZB-HC» with a list of parameters. It is possible that one parameter is missing or wrong. In that case you should have many lines of error with many ^^^^^^^^^^^^^^^^^ This will give us the problem

claudegel commented 1 day ago

You should see in log also [custom_components.neviweb130] Received signature data: {'signature': {'model': 1512...

PapaZodi commented 1 day ago

I'm trying to check the logs.

Could it be, that when I did HA update/restart, I can't seem to lookup info before that period of time the window just keep turning.

Would there be another way to find out?

image

claudegel commented 1 day ago

When you restart HA the log file is restarted to zero and HA start to write in it the new log as it boot and update the devices. The best way is to open de file home-assistant.log located in the config directory where the configuration.yaml is located.

PapaZodi commented 10 hours ago

I was able to locate these lines, but they are still not showing up in my entities

2024-07-04 17:30:28.361 DEBUG (MainThread) [custom_components.neviweb130.climate] Setting up neviweb130 climate TH1134ZB-HC: {'id': 539696, 'identifier': '287681fffe55267d-f082c0fffe56cb06', 'name': 'TH1134ZB-HC', 'family': '1512', 'signature': {'model': 1512, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 2, 'major': 0}, 'hardRev': 3, 'protocol': 'sinopcom'}, 'location$id': 103101, 'parentDevice$id': 538878, 'group$id': 267031, 'orderIdx': 0, 'sku': 'TH1134ZB-HC', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/en/interlocking-solution/', 'url_fr': 'https://www.sinopetech.com/fr/interlocking-solution/', 'hcDevice': None}
2024-07-04 17:30:28.361 DEBUG (MainThread) [custom_components.neviweb130.climate] Setting up neviweb130 climate TH1134ZB-HC: {'id': 540118, 'identifier': '287681fffe55267d-e0798dfffe625177', 'name': 'TH1134ZB-HC', 'family': '1512', 'signature': {'model': 1512, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 2, 'major': 0}, 'hardRev': 3, 'protocol': 'sinopcom'}, 'location$id': 103101, 'parentDevice$id': 538878, 'group$id': 267340, 'orderIdx': 0, 'sku': 'TH1134ZB-HC', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/en/interlocking-solution/', 'url_fr': 'https://www.sinopetech.com/fr/interlocking-solution/', 'hcDevice': None}
2024-07-04 17:30:28.361 DEBUG (MainThread) [custom_components.neviweb130.climate] Setting up neviweb130 climate TH1134ZB-HC: {'id': 549957, 'identifier': '287681fffe55267d-943469fffeb73a8a', 'name': 'TH1134ZB-HC', 'family': '1512', 'signature': {'model': 1512, 'modelCfg': 0, 'softBuildCfg': 0, 'softVersion': {'minor': 2, 'middle': 2, 'major': 0}, 'hardRev': 3, 'protocol': 'sinopcom'}, 'location$id': 103101, 'parentDevice$id': 538878, 'group$id': 267961, 'orderIdx': 0, 'sku': 'TH1134ZB-HC', 'vendor': 'Sinopé', 'url_en': 'https://www.sinopetech.com/en/interlocking-solution/', 'url_fr': 'https://www.sinopetech.com/fr/interlocking-solution/', 'hcDevice': None}
claudegel commented 9 hours ago

OK fine you have three TH1134ZB_HC They are initialized properly Now we need to check if they are updated. chack for line [custom_components.neviweb130.climate] Updating neviweb130 climate TH1134ZB-HC It will probably give many line with error Check for something like this: [homeassistant.helpers.entity] Update for climate.neviweb130_climate_TH1134ZB-HC fails Then there is many error line and the last one say something like unknown attribute... Send me those lines

claudegel commented 9 hours ago

In climate.py comment line #3028 by adding at the beginning of the line a # # self._heat_level = device_data[ATTR_OUTPUT_PERCENT_DISPLAY]