// SPDX-License-Identifier: GPL-3.0-or-later /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Copyright (C) 2013 - 2024, nymea GmbH * Copyright (C) 2024 - 2025, chargebyte austria GmbH * * This file is part of nymea-energy-plugin-nymea. * * nymea-energy-plugin-nymea.s free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * nymea-energy-plugin-nymea.s distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with nymea-energy-plugin-nymea. If not, see . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #ifndef EVCHARGERADAPTER_H #define EVCHARGERADAPTER_H #include "adapters/iloadapter.h" #include // EV charger adapter — translates a power setpoint into a charging current. // // Converts W → A using: amps = targetPowerW / (phases * 230) // Clamps to [minA, maxA] as supported by the charger. // // Note: Coexists with SmartChargingManager which uses its own EvCharger wrappers. // EVChargerAdapter is only exercised when the Scheduler explicitly allocates EV power. class EvChargerAdapter : public ILoadAdapter { Q_OBJECT public: explicit EvChargerAdapter(ThingManager *thingManager, const ThingId &thingId, int phases = 1, int minA = 6, int maxA = 32, QObject *parent = nullptr); QString adapterId() const override; LoadRole role() const override; ThingId thingId() const override; void applyPower(double targetPowerW) override; void testConnection() override; double currentPowerW() const override; bool isReachable() const override; private: ThingManager *m_thingManager = nullptr; Thing *m_thing = nullptr; int m_phases; int m_minA; int m_maxA; }; #endif // EVCHARGERADAPTER_H