From 06cde7a4ecf70251f5084a8931a52321991822d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 6 May 2022 10:32:37 +0200 Subject: [PATCH] Update alphainnotec plugin to libnyma-modbus --- .../alphaconnectmodbustcpconnection.cpp | 1273 ----------------- .../alphaconnectmodbustcpconnection.h | 273 ---- alphainnotec/alphainnotec-registers.json | 5 +- alphainnotec/alphainnotec.pro | 15 +- .../integrationpluginalphainnotec.cpp | 104 +- alphainnotec/integrationpluginalphainnotec.h | 4 +- 6 files changed, 64 insertions(+), 1610 deletions(-) delete mode 100644 alphainnotec/alphaconnectmodbustcpconnection.cpp delete mode 100644 alphainnotec/alphaconnectmodbustcpconnection.h diff --git a/alphainnotec/alphaconnectmodbustcpconnection.cpp b/alphainnotec/alphaconnectmodbustcpconnection.cpp deleted file mode 100644 index 9f6dd9b..0000000 --- a/alphainnotec/alphaconnectmodbustcpconnection.cpp +++ /dev/null @@ -1,1273 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* -* Copyright 2013 - 2021, nymea GmbH -* Contact: contact@nymea.io -* -* This fileDescriptor is part of nymea. -* This project including source code and documentation is protected by -* copyright law, and remains the property of nymea GmbH. All rights, including -* reproduction, publication, editing and translation, are reserved. The use of -* this project is subject to the terms of a license agreement to be concluded -* with nymea GmbH in accordance with the terms of use of nymea GmbH, available -* under https://nymea.io/license -* -* GNU Lesser General Public License Usage -* Alternatively, this project may be redistributed and/or modified under the -* terms of the GNU Lesser General Public License as published by the Free -* Software Foundation; version 3. This project is 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 -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with this project. If not, see . -* -* For any further details and any questions please contact us under -* contact@nymea.io or see our FAQ/Licensing Information on -* https://nymea.io/license/faq -* -* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - - -#include "alphaconnectmodbustcpconnection.h" -#include "loggingcategories.h" - -NYMEA_LOGGING_CATEGORY(dcAlphaConnectModbusTcpConnection, "AlphaConnectModbusTcpConnection") - -AlphaConnectModbusTcpConnection::AlphaConnectModbusTcpConnection(const QHostAddress &hostAddress, uint port, quint16 slaveId, QObject *parent) : - ModbusTCPMaster(hostAddress, port, parent), - m_slaveId(slaveId) -{ - -} - -float AlphaConnectModbusTcpConnection::flowTemperature() const -{ - return m_flowTemperature; -} - -float AlphaConnectModbusTcpConnection::returnTemperature() const -{ - return m_returnTemperature; -} - -float AlphaConnectModbusTcpConnection::externalReturnTemperature() const -{ - return m_externalReturnTemperature; -} - -float AlphaConnectModbusTcpConnection::hotWaterTemperature() const -{ - return m_hotWaterTemperature; -} - -float AlphaConnectModbusTcpConnection::hotGasTemperature() const -{ - return m_hotGasTemperature; -} - -float AlphaConnectModbusTcpConnection::heatSourceInletTemperature() const -{ - return m_heatSourceInletTemperature; -} - -float AlphaConnectModbusTcpConnection::heatSourceOutletTemperature() const -{ - return m_heatSourceOutletTemperature; -} - -float AlphaConnectModbusTcpConnection::roomTemperature1() const -{ - return m_roomTemperature1; -} - -float AlphaConnectModbusTcpConnection::roomTemperature2() const -{ - return m_roomTemperature2; -} - -float AlphaConnectModbusTcpConnection::roomTemperature3() const -{ - return m_roomTemperature3; -} - -float AlphaConnectModbusTcpConnection::solarCollectorTemperature() const -{ - return m_solarCollectorTemperature; -} - -float AlphaConnectModbusTcpConnection::solarStorageTankTemperature() const -{ - return m_solarStorageTankTemperature; -} - -float AlphaConnectModbusTcpConnection::externalEnergySourceTemperature() const -{ - return m_externalEnergySourceTemperature; -} - -float AlphaConnectModbusTcpConnection::supplyAirTemperature() const -{ - return m_supplyAirTemperature; -} - -float AlphaConnectModbusTcpConnection::externalAirTemperature() const -{ - return m_externalAirTemperature; -} - -float AlphaConnectModbusTcpConnection::rbeRoomActualTemperature() const -{ - return m_rbeRoomActualTemperature; -} - -float AlphaConnectModbusTcpConnection::rbeRoomSetpointTemperature() const -{ - return m_rbeRoomSetpointTemperature; -} - -quint16 AlphaConnectModbusTcpConnection::heatingPumpOperatingHours() const -{ - return m_heatingPumpOperatingHours; -} - -AlphaConnectModbusTcpConnection::SystemStatus AlphaConnectModbusTcpConnection::systemStatus() const -{ - return m_systemStatus; -} - -float AlphaConnectModbusTcpConnection::heatingEnergy() const -{ - return m_heatingEnergy; -} - -float AlphaConnectModbusTcpConnection::waterHeatEnergy() const -{ - return m_waterHeatEnergy; -} - -float AlphaConnectModbusTcpConnection::totalHeatEnergy() const -{ - return m_totalHeatEnergy; -} - -float AlphaConnectModbusTcpConnection::outdoorTemperature() const -{ - return m_outdoorTemperature; -} - -QModbusReply *AlphaConnectModbusTcpConnection::setOutdoorTemperature(float outdoorTemperature) -{ - QVector values = ModbusDataUtils::convertFromUInt16(static_cast(outdoorTemperature * 1.0 / pow(10, -1))); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Write \"Outdoor temperature\" register:" << 0 << "size:" << 1 << values; - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 0, values.count()); - request.setValues(values); - return sendWriteRequest(request, m_slaveId); -} - -float AlphaConnectModbusTcpConnection::returnSetpointTemperature() const -{ - return m_returnSetpointTemperature; -} - -QModbusReply *AlphaConnectModbusTcpConnection::setReturnSetpointTemperature(float returnSetpointTemperature) -{ - QVector values = ModbusDataUtils::convertFromUInt16(static_cast(returnSetpointTemperature * 1.0 / pow(10, -1))); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Write \"Return setpoint temperature\" register:" << 1 << "size:" << 1 << values; - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 1, values.count()); - request.setValues(values); - return sendWriteRequest(request, m_slaveId); -} - -float AlphaConnectModbusTcpConnection::hotWaterSetpointTemperature() const -{ - return m_hotWaterSetpointTemperature; -} - -QModbusReply *AlphaConnectModbusTcpConnection::setHotWaterSetpointTemperature(float hotWaterSetpointTemperature) -{ - QVector values = ModbusDataUtils::convertFromUInt16(static_cast(hotWaterSetpointTemperature * 1.0 / pow(10, -1))); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Write \"Hot water setpoint temperature\" register:" << 5 << "size:" << 1 << values; - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 5, values.count()); - request.setValues(values); - return sendWriteRequest(request, m_slaveId); -} - -AlphaConnectModbusTcpConnection::SmartGridState AlphaConnectModbusTcpConnection::smartGrid() const -{ - return m_smartGrid; -} - -QModbusReply *AlphaConnectModbusTcpConnection::setSmartGrid(SmartGridState smartGrid) -{ - QVector values = ModbusDataUtils::convertFromUInt16(static_cast(smartGrid)); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Write \"Smart grid control\" register:" << 14 << "size:" << 1 << values; - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 14, values.count()); - request.setValues(values); - return sendWriteRequest(request, m_slaveId); -} - -void AlphaConnectModbusTcpConnection::initialize() -{ - // No init registers defined. Nothing to be done and we are finished. - emit initializationFinished(); -} - -void AlphaConnectModbusTcpConnection::update() -{ - updateFlowTemperature(); - updateReturnTemperature(); - updateExternalReturnTemperature(); - updateHotWaterTemperature(); - updateHotGasTemperature(); - updateHeatSourceInletTemperature(); - updateHeatSourceOutletTemperature(); - updateRoomTemperature1(); - updateRoomTemperature2(); - updateRoomTemperature3(); - updateSolarCollectorTemperature(); - updateSolarStorageTankTemperature(); - updateExternalEnergySourceTemperature(); - updateSupplyAirTemperature(); - updateExternalAirTemperature(); - updateRbeRoomActualTemperature(); - updateRbeRoomSetpointTemperature(); - updateHeatingPumpOperatingHours(); - updateSystemStatus(); - updateHeatingEnergy(); - updateWaterHeatEnergy(); - updateTotalHeatEnergy(); - updateOutdoorTemperature(); - updateReturnSetpointTemperature(); - updateHotWaterSetpointTemperature(); - updateSmartGrid(); -} - -void AlphaConnectModbusTcpConnection::updateFlowTemperature() -{ - // Update registers from Flow - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Flow\" register:" << 1 << "size:" << 1; - QModbusReply *reply = readFlowTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Flow\" register" << 1 << "size:" << 1 << unit.values(); - float receivedFlowTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_flowTemperature != receivedFlowTemperature) { - m_flowTemperature = receivedFlowTemperature; - emit flowTemperatureChanged(m_flowTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Flow\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Flow\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateReturnTemperature() -{ - // Update registers from Return - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Return\" register:" << 2 << "size:" << 1; - QModbusReply *reply = readReturnTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Return\" register" << 2 << "size:" << 1 << unit.values(); - float receivedReturnTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_returnTemperature != receivedReturnTemperature) { - m_returnTemperature = receivedReturnTemperature; - emit returnTemperatureChanged(m_returnTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Return\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Return\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateExternalReturnTemperature() -{ - // Update registers from External return - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"External return\" register:" << 3 << "size:" << 1; - QModbusReply *reply = readExternalReturnTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"External return\" register" << 3 << "size:" << 1 << unit.values(); - float receivedExternalReturnTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_externalReturnTemperature != receivedExternalReturnTemperature) { - m_externalReturnTemperature = receivedExternalReturnTemperature; - emit externalReturnTemperatureChanged(m_externalReturnTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"External return\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"External return\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHotWaterTemperature() -{ - // Update registers from Hot water temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Hot water temperature\" register:" << 4 << "size:" << 1; - QModbusReply *reply = readHotWaterTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Hot water temperature\" register" << 4 << "size:" << 1 << unit.values(); - float receivedHotWaterTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_hotWaterTemperature != receivedHotWaterTemperature) { - m_hotWaterTemperature = receivedHotWaterTemperature; - emit hotWaterTemperatureChanged(m_hotWaterTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Hot water temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Hot water temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHotGasTemperature() -{ - // Update registers from Hot gas temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Hot gas temperature\" register:" << 8 << "size:" << 1; - QModbusReply *reply = readHotGasTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Hot gas temperature\" register" << 8 << "size:" << 1 << unit.values(); - float receivedHotGasTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_hotGasTemperature != receivedHotGasTemperature) { - m_hotGasTemperature = receivedHotGasTemperature; - emit hotGasTemperatureChanged(m_hotGasTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Hot gas temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Hot gas temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHeatSourceInletTemperature() -{ - // Update registers from Heat source inlet temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Heat source inlet temperature\" register:" << 9 << "size:" << 1; - QModbusReply *reply = readHeatSourceInletTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Heat source inlet temperature\" register" << 9 << "size:" << 1 << unit.values(); - float receivedHeatSourceInletTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_heatSourceInletTemperature != receivedHeatSourceInletTemperature) { - m_heatSourceInletTemperature = receivedHeatSourceInletTemperature; - emit heatSourceInletTemperatureChanged(m_heatSourceInletTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Heat source inlet temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Heat source inlet temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHeatSourceOutletTemperature() -{ - // Update registers from Heat source outlet temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Heat source outlet temperature\" register:" << 10 << "size:" << 1; - QModbusReply *reply = readHeatSourceOutletTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Heat source outlet temperature\" register" << 10 << "size:" << 1 << unit.values(); - float receivedHeatSourceOutletTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_heatSourceOutletTemperature != receivedHeatSourceOutletTemperature) { - m_heatSourceOutletTemperature = receivedHeatSourceOutletTemperature; - emit heatSourceOutletTemperatureChanged(m_heatSourceOutletTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Heat source outlet temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Heat source outlet temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateRoomTemperature1() -{ - // Update registers from Room remote adjuster 1 temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Room remote adjuster 1 temperature\" register:" << 11 << "size:" << 1; - QModbusReply *reply = readRoomTemperature1(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Room remote adjuster 1 temperature\" register" << 11 << "size:" << 1 << unit.values(); - float receivedRoomTemperature1 = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_roomTemperature1 != receivedRoomTemperature1) { - m_roomTemperature1 = receivedRoomTemperature1; - emit roomTemperature1Changed(m_roomTemperature1); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Room remote adjuster 1 temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Room remote adjuster 1 temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateRoomTemperature2() -{ - // Update registers from Room remote adjuster 2 temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Room remote adjuster 2 temperature\" register:" << 12 << "size:" << 1; - QModbusReply *reply = readRoomTemperature2(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Room remote adjuster 2 temperature\" register" << 12 << "size:" << 1 << unit.values(); - float receivedRoomTemperature2 = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_roomTemperature2 != receivedRoomTemperature2) { - m_roomTemperature2 = receivedRoomTemperature2; - emit roomTemperature2Changed(m_roomTemperature2); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Room remote adjuster 2 temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Room remote adjuster 2 temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateRoomTemperature3() -{ - // Update registers from Room remote adjuster 3 temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Room remote adjuster 3 temperature\" register:" << 13 << "size:" << 1; - QModbusReply *reply = readRoomTemperature3(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Room remote adjuster 3 temperature\" register" << 13 << "size:" << 1 << unit.values(); - float receivedRoomTemperature3 = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_roomTemperature3 != receivedRoomTemperature3) { - m_roomTemperature3 = receivedRoomTemperature3; - emit roomTemperature3Changed(m_roomTemperature3); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Room remote adjuster 3 temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Room remote adjuster 3 temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateSolarCollectorTemperature() -{ - // Update registers from Solar collector temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Solar collector temperature\" register:" << 14 << "size:" << 1; - QModbusReply *reply = readSolarCollectorTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Solar collector temperature\" register" << 14 << "size:" << 1 << unit.values(); - float receivedSolarCollectorTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_solarCollectorTemperature != receivedSolarCollectorTemperature) { - m_solarCollectorTemperature = receivedSolarCollectorTemperature; - emit solarCollectorTemperatureChanged(m_solarCollectorTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Solar collector temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Solar collector temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateSolarStorageTankTemperature() -{ - // Update registers from Solar storage tank temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Solar storage tank temperature\" register:" << 15 << "size:" << 1; - QModbusReply *reply = readSolarStorageTankTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Solar storage tank temperature\" register" << 15 << "size:" << 1 << unit.values(); - float receivedSolarStorageTankTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_solarStorageTankTemperature != receivedSolarStorageTankTemperature) { - m_solarStorageTankTemperature = receivedSolarStorageTankTemperature; - emit solarStorageTankTemperatureChanged(m_solarStorageTankTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Solar storage tank temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Solar storage tank temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateExternalEnergySourceTemperature() -{ - // Update registers from External energy source temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"External energy source temperature\" register:" << 16 << "size:" << 1; - QModbusReply *reply = readExternalEnergySourceTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"External energy source temperature\" register" << 16 << "size:" << 1 << unit.values(); - float receivedExternalEnergySourceTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_externalEnergySourceTemperature != receivedExternalEnergySourceTemperature) { - m_externalEnergySourceTemperature = receivedExternalEnergySourceTemperature; - emit externalEnergySourceTemperatureChanged(m_externalEnergySourceTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"External energy source temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"External energy source temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateSupplyAirTemperature() -{ - // Update registers from Supply air temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Supply air temperature\" register:" << 17 << "size:" << 1; - QModbusReply *reply = readSupplyAirTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Supply air temperature\" register" << 17 << "size:" << 1 << unit.values(); - float receivedSupplyAirTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_supplyAirTemperature != receivedSupplyAirTemperature) { - m_supplyAirTemperature = receivedSupplyAirTemperature; - emit supplyAirTemperatureChanged(m_supplyAirTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Supply air temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Supply air temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateExternalAirTemperature() -{ - // Update registers from External air temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"External air temperature\" register:" << 18 << "size:" << 1; - QModbusReply *reply = readExternalAirTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"External air temperature\" register" << 18 << "size:" << 1 << unit.values(); - float receivedExternalAirTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_externalAirTemperature != receivedExternalAirTemperature) { - m_externalAirTemperature = receivedExternalAirTemperature; - emit externalAirTemperatureChanged(m_externalAirTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"External air temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"External air temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateRbeRoomActualTemperature() -{ - // Update registers from RBE actual room temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"RBE actual room temperature\" register:" << 24 << "size:" << 1; - QModbusReply *reply = readRbeRoomActualTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"RBE actual room temperature\" register" << 24 << "size:" << 1 << unit.values(); - float receivedRbeRoomActualTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_rbeRoomActualTemperature != receivedRbeRoomActualTemperature) { - m_rbeRoomActualTemperature = receivedRbeRoomActualTemperature; - emit rbeRoomActualTemperatureChanged(m_rbeRoomActualTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"RBE actual room temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"RBE actual room temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateRbeRoomSetpointTemperature() -{ - // Update registers from RBE room temperature setpoint - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"RBE room temperature setpoint\" register:" << 24 << "size:" << 1; - QModbusReply *reply = readRbeRoomSetpointTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"RBE room temperature setpoint\" register" << 24 << "size:" << 1 << unit.values(); - float receivedRbeRoomSetpointTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_rbeRoomSetpointTemperature != receivedRbeRoomSetpointTemperature) { - m_rbeRoomSetpointTemperature = receivedRbeRoomSetpointTemperature; - emit rbeRoomSetpointTemperatureChanged(m_rbeRoomSetpointTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"RBE room temperature setpoint\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"RBE room temperature setpoint\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHeatingPumpOperatingHours() -{ - // Update registers from Heating pump operating hours - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Heating pump operating hours\" register:" << 33 << "size:" << 1; - QModbusReply *reply = readHeatingPumpOperatingHours(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Heating pump operating hours\" register" << 33 << "size:" << 1 << unit.values(); - quint16 receivedHeatingPumpOperatingHours = ModbusDataUtils::convertToUInt16(unit.values()); - if (m_heatingPumpOperatingHours != receivedHeatingPumpOperatingHours) { - m_heatingPumpOperatingHours = receivedHeatingPumpOperatingHours; - emit heatingPumpOperatingHoursChanged(m_heatingPumpOperatingHours); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Heating pump operating hours\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Heating pump operating hours\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateSystemStatus() -{ - // Update registers from System status - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"System status\" register:" << 37 << "size:" << 1; - QModbusReply *reply = readSystemStatus(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"System status\" register" << 37 << "size:" << 1 << unit.values(); - SystemStatus receivedSystemStatus = static_cast(ModbusDataUtils::convertToUInt16(unit.values())); - if (m_systemStatus != receivedSystemStatus) { - m_systemStatus = receivedSystemStatus; - emit systemStatusChanged(m_systemStatus); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"System status\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"System status\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHeatingEnergy() -{ - // Update registers from Heating energy - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Heating energy\" register:" << 38 << "size:" << 2; - QModbusReply *reply = readHeatingEnergy(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Heating energy\" register" << 38 << "size:" << 2 << unit.values(); - float receivedHeatingEnergy = ModbusDataUtils::convertToUInt32(unit.values(), ModbusDataUtils::ByteOrderBigEndian) * 1.0 * pow(10, -1); - if (m_heatingEnergy != receivedHeatingEnergy) { - m_heatingEnergy = receivedHeatingEnergy; - emit heatingEnergyChanged(m_heatingEnergy); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Heating energy\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Heating energy\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateWaterHeatEnergy() -{ - // Update registers from Water heat energy - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Water heat energy\" register:" << 40 << "size:" << 2; - QModbusReply *reply = readWaterHeatEnergy(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Water heat energy\" register" << 40 << "size:" << 2 << unit.values(); - float receivedWaterHeatEnergy = ModbusDataUtils::convertToUInt32(unit.values(), ModbusDataUtils::ByteOrderBigEndian) * 1.0 * pow(10, -1); - if (m_waterHeatEnergy != receivedWaterHeatEnergy) { - m_waterHeatEnergy = receivedWaterHeatEnergy; - emit waterHeatEnergyChanged(m_waterHeatEnergy); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Water heat energy\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Water heat energy\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateTotalHeatEnergy() -{ - // Update registers from Total energy - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Total energy\" register:" << 44 << "size:" << 2; - QModbusReply *reply = readTotalHeatEnergy(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Total energy\" register" << 44 << "size:" << 2 << unit.values(); - float receivedTotalHeatEnergy = ModbusDataUtils::convertToUInt32(unit.values(), ModbusDataUtils::ByteOrderBigEndian) * 1.0 * pow(10, -1); - if (m_totalHeatEnergy != receivedTotalHeatEnergy) { - m_totalHeatEnergy = receivedTotalHeatEnergy; - emit totalHeatEnergyChanged(m_totalHeatEnergy); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Total energy\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Total energy\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateOutdoorTemperature() -{ - // Update registers from Outdoor temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Outdoor temperature\" register:" << 0 << "size:" << 1; - QModbusReply *reply = readOutdoorTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Outdoor temperature\" register" << 0 << "size:" << 1 << unit.values(); - float receivedOutdoorTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_outdoorTemperature != receivedOutdoorTemperature) { - m_outdoorTemperature = receivedOutdoorTemperature; - emit outdoorTemperatureChanged(m_outdoorTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Outdoor temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Outdoor temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateReturnSetpointTemperature() -{ - // Update registers from Return setpoint temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Return setpoint temperature\" register:" << 1 << "size:" << 1; - QModbusReply *reply = readReturnSetpointTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Return setpoint temperature\" register" << 1 << "size:" << 1 << unit.values(); - float receivedReturnSetpointTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_returnSetpointTemperature != receivedReturnSetpointTemperature) { - m_returnSetpointTemperature = receivedReturnSetpointTemperature; - emit returnSetpointTemperatureChanged(m_returnSetpointTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Return setpoint temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Return setpoint temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateHotWaterSetpointTemperature() -{ - // Update registers from Hot water setpoint temperature - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Hot water setpoint temperature\" register:" << 5 << "size:" << 1; - QModbusReply *reply = readHotWaterSetpointTemperature(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Hot water setpoint temperature\" register" << 5 << "size:" << 1 << unit.values(); - float receivedHotWaterSetpointTemperature = ModbusDataUtils::convertToUInt16(unit.values()) * 1.0 * pow(10, -1); - if (m_hotWaterSetpointTemperature != receivedHotWaterSetpointTemperature) { - m_hotWaterSetpointTemperature = receivedHotWaterSetpointTemperature; - emit hotWaterSetpointTemperatureChanged(m_hotWaterSetpointTemperature); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Hot water setpoint temperature\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Hot water setpoint temperature\" registers from" << hostAddress().toString() << errorString(); - } -} - -void AlphaConnectModbusTcpConnection::updateSmartGrid() -{ - // Update registers from Smart grid control - qCDebug(dcAlphaConnectModbusTcpConnection()) << "--> Read \"Smart grid control\" register:" << 14 << "size:" << 1; - QModbusReply *reply = readSmartGrid(); - if (reply) { - if (!reply->isFinished()) { - connect(reply, &QModbusReply::finished, reply, &QModbusReply::deleteLater); - connect(reply, &QModbusReply::finished, this, [this, reply](){ - if (reply->error() == QModbusDevice::NoError) { - const QModbusDataUnit unit = reply->result(); - qCDebug(dcAlphaConnectModbusTcpConnection()) << "<-- Response from \"Smart grid control\" register" << 14 << "size:" << 1 << unit.values(); - SmartGridState receivedSmartGrid = static_cast(ModbusDataUtils::convertToUInt16(unit.values())); - if (m_smartGrid != receivedSmartGrid) { - m_smartGrid = receivedSmartGrid; - emit smartGridChanged(m_smartGrid); - } - } - }); - - connect(reply, &QModbusReply::errorOccurred, this, [this, reply] (QModbusDevice::Error error){ - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Modbus reply error occurred while updating \"Smart grid control\" registers from" << hostAddress().toString() << error << reply->errorString(); - emit reply->finished(); // To make sure it will be deleted - }); - } else { - delete reply; // Broadcast reply returns immediatly - } - } else { - qCWarning(dcAlphaConnectModbusTcpConnection()) << "Error occurred while reading \"Smart grid control\" registers from" << hostAddress().toString() << errorString(); - } -} - -QModbusReply *AlphaConnectModbusTcpConnection::readFlowTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 1, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readReturnTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 2, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readExternalReturnTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 3, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHotWaterTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 4, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHotGasTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 8, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHeatSourceInletTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 9, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHeatSourceOutletTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 10, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readRoomTemperature1() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 11, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readRoomTemperature2() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 12, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readRoomTemperature3() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 13, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readSolarCollectorTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 14, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readSolarStorageTankTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 15, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readExternalEnergySourceTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 16, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readSupplyAirTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 17, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readExternalAirTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 18, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readRbeRoomActualTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 24, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readRbeRoomSetpointTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 24, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHeatingPumpOperatingHours() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 33, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readSystemStatus() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 37, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHeatingEnergy() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 38, 2); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readWaterHeatEnergy() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 40, 2); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readTotalHeatEnergy() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::InputRegisters, 44, 2); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readOutdoorTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 0, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readReturnSetpointTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 1, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readHotWaterSetpointTemperature() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 5, 1); - return sendReadRequest(request, m_slaveId); -} - -QModbusReply *AlphaConnectModbusTcpConnection::readSmartGrid() -{ - QModbusDataUnit request = QModbusDataUnit(QModbusDataUnit::RegisterType::HoldingRegisters, 14, 1); - return sendReadRequest(request, m_slaveId); -} - -void AlphaConnectModbusTcpConnection::verifyInitFinished() -{ - if (m_pendingInitReplies.isEmpty()) { - qCDebug(dcAlphaConnectModbusTcpConnection()) << "Initialization finished of AlphaConnectModbusTcpConnection" << hostAddress().toString(); - emit initializationFinished(); - } -} - -QDebug operator<<(QDebug debug, AlphaConnectModbusTcpConnection *alphaConnectModbusTcpConnection) -{ - debug.nospace().noquote() << "AlphaConnectModbusTcpConnection(" << alphaConnectModbusTcpConnection->hostAddress().toString() << ":" << alphaConnectModbusTcpConnection->port() << ")" << "\n"; - debug.nospace().noquote() << " - Flow:" << alphaConnectModbusTcpConnection->flowTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Return:" << alphaConnectModbusTcpConnection->returnTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - External return:" << alphaConnectModbusTcpConnection->externalReturnTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Hot water temperature:" << alphaConnectModbusTcpConnection->hotWaterTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Hot gas temperature:" << alphaConnectModbusTcpConnection->hotGasTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Heat source inlet temperature:" << alphaConnectModbusTcpConnection->heatSourceInletTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Heat source outlet temperature:" << alphaConnectModbusTcpConnection->heatSourceOutletTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Room remote adjuster 1 temperature:" << alphaConnectModbusTcpConnection->roomTemperature1() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Room remote adjuster 2 temperature:" << alphaConnectModbusTcpConnection->roomTemperature2() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Room remote adjuster 3 temperature:" << alphaConnectModbusTcpConnection->roomTemperature3() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Solar collector temperature:" << alphaConnectModbusTcpConnection->solarCollectorTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Solar storage tank temperature:" << alphaConnectModbusTcpConnection->solarStorageTankTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - External energy source temperature:" << alphaConnectModbusTcpConnection->externalEnergySourceTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Supply air temperature:" << alphaConnectModbusTcpConnection->supplyAirTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - External air temperature:" << alphaConnectModbusTcpConnection->externalAirTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - RBE actual room temperature:" << alphaConnectModbusTcpConnection->rbeRoomActualTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - RBE room temperature setpoint:" << alphaConnectModbusTcpConnection->rbeRoomSetpointTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Heating pump operating hours:" << alphaConnectModbusTcpConnection->heatingPumpOperatingHours() << " [h]" << "\n"; - debug.nospace().noquote() << " - System status:" << alphaConnectModbusTcpConnection->systemStatus() << "\n"; - debug.nospace().noquote() << " - Heating energy:" << alphaConnectModbusTcpConnection->heatingEnergy() << " [kWh]" << "\n"; - debug.nospace().noquote() << " - Water heat energy:" << alphaConnectModbusTcpConnection->waterHeatEnergy() << " [kWh]" << "\n"; - debug.nospace().noquote() << " - Total energy:" << alphaConnectModbusTcpConnection->totalHeatEnergy() << " [kWh]" << "\n"; - debug.nospace().noquote() << " - Outdoor temperature:" << alphaConnectModbusTcpConnection->outdoorTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Return setpoint temperature:" << alphaConnectModbusTcpConnection->returnSetpointTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Hot water setpoint temperature:" << alphaConnectModbusTcpConnection->hotWaterSetpointTemperature() << " [°C]" << "\n"; - debug.nospace().noquote() << " - Smart grid control:" << alphaConnectModbusTcpConnection->smartGrid() << "\n"; - return debug.quote().space(); -} - diff --git a/alphainnotec/alphaconnectmodbustcpconnection.h b/alphainnotec/alphaconnectmodbustcpconnection.h deleted file mode 100644 index 4b27fd1..0000000 --- a/alphainnotec/alphaconnectmodbustcpconnection.h +++ /dev/null @@ -1,273 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* -* Copyright 2013 - 2021, nymea GmbH -* Contact: contact@nymea.io -* -* This fileDescriptor is part of nymea. -* This project including source code and documentation is protected by -* copyright law, and remains the property of nymea GmbH. All rights, including -* reproduction, publication, editing and translation, are reserved. The use of -* this project is subject to the terms of a license agreement to be concluded -* with nymea GmbH in accordance with the terms of use of nymea GmbH, available -* under https://nymea.io/license -* -* GNU Lesser General Public License Usage -* Alternatively, this project may be redistributed and/or modified under the -* terms of the GNU Lesser General Public License as published by the Free -* Software Foundation; version 3. This project is 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 -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with this project. If not, see . -* -* For any further details and any questions please contact us under -* contact@nymea.io or see our FAQ/Licensing Information on -* https://nymea.io/license/faq -* -* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#ifndef ALPHACONNECTMODBUSTCPCONNECTION_H -#define ALPHACONNECTMODBUSTCPCONNECTION_H - -#include - -#include "../modbus/modbusdatautils.h" -#include "../modbus/modbustcpmaster.h" - -class AlphaConnectModbusTcpConnection : public ModbusTCPMaster -{ - Q_OBJECT -public: - enum SystemStatus { - SystemStatusHeatingMode = 0, - SystemStatusDomesticHotWater = 1, - SystemStatusSwimmingPool = 2, - SystemStatusEVUOff = 3, - SystemStatusDefrost = 4, - SystemStatusOff = 5, - SystemStatusExternalEnergySource = 6, - SystemStatusCoolingMode = 7 - }; - Q_ENUM(SystemStatus) - - enum SmartGridState { - SmartGridStateOff = 0, - SmartGridStateLow = 1, - SmartGridStateStandard = 2, - SmartGridStateHigh = 3 - }; - Q_ENUM(SmartGridState) - - explicit AlphaConnectModbusTcpConnection(const QHostAddress &hostAddress, uint port, quint16 slaveId, QObject *parent = nullptr); - ~AlphaConnectModbusTcpConnection() = default; - - /* Flow [°C] - Address: 1, Size: 1 */ - float flowTemperature() const; - - /* Return [°C] - Address: 2, Size: 1 */ - float returnTemperature() const; - - /* External return [°C] - Address: 3, Size: 1 */ - float externalReturnTemperature() const; - - /* Hot water temperature [°C] - Address: 4, Size: 1 */ - float hotWaterTemperature() const; - - /* Hot gas temperature [°C] - Address: 8, Size: 1 */ - float hotGasTemperature() const; - - /* Heat source inlet temperature [°C] - Address: 9, Size: 1 */ - float heatSourceInletTemperature() const; - - /* Heat source outlet temperature [°C] - Address: 10, Size: 1 */ - float heatSourceOutletTemperature() const; - - /* Room remote adjuster 1 temperature [°C] - Address: 11, Size: 1 */ - float roomTemperature1() const; - - /* Room remote adjuster 2 temperature [°C] - Address: 12, Size: 1 */ - float roomTemperature2() const; - - /* Room remote adjuster 3 temperature [°C] - Address: 13, Size: 1 */ - float roomTemperature3() const; - - /* Solar collector temperature [°C] - Address: 14, Size: 1 */ - float solarCollectorTemperature() const; - - /* Solar storage tank temperature [°C] - Address: 15, Size: 1 */ - float solarStorageTankTemperature() const; - - /* External energy source temperature [°C] - Address: 16, Size: 1 */ - float externalEnergySourceTemperature() const; - - /* Supply air temperature [°C] - Address: 17, Size: 1 */ - float supplyAirTemperature() const; - - /* External air temperature [°C] - Address: 18, Size: 1 */ - float externalAirTemperature() const; - - /* RBE actual room temperature [°C] - Address: 24, Size: 1 */ - float rbeRoomActualTemperature() const; - - /* RBE room temperature setpoint [°C] - Address: 24, Size: 1 */ - float rbeRoomSetpointTemperature() const; - - /* Heating pump operating hours [h] - Address: 33, Size: 1 */ - quint16 heatingPumpOperatingHours() const; - - /* System status - Address: 37, Size: 1 */ - SystemStatus systemStatus() const; - - /* Heating energy [kWh] - Address: 38, Size: 2 */ - float heatingEnergy() const; - - /* Water heat energy [kWh] - Address: 40, Size: 2 */ - float waterHeatEnergy() const; - - /* Total energy [kWh] - Address: 44, Size: 2 */ - float totalHeatEnergy() const; - - /* Outdoor temperature [°C] - Address: 0, Size: 1 */ - float outdoorTemperature() const; - QModbusReply *setOutdoorTemperature(float outdoorTemperature); - - /* Return setpoint temperature [°C] - Address: 1, Size: 1 */ - float returnSetpointTemperature() const; - QModbusReply *setReturnSetpointTemperature(float returnSetpointTemperature); - - /* Hot water setpoint temperature [°C] - Address: 5, Size: 1 */ - float hotWaterSetpointTemperature() const; - QModbusReply *setHotWaterSetpointTemperature(float hotWaterSetpointTemperature); - - /* Smart grid control - Address: 14, Size: 1 */ - SmartGridState smartGrid() const; - QModbusReply *setSmartGrid(SmartGridState smartGrid); - - virtual void initialize(); - virtual void update(); - - void updateFlowTemperature(); - void updateReturnTemperature(); - void updateExternalReturnTemperature(); - void updateHotWaterTemperature(); - void updateHotGasTemperature(); - void updateHeatSourceInletTemperature(); - void updateHeatSourceOutletTemperature(); - void updateRoomTemperature1(); - void updateRoomTemperature2(); - void updateRoomTemperature3(); - void updateSolarCollectorTemperature(); - void updateSolarStorageTankTemperature(); - void updateExternalEnergySourceTemperature(); - void updateSupplyAirTemperature(); - void updateExternalAirTemperature(); - void updateRbeRoomActualTemperature(); - void updateRbeRoomSetpointTemperature(); - void updateHeatingPumpOperatingHours(); - void updateSystemStatus(); - void updateHeatingEnergy(); - void updateWaterHeatEnergy(); - void updateTotalHeatEnergy(); - void updateOutdoorTemperature(); - void updateReturnSetpointTemperature(); - void updateHotWaterSetpointTemperature(); - void updateSmartGrid(); - -signals: - void initializationFinished(); - - void flowTemperatureChanged(float flowTemperature); - void returnTemperatureChanged(float returnTemperature); - void externalReturnTemperatureChanged(float externalReturnTemperature); - void hotWaterTemperatureChanged(float hotWaterTemperature); - void hotGasTemperatureChanged(float hotGasTemperature); - void heatSourceInletTemperatureChanged(float heatSourceInletTemperature); - void heatSourceOutletTemperatureChanged(float heatSourceOutletTemperature); - void roomTemperature1Changed(float roomTemperature1); - void roomTemperature2Changed(float roomTemperature2); - void roomTemperature3Changed(float roomTemperature3); - void solarCollectorTemperatureChanged(float solarCollectorTemperature); - void solarStorageTankTemperatureChanged(float solarStorageTankTemperature); - void externalEnergySourceTemperatureChanged(float externalEnergySourceTemperature); - void supplyAirTemperatureChanged(float supplyAirTemperature); - void externalAirTemperatureChanged(float externalAirTemperature); - void rbeRoomActualTemperatureChanged(float rbeRoomActualTemperature); - void rbeRoomSetpointTemperatureChanged(float rbeRoomSetpointTemperature); - void heatingPumpOperatingHoursChanged(quint16 heatingPumpOperatingHours); - void systemStatusChanged(SystemStatus systemStatus); - void heatingEnergyChanged(float heatingEnergy); - void waterHeatEnergyChanged(float waterHeatEnergy); - void totalHeatEnergyChanged(float totalHeatEnergy); - void outdoorTemperatureChanged(float outdoorTemperature); - void returnSetpointTemperatureChanged(float returnSetpointTemperature); - void hotWaterSetpointTemperatureChanged(float hotWaterSetpointTemperature); - void smartGridChanged(SmartGridState smartGrid); - -private: - quint16 m_slaveId = 1; - QVector m_pendingInitReplies; - - float m_flowTemperature = 0; - float m_returnTemperature = 0; - float m_externalReturnTemperature = 0; - float m_hotWaterTemperature = 0; - float m_hotGasTemperature = 0; - float m_heatSourceInletTemperature = 0; - float m_heatSourceOutletTemperature = 0; - float m_roomTemperature1 = 0; - float m_roomTemperature2 = 0; - float m_roomTemperature3 = 0; - float m_solarCollectorTemperature = 0; - float m_solarStorageTankTemperature = 0; - float m_externalEnergySourceTemperature = 0; - float m_supplyAirTemperature = 0; - float m_externalAirTemperature = 0; - float m_rbeRoomActualTemperature = 0; - float m_rbeRoomSetpointTemperature = 0; - quint16 m_heatingPumpOperatingHours = 0; - SystemStatus m_systemStatus = SystemStatusHeatingMode; - float m_heatingEnergy = 0; - float m_waterHeatEnergy = 0; - float m_totalHeatEnergy = 0; - float m_outdoorTemperature = 0; - float m_returnSetpointTemperature = 0; - float m_hotWaterSetpointTemperature = 0; - SmartGridState m_smartGrid = SmartGridStateStandard; - - void verifyInitFinished(); - - QModbusReply *readFlowTemperature(); - QModbusReply *readReturnTemperature(); - QModbusReply *readExternalReturnTemperature(); - QModbusReply *readHotWaterTemperature(); - QModbusReply *readHotGasTemperature(); - QModbusReply *readHeatSourceInletTemperature(); - QModbusReply *readHeatSourceOutletTemperature(); - QModbusReply *readRoomTemperature1(); - QModbusReply *readRoomTemperature2(); - QModbusReply *readRoomTemperature3(); - QModbusReply *readSolarCollectorTemperature(); - QModbusReply *readSolarStorageTankTemperature(); - QModbusReply *readExternalEnergySourceTemperature(); - QModbusReply *readSupplyAirTemperature(); - QModbusReply *readExternalAirTemperature(); - QModbusReply *readRbeRoomActualTemperature(); - QModbusReply *readRbeRoomSetpointTemperature(); - QModbusReply *readHeatingPumpOperatingHours(); - QModbusReply *readSystemStatus(); - QModbusReply *readHeatingEnergy(); - QModbusReply *readWaterHeatEnergy(); - QModbusReply *readTotalHeatEnergy(); - QModbusReply *readOutdoorTemperature(); - QModbusReply *readReturnSetpointTemperature(); - QModbusReply *readHotWaterSetpointTemperature(); - QModbusReply *readSmartGrid(); - - -}; - -QDebug operator<<(QDebug debug, AlphaConnectModbusTcpConnection *alphaConnectModbusTcpConnection); - -#endif // ALPHACONNECTMODBUSTCPCONNECTION_H diff --git a/alphainnotec/alphainnotec-registers.json b/alphainnotec/alphainnotec-registers.json index 1908e0d..2068ce0 100644 --- a/alphainnotec/alphainnotec-registers.json +++ b/alphainnotec/alphainnotec-registers.json @@ -1,4 +1,6 @@ { + "className": "AlphaInnotec", + "protocol": "TCP", "endianness": "BigEndian", "enums": [ { @@ -397,5 +399,6 @@ "defaultValue": "SmartGridStateStandard", "access": "RW" } - ] + ], + "blocks": [ ] } diff --git a/alphainnotec/alphainnotec.pro b/alphainnotec/alphainnotec.pro index b88c856..b2220a6 100644 --- a/alphainnotec/alphainnotec.pro +++ b/alphainnotec/alphainnotec.pro @@ -1,15 +1,12 @@ include(../plugins.pri) -QT += network serialbus +# Generate modbus connection +MODBUS_CONNECTIONS += alphainnotec-registers.json +MODBUS_TOOLS_CONFIG += VERBOSE +include(../modbus.pri) SOURCES += \ - integrationpluginalphainnotec.cpp \ - alphaconnectmodbustcpconnection.cpp \ - ../modbus/modbustcpmaster.cpp \ - ../modbus/modbusdatautils.cpp + integrationpluginalphainnotec.cpp HEADERS += \ - integrationpluginalphainnotec.h \ - alphaconnectmodbustcpconnection.h \ - ../modbus/modbustcpmaster.h \ - ../modbus/modbusdatautils.h + integrationpluginalphainnotec.h diff --git a/alphainnotec/integrationpluginalphainnotec.cpp b/alphainnotec/integrationpluginalphainnotec.cpp index 153d6b3..d6f5fb6 100644 --- a/alphainnotec/integrationpluginalphainnotec.cpp +++ b/alphainnotec/integrationpluginalphainnotec.cpp @@ -107,8 +107,8 @@ void IntegrationPluginAlphaInnotec::setupThing(ThingSetupInfo *info) uint port = thing->paramValue(alphaConnectThingPortParamTypeId).toUInt(); quint16 slaveId = thing->paramValue(alphaConnectThingSlaveIdParamTypeId).toUInt(); - AlphaConnectModbusTcpConnection *alphaConnectTcpConnection = new AlphaConnectModbusTcpConnection(hostAddress, port, slaveId, this); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::connectionStateChanged, this, [thing, alphaConnectTcpConnection](bool status){ + AlphaInnotecModbusTcpConnection *alphaConnectTcpConnection = new AlphaInnotecModbusTcpConnection(hostAddress, port, slaveId, this); + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::connectionStateChanged, this, [thing, alphaConnectTcpConnection](bool status){ qCDebug(dcAlphaInnotec()) << "Connected changed to" << status << "for" << thing; if (status) { alphaConnectTcpConnection->update(); @@ -119,181 +119,181 @@ void IntegrationPluginAlphaInnotec::setupThing(ThingSetupInfo *info) // Input registers -// connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::meanTemperatureChanged, this, [thing](float meanTemperature){ +// connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::meanTemperatureChanged, this, [thing](float meanTemperature){ // qCDebug(dcAlphaInnotec()) << thing << "mean temperature changed" << meanTemperature << "°C"; // thing->setStateValue(alphaConnectMeanTemperatureStateTypeId, meanTemperature); // }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::flowTemperatureChanged, this, [thing](float flowTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::flowTemperatureChanged, this, [thing](float flowTemperature){ qCDebug(dcAlphaInnotec()) << thing << "flow temperature changed" << flowTemperature << "°C"; thing->setStateValue(alphaConnectFlowTemperatureStateTypeId, flowTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::returnTemperatureChanged, this, [thing](float returnTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::returnTemperatureChanged, this, [thing](float returnTemperature){ qCDebug(dcAlphaInnotec()) << thing << "return temperature changed" << returnTemperature << "°C"; thing->setStateValue(alphaConnectReturnTemperatureStateTypeId, returnTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::externalReturnTemperatureChanged, this, [thing](float externalReturnTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::externalReturnTemperatureChanged, this, [thing](float externalReturnTemperature){ qCDebug(dcAlphaInnotec()) << thing << "external return temperature changed" << externalReturnTemperature << "°C"; thing->setStateValue(alphaConnectExternalReturnTemperatureStateTypeId, externalReturnTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::hotWaterTemperatureChanged, this, [thing](float hotWaterTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::hotWaterTemperatureChanged, this, [thing](float hotWaterTemperature){ qCDebug(dcAlphaInnotec()) << thing << "hot water temperature changed" << hotWaterTemperature << "°C"; thing->setStateValue(alphaConnectHotWaterTemperatureStateTypeId, hotWaterTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::hotGasTemperatureChanged, this, [thing](float hotGasTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::hotGasTemperatureChanged, this, [thing](float hotGasTemperature){ qCDebug(dcAlphaInnotec()) << thing << "hot gas temperature changed" << hotGasTemperature << "°C"; thing->setStateValue(alphaConnectHotGasTemperatureStateTypeId, hotGasTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::heatSourceInletTemperatureChanged, this, [thing](float heatSourceInletTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::heatSourceInletTemperatureChanged, this, [thing](float heatSourceInletTemperature){ qCDebug(dcAlphaInnotec()) << thing << "heat source inlet temperature changed" << heatSourceInletTemperature << "°C"; thing->setStateValue(alphaConnectHeatSourceInletTemperatureStateTypeId, heatSourceInletTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::heatSourceOutletTemperatureChanged, this, [thing](float heatSourceOutletTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::heatSourceOutletTemperatureChanged, this, [thing](float heatSourceOutletTemperature){ qCDebug(dcAlphaInnotec()) << thing << "heat source outlet temperature changed" << heatSourceOutletTemperature << "°C"; thing->setStateValue(alphaConnectHeatSourceOutletTemperatureStateTypeId, heatSourceOutletTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::roomTemperature1Changed, this, [thing](float roomTemperature1){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::roomTemperature1Changed, this, [thing](float roomTemperature1){ qCDebug(dcAlphaInnotec()) << thing << "room remote adjuster 1 temperature changed" << roomTemperature1 << "°C"; thing->setStateValue(alphaConnectRoomTemperature1StateTypeId, roomTemperature1); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::roomTemperature2Changed, this, [thing](float roomTemperature2){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::roomTemperature2Changed, this, [thing](float roomTemperature2){ qCDebug(dcAlphaInnotec()) << thing << "room remote adjuster 2 temperature changed" << roomTemperature2 << "°C"; thing->setStateValue(alphaConnectRoomTemperature2StateTypeId, roomTemperature2); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::roomTemperature3Changed, this, [thing](float roomTemperature3){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::roomTemperature3Changed, this, [thing](float roomTemperature3){ qCDebug(dcAlphaInnotec()) << thing << "room remote adjuster 3 temperature changed" << roomTemperature3 << "°C"; thing->setStateValue(alphaConnectRoomTemperature2StateTypeId, roomTemperature3); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::solarCollectorTemperatureChanged, this, [thing](float solarCollectorTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::solarCollectorTemperatureChanged, this, [thing](float solarCollectorTemperature){ qCDebug(dcAlphaInnotec()) << thing << "solar collector temperature changed" << solarCollectorTemperature << "°C"; thing->setStateValue(alphaConnectSolarCollectorTemperatureStateTypeId, solarCollectorTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::solarStorageTankTemperatureChanged, this, [thing](float solarStorageTankTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::solarStorageTankTemperatureChanged, this, [thing](float solarStorageTankTemperature){ qCDebug(dcAlphaInnotec()) << thing << "solar storage tank temperature changed" << solarStorageTankTemperature << "°C"; thing->setStateValue(alphaConnectSolarCollectorTemperatureStateTypeId, solarStorageTankTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::externalEnergySourceTemperatureChanged, this, [thing](float externalEnergySourceTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::externalEnergySourceTemperatureChanged, this, [thing](float externalEnergySourceTemperature){ qCDebug(dcAlphaInnotec()) << thing << "external energy source temperature changed" << externalEnergySourceTemperature << "°C"; thing->setStateValue(alphaConnectExternalEnergySourceTemperatureStateTypeId, externalEnergySourceTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::supplyAirTemperatureChanged, this, [thing](float supplyAirTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::supplyAirTemperatureChanged, this, [thing](float supplyAirTemperature){ qCDebug(dcAlphaInnotec()) << thing << "supply air temperature changed" << supplyAirTemperature << "°C"; thing->setStateValue(alphaConnectSupplyAirTemperatureStateTypeId, supplyAirTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::externalAirTemperatureChanged, this, [thing](float externalAirTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::externalAirTemperatureChanged, this, [thing](float externalAirTemperature){ qCDebug(dcAlphaInnotec()) << thing << "external air temperature changed" << externalAirTemperature << "°C"; thing->setStateValue(alphaConnectExternalAirTemperatureStateTypeId, externalAirTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::heatingPumpOperatingHoursChanged, this, [thing](quint16 heatingPumpOperatingHours){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::heatingPumpOperatingHoursChanged, this, [thing](quint16 heatingPumpOperatingHours){ qCDebug(dcAlphaInnotec()) << thing << "heating pump operating hours changed" << heatingPumpOperatingHours; thing->setStateValue(alphaConnectHeatingPumpOperatingHoursStateTypeId, heatingPumpOperatingHours); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::systemStatusChanged, this, [thing](AlphaConnectModbusTcpConnection::SystemStatus systemStatus){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::systemStatusChanged, this, [thing](AlphaInnotecModbusTcpConnection::SystemStatus systemStatus){ qCDebug(dcAlphaInnotec()) << thing << "system status changed" << systemStatus; switch (systemStatus) { - case AlphaConnectModbusTcpConnection::SystemStatusHeatingMode: + case AlphaInnotecModbusTcpConnection::SystemStatusHeatingMode: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "Heating mode"); break; - case AlphaConnectModbusTcpConnection::SystemStatusDomesticHotWater: + case AlphaInnotecModbusTcpConnection::SystemStatusDomesticHotWater: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "Domestic hot water"); break; - case AlphaConnectModbusTcpConnection::SystemStatusSwimmingPool: + case AlphaInnotecModbusTcpConnection::SystemStatusSwimmingPool: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "Swimming pool"); break; - case AlphaConnectModbusTcpConnection::SystemStatusEVUOff: + case AlphaInnotecModbusTcpConnection::SystemStatusEVUOff: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "EUV off"); break; - case AlphaConnectModbusTcpConnection::SystemStatusDefrost: + case AlphaInnotecModbusTcpConnection::SystemStatusDefrost: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "Defrost"); break; - case AlphaConnectModbusTcpConnection::SystemStatusOff: + case AlphaInnotecModbusTcpConnection::SystemStatusOff: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "Off"); break; - case AlphaConnectModbusTcpConnection::SystemStatusExternalEnergySource: + case AlphaInnotecModbusTcpConnection::SystemStatusExternalEnergySource: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "External energy source"); break; - case AlphaConnectModbusTcpConnection::SystemStatusCoolingMode: + case AlphaInnotecModbusTcpConnection::SystemStatusCoolingMode: thing->setStateValue(alphaConnectSystemStatusStateTypeId, "Cooling mode"); break; } // Set heating and cooling states according to the system state - thing->setStateValue(alphaConnectHeatingOnStateTypeId, systemStatus == AlphaConnectModbusTcpConnection::SystemStatusHeatingMode); - thing->setStateValue(alphaConnectCoolingOnStateTypeId, systemStatus == AlphaConnectModbusTcpConnection::SystemStatusCoolingMode); + thing->setStateValue(alphaConnectHeatingOnStateTypeId, systemStatus == AlphaInnotecModbusTcpConnection::SystemStatusHeatingMode); + thing->setStateValue(alphaConnectCoolingOnStateTypeId, systemStatus == AlphaInnotecModbusTcpConnection::SystemStatusCoolingMode); }); // Energy - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::totalHeatEnergyChanged, this, [thing](float totalHeatEnergy){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::totalHeatEnergyChanged, this, [thing](float totalHeatEnergy){ qCDebug(dcAlphaInnotec()) << thing << "total heating energy changed" << totalHeatEnergy << "kWh"; thing->setStateValue(alphaConnectTotalEnergyStateTypeId, totalHeatEnergy); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::heatingEnergyChanged, this, [thing](float heatingEnergy){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::heatingEnergyChanged, this, [thing](float heatingEnergy){ qCDebug(dcAlphaInnotec()) << thing << "heating energy changed" << heatingEnergy << "kWh"; thing->setStateValue(alphaConnectHeatingEnergyStateTypeId, heatingEnergy); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::waterHeatEnergyChanged, this, [thing](float waterHeatEnergy){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::waterHeatEnergyChanged, this, [thing](float waterHeatEnergy){ qCDebug(dcAlphaInnotec()) << thing << "water heat energy changed" << waterHeatEnergy << "kWh"; thing->setStateValue(alphaConnectHotWaterEnergyStateTypeId, waterHeatEnergy); }); -// connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::swimmingPoolHeatEnergyChanged, this, [thing](float swimmingPoolHeatEnergy){ +// connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::swimmingPoolHeatEnergyChanged, this, [thing](float swimmingPoolHeatEnergy){ // qCDebug(dcAlphaInnotec()) << thing << "swimming pool heat energy changed" << swimmingPoolHeatEnergy << "kWh"; // thing->setStateValue(alphaConnectSwimmingPoolEnergyStateTypeId, swimmingPoolHeatEnergy); // }); // Holding registers - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::outdoorTemperatureChanged, this, [thing](float outdoorTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::outdoorTemperatureChanged, this, [thing](float outdoorTemperature){ qCDebug(dcAlphaInnotec()) << thing << "outdoor temperature changed" << outdoorTemperature << "°C"; thing->setStateValue(alphaConnectOutdoorTemperatureStateTypeId, outdoorTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::returnSetpointTemperatureChanged, this, [thing](float returnSetpointTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::returnSetpointTemperatureChanged, this, [thing](float returnSetpointTemperature){ qCDebug(dcAlphaInnotec()) << thing << "return setpoint temperature changed" << returnSetpointTemperature << "°C"; thing->setStateValue(alphaConnectReturnSetpointTemperatureStateTypeId, returnSetpointTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::hotWaterSetpointTemperatureChanged, this, [thing](float hotWaterSetpointTemperature){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::hotWaterSetpointTemperatureChanged, this, [thing](float hotWaterSetpointTemperature){ qCDebug(dcAlphaInnotec()) << thing << "hot water setpoint temperature changed" << hotWaterSetpointTemperature << "°C"; thing->setStateValue(alphaConnectHotWaterSetpointTemperatureStateTypeId, hotWaterSetpointTemperature); }); - connect(alphaConnectTcpConnection, &AlphaConnectModbusTcpConnection::smartGridChanged, this, [thing](AlphaConnectModbusTcpConnection::SmartGridState smartGridState){ + connect(alphaConnectTcpConnection, &AlphaInnotecModbusTcpConnection::smartGridChanged, this, [thing](AlphaInnotecModbusTcpConnection::SmartGridState smartGridState){ qCDebug(dcAlphaInnotec()) << thing << "smart grid state changed" << smartGridState; switch (smartGridState) { - case AlphaConnectModbusTcpConnection::SmartGridStateOff: + case AlphaInnotecModbusTcpConnection::SmartGridStateOff: thing->setStateValue(alphaConnectSgReadyModeStateTypeId, "Off"); break; - case AlphaConnectModbusTcpConnection::SmartGridStateLow: + case AlphaInnotecModbusTcpConnection::SmartGridStateLow: thing->setStateValue(alphaConnectSgReadyModeStateTypeId, "Low"); break; - case AlphaConnectModbusTcpConnection::SmartGridStateStandard: + case AlphaInnotecModbusTcpConnection::SmartGridStateStandard: thing->setStateValue(alphaConnectSgReadyModeStateTypeId, "Standard"); break; - case AlphaConnectModbusTcpConnection::SmartGridStateHigh: + case AlphaInnotecModbusTcpConnection::SmartGridStateHigh: thing->setStateValue(alphaConnectSgReadyModeStateTypeId, "High"); break; } }); - m_alpaConnectTcpThings.insert(thing, alphaConnectTcpConnection); + m_connections.insert(thing, alphaConnectTcpConnection); alphaConnectTcpConnection->connectDevice(); // FIXME: make async and check if this is really an alpha connect @@ -308,7 +308,7 @@ void IntegrationPluginAlphaInnotec::postSetupThing(Thing *thing) qCDebug(dcAlphaInnotec()) << "Starting plugin timer..."; m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(10); connect(m_pluginTimer, &PluginTimer::timeout, this, [this] { - foreach (AlphaConnectModbusTcpConnection *connection, m_alpaConnectTcpThings) { + foreach (AlphaInnotecModbusTcpConnection *connection, m_connections) { if (connection->connected()) { connection->update(); } @@ -322,8 +322,8 @@ void IntegrationPluginAlphaInnotec::postSetupThing(Thing *thing) void IntegrationPluginAlphaInnotec::thingRemoved(Thing *thing) { - if (thing->thingClassId() == alphaConnectThingClassId && m_alpaConnectTcpThings.contains(thing)) { - AlphaConnectModbusTcpConnection *connection = m_alpaConnectTcpThings.take(thing); + if (thing->thingClassId() == alphaConnectThingClassId && m_connections.contains(thing)) { + AlphaInnotecModbusTcpConnection *connection = m_connections.take(thing); delete connection; } @@ -336,7 +336,7 @@ void IntegrationPluginAlphaInnotec::thingRemoved(Thing *thing) void IntegrationPluginAlphaInnotec::executeAction(ThingActionInfo *info) { Thing *thing = info->thing(); - AlphaConnectModbusTcpConnection *connection = m_alpaConnectTcpThings.value(thing); + AlphaInnotecModbusTcpConnection *connection = m_connections.value(thing); if (!connection->connected()) { qCWarning(dcAlphaInnotec()) << "Could not execute action. The modbus connection is currently not available."; @@ -430,15 +430,15 @@ void IntegrationPluginAlphaInnotec::executeAction(ThingActionInfo *info) } else if (info->action().actionTypeId() == alphaConnectSgReadyModeActionTypeId) { QString sgReadyModeString = info->action().paramValue(alphaConnectSgReadyModeActionSgReadyModeParamTypeId).toString(); qCDebug(dcAlphaInnotec()) << "Execute action" << info->action().actionTypeId().toString() << info->action().params(); - AlphaConnectModbusTcpConnection::SmartGridState sgReadyState; + AlphaInnotecModbusTcpConnection::SmartGridState sgReadyState; if (sgReadyModeString == "Off") { - sgReadyState = AlphaConnectModbusTcpConnection::SmartGridStateOff; + sgReadyState = AlphaInnotecModbusTcpConnection::SmartGridStateOff; } else if (sgReadyModeString == "Low") { - sgReadyState = AlphaConnectModbusTcpConnection::SmartGridStateLow; + sgReadyState = AlphaInnotecModbusTcpConnection::SmartGridStateLow; } else if (sgReadyModeString == "High") { - sgReadyState = AlphaConnectModbusTcpConnection::SmartGridStateHigh; + sgReadyState = AlphaInnotecModbusTcpConnection::SmartGridStateHigh; } else { - sgReadyState = AlphaConnectModbusTcpConnection::SmartGridStateStandard; + sgReadyState = AlphaInnotecModbusTcpConnection::SmartGridStateStandard; } QModbusReply *reply = connection->setSmartGrid(sgReadyState); diff --git a/alphainnotec/integrationpluginalphainnotec.h b/alphainnotec/integrationpluginalphainnotec.h index 0f6a4cc..284f591 100644 --- a/alphainnotec/integrationpluginalphainnotec.h +++ b/alphainnotec/integrationpluginalphainnotec.h @@ -32,7 +32,7 @@ #define INTEGRATIONPLUGINALPHAINNOTEC_H #include "plugintimer.h" -#include "alphaconnectmodbustcpconnection.h" +#include "alphainnotecmodbustcpconnection.h" #include "integrations/integrationplugin.h" class IntegrationPluginAlphaInnotec: public IntegrationPlugin @@ -54,7 +54,7 @@ public: private: PluginTimer *m_pluginTimer = nullptr; - QHash m_alpaConnectTcpThings; + QHash m_connections; }; #endif // INTEGRATIONPLUGINALPHAINNOTEC_H