From e477f5970319711409e32939eb7a645e5a37e2a0 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Wed, 3 Jul 2024 21:35:49 -0400 Subject: [PATCH 1/9] Add model number for TH1134ZB-HC --- custom_components/neviweb130/climate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/neviweb130/climate.py b/custom_components/neviweb130/climate.py index 91009a4..c264c63 100644 --- a/custom_components/neviweb130/climate.py +++ b/custom_components/neviweb130/climate.py @@ -9,7 +9,7 @@ model 7372 = thermostat TH1400ZB low voltage model 1124 = thermostat OTH4000-ZB Ouellet model 737 = thermostat OTH3600-GA-ZB Ouellet -model 1134 = Thermostat TH1134ZB-HC for heating/cooling interlocking +model 1512 = Thermostat TH1134ZB-HC for heating/cooling interlocking Support for Neviweb wifi thermostats model 1510 = thermostat TH1123WF 3000W (wifi) @@ -304,7 +304,7 @@ DEVICE_MODEL_HEAT = [1123, 1124] DEVICE_MODEL_DOUBLE = [7373] DEVICE_MODEL_HEAT_G2 = [300] -DEVICE_MODEL_HC = [1134] +DEVICE_MODEL_HC = [1512] DEVICE_MODEL_HEAT_PUMP = [6810, 6811, 6812] IMPLEMENTED_DEVICE_MODEL = DEVICE_MODEL_HEAT + DEVICE_MODEL_FLOOR + DEVICE_MODEL_LOW + DEVICE_MODEL_WIFI_FLOOR + DEVICE_MODEL_WIFI + DEVICE_MODEL_LOW_WIFI + DEVICE_MODEL_HEAT_G2 + DEVICE_MODEL_HC + DEVICE_MODEL_DOUBLE + DEVICE_MODEL_HEAT_PUMP From 0de76aecab848e6a27d52ceeefd7d3e78588dc85 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Wed, 3 Jul 2024 21:36:34 -0400 Subject: [PATCH 2/9] Push version to 2.7.9 --- custom_components/neviweb130/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/neviweb130/__init__.py b/custom_components/neviweb130/__init__.py index 91fe792..317fe11 100644 --- a/custom_components/neviweb130/__init__.py +++ b/custom_components/neviweb130/__init__.py @@ -117,7 +117,7 @@ HOMEKIT_MODE, STAT_INTERVAL, ) -VERSION = '2.7.8' +VERSION = '2.7.9' _LOGGER = logging.getLogger(__name__) From 3f8f000699fd3dd0b89098af52174844ff933963 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Wed, 3 Jul 2024 21:37:07 -0400 Subject: [PATCH 3/9] Push version to 2.7.9 --- custom_components/neviweb130/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/neviweb130/manifest.json b/custom_components/neviweb130/manifest.json index 7c436e9..1933954 100644 --- a/custom_components/neviweb130/manifest.json +++ b/custom_components/neviweb130/manifest.json @@ -5,6 +5,6 @@ "dependencies": [], "codeowners": ["@claudegel"], "requirements": [], - "version": "2.7.8", + "version": "2.7.9", "homeassistant": "2024.2.1" } From ab6faa06425693f409f69235b94f37e3dcfbda63 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Wed, 3 Jul 2024 21:37:36 -0400 Subject: [PATCH 4/9] Push version to 2.7.9 --- custom_components.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components.json b/custom_components.json index c8987bb..044edb7 100644 --- a/custom_components.json +++ b/custom_components.json @@ -1,6 +1,6 @@ { "neviweb130": { - "version": "2.7.8", + "version": "2.7.9", "local_location": "/custom_components/neviweb130/__init__.py", "remote_location": "https://github.com/claudegel/sinope-130/tree/master/custom_components/__init__.py", "visit_repo": "https://github.com/claudegel/sinope-130", From 790a93b4f0d9f32f58647a599520c2f0d1358470 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Fri, 5 Jul 2024 20:42:54 -0400 Subject: [PATCH 5/9] Add attributes for TH1134ZB-HC --- custom_components/neviweb130/climate.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/custom_components/neviweb130/climate.py b/custom_components/neviweb130/climate.py index c264c63..b608b62 100644 --- a/custom_components/neviweb130/climate.py +++ b/custom_components/neviweb130/climate.py @@ -95,7 +95,6 @@ ATTR_DRSTATUS, ATTR_DRSETPOINT, ATTR_EARLY_START, - ATTR_ERROR_CODE_SET1, ATTR_FAN_CAP, ATTR_FAN_SPEED, ATTR_FAN_SWING_CAP, @@ -2970,6 +2969,10 @@ def __init__(self, data, device_info, name, sku, firmware): self._fan_swing_cap = None self._fan_swing_cap_vert = None self._fan_swing_cap_horiz = None + self._display_cap = None + self._display_conf = None + self._sound_cap = None + self._sound_conf = None self._balance_pt = None self._heat_lock_temp = None self._cool_lock_temp = None @@ -3049,6 +3052,10 @@ def update(self): self._heat_lock_temp = device_data[ATTR_HEAT_LOCK_TEMP] self._cool_lock_temp = device_data[ATTR_COOL_LOCK_TEMP] self._avail_mode = device_data[ATTR_AVAIL_MODE] + self._display_cap = device_data[ATTR_DISPLAY_CAP] + self._display_conf = device_data[ATTR_DISPLAY_CONF] + self._sound_cap = device_data[ATTR_SOUND_CAP] + self._sound_conf = device_data[ATTR_SOUND_CONF] elif device_data["errorCode"] == "ReadTimeout": _LOGGER.warning("A timeout occur during data update. Device %s do not respond. Check your network... (%s)", self._name, device_data) else: @@ -3085,6 +3092,10 @@ def extra_state_attributes(self): 'fan_swing_capability': self._fan_swing_cap, 'fan_swing_capability_vertical': self._fan_swing_cap_vert, 'fan_swing_capability_horizontal': self._fan_swing_cap_horiz, + 'display_conf': self._display_conf, + 'display_capability': self._display_cap, + 'sound_conf': self._sound_conf, + 'sound_capability': self._sound_cap, 'balance_point': self._balance_pt, 'heat_lock_temp': self._heat_lock_temp, 'cool_lock_temp': self._cool_lock_temp, @@ -3267,6 +3278,10 @@ def extra_state_attributes(self): 'temperature_format': self._temperature_format, 'keypad': lock_to_ha(self._keypad), 'fan_speed': self._fan_speed, + 'display_conf': self._display_conf, + 'display_capability': self._display_cap, + 'sound_conf': self._sound_conf, + 'sound_capability': self._sound_cap, 'fan_swing_vertical': self._fan_swing_vert, 'fan_swing_horizontal': self._fan_swing_horiz, 'fan_capability': self._fan_cap, From 33771f7ba698ec402aa40b07021fffd3ceb38a35 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Sun, 7 Jul 2024 16:06:00 -0400 Subject: [PATCH 6/9] Temp fix for room temperature on TH1134ZB-HC --- custom_components/neviweb130/climate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/neviweb130/climate.py b/custom_components/neviweb130/climate.py index b608b62..4db87d1 100644 --- a/custom_components/neviweb130/climate.py +++ b/custom_components/neviweb130/climate.py @@ -3009,8 +3009,8 @@ def update(self): if "error" not in device_data: if "errorCode" not in device_data: self._cur_temp_before = self._cur_temp - self._cur_temp = float(device_data[ATTR_ROOM_TEMPERATURE]["value"]) if \ - device_data[ATTR_ROOM_TEMPERATURE]["value"] != None else self._cur_temp_before + self._cur_temp = float(device_data[ATTR_ROOM_TEMP_DISPLAY]) if \ + device_data[ATTR_ROOM_TEMP_DISPLAY] != None else self._cur_temp_before self._target_temp = float(device_data[ATTR_ROOM_SETPOINT]) self._min_temp = device_data[ATTR_ROOM_SETPOINT_MIN] self._max_temp = device_data[ATTR_ROOM_SETPOINT_MAX] From ce6256ff3a6be18a01a422e1848367227374e8b3 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Sun, 7 Jul 2024 22:19:10 -0400 Subject: [PATCH 7/9] fix occupancy for TH1134ZB-HC --- custom_components/neviweb130/climate.py | 1 + 1 file changed, 1 insertion(+) diff --git a/custom_components/neviweb130/climate.py b/custom_components/neviweb130/climate.py index 4db87d1..56c9143 100644 --- a/custom_components/neviweb130/climate.py +++ b/custom_components/neviweb130/climate.py @@ -2941,6 +2941,7 @@ def __init__(self, data, device_info, name, sku, firmware): self._cur_temp_before = None self._target_temp = None self._operation_mode = None + self._occupancy = None self._wattage = 0 self._min_temp = 5 self._max_temp = 30 From 2f315a25e06154180db4d1bd78370c7d3e72b0fd Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Mon, 8 Jul 2024 20:06:53 -0400 Subject: [PATCH 8/9] Fix display capability issue --- custom_components/neviweb130/climate.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/custom_components/neviweb130/climate.py b/custom_components/neviweb130/climate.py index 56c9143..5853797 100644 --- a/custom_components/neviweb130/climate.py +++ b/custom_components/neviweb130/climate.py @@ -3053,10 +3053,12 @@ def update(self): self._heat_lock_temp = device_data[ATTR_HEAT_LOCK_TEMP] self._cool_lock_temp = device_data[ATTR_COOL_LOCK_TEMP] self._avail_mode = device_data[ATTR_AVAIL_MODE] - self._display_cap = device_data[ATTR_DISPLAY_CAP] - self._display_conf = device_data[ATTR_DISPLAY_CONF] - self._sound_cap = device_data[ATTR_SOUND_CAP] - self._sound_conf = device_data[ATTR_SOUND_CONF] + if ATTR_DISPLAY_CAP in device_data: + self._display_cap = device_data[ATTR_DISPLAY_CAP] + self._display_conf = device_data[ATTR_DISPLAY_CONF] + if ATTR_SOUND_CAP in device_data: + self._sound_cap = device_data[ATTR_SOUND_CAP] + self._sound_conf = device_data[ATTR_SOUND_CONF] elif device_data["errorCode"] == "ReadTimeout": _LOGGER.warning("A timeout occur during data update. Device %s do not respond. Check your network... (%s)", self._name, device_data) else: From 50e873612021fbc06fcb706d7f93641c527bb851 Mon Sep 17 00:00:00 2001 From: Claude Gelinas Date: Tue, 9 Jul 2024 20:13:06 -0400 Subject: [PATCH 9/9] Fix attribute ATTR_DISPLAY and ATTR_SOUND --- custom_components/neviweb130/climate.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/custom_components/neviweb130/climate.py b/custom_components/neviweb130/climate.py index 5853797..2e3d092 100644 --- a/custom_components/neviweb130/climate.py +++ b/custom_components/neviweb130/climate.py @@ -2997,7 +2997,8 @@ def __init__(self, data, device_info, name, sku, firmware): def update(self): if self._activ: HC_ATTRIBUTES = [ATTR_DISPLAY2, ATTR_RSSI, ATTR_COOL_SETPOINT, ATTR_COOL_SETPOINT_MIN, ATTR_COOL_SETPOINT_MAX, ATTR_SYSTEM_MODE, ATTR_CYCLE, ATTR_WATTAGE, ATTR_BACKLIGHT, ATTR_KEYPAD, ATTR_HC_DEV, ATTR_LANGUAGE, ATTR_MODEL, - ATTR_FAN_SPEED, ATTR_FAN_SWING_VERT, ATTR_FAN_SWING_HORIZ, ATTR_FAN_CAP, ATTR_FAN_SWING_CAP, ATTR_FAN_SWING_CAP_HORIZ, ATTR_FAN_SWING_CAP_VERT, ATTR_BALANCE_PT, ATTR_HEAT_LOCK_TEMP, ATTR_COOL_LOCK_TEMP, ATTR_AVAIL_MODE] + ATTR_FAN_SPEED, ATTR_FAN_SWING_VERT, ATTR_FAN_SWING_HORIZ, ATTR_FAN_CAP, ATTR_FAN_SWING_CAP, ATTR_FAN_SWING_CAP_HORIZ, ATTR_FAN_SWING_CAP_VERT, ATTR_BALANCE_PT, ATTR_HEAT_LOCK_TEMP, ATTR_COOL_LOCK_TEMP, ATTR_AVAIL_MODE, + ATTR_DISPLAY_CONF, ATTR_DISPLAY_CAP, ATTR_SOUND_CONF, ATTR_SOUND_CAP] """Get the latest data from Neviweb and update the state.""" start = time.time() _LOGGER.debug("Updated attributes for %s: %s", self._name, UPDATE_ATTRIBUTES + HC_ATTRIBUTES) @@ -3053,12 +3054,10 @@ def update(self): self._heat_lock_temp = device_data[ATTR_HEAT_LOCK_TEMP] self._cool_lock_temp = device_data[ATTR_COOL_LOCK_TEMP] self._avail_mode = device_data[ATTR_AVAIL_MODE] - if ATTR_DISPLAY_CAP in device_data: - self._display_cap = device_data[ATTR_DISPLAY_CAP] - self._display_conf = device_data[ATTR_DISPLAY_CONF] - if ATTR_SOUND_CAP in device_data: - self._sound_cap = device_data[ATTR_SOUND_CAP] - self._sound_conf = device_data[ATTR_SOUND_CONF] + self._display_cap = device_data[ATTR_DISPLAY_CAP] + self._display_conf = device_data[ATTR_DISPLAY_CONF] + self._sound_cap = device_data[ATTR_SOUND_CAP] + self._sound_conf = device_data[ATTR_SOUND_CONF] elif device_data["errorCode"] == "ReadTimeout": _LOGGER.warning("A timeout occur during data update. Device %s do not respond. Check your network... (%s)", self._name, device_data) else: