Add 4 more entities in V2C Trydan EVSE (#105531)

* adds EVSE Lock, Timer, Dynamic Intensity, Dynamic Intensity Pause

* fix casing
This commit is contained in:
Diogo Gomes 2023-12-23 23:20:46 +00:00 committed by GitHub
parent e43f4412fa
commit b674985b20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 52 additions and 1 deletions

View File

@ -52,6 +52,18 @@
"switch": {
"paused": {
"name": "Pause session"
},
"locked": {
"name": "Lock EVSE"
},
"timer": {
"name": "Charge point timer"
},
"dynamic": {
"name": "Dynamic intensity modulation"
},
"pause_dynamic": {
"name": "Pause dynamic control modulation"
}
}
}

View File

@ -7,7 +7,13 @@ import logging
from typing import Any
from pytrydan import Trydan, TrydanData
from pytrydan.models.trydan import PauseState
from pytrydan.models.trydan import (
ChargePointTimerState,
DynamicState,
LockState,
PauseDynamicState,
PauseState,
)
from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription
from homeassistant.config_entries import ConfigEntry
@ -44,6 +50,39 @@ TRYDAN_SWITCHES = (
turn_on_fn=lambda evse: evse.pause(),
turn_off_fn=lambda evse: evse.resume(),
),
V2CSwitchEntityDescription(
key="locked",
translation_key="locked",
icon="mdi:lock",
value_fn=lambda evse_data: evse_data.locked == LockState.ENABLED,
turn_on_fn=lambda evse: evse.lock(),
turn_off_fn=lambda evse: evse.unlock(),
),
V2CSwitchEntityDescription(
key="timer",
translation_key="timer",
icon="mdi:timer",
value_fn=lambda evse_data: evse_data.timer == ChargePointTimerState.TIMER_ON,
turn_on_fn=lambda evse: evse.timer(),
turn_off_fn=lambda evse: evse.timer_disable(),
),
V2CSwitchEntityDescription(
key="dynamic",
translation_key="dynamic",
icon="mdi:gauge",
value_fn=lambda evse_data: evse_data.dynamic == DynamicState.ENABLED,
turn_on_fn=lambda evse: evse.dynamic(),
turn_off_fn=lambda evse: evse.dynamic_disable(),
),
V2CSwitchEntityDescription(
key="pause_dynamic",
translation_key="pause_dynamic",
icon="mdi:pause",
value_fn=lambda evse_data: evse_data.pause_dynamic
== PauseDynamicState.NOT_MODULATING,
turn_on_fn=lambda evse: evse.pause_dynamic(),
turn_off_fn=lambda evse: evse.resume_dynamic(),
),
)