TapHome

Huawei SUN2000

Modbus TCP
Submitted by
Last updated: 06. 2026
Huawei SUN2000

The Huawei SUN2000 3-10KTL series are single-phase and three-phase string inverters for residential PV systems, with rated power from 3 kW to 10 kW. TapHome connects to the inverter via Modbus TCP — either through a Huawei Smart Dongle (WLAN-FE or 4G) plugged into the inverter’s USB port, or directly to the inverter’s built-in WiFi access point.

The template provides active grid power monitoring, daily and lifetime energy counters, PV string current readings for up to 4 strings, individual phase voltage sensors, grid frequency, aggregated DC production, battery state of charge (for LUNA2000), inverter operating state with detailed sub-state decoding, and writable export power limitation. Module-level service actions allow reactive power compensation (PF and Q/S) and active power derating.

Enabling Modbus communication

The SUN2000 inverter supports Modbus TCP over its built-in WiFi access point and through the Smart Dongle. For a permanent connection with TapHome, the recommended approach is using a Huawei Smart Dongle-WLAN-FE (or Smart Dongle-4G) plugged into the inverter’s USB port.

Connection options
MethodInterfaceNotes
Smart Dongle (recommended)Ethernet / WiFiConnects the inverter to the local LAN. Allows simultaneous Modbus TCP and FusionSolar app access.
WiFi Access PointWiFiDirect connection to the inverter AP (SSID: SUN2000-<serial>). Only one client at a time.
RS-485 (Modbus RTU)COM port pins RS485A1/B1Not used by this template. Cannot run simultaneously with FusionSolar monitoring.

When using the WiFi Access Point method, the FusionSolar app cannot connect at the same time. For production installations, always use the Smart Dongle so that both TapHome and FusionSolar can operate in parallel.

Smart Dongle setup
  1. Plug the Smart Dongle-WLAN-FE into the USB port on the bottom of the inverter
  2. Connect the Smart Dongle to the local WiFi network using the FusionSolar app (initial setup)
  3. The dongle will obtain an IP address from the router via DHCP
  4. Note the IP address from the router’s DHCP lease table

Assign a static IP address (or DHCP reservation) to the Smart Dongle in the router’s settings to prevent the address from changing after a power cycle.

Network connection

  • Protocol: Modbus TCP
  • Port: 502 (standard Modbus TCP port)
  • Default Slave ID: 1
  • Byte order: Big-endian (standard Modbus)
  • Register range used: H:30000 — H:47418

The Home Assistant huawei-solar-lib library uses port 503 by default in WiFi AP mode. When connecting through the Smart Dongle on a local network, TapHome uses the standard Modbus TCP port 502.

Configuration

When importing the template in TapHome, provide:

  • IP Address — the Smart Dongle’s IP on the local network (or the inverter’s WiFi AP IP, default: 192.168.200.1)
  • Slave ID — Modbus slave address (default: 1)

Device capabilities

The template exposes 16 devices grouped by function below.

Power and energy monitoring
  • Active Power — Modbus electricity meter reading total daily yield from H:32114 (kWh) and instantaneous active grid power demand from H:37113 (kW). Includes 11 service attributes (peak active power of day, reactive power, rated/max active/max apparent power, max reactive power feed/absorb, reactive power compensation PW and Q/S, active power derating percent and fixed value) and 3 service actions (reactive power compensation PF, reactive power compensation Q/S, active power derating %).
  • Total Energy — cumulative lifetime energy produced by the inverter since commissioning, in kWh (H:32106).
  • Energy Today — energy generated since midnight, resets daily, in kWh (H:32114).
  • DC Production — aggregated DC input power from all PV strings in kW (H:32064). Service attributes expose grid frequency (H:32085), phase A/B/C voltages (H:32069–32071), and phase A/B/C currents (H:32072–32076).
PV string monitoring

Four sensor devices, one per PV string, report DC current in amps. Each device includes a service attribute for the corresponding string DC voltage:

DeviceCurrent registerVoltage attribute
PV1 CurrentH:32017H:32016
PV2 CurrentH:32019H:32018
PV3 CurrentH:32021H:32020
PV4 CurrentH:32023H:32022

The number of active PV string devices depends on the inverter model and installation. Unused string inputs read 0 A — for example, a 3KTL model typically uses PV1 and PV2 only.

Grid metrics
  • Phase A Voltage — phase-to-neutral voltage on line A in V (H:32069).
  • Phase B Voltage — phase-to-neutral voltage on line B in V (H:32070).
  • Phase C Voltage — phase-to-neutral voltage on line C in V (H:32071).
  • Grid Frequency — AC grid frequency at the inverter output in Hz (H:32085).
Battery (LUNA2000)
  • Battery SOC — battery state of charge as a fraction of available capacity, read from H:37760. When the inverter reports a value above 1 (no battery present), the device adds an informational message “Batéria nepripojená” (Battery not connected).

The Huawei Modbus Interface Definitions V3.0 document specifies gain 10 for register H:37760 (percent with one decimal). The TapHome template uses gain 1000, which reads the value as a fraction (0.0–1.0). Both representations expose the same underlying data — interpret the displayed value accordingly.

Export power control
  • Maximum Feed Gridwritable export power limit expressed as a percentage of rated power (H:47418, Int16, gain 10). Set this device to restrict how much energy the inverter feeds into the grid.
  • Maximum Feed Grid Power — read-only sensor reporting the currently effective export limit as an absolute wattage in kW (H:47416, Int32, gain 1000).

Registers H:47416 and H:47418 are not documented in the official Huawei Solar Inverter Modbus Interface Definitions V3.0 (2023-01-16). They are vendor-extended on newer firmware and confirmed only through field testing. Behaviour may vary by inverter firmware version — verify the response after writing to H:47418 before relying on the limit in automations.

Inverter Operating State

A multi-value switch (read from H:32089) that maps Huawei’s 20+ raw status codes to 10 high-level states:

ValueStateUnderlying raw codes
0Standby0
1Idle / No Irradiation1, 2, 3, 40960
2Starting256
3On-Grid512, 513, 514
4Shutdown768–774
5Grid Dispatch1025, 1026
6IV Scanning2048
7Spot-Check1280, 1281
8Inspecting1536
9DC Input Detection2304

Service attributes provide deeper insight into the state:

  • Full State — complete inverter status decoded from H:32089 with all 20+ raw sub-states (Idle: Initializing, Idle: Detecting ISO, On-Grid: Power Limit, Shutdown: Fault, Shutdown: OVGR, Grid dispatch: cos(Phi)-P curve, etc.).
  • Grid Connection — derived from H:32000 bits: Standby, Normal Grid Connection, Grid connection with derating due to power rationing, Grid connection with derating due to inverter internal causes, or Not Connected.
  • Teleindication — IEC 60870-5-104 telesignaling state from H:32000 bits: Standby, Normal Stop, Stop due to faults, Stop due to power rationing, Shutdown, Spot check, Grid Connected.
  • Locking Status — Locked or Unlocked, derived from H:32002 bit 0.
  • PV Connection Status — Connected or Disconnected, derived from H:32002 bit 0.
  • Startup time — most recent startup time of the day (HH:MM) from H:32091.
  • Shutdown time — most recent shutdown time of the day (HH:MM) from H:32093.
Module-level diagnostics

The module exposes service attributes for device identification and diagnostics:

AttributeRegisterDescription
Model NameH:30000Inverter nameplate model identifier
SNH:30015Serial number
PNH:30025Part number
Model IDH:30070Numeric model identifier
Number of StringsH:30071PV strings supported by hardware
MPPT NumberH:30072Independent MPPT tracker count
System TimeH:40000Inverter internal clock
Time ZoneH:43006Configured UTC offset
Inverter EfficiencyH:32086Current AC/DC conversion efficiency (%)
Cabinet TemperatureH:32087Internal cabinet temperature (°C)
Insulation ResistanceH:32088DC-side insulation resistance (MΩ)
DSP Data CollectionH:32002Whether the DSP is collecting telemetry

A Time Zone service action allows setting the inverter’s UTC offset (writes to H:43006). Supported values span UTC-12:00 through UTC+14:00.

Alarm monitoring

The module-level read script polls alarm registers H:32008 (Alarm 1) and H:32009 (Alarm 2) and decodes each bit into a named error or warning. Notable alarms include:

RegisterBitAlarm
H:320080High String Voltage
H:320081DC Arc Fault
H:320082String Reversed
H:320083Abnormal String (warning)
H:320085AFCI Fault
H:320087Power Grid Failure
H:320088–9Grid Under/Overvoltage
H:3200811–13Grid Frequency Faults
H:3200814–15Output Overcurrent / DC Component
H:320090Abnormal Leakage Current
H:320091–2Abnormal Ground / Low Insulation
H:320093–4High Temperature / Equipment Fault
H:320099Abnormal Energy Storage Device
H:3200910–11Active/Passive Islanding
H:3200915Abnormal PV Module Configuration

Troubleshooting

No Modbus communication
  1. Verify the Smart Dongle is plugged into the inverter’s USB port and powered (LED active).
  2. Confirm the dongle’s IP address in the router’s DHCP lease table.
  3. Ensure TapHome Core and the Smart Dongle are on the same network / subnet.
  4. Check that no firewall is blocking TCP port 502.
  5. If using WiFi AP mode, connect to the inverter’s SSID (SUN2000-<serial>) and use IP 192.168.200.1.
PV string values read zero

Unused PV string inputs always read 0 A and 0 V. This is normal for inverter models with fewer MPPT inputs than the template provides (e.g. a 3KTL model typically uses PV1 and PV2 only).

Battery SOC shows “Batéria nepripojená” or values above 100 %

The LUNA2000 battery registers are populated only when a compatible battery is physically connected. When no battery is present, register H:37760 returns values above the expected range and the template raises the “Batéria nepripojená” (Battery not connected) information message.

Inverter stuck in Idle

During nighttime or low-irradiation conditions the inverter remains in the Idle state (sub-states “Detecting ISO”, “Detecting irradiation”, “Grid Detecting”, or “No irradiation”). The inverter transitions to On-Grid automatically once sufficient solar irradiation is detected.

Maximum Feed Grid write has no effect

Registers H:47416 and H:47418 are vendor-extended and not present in the official V3.0 Modbus documentation. If the export limit has no effect, verify:

  1. The inverter firmware version supports the export limitation feature.
  2. The Smart Dongle is connected and not in pass-through mode used by FusionSolar grid code services.
  3. No conflicting grid code or DRM signal is overriding the local limit.
Shutdown sub-state shows OVGR / DC Switch OFF

These shutdown sub-states (decoded from H:32089) indicate the inverter was stopped by a protective signal — OVGR via the external OVGR contact, or DC Switch OFF via the physical DC isolator on the inverter. Address the underlying physical condition before attempting a remote power-on.

Available devices

SUN2000 TCP Module

SUN2000 TCP

Read (module)
var a1 := MODBUSR(H, 32008, Uint16);
var a2 := MODBUSR(H, 32009, Uint16);
IF(GETBIT(a1,0) = 1, ADDERROR("High String Voltage", 2001));
IF(GETBIT(a1,1) = 1, ADDERROR(${dc_arc_fault}, 2002));
IF(GETBIT(a1,2) = 1, ADDERROR("String Reversed", 2011));
IF(GETBIT(a1,3) = 1, ADDWARNING("PV String Backfeed ", 2012));
IF(GETBIT(a1,4) = 1, ADDWARNING("Abnormal String", 2013));
IF(GETBIT(a1,5) = 1, ADDERROR(${afci_fault}, 2021));
IF(GETBIT(a1,6)= 1, ADDERROR(${short_circ_L-PE}, 2021));
IF(GETBIT(a1,7) = 1, ADDERROR(${power_grid_fail}, 2032));
IF(GETBIT(a1,8) = 1, ADDERROR(${grid_undervoltage}, 2033));
IF(GETBIT(a1,9) = 1, ADDERROR(${grid_overvoltage}, 2034));
IF(GETBIT(a1,10) = 1, ADDERROR(${unbalanced_grid_V}, 2035));
IF(GETBIT(a1,11) = 1, ADDERROR(${grid_overfrequency}, 2036));
IF(GETBIT(a1,12) = 1, ADDERROR(${grid_underfrequency}, 2037));
IF(GETBIT(a1,13) = 1, ADDERROR(${grid_freq_instability}, 2038));
IF(GETBIT(a1,14) = 1, ADDERROR(${output_overcurr}, 2039));
IF(GETBIT(a1,15) = 1, ADDERROR(${out_DC_large}, 2040));
IF(GETBIT(a2,0) = 1, ADDERROR(${abnorm_leak_curr}, 2051));
IF(GETBIT(a2,1) = 1, ADDERROR(${abnorm_gnd}, 2061));
IF(GETBIT(a2,2) = 1, ADDERROR(${low_insul_res}, 2062));
IF(GETBIT(a2,3) = 1, ADDERROR(${high_tempt}, 2063));
IF(GETBIT(a2,4) = 1, ADDERROR(${abnorm_equip}, 2064));
IF(GETBIT(a2,5) = 1, ADDERROR(${upgrade_fail}, 2065));
IF(GETBIT(a2,6) = 1, ADDWARNING(${license_expired}, 2066));
IF(GETBIT(a2,7) = 1, ADDERROR(${abnorm_monitor_unit}, 61440));
IF(GETBIT(a2,8) = 1, ADDERROR(${power_collect_fault}, 2067));
IF(GETBIT(a2,9) = 1, ADDERROR(${abnorm_energy_storage_dev}, 2068));
IF(GETBIT(a2,10) = 1, ADDERROR("Active islanding", 2070));
IF(GETBIT(a2,11) = 1, ADDERROR("Passive islanding", 2071));
IF(GETBIT(a2,12) = 1, ADDERROR(${trans_AC_overvoltage}, 2072));
IF(GETBIT(a2,15) = 1, ADDERROR(${abnorm_PV_module_config}, 2080));
Active Power Electricity Meter

Electricity meter — daily yield (kWh) and instantaneous active grid power demand (kW), with reactive power, power factor, peak power of day, and writable derating actions

Register: H:32114 UInt32 / Int32 Unit: kWh / kW numeric

Active Power

Read total consumption
MODBUSR(H, 32114, Uint32, 2)/100
Read demand
MODBUSR(H , 37113, Int32, 2)/1000
Battery SOC Analog Input Read-only

Battery state of charge — fraction of available capacity; values above 100% trigger a 'Battery not connected' info message

Register: H:37760 UInt16 numeric

Battery SOC

Read input level
var reg := MODBUSR(H, 37760, Uint16)/1000;
IF(reg >1, ADDINFO("Batéria nepripojená"));
return(reg);
Total Energy Variable Read-only

Cumulative lifetime energy produced by the inverter since commissioning (kWh)

Register: H:32106 UInt32 Unit: kWh numeric

Total Energy

Read
MODBUSR(H, 32106, Uint32, 2)/100
Energy Today Variable Read-only

Energy generated since midnight; resets daily (kWh)

Register: H:32114 Int32 Unit: kWh numeric

Energy Today

Read
MODBUSR(H, 32114, Int32, 2)/100
Grid Frequency Variable Read-only

AC grid frequency at the inverter output (Hz)

Register: H:32085 UInt16 Unit: Hz numeric

Grid Frequency

Read
MODBUSR(H, 32085, Uint16)/100
Maximum Feed Grid Dimmer

Writable export power limit as percentage of rated power — restricts how much energy is fed to the grid

Register: H:47418 Int16 Unit: % numeric

Maximum Feed Grid

Read level
MODBUSR(H, 47418, Int16)/10
Write level
MODBUSW(H, 47418, Int16, Le * 10)
Maximum Feed Grid Power Variable Read-only

Currently effective export power limit expressed as absolute wattage (kW)

Register: H:47416 Int32 Unit: kW numeric

Maximum Feed Grid Power

Read
MODBUSR(H, 47416, Int32)/1000
Phase A Voltage Variable Read-only

Phase A line-to-neutral voltage (V)

Register: H:32069 UInt16 Unit: V numeric

Phase A Voltage

Read
MODBUSR(H, 32069, UInt16)/10
Phase B Voltage Variable Read-only

Phase B line-to-neutral voltage (V)

Register: H:32070 UInt16 Unit: V numeric

Phase B Voltage

Read
MODBUSR(H, 32070, Uint16)/10
Phase C Voltage Variable Read-only

Phase C line-to-neutral voltage (V)

Register: H:32071 UInt16 Unit: V numeric

Phase C Voltage

Read
MODBUSR(H, 32071, Uint16)/10
PV1 Current Variable Read-only
Register: H:32017 Int16 Unit: A numeric
Service Attributes
PV1 Voltage

PV1 Current

Read
MODBUSR(H, 32017, Int16)/100
Service Attributes
PV1 Voltage
MODBUSR(H, 32016, Int16)/10 + "V"
PV2 Current Variable Read-only
Register: H:32019 Int16 Unit: A numeric
Service Attributes
PV2 Voltage

PV2 Current

Read
MODBUSR(H, 32019, Int16)/100
Service Attributes
PV2 Voltage
MODBUSR(H, 32018, Int16)/10
PV3 Current Variable Read-only
Register: H:32021 Int16 Unit: A numeric
Service Attributes
PV3 Voltage

PV3 Current

Read
MODBUSR(H,32021, Int16)/100
Service Attributes
PV3 Voltage
MODBUSR(H, 32020, Int16)/10 + "V"
PV4 Current Variable Read-only
Register: H:32023 Int16 Unit: A numeric
Service Attributes
PV4 Voltage

PV4 Current

Read
MODBUSR(H, 32023, Int16)/100
Service Attributes
PV4 Voltage
MODBUSR(H, 32022, Int16)/10
Inverter State Multi-value Switch

Inverter operating state mapped to 10 high-level codes — Standby, Idle/No Irradiation, Starting, On-Grid, Shutdown, Grid Dispatch, IV Scanning, Spot-Check, Inspecting, DC Input Detection

Register: H:32089 UInt16 numeric
Values / States: ON · OFF

Inverter State

Read switch state
var reg := MODBUSR(H, 32089, Uint16);
IF(reg = 0, 0,
IF(reg < 4 OR reg = 40960,1,
IF(reg = 256, 2, 
IF(reg < 515, 3, 
IF(reg < 775, 4,
IF(reg = 1025 OR reg = 1026, 5, 
IF(reg = 1280 OR reg = 1281, 7,
IF(reg = 1536, 8, 
IF(reg = 2048, 6,
IF(reg = 2304, 9
))))))))))
Service Attributes
Full State
var state := MODBUSR(H, 32089, Uint16);
SWITCH(state, 0, "Idle: Initializing",
 1,"Idle: Detecting ISO", 
 2,"Idle: Detecting irradiation", 
 3, "Idle: Grid Detecting", 
 256, "Starting", 
 512, "On-Grid", 
 513, "On-Grid: Power Limit", 
 514, "On-Grid: self-derating", 
 768, "Shutdown: Fault", 
 769, "Shutdown: Command", 
 770, "Shutdown: OVGR", 
 771,"Shutdown: Communication disconnected", 
 772, "Shutdown: Power Limit", 
 773, "Shutdown: Start manually", 
 774, "Shutdown: DC Switch OFF",
 1025, "Grid dispatch:cos(Phi)-P curve",
 1026, "Grid dispatch:Q-U curve",
40960, "Idle: No irradiation",
1280, "Spot-check",
1281, "Spot-checking",
1536, "Inspecting",
1792, "SFCI self-check",
2048, "IV scanning",
2304, "DC input detection",
"Unknown"
 );
Grid Connection
var reg := MODBUSR(H, 32000,Uint16);
IF(GETBIT(reg,0) = 1, "Standby",
IF(GETBIT(reg,2) = 1 , "Normal Grid Connection",
IF(GETBIT(reg,3) = 1, "Grid connection with derating due to power rationing",
IF(GETBIT(reg,4) = 1, "Grid connection with derating due to inverter internal causes", "Not Connected"
)
)
)
)
Teleindication
var reg := MODBUSR(H, 32000,Uint16);
IF(GETBIT(reg,0) = 1, "Standby",
IF(GETBIT(reg,5) = 1 , "Normal Stop",
IF(GETBIT(reg,6) = 1, "Stop due to faults",
IF(GETBIT(reg,7) = 1, "Stop due to power rationing",
IF(GETBIT(reg,8) = 1, "Shutdown",
IF(GETBIT(reg,9) = 1, "Spot check",
IF(GETBIT(reg,1) = 1, "Grid Connected",
"Unknown State")
)
)
)
)
)
)
Locking Status
IF(GETBIT(MODBUSR(H, 32002, Uint16),0) = 1, "Unlocked", "Locked");
PV Connection Status
IF(GETBIT(MODBUSR(H, 32002, Uint16),0) = 1, "Connected", "Disconnected");
Startup time
var reg := MODBUSR(H, 32091, Uint32, 2);
var min := FLOOR(MOD(reg, 3600)/60);
var ho := FLOOR(MOD(reg,86400)/3600);
var minutes := IF(min<10, "0" + min, min);
var hours := IF(ho<10, "0" + ho, ho);
hours + ":" + minutes;
Shutdown time
var reg := MODBUSR(H, 32093, Uint32, 2);
var min := FLOOR(MOD(reg, 3600)/60);
var ho := FLOOR(MOD(reg,86400)/3600);
var minutes := IF(min<10, "0" + min, min);
var hours := IF(ho<10, "0" + ho, ho);
hours + ":" + FLOOR(minutes);
DC Production Variable Read-only

Aggregated DC input power from all PV strings (kW), with grid-side service attributes — frequency, phase A/B/C voltages and currents

Register: H:32064 Int32 Unit: kW numeric
Service Attributes
Frequency
A Voltage
B Voltage
C Voltage
A Current
B Current
C Current

DC Production

Read
MODBUSR(H, 32064, Int32, 2)/1000
Service Attributes
Frequency
MODBUSR(H, 32085, Uint16)/100 + " Hz"
A Voltage
MODBUSR(H, 32069, Int16)/10 + " V"
B Voltage
MODBUSR(H, 32070, Int16)/10 + " V"
C Voltage
MODBUSR(H, 32071, Int16)/10 + " V"
A Current
MODBUSR(H, 32072, Int32, 2)/1000 + " A"
B Current
MODBUSR(H, 32074, Int32, 2)/1000 + " A"
C Current
MODBUSR(H, 32076, Int32, 2)/1000 + " A"
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (24)
  • H:30035 Firmware Version — STR, 15 regs — useful for diagnostics and version-specific feature gating
  • H:30050 Software Version — STR, 15 regs — main controller software build
  • H:31000 Hardware Version — STR, 15 regs — hardware revision identifier
  • H:32010 Alarm 3 — Bitfield16, additional alarm bits beyond Alarm 1/2 handled by readscript
  • H:32066 Line Voltage A-B — U16, V, /10 — line-to-line grid voltage
  • H:32067 Line Voltage B-C — U16, V, /10 — line-to-line grid voltage
  • H:32068 Line Voltage C-A — U16, V, /10 — line-to-line grid voltage
  • H:32080 Active Power (instantaneous) — I32, kW, /1000 — instantaneous active power; template now uses H:37113 grid-side power instead
  • H:32084 Power Factor — I16, /1000 — referenced in legacy Active Power service attributes but not exposed as standalone sensor
  • H:32090 Fault Code — U16 — specific fault code when device is in shutdown:fault state
  • H:32108 Total DC Input Energy — U32, kWh, /100 — cumulative DC energy input across all PV strings
  • H:32116 Monthly Energy — U32, kWh, /100 — energy generated this month
  • H:32118 Yearly Energy — U32, kWh, /100 — energy generated this year
  • H:37101 Grid Phase A Voltage (power meter) — I32, V, /10 — phase voltage measured by external power meter (different sensor than H:32069)
  • H:37107 Grid Phase A Current (power meter) — I32, A, /100 — phase current measured by external power meter
  • H:37119 Grid Exported Energy (active) — I32, kWh, /100 — energy exported to the grid
  • H:37121 Grid Exported Energy — U32, kWh, /100 — cumulative grid export counter
  • H:37123 Grid Accumulated Energy — U32, kWh, /100 — total energy from grid (import)
  • H:37762 Battery Running Status — U16 enum — 0=Offline, 1=Standby, 2=Running, 3=Fault, 4=Sleep
  • H:37765 Battery Charge/Discharge Power — I32, W — positive=charging, negative=discharging
  • H:37784 Battery Daily Charge — U32, kWh, /100 — today's battery charge energy
  • H:37786 Battery Daily Discharge — U32, kWh, /100 — today's battery discharge energy
  • H:40200 Power On — WO, E16 — remote inverter power-on command
  • H:40201 Shutdown — WO, E16 — remote inverter shutdown command

Sources

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Verified by TapHome

Want to use this in your TapHome Core?

Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog.

Open in portal