QAlphaCloud  0.0.1
Qt bindings for Alpha Cloud
onedateenergy.h
1 /*
2  * SPDX-FileCopyrightText: 2023 Kai Uwe Broulik <ghqalpha@broulik.de>
3  * SPDX-License-Identifier: LGPL-2.1-or-later
4  */
5 
6 #pragma once
7 
8 #include <QDate>
9 #include <QJsonObject>
10 #include <QObject>
11 #include <QString>
12 
13 #include <memory>
14 
15 #include "connector.h"
16 #include "qalphacloud.h"
17 #include "qalphacloud_export.h"
18 
19 namespace QAlphaCloud
20 {
21 
22 class OneDateEnergyPrivate;
23 
31 class QALPHACLOUD_EXPORT OneDateEnergy : public QObject
32 {
33  Q_OBJECT
34 
38  Q_PROPERTY(QAlphaCloud::Connector *connector READ connector WRITE setConnector NOTIFY connectorChanged REQUIRED)
39 
40 
45  Q_PROPERTY(QString serialNumber READ serialNumber WRITE setSerialNumber NOTIFY serialNumberChanged REQUIRED)
51  Q_PROPERTY(QDate date READ date WRITE setDate RESET resetDate NOTIFY dateChanged)
52 
53 
64  Q_PROPERTY(bool cached READ cached WRITE setCached NOTIFY cachedChanged)
65 
66 
69  Q_PROPERTY(int photovoltaic READ photovoltaic NOTIFY photovoltaicChanged)
70 
71 
74  Q_PROPERTY(int totalLoad READ totalLoad NOTIFY totalLoadChanged)
78  Q_PROPERTY(int input READ input NOTIFY inputChanged)
82  Q_PROPERTY(int output READ output NOTIFY outputChanged)
83 
84 
87  Q_PROPERTY(int charge READ charge NOTIFY chargeChanged)
91  Q_PROPERTY(int discharge READ discharge NOTIFY dischargeChanged)
97  Q_PROPERTY(int gridCharge READ gridCharge NOTIFY gridChargeChanged)
98 
99  // TODO eChargingPile (EV charger)
100 
101 
107  Q_PROPERTY(QJsonObject rawJson READ rawJson NOTIFY rawJsonChanged)
108 
109 
116  Q_PROPERTY(bool valid READ valid NOTIFY validChanged STORED false)
117 
118 
121  Q_PROPERTY(QAlphaCloud::RequestStatus status READ status NOTIFY statusChanged)
122 
123 
129  Q_PROPERTY(QAlphaCloud::ErrorCode error READ error NOTIFY errorChanged)
135  Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged)
136 
137 public:
144  explicit OneDateEnergy(QObject *parent = nullptr);
152  OneDateEnergy(Connector *connector, const QString &serialNumber, const QDate &date, QObject *parent = nullptr);
153  ~OneDateEnergy() override;
154 
155  Q_REQUIRED_RESULT Connector *connector() const;
156  void setConnector(Connector *connector);
157  Q_SIGNAL void connectorChanged(Connector *connector);
158 
159  Q_REQUIRED_RESULT QString serialNumber() const;
160  void setSerialNumber(const QString &serialNumber);
161  Q_SIGNAL void serialNumberChanged(const QString &serialNumber);
162 
163  Q_REQUIRED_RESULT QDate date() const;
164  void setDate(const QDate &date);
165  void resetDate();
166  Q_SIGNAL void dateChanged(const QDate &date);
167 
168  Q_REQUIRED_RESULT bool cached() const;
169  void setCached(bool cached);
170  Q_SIGNAL void cachedChanged(bool cached);
171 
172  Q_REQUIRED_RESULT int totalLoad() const;
173  Q_SIGNAL void totalLoadChanged(int totalLoad);
174 
175  Q_REQUIRED_RESULT int photovoltaic() const;
176  Q_SIGNAL void photovoltaicChanged(int photovoltaic);
177 
178  Q_REQUIRED_RESULT int input() const;
179  Q_SIGNAL void inputChanged(int input);
180 
181  Q_REQUIRED_RESULT int output() const;
182  Q_SIGNAL void outputChanged(int output);
183 
184  Q_REQUIRED_RESULT int charge() const;
185  Q_SIGNAL void chargeChanged(int charge);
186 
187  Q_REQUIRED_RESULT int discharge() const;
188  Q_SIGNAL void dischargeChanged(int discharge);
189 
190  Q_REQUIRED_RESULT int gridCharge() const;
191  Q_SIGNAL void gridChargeChanged(int gridCharge);
192 
193  Q_REQUIRED_RESULT QJsonObject rawJson() const;
194  Q_SIGNAL void rawJsonChanged();
195 
196  Q_REQUIRED_RESULT bool valid() const;
197  Q_SIGNAL void validChanged(bool valid);
198 
199  Q_REQUIRED_RESULT QAlphaCloud::RequestStatus status() const;
200  Q_SIGNAL void statusChanged(QAlphaCloud::RequestStatus status);
201 
202  QAlphaCloud::ErrorCode error() const;
203  Q_SIGNAL void errorChanged(QAlphaCloud::ErrorCode error);
204 
205  QString errorString() const;
206  Q_SIGNAL void errorStringChanged(const QString &errorString);
207 
208 public Q_SLOTS:
209 
221  bool reload();
229  bool forceReload();
235  void reset();
236 
237 private:
238  std::unique_ptr<OneDateEnergyPrivate> const d;
239 };
240 
241 } // namespace QAlphaCloud
API Connection.
Definition: connector.h:39
Cumulative daily energy information.
Definition: onedateenergy.h:32
Utility namespace.
Definition: apirequest.cpp:24
RequestStatus
Request status.
Definition: qalphacloud.h:28
ErrorCode
Error codes.
Definition: qalphacloud.h:45