Add-on: Climate
Description
This add-on enables the use of your panel's relays to act as a thermostat (either cooler or heater) using the internal temperature sensor and independent of the network availability.
Attention
- The NSPanel is limited to 2A per relay.
Don't use it for directly power your cooler/heater if exceeding the panel specifications:
- 150W/110V/Gang, 300W/110V/Total
- 300W/220V/Gang, 600W/220V/Total
[!NOTE] More details on the Sonoff NSPanel's page and the product specifications document.
- A target temperature must be set on the climate entity in Home Assistant or the page Climate in your panel.
Installation
You will need to add the reference to addon_climate_heat
, addon_climate_cool
or addon_climate_dual
files on your ESPHome settings in the package
section
and after the remote_package
(base code), as shown bellow (for heat
in this example):
substitutions:
# Settings - Editable values
device_name: "YOUR_NSPANEL_NAME"
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
# Add-on configuration (if needed)
## Add-on climate
heater_relay: "1" # Possible values: "1" or "2"
# Customization area
##### My customization - Start #####
##### My customization - End #####
# Core and optional configurations
packages:
remote_package:
url: https://github.com/Blackymas/NSPanel_HA_Blueprint
ref: main
files:
- nspanel_esphome.yaml # Core package
# Optional advanced and add-on configurations
# - advanced/esphome/nspanel_esphome_advanced.yaml
# - nspanel_esphome_addon_climate_cool.yaml
- nspanel_esphome_addon_climate_heat.yaml
# - nspanel_esphome_addon_climate_dual.yaml
refresh: 300s
esp32:
framework:
type: esp-idf
Configuration
The following keys are available to be used in your substitutions
:
Key | Required | Supported values | Default | Description |
---|---|---|---|---|
cooler_relay | Mandatory for cool and dual | 1 or 2 |
0 (disabled) |
Relay used for control the cooler. User 1 for "Relay 1" or 2 for "Relay 2". |
heater_relay | Mandatory for heat and dual | 1 or 2 |
0 (disabled) |
Relay used for control the heater. User 1 for "Relay 1" or 2 for "Relay 2". |
temp_units | Optional | °C or °F |
°C |
Temperature unit. |
min_off_time | Optional | Positive integer representing the number of seconds | 300 |
Minimum duration (in seconds) the cooling/heating action must be disengaged before it may be engaged. |
min_run_time | Optional | Positive integer representing the number of seconds | 300 |
Minimum duration (in seconds) the cooling/heating action must be engaged before it may be disengaged. |
min_idle_time | Optional | Positive integer representing the number of seconds | 30 |
Minimum duration (in seconds) the idle action must be active before calling another climate action. |
target_low | Optional | Number representing a temperature in the selected unit | 18 |
The initial lower treshold for the target temperature. |
target_high | Optional | Number representing a temperature in the selected unit | 24 |
The initial higher treshold for the target temperature. |
temp_min | Optional | Number representing a temperature in the selected unit | cool: 15 heat: 7 dual: 7 |
The minimum temperature the climate device can reach. Used to set the range of the frontend gauge. |
temp_max | Optional | Number representing a temperature in the selected unit | cool: 45 heat: 35 dual: 45 |
The maximum temperature the climate device can reach. Used to set the range of the frontend gauge. |
temp_step | Optional | Number representing a temperature in the selected unit | 0.5 |
The granularity with which the target temperature can be controlled. |
cool_deadband | Optional | Number representing a temperature hysteresis in the selected unit | 0.5 |
The minimum temperature differential (temperature above the set point) before engaging cooling. |
cool_overrun | Optional | Number representing a temperature hysteresis in the selected unit | 0.5 |
The minimum temperature differential (cooling beyond the set point) before disengaging cooling. |
heat_deadband | Optional | Number representing a temperature hysteresis in the selected unit | 0.5 |
The minimum temperature differential (temperature below the set point) before engaging heat. |
heat_overrun | Optional | Number representing a temperature hysteresis in the selected unit | 0.5 |
The minimum temperature differential (heating beyond the set point) before disengaging heat. |
- All values must be delimited with
""
- For more details on the keys, please take a look at ESPHome Base Climate Configurations and ESPHome Climate Thermostat - Additional actions behavior.
Examples
Cooler
substitutions:
# Settings - Editable values
device_name: "YOUR_NSPANEL_NAME"
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
# Add-on configuration (if needed)
## Add-on climate
cooler_relay: "1" # Possible values: "1" or "2"
temp_units: "°F" # Temperatures in Fahrenheit
temp_min: "40" # Min supported temperature is 40°F
temp_max: "80" # Max supported temperature is 80°F
temp_step: "1" # Temperature granularity is 1°F
cool_deadband: "1.2" # Temperature delta before engaging cooling
cool_overrun: "1.2" # Temperature delta before disengaging cooling
# Customization area
##### My customization - Start #####
##### My customization - End #####
# Core and optional configurations
packages:
remote_package:
url: https://github.com/Blackymas/NSPanel_HA_Blueprint
ref: main
files:
- nspanel_esphome.yaml # Core package
# Optional advanced and add-on configurations
# - advanced/esphome/nspanel_esphome_advanced.yaml
- nspanel_esphome_addon_climate_cool.yaml
# - nspanel_esphome_addon_climate_heat.yaml
# - nspanel_esphome_addon_climate_dual.yaml
refresh: 300s
esp32:
framework:
type: esp-idf
Heater
substitutions:
# Settings - Editable values
device_name: "YOUR_NSPANEL_NAME"
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
# Add-on configuration (if needed)
## Add-on climate
heater_relay: "1" # Possible values: "1" or "2"
temp_units: "°F" # Temperatures in Fahrenheit
temp_min: "40" # Min supported temperature is 40°F
temp_max: "80" # Max supported temperature is 80°F
temp_step: "1" # Temperature granularity is 1°F
heat_deadband: "1.2" # Temperature delta before engaging heat
heat_overrun: "1.2" # Temperature delta before disengaging heat
# Customization area
##### My customization - Start #####
##### My customization - End #####
# Core and optional configurations
packages:
remote_package:
url: https://github.com/Blackymas/NSPanel_HA_Blueprint
ref: main
files:
- nspanel_esphome.yaml # Core package
# Optional advanced and add-on configurations
# - advanced/esphome/nspanel_esphome_advanced.yaml
# - nspanel_esphome_addon_climate_cool.yaml
- nspanel_esphome_addon_climate_heat.yaml
# - nspanel_esphome_addon_climate_dual.yaml
refresh: 300s
esp32:
framework:
type: esp-idf
Dual
substitutions:
# Settings - Editable values
device_name: "YOUR_NSPANEL_NAME"
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
# Add-on configuration (if needed)
## Add-on climate
heater_relay: "1" # Possible values: "1" or "2"
cooler_relay: "2" # Possible values: "1" or "2"
temp_units: "°F" # Temperatures in Fahrenheit
temp_min: "40" # Min supported temperature is 40°F
temp_max: "80" # Max supported temperature is 80°F
temp_step: "1" # Temperature granularity is 1°F
cool_deadband: "1.2" # Temperature delta before engaging cooling
cool_overrun: "1.2" # Temperature delta before disengaging cooling
heat_deadband: "1.2" # Temperature delta before engaging heat
heat_overrun: "1.2" # Temperature delta before disengaging heat
# Customization area
##### My customization - Start #####
##### My customization - End #####
# Core and optional configurations
packages:
remote_package:
url: https://github.com/Blackymas/NSPanel_HA_Blueprint
ref: main
files:
- nspanel_esphome.yaml # Core package
# Optional advanced and add-on configurations
# - advanced/esphome/nspanel_esphome_advanced.yaml
# - nspanel_esphome_addon_climate_cool.yaml
# - nspanel_esphome_addon_climate_heat.yaml
- nspanel_esphome_addon_climate_dual.yaml
refresh: 300s
esp32:
framework:
type: esp-idf