This commit is contained in:
Mateusz Gruszczyński
2026-09-17 11:32:06 +02:00
parent df10ead47e
commit 4bdcf1b8dd
8 changed files with 190 additions and 15 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ ha-addon/home-assistant/custom_components/gree_controller/
It creates HA entities for physical units, thermostat zones, whole-house controls and climate groups, while sending every command to the standalone Rust controller. Home Assistant therefore remains a client and UDP/AES GREE communication stays outside HA.
The climate proxy supports power/turn on/off, HVAC modes, target temperature, fan mode, granular vertical louver positions and granular horizontal louver positions. `off`/`on` remain the first two swing modes for compatibility, followed by fixed positions and the supported vertical partial-swing ranges.
The climate proxy supports power/turn on/off, HVAC modes, target temperature, fan mode, granular vertical louver positions and granular horizontal louver positions. `off`/`on` remain the first two swing modes for compatibility, followed by fixed positions and the supported vertical partial-swing ranges. The card UI translates those modes using the Home Assistant language while the underlying mode IDs (for example `fixed_upper`) remain unchanged for services, scripts and automations.
Automation plan:
@@ -160,6 +160,7 @@ class GreeControllerClimate(CoordinatorEntity[GreeControllerCoordinator], Climat
"""Home Assistant climate entity controlled through the Rust service."""
_attr_has_entity_name = True
_attr_translation_key = "direct_control"
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_attr_min_temp = 8.0
_attr_max_temp = 30.0
@@ -299,6 +300,7 @@ class GreeControllerZoneClimate(CoordinatorEntity[GreeControllerCoordinator], Cl
"""Full climate entity for a controller thermostat zone."""
_attr_has_entity_name = True
_attr_translation_key = "zone_thermostat"
_attr_name = "Thermostat"
_attr_temperature_unit = UnitOfTemperature.CELSIUS
_attr_min_temp = 8.0
@@ -18,5 +18,91 @@
"abort": {
"already_configured": "GREE Controller is already configured"
}
},
"entity": {
"climate": {
"direct_control": {
"name": "Direct control",
"state_attributes": {
"fan_mode": {
"state": {
"auto": "Auto",
"low": "Low",
"medium_low": "Medium-low",
"medium": "Medium",
"medium_high": "Medium-high",
"high": "High"
}
},
"swing_mode": {
"state": {
"off": "Off",
"on": "Full range (Auto)",
"fixed_upper": "Fixed: Top",
"fixed_upper_middle": "Fixed: Upper-middle",
"fixed_middle": "Fixed: Middle",
"fixed_lower_middle": "Fixed: Lower-middle",
"fixed_lower": "Fixed: Bottom",
"swing_upper": "Swing: Top",
"swing_upper_middle": "Swing: Upper-middle",
"swing_middle": "Swing: Middle",
"swing_lower_middle": "Swing: Lower-middle",
"swing_lower": "Swing: Bottom"
}
},
"swing_horizontal_mode": {
"state": {
"off": "Off",
"on": "Full range (Auto)",
"fixed_left": "Fixed: Left",
"fixed_left_middle": "Fixed: Left-middle",
"fixed_middle": "Fixed: Middle",
"fixed_right_middle": "Fixed: Middle-right",
"fixed_right": "Fixed: Right"
}
}
}
},
"zone_thermostat": {
"name": "Thermostat",
"state_attributes": {
"preset_mode": {
"state": {
"auto": "Auto schedule",
"comfort": "Comfort",
"sleep": "Sleep",
"away": "Away"
}
},
"swing_mode": {
"state": {
"off": "Off",
"on": "Full range (Auto)",
"fixed_upper": "Fixed: Top",
"fixed_upper_middle": "Fixed: Upper-middle",
"fixed_middle": "Fixed: Middle",
"fixed_lower_middle": "Fixed: Lower-middle",
"fixed_lower": "Fixed: Bottom",
"swing_upper": "Swing: Top",
"swing_upper_middle": "Swing: Upper-middle",
"swing_middle": "Swing: Middle",
"swing_lower_middle": "Swing: Lower-middle",
"swing_lower": "Swing: Bottom"
}
},
"swing_horizontal_mode": {
"state": {
"off": "Off",
"on": "Full range (Auto)",
"fixed_left": "Fixed: Left",
"fixed_left_middle": "Fixed: Left-middle",
"fixed_middle": "Fixed: Middle",
"fixed_right_middle": "Fixed: Middle-right",
"fixed_right": "Fixed: Right"
}
}
}
}
}
}
}
@@ -18,5 +18,91 @@
"abort": {
"already_configured": "GREE Controller jest już skonfigurowany"
}
},
"entity": {
"climate": {
"direct_control": {
"name": "Sterowanie bezpośrednie",
"state_attributes": {
"fan_mode": {
"state": {
"auto": "Automatyczny",
"low": "Niski",
"medium_low": "Średnio-niski",
"medium": "Średni",
"medium_high": "Średnio-wysoki",
"high": "Wysoki"
}
},
"swing_mode": {
"state": {
"off": "Wyłączony",
"on": "Pełny zakres (Auto)",
"fixed_upper": "Stała: Góra",
"fixed_upper_middle": "Stała: Środek-góra",
"fixed_middle": "Stała: Środek",
"fixed_lower_middle": "Stała: Środek-dół",
"fixed_lower": "Stała: Dół",
"swing_upper": "Ruch: Góra",
"swing_upper_middle": "Ruch: Środek-góra",
"swing_middle": "Ruch: Środek",
"swing_lower_middle": "Ruch: Środek-dół",
"swing_lower": "Ruch: Dół"
}
},
"swing_horizontal_mode": {
"state": {
"off": "Wyłączony",
"on": "Pełny zakres (Auto)",
"fixed_left": "Stała: Lewo",
"fixed_left_middle": "Stała: Lewo-środek",
"fixed_middle": "Stała: Środek",
"fixed_right_middle": "Stała: Środek-prawo",
"fixed_right": "Stała: Prawo"
}
}
}
},
"zone_thermostat": {
"name": "Termostat",
"state_attributes": {
"preset_mode": {
"state": {
"auto": "Harmonogram (Auto)",
"comfort": "Komfort",
"sleep": "Sen",
"away": "Poza domem"
}
},
"swing_mode": {
"state": {
"off": "Wyłączony",
"on": "Pełny zakres (Auto)",
"fixed_upper": "Stała: Góra",
"fixed_upper_middle": "Stała: Środek-góra",
"fixed_middle": "Stała: Środek",
"fixed_lower_middle": "Stała: Środek-dół",
"fixed_lower": "Stała: Dół",
"swing_upper": "Ruch: Góra",
"swing_upper_middle": "Ruch: Środek-góra",
"swing_middle": "Ruch: Środek",
"swing_lower_middle": "Ruch: Środek-dół",
"swing_lower": "Ruch: Dół"
}
},
"swing_horizontal_mode": {
"state": {
"off": "Wyłączony",
"on": "Pełny zakres (Auto)",
"fixed_left": "Stała: Lewo",
"fixed_left_middle": "Stała: Lewo-środek",
"fixed_middle": "Stała: Środek",
"fixed_right_middle": "Stała: Środek-prawo",
"fixed_right": "Stała: Prawo"
}
}
}
}
}
}
}
@@ -5,6 +5,7 @@
- Adds full vertical and horizontal louver positions to manual unit control and thermostat cards, with compact dropdowns that preserve the existing view layout.
- Extends legacy automations, Visual Flow and the bundled Home Assistant climate entities with granular louver positions; legacy boolean swing API payloads remain accepted.
- Direct add-on access no longer shows `Invalid access token` on initial page load; that validation message appears only after a token is submitted.
- Home Assistant climate cards localize direct-control names, fan modes, thermostat presets and all vertical/horizontal louver positions while keeping stable technical mode IDs for services and automations.
## 0.14.24