- // SPDX-License-Identifier: GPL-3.0-or-later
- /*
- * Qt mutizone MQTT thermostat
- *
- * Copyright (C) 2019 Richard Genoud
- *
- */
-
- #ifndef MQTTCLIENT_H
- #define MQTTCLIENT_H
-
- #include <QTimer>
-
- #include <QtMqtt/QtMqtt>
-
- class MQTTClient: public QMqttClient
- {
- Q_OBJECT
- public:
- explicit MQTTClient(const QString& host = "localhost", int port = 1883,
- QObject* parent = NULL);
- virtual ~MQTTClient();
- void publish_msg(const QString& topic, const QString& payload);
-
- private:
- QTimer m_timer;
-
- public slots:
- void onConnected();
- void onReceived(const QByteArray &message, const QMqttTopicName &topic);
- void onError(ClientError error);
- void onPublished(qint32 msgid);
- void onStateChanged(ClientState state);
- void onDisconnected(void);
- void allHeatersOn(bool on);
-
- signals:
- void new_temperature(int idx, double val);
- void new_hygro(int idx, double val);
- void new_battery(int idx, double val);
- void new_availability(int idx, bool ok);
- };
-
- #endif
-
- /* vim: set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab: */
|