opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

Haier appliances in HomeAssistant, plus raw command passthrough
GitHub RepoViews4

Project Description

View on GitHub

Bringing Haier Appliances into Home Assistant, With a Raw Command Escape Hatch

You've got a smart home setup running smoothly in Home Assistant, but then there's that Haier air conditioner or water heater sitting off to the side, stubbornly outside your automation flow. If you've been hunting for a way to pull Haier Smart Home devices into Home Assistant, this integration is worth a look. It aims to connect your Haier appliances to Home Assistant, and according to the README, it theoretically supports all devices. That "theoretically" is doing some honest work, but it's a promising starting point.

What It Does

This is a custom integration for Home Assistant that connects devices from Haier Smart Home (海尔智家) into your Home Assistant instance. Rather than being limited to a single device category, the project positions itself as a general-purpose bridge, claiming theoretical support for all devices. In practice, that means it exposes your Haier appliances as native Home Assistant entities you can automate, dashboard, and control alongside everything else.

The integration supports six entity types out of the box: Switch, Number, Select, Sensor, Binary Sensor, and Climate. That spread covers a lot of ground—from simple on/off controls to climate devices like air conditioners and water heaters. It's built as a standard Home Assistant custom component, so it slots into the existing integration and device management flow rather than requiring a separate app or service.

Why It's Cool

  • It speaks Home Assistant's language natively. Because it's a proper custom component, you configure it through the familiar Integrations menu and get entities that behave like any other. No parallel systems, no glue scripts.

  • The entity coverage is broad for a single integration. Six entity types means one integration can plausibly handle a thermostat, a switch, a sensor, and more from the same ecosystem. That's a lot of surface area for one component.

  • The raw command passthrough is the real standout. The haier.send_raw_command action lets you send raw control commands directly to a specified Haier device. You supply the device ID (the original Haier-side ID, found in the device's "serial number" field—and yes, case matters) and an attrs payload of raw control commands. This is the escape hatch for anything the entity layer doesn't cover. If a feature isn't mapped to an entity yet, you can often still reach it.

  • It's honest about what raw commands mean. The README explicitly states that the integration submits attrs to the gateway as-is, without validating or converting the contents. It also makes clear that a successful call only means the control event was submitted—not that the device actually executed it. That kind of clarity saves you from chasing phantom successes.

Here's what a raw command looks like in practice, using a water heater with a target temperature of 42°C:

action: haier.send_raw_command
data:
  device_id: AABBCCDDEEFF
  attrs:
    targetTemp: "42"

That's a clean, minimal interface. You don't need to reverse-engineer an entire protocol to nudge a single setting.

How to Try It

Getting started is straightforward, and you have two install paths.

  1. Manual install: Download the custom_components/haier folder and copy it into the custom_components folder at the root of your Home Assistant installation.

  2. HACS install: If you already have HACS set up, you can add the integration through it using the badge link in the README.

Once installed, add the integration:

  1. Go to Settings > Devices & Services > Integrations.
  2. Click Add Integration and search for haier.
  3. Complete the configuration flow.

The README also includes a direct badge link that jumps straight to the add-integration flow if you'd rather skip the menu navigation.

If something goes wrong, the README points you to a pinned common-questions issue before you file a new one—and it asks that you follow the issue template, since untemplated issues get ignored and closed. Worth respecting if you want help.

For debugging, drop this into your configuration.yaml to turn on debug logging:

logger:
  default: warn
  logs:
    custom_components.haier: debug

You can find the project and full instructions at github.com/banto6/haier.

Final Thoughts

This integration is best suited for Home Assistant users who already own Haier Smart Home devices and want them in their automation stack without waiting for official support. The standard entity types cover the common cases, and the raw command passthrough gives you a way to reach beyond them when you need to. Just go in with realistic expectations—"theoretically supports all devices" is a claim, not a guarantee, and the raw command caveat about submission versus execution is worth keeping in mind. If you're comfortable tinkering, it's a solid bridge to have in your toolkit.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: haierLast updated: November 8, 2026 at 02:52 AM