Skip to content

simplytoast1/ha-swidget-fans

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swidget ERV — Custom Home Assistant Integration

HACS Custom HA Version

A custom Home Assistant integration for Swidget ERV (Energy Recovery Ventilator) controllers. Communicates entirely over the local HTTP API — no cloud required.

Note: The existing haswidget2 integration does not support ERV devices (pesna_fv05 host type). This integration was built specifically for them.

Features

  • Fan control — Turn the exhaust fan on/off, set speed by preset CFM values or percentage
  • Boost mode — Run the fan at full power with a single toggle
  • Light control — Toggle the optional light output
  • Power monitoring — Real-time and average wattage sensors
  • Exhaust CFM — Dedicated sensor for airflow graphing
  • Condensation status — Monitor the condensation management module
  • Diagnostics — Wi-Fi signal strength and self-diagnostic sensors
  • Auto-discovery — Devices are detected via SSDP and DHCP

Installation

HACS (Recommended)

  1. Open HACS in Home Assistant
  2. Go to Integrations (top right) → Custom repositories
  3. Add this repository URL: https://github.com/simplytoast1/ha-swidget-fans and select category Integration
  4. Search for "Swidget ERV" and install
  5. Restart Home Assistant

Manual

  1. Copy the custom_components/swidget_erv folder into your Home Assistant config/custom_components/ directory
  2. Restart Home Assistant

Setup

Automatic Discovery

If your Swidget ERV device is on the same network, it may be discovered automatically via SSDP or DHCP. You'll see a notification in Home Assistant prompting you to configure it.

Manual Setup

  1. Go to SettingsDevices & ServicesAdd Integration
  2. Search for "Swidget ERV"
  3. Enter the device's IP address
  4. Optionally enter the access key (if one was set during device provisioning)

Entities

Once configured, the integration creates the following entities:

Entity Type Description
Exhaust Fan fan Main fan control — on/off, speed presets (CFM), percentage
Boost switch Full power mode — turning off also stops the fan
Light switch Toggle light output on/off
Power sensor Current power consumption (W)
Average Power sensor Average power consumption (W)
Exhaust CFM sensor Current exhaust airflow rate
Wi-Fi Signal sensor RSSI signal strength (dBm)
Condensation sensor Condensation module status
Self-Diagnostic sensor Device health (0 = healthy)
Entities are created dynamically based on what the device reports. If your device doesn't have a particular function (e.g. light), that entity won't be created.

Fan Speed Control

The ERV only accepts specific CFM values. These are exposed as preset modes on the fan entity:

50 · 60 · 70 · 80 · 90 · 100 · 110 · 120 · 130 · 150

You can also use percentage-based speed control — percentages are mapped to the nearest allowed CFM step. Setting the fan to 0% (or turning it off) sets CFM to 0.

Local API

This integration communicates with the device over its local HTTP API:

Endpoint Method Purpose
/api/v1/summary GET Device identity and capabilities
/api/v1/state GET Current device state (poll interval configurable in UI)
/api/v1/command POST Send control commands

No cloud account or internet connection is needed. The device must be reachable on your local network.

Troubleshooting

Device not discovered

  • Ensure the device is on the same network/VLAN as Home Assistant
  • Try manual setup with the device's IP address
  • Check that the device is powered on and connected to Wi-Fi

Cannot connect during setup

  • Verify the IP address is correct
  • Check if the device has an access key set — enter it in the password field
  • Ensure no firewall is blocking HTTP traffic to the device

Entities show "Unavailable"

  • The device may be offline or unreachable
  • Check your network connectivity
  • The integration will automatically recover when the device comes back online

Contributing

Contributions are welcome! Some areas that could use exploration:

  • Timer function — The device reports a "timer" function but the command format is unknown
  • Raw function — Purpose unknown
  • Condensation states — Only "dormant" has been observed so far

License

This project is licensed under the MIT License.

About

Custom Home Assistant integration for Swidget ERV (Energy Recovery Ventilator) controllers via local HTTP API

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages