1212
1313from . import RenaultConfigEntry
1414from .entity import RenaultEntity
15+ from .renault_vehicle import RenaultVehicleProxy
1516
1617# Coordinator is used to centralize the data updates
1718# but renault servers are unreliable and it's safer to queue action calls
@@ -23,7 +24,7 @@ class RenaultButtonEntityDescription(ButtonEntityDescription):
2324 """Class describing Renault button entities."""
2425
2526 async_press : Callable [[RenaultButtonEntity ], Coroutine [Any , Any , Any ]]
26- requires_electricity : bool = False
27+ is_supported : Callable [[ RenaultVehicleProxy ], bool ]
2728
2829
2930async def async_setup_entry (
@@ -36,7 +37,7 @@ async def async_setup_entry(
3637 RenaultButtonEntity (vehicle , description )
3738 for vehicle in config_entry .runtime_data .vehicles .values ()
3839 for description in BUTTON_TYPES
39- if not description .requires_electricity or vehicle . details . uses_electricity ( )
40+ if description .is_supported ( vehicle )
4041 ]
4142 async_add_entities (entities )
4243
@@ -55,18 +56,27 @@ async def async_press(self) -> None:
5556 RenaultButtonEntityDescription (
5657 async_press = lambda x : x .vehicle .set_ac_start (21 , None ),
5758 key = "start_air_conditioner" ,
59+ is_supported = lambda vehicle : (
60+ vehicle .details .supports_endpoint ("actions/hvac-start" )
61+ ),
5862 translation_key = "start_air_conditioner" ,
5963 ),
6064 RenaultButtonEntityDescription (
6165 async_press = lambda x : x .vehicle .set_charge_start (),
6266 key = "start_charge" ,
63- requires_electricity = True ,
67+ is_supported = lambda vehicle : (
68+ vehicle .details .supports_endpoint ("actions/charge-start" )
69+ and vehicle .details .uses_electricity ()
70+ ),
6471 translation_key = "start_charge" ,
6572 ),
6673 RenaultButtonEntityDescription (
6774 async_press = lambda x : x .vehicle .set_charge_stop (),
6875 key = "stop_charge" ,
69- requires_electricity = True ,
76+ is_supported = lambda vehicle : (
77+ vehicle .details .supports_endpoint ("actions/charge-stop" )
78+ and vehicle .details .uses_electricity ()
79+ ),
7080 translation_key = "stop_charge" ,
7181 ),
7282)
0 commit comments