panasonic-ac-models
A model capability database and lookup engine for Panasonic Smart Air Conditioners (Indian Market / MirAIe platform). Designed for Home Assistant custom integrations, companion libraries, and custom dashboard cards to dynamically determine supported AC features (HVAC modes, Nanoe ionizer, Converti presets).
Installation & Usage
Python Library (Backend / Home Assistant Integrations)
Install via pip:
pip install panasonic-ac-models
Query feature gating flags using the normalized lookup engine:
from panasonic_ac_models import ACModelLookup
lookup = ACModelLookup()
# Query capability dictionary for any indoor SKU (handles 'CS/CU-', casing, and spaces automatically)
caps = lookup.get_capabilities("CS/CU-EZ18BKYD")
print(f"Model Series: {caps['series']} (Gen {caps['generation']})")
print(f"Family Key: {caps['family_key']}")
# -------------------------------------------------------------
# 1. Gate Wi-Fi / Smart Capability
# -------------------------------------------------------------
if caps["has_wifi"] == 1:
print("-> Wi-Fi Smart AC: Expose MirAIe cloud & MQTT entities.")
else:
print("-> Non-Smart unit: Local IR remote control only.")
# -------------------------------------------------------------
# 2. Gate HVAC Modes (Common: cool, dry, fan_only, auto, off; EZ/KZ add heat)
# -------------------------------------------------------------
common_hvac_modes = ["cool", "dry", "fan_only", "auto", "off"]
if caps["has_heat_mode"] == 1:
hvac_modes = common_hvac_modes + ["heat"] # EZ & KZ series dual heat pump
else:
hvac_modes = common_hvac_modes # Cooling-only unit
# -------------------------------------------------------------
# 3. Gate Nanoe Air Purification Switch
# -------------------------------------------------------------
if caps["has_nanoe"] == 1:
show_nanoe_switch = True # Expose Nanoe-G / Nanoe-X switch entity (HU & XU series only)
else:
show_nanoe_switch = False # Hide Nanoe switch entity
# -------------------------------------------------------------
# 4. Gate Converti Capacity Presets (7-in-1 / 8-in-1 / none)
# -------------------------------------------------------------
converti = caps["converti_type"]
if converti == "8-in-1":
converti_presets = ["cv_110", "cv_100", "cv_90", "cv_80", "cv_70", "cv_60", "cv_50", "cv_40"]
elif converti == "7-in-1":
converti_presets = ["cv_110", "cv_100", "cv_90", "cv_80", "cv_70", "cv_55", "cv_40"]
else: # "none" -> Pre-2023 sensor auto-convertible or non-smart model: Hide converti presets
converti_presets = []
Direct CDN (JavaScript / Frontend Cards)
Fetch models.json directly via jsDelivr CDN:
https://cdn.jsdelivr.net/gh/selvakk2k/panasonic-ac-models@main/models.json
fetch("https://cdn.jsdelivr.net/gh/selvakk2k/panasonic-ac-models@main/models.json")
.then(res => res.json())
.then(data => {
const rawModel = "CS/CU-NU18AKY4WXD";
const cleanModel = rawModel.replace(/^(CS\/CU|CU)[-_\s]?/i, 'CS-').trim().toUpperCase();
const family = data.families.find(f => f.indoor_units.includes(cleanModel));
console.log("Wi-Fi Smart:", family?.has_wifi === 1);
console.log("Heat Mode:", family?.has_heat_mode === 1);
console.log("Nanoe Ionizer:", family?.has_nanoe === 1);
console.log("Converti Mode:", family?.converti_type);
});
Feature Gating Rules
| Feature | Condition | Series / Generations |
|---|---|---|
| Wi-Fi / MirAIe | All Inverter Splits | NU, SU, EU, AU, HU, XU, EZ, KZ, WU, QU, YU, RU, TU, VU, ZU, LU, S-##PUY |
| Non-Smart | Fixed Speed / Window | KN, KU, CW-, PUB, PD |
| Heat Mode | Dual Heat Pump | EZ, KZ only |
| Nanoe Ionizer | Purification Models | HU, XU only |
| Converti 8-in-1 | 2026+ Models | NU/SU (Gen ≥ B) & EZ/HU/EU (Gen ≥ C) |
| Converti 7-in-1 | 2023–2025 Models | All other 2023–2025 inverter splits |
| Auto-Convertible (none) | Pre-2023 Models | 2020–2022 models (Gen W, X - sensor auto-scaling, no manual percentage buttons) |
Database Summary
- Models Tracked: 383 verified Wi-Fi models across 110 hardware families.
- Data Sources: Bureau of Energy Efficiency (BEE) certified labels, Panasonic India catalogs, empirical MirAIe telemetry.
Contributing
Pull requests are welcome! To add or correct a model:
- Edit
models.json. - Add the indoor SKU to the appropriate
indoor_unitsarray underfamilies. - Submit a PR. Continuous Integration (
check-jsonschema) will validate changes againstschema.json.
Authors & Credits
- Lead Maintainer: @selvakk2k
- AI Pair Programming & Architecture: Antigravity (Google DeepMind Team)
Metadata
Release files for panasonic-ac-models 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| panasonic_ac_models-1.1.1.tar.gz | 11.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| panasonic_ac_models-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.7 kB
Release files / panasonic_ac_models-1.1.1.tar.gz
| Download URL | panasonic_ac_models-1.1.1.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7488c925e6dc55f1c3e5c23b675385fc01371c1775c69003d4fff89b95d085aa
|
|
BLAKE2b-256 checksum How to use checksums |
221feba14b4d1a7325540c880379af639a9f6af9d0c59493d21997bbb8db322f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / panasonic_ac_models-1.1.1-py3-none-any.whl
| Download URL | panasonic_ac_models-1.1.1-py3-none-any.whl |
|---|---|
| Size | 9.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99650bc37335b9eae8c250c2da98f6cdda2107d3a5a02ea7392e3052ba2244d5
|
|
BLAKE2b-256 checksum How to use checksums |
6b0448a1bf6568ce9154124a2ed458e4d6e24a7c8e5a150d0ec094da9103876a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency log