Skip to content

Commit

Permalink
Merge pull request #252 from claudegel/HC-thermostat
Browse files Browse the repository at this point in the history
Hc thermostat
  • Loading branch information
claudegel committed Jul 10, 2024
2 parents 04b25ca + 50e8736 commit 053b3a7
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 9 deletions.
2 changes: 1 addition & 1 deletion custom_components.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion custom_components/neviweb130/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
HOMEKIT_MODE,
STAT_INTERVAL,
)
VERSION = '2.7.8'
VERSION = '2.7.9'

_LOGGER = logging.getLogger(__name__)

Expand Down
29 changes: 23 additions & 6 deletions custom_components/neviweb130/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -304,7 +303,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

Expand Down Expand Up @@ -2942,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
Expand Down Expand Up @@ -2970,6 +2970,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
Expand All @@ -2993,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)
Expand All @@ -3006,8 +3011,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]
Expand Down Expand Up @@ -3049,6 +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]
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:
Expand Down Expand Up @@ -3085,6 +3094,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,
Expand Down Expand Up @@ -3267,6 +3280,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,
Expand Down
2 changes: 1 addition & 1 deletion custom_components/neviweb130/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
"dependencies": [],
"codeowners": ["@claudegel"],
"requirements": [],
"version": "2.7.8",
"version": "2.7.9",
"homeassistant": "2024.2.1"
}

0 comments on commit 053b3a7

Please sign in to comment.