QAlphaCloud  0.0.1
Qt bindings for Alpha Cloud
lastpowerdata.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 <QJsonObject>
9 #include <QObject>
10 #include <QString>
11 
12 #include <memory>
13 
14 #include "connector.h"
15 #include "qalphacloud.h"
16 
17 namespace QAlphaCloud
18 {
19 
20 class LastPowerDataPrivate;
21 
29 class Q_DECL_EXPORT LastPowerData : public QObject
30 {
31  Q_OBJECT
32 
36  Q_PROPERTY(QAlphaCloud::Connector *connector READ connector WRITE setConnector NOTIFY connectorChanged REQUIRED)
37 
38 
43  Q_PROPERTY(QString serialNumber READ serialNumber WRITE setSerialNumber NOTIFY serialNumberChanged REQUIRED)
44 
45 
48  Q_PROPERTY(int photovoltaicPower READ photovoltaicPower NOTIFY photovoltaicPowerChanged)
52  Q_PROPERTY(int currentLoad READ currentLoad NOTIFY currentLoadChanged)
53  // TODO add enum for FeedingToGrid / ConsumingGridPower
54  // and/or add gridFeed/gridUse properties.
61  Q_PROPERTY(int gridPower READ gridPower NOTIFY gridPowerChanged)
62  // TODO add enum for NoCharge / Charging / Discharging / FullyCharged
66  Q_PROPERTY(int batteryPower READ batteryPower NOTIFY batteryPowerChanged)
67  // TODO pev
68 
69 
72  Q_PROPERTY(qreal batterySoc READ batterySoc NOTIFY batterySocChanged)
73 
74 
80  Q_PROPERTY(QJsonObject rawJson READ rawJson NOTIFY rawJsonChanged)
81 
82 
89  Q_PROPERTY(bool valid READ valid NOTIFY validChanged STORED false)
90 
91 
94  Q_PROPERTY(QAlphaCloud::RequestStatus status READ status NOTIFY statusChanged)
95 
96 
102  Q_PROPERTY(QAlphaCloud::ErrorCode error READ error NOTIFY errorChanged)
108  Q_PROPERTY(QString errorString READ errorString NOTIFY errorStringChanged)
109 
110 public:
117  explicit LastPowerData(QObject *parent = nullptr);
124  LastPowerData(QAlphaCloud::Connector *connector, const QString &serialNumber, QObject *parent = nullptr);
125  ~LastPowerData() override;
126 
127  Q_REQUIRED_RESULT QAlphaCloud::Connector *connector() const;
128  void setConnector(QAlphaCloud::Connector *connector);
129  Q_SIGNAL void connectorChanged(QAlphaCloud::Connector *connector);
130 
131  Q_REQUIRED_RESULT QString serialNumber() const;
132  void setSerialNumber(const QString &serialNumber);
133  Q_SIGNAL void serialNumberChanged(const QString &serialNumber);
134 
135  Q_REQUIRED_RESULT int photovoltaicPower() const;
136  Q_SIGNAL void photovoltaicPowerChanged(int photovoltaicPower);
137 
138  Q_REQUIRED_RESULT int currentLoad() const;
139  Q_SIGNAL void currentLoadChanged(int currentLoad);
140 
141  Q_REQUIRED_RESULT int gridPower() const;
142  Q_SIGNAL void gridPowerChanged(int gridPower);
143 
144  Q_REQUIRED_RESULT int batteryPower() const;
145  Q_SIGNAL void batteryPowerChanged(int batteryPower);
146 
147  Q_REQUIRED_RESULT qreal batterySoc() const;
148  Q_SIGNAL void batterySocChanged(qreal batterySoc);
149 
150  Q_REQUIRED_RESULT QJsonObject rawJson() const;
151  Q_SIGNAL void rawJsonChanged();
152 
153  Q_REQUIRED_RESULT bool valid() const;
154  Q_SIGNAL void validChanged(bool valid);
155 
156  Q_REQUIRED_RESULT QAlphaCloud::RequestStatus status() const;
157  Q_SIGNAL void statusChanged(QAlphaCloud::RequestStatus status);
158 
159  QAlphaCloud::ErrorCode error() const;
160  Q_SIGNAL void errorChanged(QAlphaCloud::ErrorCode error);
161 
162  QString errorString() const;
163  Q_SIGNAL void errorStringChanged(const QString &errorString);
164 
165 public Q_SLOTS:
166 
178  bool reload();
184  void reset();
185 
186 private:
187  std::unique_ptr<LastPowerDataPrivate> const d;
188 };
189 
190 } // namespace QAlphaCloud
API Connection.
Definition: connector.h:39
Live Power Data.
Definition: lastpowerdata.h:30
Utility namespace.
Definition: apirequest.cpp:24
RequestStatus
Request status.
Definition: qalphacloud.h:28
ErrorCode
Error codes.
Definition: qalphacloud.h:45