Add digital input state

This commit is contained in:
Simon Stürz 2025-12-12 10:56:58 +01:00
parent 6bf867d816
commit 803283c1bd
3 changed files with 30 additions and 8 deletions

View File

@ -66,7 +66,8 @@ class DashboardApp {
{ key: 'version', label: 'Version' },
{ key: 'sessionEnergy', label: 'Session energy' },
{ key: 'temperature', label: 'Temperature' },
{ key: 'chargingPhases', label: 'Charging phases' }
{ key: 'chargingPhases', label: 'Charging phases' },
{ key: 'digitalInputMode', label: 'Digital input' }
];
this.renderStaticTemplates();
@ -979,6 +980,18 @@ class DashboardApp {
return Number.isFinite(value) ? `Unknown (${value})` : '—';
}
if (key === 'digitalInputMode') {
const modes = {
0: 'Charging allowed',
1: 'Charging allowed inverted',
2: 'PWM and S0 signaling',
3: 'Limit and S0 signaling'
};
if (value in modes)
return modes[value];
return Number.isFinite(value) ? `Unknown (${value})` : '—';
}
if ((key === 'currentPower' || key === 'sessionEnergy') && typeof value === 'number') {
const unit = key === 'currentPower' ? 'kW' : 'kWh';
if (key === 'currentPower')

View File

@ -711,11 +711,12 @@
<th scope="col">Session energy</th>
<th scope="col">Temperature</th>
<th scope="col">Charging phases</th>
<th scope="col">Digital input</th>
</tr>
</thead>
<tbody id="chargerTableBody">
<tr id="chargerEmptyRow" class="empty-row">
<td colspan="11">No chargers loaded yet.</td>
<td colspan="12">No chargers loaded yet.</td>
</tr>
</tbody>
</table>

View File

@ -519,12 +519,11 @@ QJsonObject EvDashEngine::packCharger(Thing *charger) const
}
}
chargerObject.insert("connected", charger->stateValue("connected").toBool());
chargerObject.insert("status", charger->stateValue("status").toString());
chargerObject.insert("chargingCurrent", charger->stateValue("maxChargingCurrent").toDouble());
chargerObject.insert("currentPower", charger->stateValue("currentPower").toDouble());
chargerObject.insert("pluggedIn", charger->stateValue("pluggedIn").toBool());
chargerObject.insert("chargingAllowed", charger->stateValue("power").toBool());
if (charger->hasState("currentVersion"))
chargerObject.insert("version", charger->stateValue("currentVersion").toDouble());
@ -532,12 +531,21 @@ QJsonObject EvDashEngine::packCharger(Thing *charger) const
if (charger->hasState("sessionEnergy"))
chargerObject.insert("sessionEnergy", charger->stateValue("sessionEnergy").toDouble());
if (charger->hasState("temperature"))
chargerObject.insert("temperature", charger->stateValue("temperature").toDouble());
if (charger->hasState("desiredPhaseCount"))
chargerObject.insert("chargingPhases", charger->stateValue("desiredPhaseCount").toInt());
// PCE specific
if (charger->hasState("temperature"))
chargerObject.insert("temperature", charger->stateValue("temperature").toDouble());
if (charger->hasState("error"))
chargerObject.insert("error", charger->stateValue("error").toString());
if (charger->hasState("status"))
chargerObject.insert("status", charger->stateValue("status").toString());
if (charger->hasState("digitalInputMode"))
chargerObject.insert("digitalInputMode", charger->stateValue("digitalInputMode").toInt());
return chargerObject;
}