DIY/HA 04.08.2026 4 min read by Ulrich Emmerich

Pluggit AP310 in Home Assistant: native Modbus or a HACS integration?

Compare native Modbus TCP with two community integrations for the Pluggit AP310, including current requirements, YAML pitfalls, and write-safety concerns.

Home Assistant Modbus HACS Pluggit Smart Home
Pluggit AP310 in Home Assistant: native Modbus or a HACS integration?

Two local routes to the AP310

The Pluggit AP310 heat-recovery ventilation unit can be connected to Home Assistant locally over Modbus TCP. You can either configure registers in Home Assistant's native Modbus integration or install a community integration through HACS. Native YAML gives complete control but makes the register map, data types, and write safety your responsibility. A HACS integration is faster to set up but executes third-party code inside Home Assistant.

The claim that Pluggit and Dantherm units share controller hardware is phrased as “appear to share” in the Tvalley71 project. I cannot confirm it as a manufacturer statement.

Native Modbus: maximum control, maximum verification work

Configure a TCP hub at the AP310 address and port 502, then define only the registers you need. Community register lists mention temperatures at addresses 133, 135, 137, and 139; fan speeds at 101 and 103; bypass state at 198; humidity at 196; air quality at 430; operating mode at 472; and filter days at 555. These lists are useful starting points, not a replacement for the correct controller documentation and a check on the installed firmware.

Home Assistant's current Modbus syntax uses data_type values such as float32 and a swap option for byte/word order. slave_count does not declare the width of a 32-bit value; it creates additional virtual sensors at following addresses. A float32 value already determines its register width automatically.


modbus:
  - name: pluggitAP310
    type: tcp
    host: 192.168.X.X
    port: 502
    timeout: 5
    message_wait_milliseconds: 30
    sensors:
      - name: Pluggit_Outdoor_T1
        slave: 1
        address: 133
        unit_of_measurement: "°C"
        data_type: float32

      - name: Pluggit_Fan1_Speed
        slave: 1
        address: 101
        unit_of_measurement: rpm
        data_type: float32

If a value is implausible, verify register numbering and then test the documented swap: byte, swap: word, or swap: word_byte options. Do not guess write values.

In the user's running setup, fan level is read from register 323 while commands are written to 324. That differs from some community tables and is a useful warning: a copied map must be verified on the actual device. The user's dashboard calls modbus.write_register directly:


- type: button
  icon: mdi:fan-speed-2
  name: "Fan 2"
  tap_action:
    action: call-service
    service: modbus.write_register
    service_data:
      address: 324
      unit: 255
      value: [2, 0]
      hub: pluggitAP310

This is a documented personal configuration, not a universally validated AP310 register recipe. Writes can change ventilation and protection behavior; start read-only, keep a backup, and verify every address and value against the controller documentation.

HACS integrations

Two relevant projects are:

  • Tvalley71/pluggit: lists AP190 and AP310 as known supported units, requires Home Assistant 2025.8.0 or newer, and provides numerous sensor, switch, select, fan, and cover entities. It supports Modbus over TCP/IP. Some HAC-module functions remain unsupported because of limited testing.
  • Goemon64/Pluggit-HA: advertises AP190, AP310, and AP460 support and states that it was tested with an AP310 running firmware 3.14.

The Tvalley71 integration is available in HACS search at the time of verification. Repository status, requirements, and entities can change, so read the current release notes before installing. Home Assistant itself warns that HACS projects do not receive the same review as core integrations and run code inside Home Assistant. Make a backup and download it to another device before installation.

Typical installation:

1. Open HACS and search for the Pluggit integration.

2. Read its current requirements and release notes.

3. Install the selected release and restart Home Assistant.

4. Add Pluggit under Settings → Devices & services.

5. Enter the ventilation unit's reserved IP address.

6. Enable only the entities supported by the installed options and firmware.

Comparison

Criterion Native Modbus HACS integration
Initial effort high low to moderate
Register control complete defined by the project
Third-party runtime code no yes
Maintenance your YAML and register map project releases and compatibility
Write risk visible but entirely your responsibility encapsulated, still requires verification

Cold-weather observation and power isolation

On this specific installation, intake problems were observed at approximately −2 to −3 °C. This is a personal observation; I cannot confirm the cause or threshold from Pluggit documentation.

The installation was temporarily power-cycled through a smart plug. This must not be generalized into an automation recommendation. A central ventilation unit has its own frost-protection and run-on strategies. External power isolation may bypass them, produce faults, or interrupt required moisture-control ventilation. Discuss the cause and permitted remedy with Pluggit or a qualified ventilation contractor, and follow the manufacturer documentation.

Temporary shutdowns were also used when outdoor odors were present. Even then, minimum ventilation, moisture protection, fireplace interaction, and local requirements must be considered.

Troubleshooting

1. Reserve the AP310 IP and verify TCP port 502.

2. Start with one read-only register.

3. Check data type and swap only against a known plausible value.

4. Reload native Modbus with modbus.reload where applicable.

5. For HACS, compare the integration's current minimum HA version and release notes.

6. Do not experiment with writes while occupants or building safety depend on ventilation behavior.

Sources and technical documentation

Links marked with * are affiliate links. As an Amazon Associate I earn from qualifying purchases.