diff --git a/bgetech/README.md b/bgetech/README.md new file mode 100644 index 0000000..0fd1664 --- /dev/null +++ b/bgetech/README.md @@ -0,0 +1,9 @@ +# B+G E-Tech + +This plugin adds support for the B+G E-Tech SDM630 energy meter connected via Modbus RTU. + +# Setup instructions +First, set up a Modbus RTU resource using the configured settings of your meter. Once +that's set up, the SDM630 can be set up like any other thing. During discovery, nymea will +offer the configured Modbus resources as possible connections. Select the one that +you've set up previously. diff --git a/bgetech/bg-etech.jpg b/bgetech/bg-etech.jpg new file mode 100644 index 0000000..917bc0d Binary files /dev/null and b/bgetech/bg-etech.jpg differ diff --git a/energymeters/energymeters.pro b/bgetech/bgetech.pro similarity index 59% rename from energymeters/energymeters.pro rename to bgetech/bgetech.pro index 9dd6c12..080685d 100644 --- a/energymeters/energymeters.pro +++ b/bgetech/bgetech.pro @@ -3,14 +3,12 @@ include(../plugins.pri) QT += serialport serialbus HEADERS += \ - integrationpluginenergymeters.h \ + integrationpluginbgetech.h \ sdm630modbusrtuconnection.h \ - pro380modbusrtuconnection.h \ ../modbus/modbusdatautils.h SOURCES += \ - integrationpluginenergymeters.cpp \ + integrationpluginbgetech.cpp \ sdm630modbusrtuconnection.cpp \ - pro380modbusrtuconnection.cpp \ ../modbus/modbusdatautils.cpp diff --git a/bgetech/integrationpluginbgetech.cpp b/bgetech/integrationpluginbgetech.cpp new file mode 100644 index 0000000..a1ecbda --- /dev/null +++ b/bgetech/integrationpluginbgetech.cpp @@ -0,0 +1,227 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* Copyright 2013 - 2021, nymea GmbH +* Contact: contact@nymea.io +* +* This file 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 "integrationpluginbgetech.h" +#include "plugininfo.h" + +IntegrationPluginBGETech::IntegrationPluginBGETech() +{ +} + +void IntegrationPluginBGETech::init() +{ + connect(hardwareManager()->modbusRtuResource(), &ModbusRtuHardwareResource::modbusRtuMasterRemoved, this, [=] (const QUuid &modbusUuid){ + qCDebug(dcBgeTech()) << "Modbus RTU master has been removed" << modbusUuid.toString(); + + foreach (Thing *thing, myThings()) { + if (thing->paramValue(sdm630ThingModbusMasterUuidParamTypeId) == modbusUuid) { + qCWarning(dcBgeTech()) << "Modbus RTU hardware resource removed for" << thing << ". The thing will not be functional any more until a new resource has been configured for it."; + thing->setStateValue(sdm630ConnectedStateTypeId, false); + delete m_sdmConnections.take(thing); + } + } + }); +} + +void IntegrationPluginBGETech::discoverThings(ThingDiscoveryInfo *info) +{ + qCDebug(dcBgeTech()) << "Discover modbus RTU resources..."; + if (hardwareManager()->modbusRtuResource()->modbusRtuMasters().isEmpty()) { + info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("No Modbus RTU interface available. Please set up the Modbus RTU interface first.")); + return; + } + + uint slaveAddress = info->params().paramValue(sdm630DiscoverySlaveAddressParamTypeId).toUInt(); + if (slaveAddress > 254 || slaveAddress == 0) { + info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("The Modbus slave address must be a value between 1 and 254.")); + return; + } + + foreach (ModbusRtuMaster *modbusMaster, hardwareManager()->modbusRtuResource()->modbusRtuMasters()) { + qCDebug(dcBgeTech()) << "Found RTU master resource" << modbusMaster << "connected" << modbusMaster->connected(); + if (!modbusMaster->connected()) + continue; + + ThingDescriptor descriptor(info->thingClassId(), "SDM630", QString::number(slaveAddress) + " " + modbusMaster->serialPort()); + ParamList params; + params << Param(sdm630ThingSlaveAddressParamTypeId, slaveAddress); + params << Param(sdm630ThingModbusMasterUuidParamTypeId, modbusMaster->modbusUuid()); + descriptor.setParams(params); + info->addThingDescriptor(descriptor); + } + + info->finish(Thing::ThingErrorNoError); + return; +} + +void IntegrationPluginBGETech::setupThing(ThingSetupInfo *info) +{ + Thing *thing = info->thing(); + qCDebug(dcBgeTech()) << "Setup thing" << thing << thing->params(); + + uint address = thing->paramValue(sdm630ThingSlaveAddressParamTypeId).toUInt(); + if (address > 254 || address == 0) { + qCWarning(dcBgeTech()) << "Setup failed, slave address is not valid" << address; + info->finish(Thing::ThingErrorSetupFailed, QT_TR_NOOP("The Modbus address not valid. It must be a value between 1 and 254.")); + return; + } + + QUuid uuid = thing->paramValue(sdm630ThingModbusMasterUuidParamTypeId).toUuid(); + if (!hardwareManager()->modbusRtuResource()->hasModbusRtuMaster(uuid)) { + qCWarning(dcBgeTech()) << "Setup failed, hardware manager not available"; + info->finish(Thing::ThingErrorSetupFailed, QT_TR_NOOP("The Modbus RTU interface not available.")); + return; + } + + if (m_sdmConnections.contains(thing)) { + qCDebug(dcBgeTech()) << "Setup after rediscovery, cleaning up ..."; + m_sdmConnections.take(thing)->deleteLater(); + } + + Sdm630ModbusRtuConnection *sdmConnection = new Sdm630ModbusRtuConnection(hardwareManager()->modbusRtuResource()->getModbusRtuMaster(uuid), address, this); + connect(sdmConnection->modbusRtuMaster(), &ModbusRtuMaster::connectedChanged, this, [=](bool connected){ + if (connected) { + qCDebug(dcBgeTech()) << "Modbus RTU resource connected" << thing << sdmConnection->modbusRtuMaster()->serialPort(); + } else { + qCWarning(dcBgeTech()) << "Modbus RTU resource disconnected" << thing << sdmConnection->modbusRtuMaster()->serialPort(); + } + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::currentPhaseAChanged, this, [=](float currentPhaseA){ + thing->setStateValue(sdm630CurrentPhaseAStateTypeId, currentPhaseA); + thing->setStateValue(sdm630ConnectedStateTypeId, true); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::currentPhaseBChanged, this, [=](float currentPhaseB){ + thing->setStateValue(sdm630CurrentPhaseBStateTypeId, currentPhaseB); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::currentPhaseCChanged, this, [=](float currentPhaseC){ + thing->setStateValue(sdm630CurrentPhaseCStateTypeId, currentPhaseC); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::voltagePhaseAChanged, this, [=](float voltagePhaseA){ + thing->setStateValue(sdm630VoltagePhaseAStateTypeId, voltagePhaseA); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::voltagePhaseBChanged, this, [=](float voltagePhaseB){ + thing->setStateValue(sdm630VoltagePhaseBStateTypeId, voltagePhaseB); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::voltagePhaseCChanged, this, [=](float voltagePhaseC){ + thing->setStateValue(sdm630VoltagePhaseCStateTypeId, voltagePhaseC); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::totalCurrentPowerChanged, this, [=](float currentPower){ + thing->setStateValue(sdm630CurrentPowerStateTypeId, currentPower); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::powerPhaseAChanged, this, [=](float powerPhaseA){ + thing->setStateValue(sdm630CurrentPowerPhaseAStateTypeId, powerPhaseA); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::powerPhaseBChanged, this, [=](float powerPhaseB){ + thing->setStateValue(sdm630CurrentPowerPhaseBStateTypeId, powerPhaseB); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::powerPhaseCChanged, this, [=](float powerPhaseC){ + thing->setStateValue(sdm630CurrentPowerPhaseCStateTypeId, powerPhaseC); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::frequencyChanged, this, [=](float frequency){ + thing->setStateValue(sdm630FrequencyStateTypeId, frequency); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::totalEnergyConsumedChanged, this, [=](float totalEnergyConsumed){ + thing->setStateValue(sdm630TotalEnergyConsumedStateTypeId, totalEnergyConsumed); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::totalEnergyProducedChanged, this, [=](float totalEnergyProduced){ + thing->setStateValue(sdm630TotalEnergyProducedStateTypeId, totalEnergyProduced); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::energyProducedPhaseAChanged, this, [=](float energyProducedPhaseA){ + thing->setStateValue(sdm630EnergyProducedPhaseAStateTypeId, energyProducedPhaseA); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::energyProducedPhaseBChanged, this, [=](float energyProducedPhaseB){ + thing->setStateValue(sdm630EnergyProducedPhaseBStateTypeId, energyProducedPhaseB); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::energyProducedPhaseCChanged, this, [=](float energyProducedPhaseC){ + thing->setStateValue(sdm630EnergyProducedPhaseCStateTypeId, energyProducedPhaseC); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::energyConsumedPhaseAChanged, this, [=](float energyConsumedPhaseA){ + thing->setStateValue(sdm630EnergyConsumedPhaseAStateTypeId, energyConsumedPhaseA); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::energyConsumedPhaseBChanged, this, [=](float energyConsumedPhaseB){ + thing->setStateValue(sdm630EnergyConsumedPhaseBStateTypeId, energyConsumedPhaseB); + }); + + connect(sdmConnection, &Sdm630ModbusRtuConnection::energyConsumedPhaseCChanged, this, [=](float energyConsumedPhaseC){ + thing->setStateValue(sdm630EnergyConsumedPhaseCStateTypeId, energyConsumedPhaseC); + }); + + // FIXME: try to read before setup success + m_sdmConnections.insert(thing, sdmConnection); + info->finish(Thing::ThingErrorNoError); +} + +void IntegrationPluginBGETech::postSetupThing(Thing *thing) +{ + qCDebug(dcBgeTech) << "Post setup thing" << thing->name(); + if (!m_refreshTimer) { + m_refreshTimer = hardwareManager()->pluginTimerManager()->registerTimer(2); + connect(m_refreshTimer, &PluginTimer::timeout, this, [this] { + foreach (Thing *thing, myThings()) { + m_sdmConnections.value(thing)->update(); + } + }); + + qCDebug(dcBgeTech()) << "Starting refresh timer..."; + m_refreshTimer->start(); + } +} + +void IntegrationPluginBGETech::thingRemoved(Thing *thing) +{ + qCDebug(dcBgeTech()) << "Thing removed" << thing->name(); + + if (m_sdmConnections.contains(thing)) + m_sdmConnections.take(thing)->deleteLater(); + + if (myThings().isEmpty() && m_refreshTimer) { + qCDebug(dcBgeTech()) << "Stopping reconnect timer"; + hardwareManager()->pluginTimerManager()->unregisterTimer(m_refreshTimer); + m_refreshTimer = nullptr; + } +} diff --git a/energymeters/integrationpluginenergymeters.h b/bgetech/integrationpluginbgetech.h similarity index 76% rename from energymeters/integrationpluginenergymeters.h rename to bgetech/integrationpluginbgetech.h index c836b42..c869f91 100644 --- a/energymeters/integrationpluginenergymeters.h +++ b/bgetech/integrationpluginbgetech.h @@ -28,28 +28,29 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -#ifndef INTEGRATIONPLUGINENERGYMETERS_H -#define INTEGRATIONPLUGINENERGYMETERS_H +#ifndef INTEGRATIONPLUGINBGETECH_H +#define INTEGRATIONPLUGINBGETECH_H #include #include #include #include "sdm630modbusrtuconnection.h" -#include "pro380modbusrtuconnection.h" + +#include "extern-plugininfo.h" #include #include -class IntegrationPluginEnergyMeters : public IntegrationPlugin +class IntegrationPluginBGETech: public IntegrationPlugin { Q_OBJECT - Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationpluginenergymeters.json") + Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationpluginbgetech.json") Q_INTERFACES(IntegrationPlugin) public: - explicit IntegrationPluginEnergyMeters(); + explicit IntegrationPluginBGETech(); void init() override; void discoverThings(ThingDiscoveryInfo *info) override; void setupThing(ThingSetupInfo *info) override; @@ -59,14 +60,7 @@ public: private: PluginTimer *m_refreshTimer = nullptr; - QHash m_sdmConnections; // sdm 630 - QHash m_ineproConnections; // pro 380 - - QHash m_discoverySlaveAddressParamTypeIds; - QHash m_slaveIdParamTypeIds; - QHash m_modbusUuidParamTypeIds; - QHash m_connectionStateTypeIds; - + QHash m_sdmConnections; }; -#endif // INTEGRATIONPLUGINENERGYMETERS_H +#endif // INTEGRATIONPLUGINBGETECH_H diff --git a/bgetech/integrationpluginbgetech.json b/bgetech/integrationpluginbgetech.json new file mode 100644 index 0000000..ff36387 --- /dev/null +++ b/bgetech/integrationpluginbgetech.json @@ -0,0 +1,230 @@ +{ + "name": "bgeTech", + "displayName": "B+G E-Tech", + "id": "e373f492-4527-4d5f-aa48-34d38c55b0d6", + "paramTypes":[ ], + "vendors": [ + { + "name": "bgetech", + "displayName": "B+G E-Tech", + "id": "215035fe-95e8-43d8-a52e-0a31b787d902", + "thingClasses": [ + { + "name": "sdm630", + "displayName": "SDM630", + "id": "f37597bb-35fe-48f2-9617-343dd54c0903", + "createMethods": ["discovery"], + "interfaces": ["energymeter", "connectable"], + "discoveryParamTypes": [ + { + "id": "6ab43559-53ec-47ba-b8a0-8d3b7f8d90c2", + "name": "slaveAddress", + "displayName": "Slave address", + "type": "int", + "defaultValue": 1 + } + ], + "paramTypes": [ + { + "id": "ac77ea98-b006-486e-a3e8-b30a483f26c1", + "name": "slaveAddress", + "displayName": "Modbus slave address", + "type": "uint", + "defaultValue": 1 + }, + { + "id": "d90e9292-d03c-4f2a-957e-5d965018c9c9", + "name": "modbusMasterUuid", + "displayName": "Modbus RTU master", + "type": "QUuid", + "defaultValue": "", + "readOnly": true + } + ], + "stateTypes": [ + { + "id": "8050bd0b-1dad-4a7e-b632-c71ead3c9f8b", + "name": "connected", + "displayName": "Connected", + "displayNameEvent": "Connected changed", + "type": "bool", + "cached": false, + "defaultValue": false + }, + { + "id": "db018146-0441-4dc0-9834-6d43ebaf8311", + "name": "voltagePhaseA", + "displayName": "Voltage phase A", + "displayNameEvent": "Voltage phase A changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "406f6d02-d5eb-49b3-87da-3247568e6054", + "name": "voltagePhaseB", + "displayName": "Voltage phase B", + "displayNameEvent": "Voltage phase B changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "ace6294d-deaa-4d9a-af78-d64379bcb229", + "name": "voltagePhaseC", + "displayName": "Voltage phase C", + "displayNameEvent": "Voltage phase C changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "4baf1d08-5ffa-49cf-95ef-9527b0c6f081", + "name": "currentPhaseA", + "displayName": "Current phase A", + "displayNameEvent": "Current phase A changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "99e47d06-0a6a-4bfd-b164-61ecb6ba2818", + "name": "currentPhaseB", + "displayName": "Current phase B", + "displayNameEvent": "Current phase B changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "4a092a66-352d-4d60-90ab-6ac5f58b92fe", + "name": "currentPhaseC", + "displayName": "Current phase C", + "displayNameEvent": "Current phase C changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "c824e97b-a6d1-4030-9d7a-00af6fb8e1c3", + "name": "currentPower", + "displayName": "Current power", + "displayNameEvent": "Current power changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "3982fb12-b179-40f7-9b27-36adb1cadd37", + "name": "currentPowerPhaseA", + "displayName": "Current power phase A", + "displayNameEvent": "Current power phase A changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "2a231c58-b095-4037-8394-a730431e70b8", + "name": "currentPowerPhaseB", + "displayName": "Current power phase B", + "displayNameEvent": "Current power phase B changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "ee8c4f0c-2b69-4210-9966-1553a592b06d", + "name": "currentPowerPhaseC", + "displayName": "Current power phase C", + "displayNameEvent": "Current power phase C changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "ab24f26c-dc15-4ec3-8d76-06a48285440b", + "name": "frequency", + "displayName": "Frequency", + "displayNameEvent": "Frequency changed", + "type": "double", + "unit": "Hertz", + "defaultValue": 0.00 + }, + { + "id": "98d858a8-22e8-4262-b5c7-25bb027942ad", + "name": "totalEnergyConsumed", + "displayName": "Total energy consumed", + "displayNameEvent": "Total energy consumed changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "e469b3ff-a4c2-42da-af35-ccafaef214af", + "name": "totalEnergyProduced", + "displayName": "Total energy produced", + "displayNameEvent": "Total energy produced changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "6ca06c81-fe75-4448-a22f-47c303421440", + "name": "energyConsumedPhaseA", + "displayName": "Energy consumed phase A", + "displayNameEvent": "Energy consumed phase A changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "fa2b879b-2a81-4bc8-9577-98082c4d9330", + "name": "energyConsumedPhaseB", + "displayName": "Energy consumed phase B", + "displayNameEvent": "Energy consumed phase B changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "4c084c9e-7a5d-42d1-96b2-a8a4b4a25713", + "name": "energyConsumedPhaseC", + "displayName": "Energy consumed phase C", + "displayNameEvent": "Energy consumed phase C changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "308fa88e-6054-4c79-b12a-be2d0a404ef6", + "name": "energyProducedPhaseA", + "displayName": "Energy produced phase A", + "displayNameEvent": "Energy produced phase A changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39", + "name": "energyProducedPhaseB", + "displayName": "Energy produced phase B", + "displayNameEvent": "Energy produced phase B changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff", + "name": "energyProducedPhaseC", + "displayName": "Energy produced phase C", + "displayNameEvent": "Energy produced phase C changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + } + ] + } + ] + } + ] +} diff --git a/energymeters/meta.json b/bgetech/meta.json similarity index 57% rename from energymeters/meta.json rename to bgetech/meta.json index 1158181..4e005bc 100644 --- a/energymeters/meta.json +++ b/bgetech/meta.json @@ -1,7 +1,7 @@ { - "title": "Energy Meters", - "tagline": "Connect Modbus RTU energy meters.", - "icon": "", + "title": "B+G E-Tech", + "tagline": "Connect B+G E-Tech energy meters.", + "icon": "bg-etech.jpg", "stability": "consumer", "offline": true, "technologies": [ diff --git a/energymeters/sdm630-registers.json b/bgetech/sdm630-registers.json similarity index 100% rename from energymeters/sdm630-registers.json rename to bgetech/sdm630-registers.json diff --git a/energymeters/sdm630modbusrtuconnection.cpp b/bgetech/sdm630modbusrtuconnection.cpp similarity index 100% rename from energymeters/sdm630modbusrtuconnection.cpp rename to bgetech/sdm630modbusrtuconnection.cpp diff --git a/energymeters/sdm630modbusrtuconnection.h b/bgetech/sdm630modbusrtuconnection.h similarity index 100% rename from energymeters/sdm630modbusrtuconnection.h rename to bgetech/sdm630modbusrtuconnection.h diff --git a/bgetech/translations/e373f492-4527-4d5f-aa48-34d38c55b0d6-de.ts b/bgetech/translations/e373f492-4527-4d5f-aa48-34d38c55b0d6-de.ts new file mode 100644 index 0000000..bee449d --- /dev/null +++ b/bgetech/translations/e373f492-4527-4d5f-aa48-34d38c55b0d6-de.ts @@ -0,0 +1,363 @@ + + + + + IntegrationPluginBGETech + + + No Modbus RTU interface available. Please set up the Modbus RTU interface first. + Keine Modbus RTU Schnittstelle verfügbar. Bitte richte zuerst die Modbus RTU Schnittstelle ein. + + + + The Modbus slave address must be a value between 1 and 254. + Die Modbus Adresse muss ein Wert zwischen 1 und 254 sein. + + + + The Modbus address not valid. It must be a value between 1 and 254. + Die Modbus Adresse is ungültig. Sie muss ein Wert zwischen 1 und 254 sein. + + + + The Modbus RTU interface not available. + Die Modbus RTU Schnittstelle ist nicht verfügbar. + + + + bgeTech + + + + B+G E-Tech + The name of the vendor ({215035fe-95e8-43d8-a52e-0a31b787d902}) +---------- +The name of the plugin bgeTech ({e373f492-4527-4d5f-aa48-34d38c55b0d6}) + B+G E-Tech + + + + + Connected + The name of the ParamType (ThingClass: sdm630, EventType: connected, ID: {8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) +---------- +The name of the StateType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 + + + + + Connected changed + The name of the EventType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 + Verbunden oder getrennt + + + + + Current phase A + The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseA, ID: {4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) +---------- +The name of the StateType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 + Strom Phase A + + + + Current phase A changed + The name of the EventType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 + Strom Phase A geändert + + + + + Current phase B + The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseB, ID: {99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) +---------- +The name of the StateType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 + Strom Phase B + + + + Current phase B changed + The name of the EventType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 + Strom Phase B geändert + + + + + Current phase C + The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseC, ID: {4a092a66-352d-4d60-90ab-6ac5f58b92fe}) +---------- +The name of the StateType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 + Strom Phase C + + + + Current phase C changed + The name of the EventType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 + Strom Phase C geändert + + + + + Current power + The name of the ParamType (ThingClass: sdm630, EventType: currentPower, ID: {c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) +---------- +The name of the StateType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 + Aktueller Energieverbrauch + + + + Current power changed + The name of the EventType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 + Aktueller Energieverbrauch geändert + + + + + Current power phase A + The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseA, ID: {3982fb12-b179-40f7-9b27-36adb1cadd37}) +---------- +The name of the StateType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 + Aktueller Energieverbrauch Phase A + + + + Current power phase A changed + The name of the EventType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 + Aktueller Energieverbrauch Phase A geändert + + + + + Current power phase B + The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseB, ID: {2a231c58-b095-4037-8394-a730431e70b8}) +---------- +The name of the StateType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 + Aktueller Energieverbrauch Phase B + + + + Current power phase B changed + The name of the EventType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 + Aktueller Energieverbrauch Phase B geändert + + + + + Current power phase C + The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseC, ID: {ee8c4f0c-2b69-4210-9966-1553a592b06d}) +---------- +The name of the StateType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 + Aktueller Energieverbrauch Phase C + + + + Current power phase C changed + The name of the EventType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 + Aktueller Energieverbrauch Phase C geändert + + + + + Energy consumed phase A + The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseA, ID: {6ca06c81-fe75-4448-a22f-47c303421440}) +---------- +The name of the StateType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 + Gesamtverbrauch Phase A + + + + Energy consumed phase A changed + The name of the EventType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 + Gesamtverbrauch Phase A geändert + + + + + Energy consumed phase B + The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseB, ID: {fa2b879b-2a81-4bc8-9577-98082c4d9330}) +---------- +The name of the StateType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 + Gesamtverbrauch Phase B + + + + Energy consumed phase B changed + The name of the EventType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 + Gesamtverbrauch Phase B geändert + + + + + Energy consumed phase C + The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseC, ID: {4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) +---------- +The name of the StateType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 + Gesamtverbrauch Phase C + + + + Energy consumed phase C changed + The name of the EventType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 + Gesamtverbrauch Phase C geändert + + + + + Energy produced phase A + The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseA, ID: {308fa88e-6054-4c79-b12a-be2d0a404ef6}) +---------- +The name of the StateType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 + Erzeugte Energie Phase A + + + + Energy produced phase A changed + The name of the EventType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 + Erzeugte Energie Phase A geändert + + + + + Energy produced phase B + The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseB, ID: {48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) +---------- +The name of the StateType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 + Erzeugte Energie Phase B + + + + Energy produced phase B changed + The name of the EventType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 + Erzeugte Energie Phase B geändert + + + + + Energy produced phase C + The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseC, ID: {6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) +---------- +The name of the StateType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 + Erzeugte Energie Phase C + + + + Energy produced phase C changed + The name of the EventType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 + Erzeugte Energie Phase C geändert + + + + + Frequency + The name of the ParamType (ThingClass: sdm630, EventType: frequency, ID: {ab24f26c-dc15-4ec3-8d76-06a48285440b}) +---------- +The name of the StateType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 + Frequenz + + + + Frequency changed + The name of the EventType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 + Frequenz geändert + + + + Modbus RTU master + The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {d90e9292-d03c-4f2a-957e-5d965018c9c9}) + Modbus RTU Master + + + + Modbus slave address + The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {ac77ea98-b006-486e-a3e8-b30a483f26c1}) + Modbus Adresse + + + + SDM630 + The name of the ThingClass ({f37597bb-35fe-48f2-9617-343dd54c0903}) + SDM630 + + + + Slave address + The name of the ParamType (ThingClass: sdm630, Type: discovery, ID: {6ab43559-53ec-47ba-b8a0-8d3b7f8d90c2}) + Modbus Adresse + + + + + Total energy consumed + The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyConsumed, ID: {98d858a8-22e8-4262-b5c7-25bb027942ad}) +---------- +The name of the StateType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 + Gesamter Energieverbrauch + + + + Total energy consumed changed + The name of the EventType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 + Gesamter Energieverbrauch geändert + + + + + Total energy produced + The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyProduced, ID: {e469b3ff-a4c2-42da-af35-ccafaef214af}) +---------- +The name of the StateType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 + Gesamte erzeugte Energie + + + + Total energy produced changed + The name of the EventType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 + Gesamte erzeugte Energie geändert + + + + + Voltage phase A + The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseA, ID: {db018146-0441-4dc0-9834-6d43ebaf8311}) +---------- +The name of the StateType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 + Spannung Phase A + + + + Voltage phase A changed + The name of the EventType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 + Spannung Phase A geändert + + + + + Voltage phase B + The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseB, ID: {406f6d02-d5eb-49b3-87da-3247568e6054}) +---------- +The name of the StateType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 + Spannung Phase B + + + + Voltage phase B changed + The name of the EventType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 + Spannung Phase B geändert + + + + + Voltage phase C + The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseC, ID: {ace6294d-deaa-4d9a-af78-d64379bcb229}) +---------- +The name of the StateType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 + Spannung Phase C + + + + Voltage phase C changed + The name of the EventType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 + Spannung Phase C geändert + + + diff --git a/bgetech/translations/e373f492-4527-4d5f-aa48-34d38c55b0d6-en_US.ts b/bgetech/translations/e373f492-4527-4d5f-aa48-34d38c55b0d6-en_US.ts new file mode 100644 index 0000000..3c99c6a --- /dev/null +++ b/bgetech/translations/e373f492-4527-4d5f-aa48-34d38c55b0d6-en_US.ts @@ -0,0 +1,363 @@ + + + + + IntegrationPluginBGETech + + + No Modbus RTU interface available. Please set up the Modbus RTU interface first. + + + + + The Modbus slave address must be a value between 1 and 254. + + + + + The Modbus address not valid. It must be a value between 1 and 254. + + + + + The Modbus RTU interface not available. + + + + + bgeTech + + + + B+G E-Tech + The name of the vendor ({215035fe-95e8-43d8-a52e-0a31b787d902}) +---------- +The name of the plugin bgeTech ({e373f492-4527-4d5f-aa48-34d38c55b0d6}) + + + + + + Connected + The name of the ParamType (ThingClass: sdm630, EventType: connected, ID: {8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) +---------- +The name of the StateType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 + + + + + Connected changed + The name of the EventType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 + + + + + + Current phase A + The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseA, ID: {4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) +---------- +The name of the StateType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 + + + + + Current phase A changed + The name of the EventType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 + + + + + + Current phase B + The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseB, ID: {99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) +---------- +The name of the StateType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 + + + + + Current phase B changed + The name of the EventType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 + + + + + + Current phase C + The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseC, ID: {4a092a66-352d-4d60-90ab-6ac5f58b92fe}) +---------- +The name of the StateType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 + + + + + Current phase C changed + The name of the EventType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 + + + + + + Current power + The name of the ParamType (ThingClass: sdm630, EventType: currentPower, ID: {c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) +---------- +The name of the StateType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 + + + + + Current power changed + The name of the EventType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 + + + + + + Current power phase A + The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseA, ID: {3982fb12-b179-40f7-9b27-36adb1cadd37}) +---------- +The name of the StateType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 + + + + + Current power phase A changed + The name of the EventType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 + + + + + + Current power phase B + The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseB, ID: {2a231c58-b095-4037-8394-a730431e70b8}) +---------- +The name of the StateType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 + + + + + Current power phase B changed + The name of the EventType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 + + + + + + Current power phase C + The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseC, ID: {ee8c4f0c-2b69-4210-9966-1553a592b06d}) +---------- +The name of the StateType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 + + + + + Current power phase C changed + The name of the EventType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 + + + + + + Energy consumed phase A + The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseA, ID: {6ca06c81-fe75-4448-a22f-47c303421440}) +---------- +The name of the StateType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 + + + + + Energy consumed phase A changed + The name of the EventType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 + + + + + + Energy consumed phase B + The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseB, ID: {fa2b879b-2a81-4bc8-9577-98082c4d9330}) +---------- +The name of the StateType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 + + + + + Energy consumed phase B changed + The name of the EventType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 + + + + + + Energy consumed phase C + The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseC, ID: {4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) +---------- +The name of the StateType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 + + + + + Energy consumed phase C changed + The name of the EventType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 + + + + + + Energy produced phase A + The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseA, ID: {308fa88e-6054-4c79-b12a-be2d0a404ef6}) +---------- +The name of the StateType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 + + + + + Energy produced phase A changed + The name of the EventType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 + + + + + + Energy produced phase B + The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseB, ID: {48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) +---------- +The name of the StateType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 + + + + + Energy produced phase B changed + The name of the EventType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 + + + + + + Energy produced phase C + The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseC, ID: {6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) +---------- +The name of the StateType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 + + + + + Energy produced phase C changed + The name of the EventType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 + + + + + + Frequency + The name of the ParamType (ThingClass: sdm630, EventType: frequency, ID: {ab24f26c-dc15-4ec3-8d76-06a48285440b}) +---------- +The name of the StateType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 + + + + + Frequency changed + The name of the EventType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 + + + + + Modbus RTU master + The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {d90e9292-d03c-4f2a-957e-5d965018c9c9}) + + + + + Modbus slave address + The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {ac77ea98-b006-486e-a3e8-b30a483f26c1}) + + + + + SDM630 + The name of the ThingClass ({f37597bb-35fe-48f2-9617-343dd54c0903}) + + + + + Slave address + The name of the ParamType (ThingClass: sdm630, Type: discovery, ID: {6ab43559-53ec-47ba-b8a0-8d3b7f8d90c2}) + + + + + + Total energy consumed + The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyConsumed, ID: {98d858a8-22e8-4262-b5c7-25bb027942ad}) +---------- +The name of the StateType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 + + + + + Total energy consumed changed + The name of the EventType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 + + + + + + Total energy produced + The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyProduced, ID: {e469b3ff-a4c2-42da-af35-ccafaef214af}) +---------- +The name of the StateType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 + + + + + Total energy produced changed + The name of the EventType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 + + + + + + Voltage phase A + The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseA, ID: {db018146-0441-4dc0-9834-6d43ebaf8311}) +---------- +The name of the StateType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 + + + + + Voltage phase A changed + The name of the EventType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 + + + + + + Voltage phase B + The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseB, ID: {406f6d02-d5eb-49b3-87da-3247568e6054}) +---------- +The name of the StateType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 + + + + + Voltage phase B changed + The name of the EventType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 + + + + + + Voltage phase C + The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseC, ID: {ace6294d-deaa-4d9a-af78-d64379bcb229}) +---------- +The name of the StateType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 + + + + + Voltage phase C changed + The name of the EventType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 + + + + diff --git a/debian/control b/debian/control index ca0a9de..8738471 100644 --- a/debian/control +++ b/debian/control @@ -43,6 +43,17 @@ Description: nymea integration plugin for alpha innotec heat pumps This package contains the nymea integration plugin for alpha innotec head pumps. +Package: nymea-plugin-bgetech +Architecture: any +Multi-Arch: same +Section: libs +Depends: ${shlibs:Depends}, + ${misc:Depends}, +Description: nymea integration plugin for B+G E-Tech Modbus based energy meters + This package contains the nymea integration plugin for Modbus based energy meters + made by B+G E-Tech. + + Package: nymea-plugin-drexelundweiss Architecture: any Section: libs @@ -61,14 +72,15 @@ Description: nymea integration plugin for iDM heat pumps This package contains the nymea integration plugin for iDM heat pumps. -Package: nymea-plugin-energymeters +Package: nymea-plugin-inepro Architecture: any Multi-Arch: same Section: libs Depends: ${shlibs:Depends}, ${misc:Depends}, -Description: nymea integration plugin for Modbus based energy meters - This package contains a collection of energy meters. +Description: nymea integration plugin for inepro Metering Modbus based energy meters + This package contains the nymea integration plugin for Modbus based energy meters + made by inepro Metering. Package: nymea-plugin-huawei diff --git a/debian/nymea-plugin-bgetech.install.in b/debian/nymea-plugin-bgetech.install.in new file mode 100644 index 0000000..c02dd47 --- /dev/null +++ b/debian/nymea-plugin-bgetech.install.in @@ -0,0 +1,2 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationpluginbgetech.so +bgetech/translations/*qm usr/share/nymea/translations/ diff --git a/debian/nymea-plugin-energymeters.install.in b/debian/nymea-plugin-energymeters.install.in deleted file mode 100644 index cc7039a..0000000 --- a/debian/nymea-plugin-energymeters.install.in +++ /dev/null @@ -1,2 +0,0 @@ -usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationpluginenergymeters.so -energymeters/translations/*qm usr/share/nymea/translations/ diff --git a/debian/nymea-plugin-inepro.install.in b/debian/nymea-plugin-inepro.install.in new file mode 100644 index 0000000..2cf6128 --- /dev/null +++ b/debian/nymea-plugin-inepro.install.in @@ -0,0 +1,2 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationplugininepro.so +inepro/translations/*qm usr/share/nymea/translations/ diff --git a/energymeters/README.md b/energymeters/README.md deleted file mode 100644 index 9f0e154..0000000 --- a/energymeters/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Energy Meters - -Connect Modbus RTU based energy meters. - -Once you configured in the system settings a Modbus RTU resource using the configured settings of your meter, you can start adding the energy meter to your system. - -While discovering, nymea will offer you the configured modbus resources as possible connections. - - -## Supported things - -* b+g e-tech - * SDM630Modbus -* inepro Metering - * PRO380-Mod - - -## Requirements - -* The plugin 'nymea-plugin-energymeters' must be installed. -* At least one Modbus RTU interface must be setup. diff --git a/energymeters/integrationpluginenergymeters.cpp b/energymeters/integrationpluginenergymeters.cpp deleted file mode 100644 index 01272ad..0000000 --- a/energymeters/integrationpluginenergymeters.cpp +++ /dev/null @@ -1,354 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* -* Copyright 2013 - 2021, nymea GmbH -* Contact: contact@nymea.io -* -* This file 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 "integrationpluginenergymeters.h" -#include "plugininfo.h" - -IntegrationPluginEnergyMeters::IntegrationPluginEnergyMeters() -{ - m_slaveIdParamTypeIds.insert(pro380ThingClassId, pro380ThingSlaveAddressParamTypeId); - m_slaveIdParamTypeIds.insert(sdm630ThingClassId, sdm630ThingSlaveAddressParamTypeId); - - m_modbusUuidParamTypeIds.insert(pro380ThingClassId, pro380ThingModbusMasterUuidParamTypeId); - m_modbusUuidParamTypeIds.insert(sdm630ThingClassId, sdm630ThingModbusMasterUuidParamTypeId); - - m_discoverySlaveAddressParamTypeIds.insert(pro380ThingClassId, pro380DiscoverySlaveAddressParamTypeId); - m_discoverySlaveAddressParamTypeIds.insert(sdm630ThingClassId, sdm630DiscoverySlaveAddressParamTypeId); - - m_connectionStateTypeIds.insert(pro380ThingClassId, pro380ConnectedStateTypeId); - m_connectionStateTypeIds.insert(sdm630ThingClassId, sdm630ConnectedStateTypeId); -} - -void IntegrationPluginEnergyMeters::init() -{ - connect(hardwareManager()->modbusRtuResource(), &ModbusRtuHardwareResource::modbusRtuMasterRemoved, this, [=] (const QUuid &modbusUuid){ - qCDebug(dcEnergyMeters()) << "Modbus RTU master has been removed" << modbusUuid.toString(); - - foreach (Thing *thing, myThings()) { - if (m_modbusUuidParamTypeIds.contains(thing->thingClassId())) { - if (thing->paramValue(m_modbusUuidParamTypeIds.value(thing->thingClassId())) == modbusUuid) { - qCWarning(dcEnergyMeters()) << "Modbus RTU hardware resource removed for" << thing << ". The thing will not be functional any more until a new resource has been configured for it."; - thing->setStateValue(m_connectionStateTypeIds[thing->thingClassId()], false); - - if (thing->thingClassId() == sdm630ThingClassId) { - delete m_sdmConnections.take(thing); - } else if (thing->thingClassId() == pro380ThingClassId) { - delete m_ineproConnections.take(thing); - } - } - } - } - }); -} - -void IntegrationPluginEnergyMeters::discoverThings(ThingDiscoveryInfo *info) -{ - qCDebug(dcEnergyMeters()) << "Discover modbus RTU resources..."; - if (hardwareManager()->modbusRtuResource()->modbusRtuMasters().isEmpty()) { - info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("No Modbus RTU interface available.")); - return; - } - - Q_ASSERT_X(m_connectionStateTypeIds.contains(info->thingClassId()), "discoverThings", QString("Unhandled thingClassId: %1").arg(info->thingClassId().toString()).toUtf8()); - - uint slaveAddress = info->params().paramValue(m_discoverySlaveAddressParamTypeIds.value(info->thingClassId())).toUInt(); - if (slaveAddress > 254 || slaveAddress == 0) { - info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("Modbus slave address must be between 1 and 254")); - return; - } - - foreach (ModbusRtuMaster *modbusMaster, hardwareManager()->modbusRtuResource()->modbusRtuMasters()) { - qCDebug(dcEnergyMeters()) << "Found RTU master resource" << modbusMaster << "connected" << modbusMaster->connected(); - if (!modbusMaster->connected()) - continue; - - ThingDescriptor descriptor(info->thingClassId(), QT_TR_NOOP("Energy meter"), QT_TR_NOOP("Slave address ") + QString::number(slaveAddress) + " " + modbusMaster->serialPort()); - ParamList params; - params << Param(m_slaveIdParamTypeIds.value(info->thingClassId()), slaveAddress); - params << Param(m_modbusUuidParamTypeIds.value(info->thingClassId()), modbusMaster->modbusUuid()); - descriptor.setParams(params); - info->addThingDescriptor(descriptor); - } - - info->finish(Thing::ThingErrorNoError); - return; -} - -void IntegrationPluginEnergyMeters::setupThing(ThingSetupInfo *info) -{ - Thing *thing = info->thing(); - qCDebug(dcEnergyMeters()) << "Setup thing" << thing << thing->params(); - Q_ASSERT_X(m_connectionStateTypeIds.contains(thing->thingClassId()), "setupThing", QString("Unhandled thingClassId: %1").arg(thing->thingClassId().toString()).toUtf8()); - - uint address = thing->paramValue(m_slaveIdParamTypeIds.value(thing->thingClassId())).toUInt(); - if (address > 254 || address == 0) { - qCWarning(dcEnergyMeters()) << "Setup failed, slave address is not valid" << address; - info->finish(Thing::ThingErrorSetupFailed, QT_TR_NOOP("Slave address not valid, must be between 1 and 254")); - return; - } - - QUuid uuid = thing->paramValue(m_modbusUuidParamTypeIds.value(thing->thingClassId())).toUuid(); - if (!hardwareManager()->modbusRtuResource()->hasModbusRtuMaster(uuid)) { - qCWarning(dcEnergyMeters()) << "Setup failed, hardware manager not available"; - info->finish(Thing::ThingErrorSetupFailed, QT_TR_NOOP("Modbus RTU resource not available.")); - return; - } - - if (thing->thingClassId() == sdm630ThingClassId) { - if (m_sdmConnections.contains(thing)) { - qCDebug(dcEnergyMeters()) << "Setup after rediscovery, cleaning up ..."; - m_sdmConnections.take(thing)->deleteLater(); - } - - Sdm630ModbusRtuConnection *sdmConnection = new Sdm630ModbusRtuConnection(hardwareManager()->modbusRtuResource()->getModbusRtuMaster(uuid), address, this); - connect(sdmConnection->modbusRtuMaster(), &ModbusRtuMaster::connectedChanged, this, [=](bool connected){ - if (connected) { - qCDebug(dcEnergyMeters()) << "Modbus RTU resource connected" << thing << sdmConnection->modbusRtuMaster()->serialPort(); - } else { - qCWarning(dcEnergyMeters()) << "Modbus RTU resource disconnected" << thing << sdmConnection->modbusRtuMaster()->serialPort(); - } - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::currentPhaseAChanged, this, [=](float currentPhaseA){ - thing->setStateValue(sdm630CurrentPhaseAStateTypeId, currentPhaseA); - thing->setStateValue(sdm630ConnectedStateTypeId, true); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::currentPhaseBChanged, this, [=](float currentPhaseB){ - thing->setStateValue(sdm630CurrentPhaseBStateTypeId, currentPhaseB); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::currentPhaseCChanged, this, [=](float currentPhaseC){ - thing->setStateValue(sdm630CurrentPhaseCStateTypeId, currentPhaseC); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::voltagePhaseAChanged, this, [=](float voltagePhaseA){ - thing->setStateValue(sdm630VoltagePhaseAStateTypeId, voltagePhaseA); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::voltagePhaseBChanged, this, [=](float voltagePhaseB){ - thing->setStateValue(sdm630VoltagePhaseBStateTypeId, voltagePhaseB); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::voltagePhaseCChanged, this, [=](float voltagePhaseC){ - thing->setStateValue(sdm630VoltagePhaseCStateTypeId, voltagePhaseC); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::totalCurrentPowerChanged, this, [=](float currentPower){ - thing->setStateValue(sdm630CurrentPowerStateTypeId, currentPower); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::powerPhaseAChanged, this, [=](float powerPhaseA){ - thing->setStateValue(sdm630CurrentPowerPhaseAStateTypeId, powerPhaseA); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::powerPhaseBChanged, this, [=](float powerPhaseB){ - thing->setStateValue(sdm630CurrentPowerPhaseBStateTypeId, powerPhaseB); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::powerPhaseCChanged, this, [=](float powerPhaseC){ - thing->setStateValue(sdm630CurrentPowerPhaseCStateTypeId, powerPhaseC); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::frequencyChanged, this, [=](float frequency){ - thing->setStateValue(sdm630FrequencyStateTypeId, frequency); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::totalEnergyConsumedChanged, this, [=](float totalEnergyConsumed){ - thing->setStateValue(sdm630TotalEnergyConsumedStateTypeId, totalEnergyConsumed); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::totalEnergyProducedChanged, this, [=](float totalEnergyProduced){ - thing->setStateValue(sdm630TotalEnergyProducedStateTypeId, totalEnergyProduced); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::energyProducedPhaseAChanged, this, [=](float energyProducedPhaseA){ - thing->setStateValue(sdm630EnergyProducedPhaseAStateTypeId, energyProducedPhaseA); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::energyProducedPhaseBChanged, this, [=](float energyProducedPhaseB){ - thing->setStateValue(sdm630EnergyProducedPhaseBStateTypeId, energyProducedPhaseB); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::energyProducedPhaseCChanged, this, [=](float energyProducedPhaseC){ - thing->setStateValue(sdm630EnergyProducedPhaseCStateTypeId, energyProducedPhaseC); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::energyConsumedPhaseAChanged, this, [=](float energyConsumedPhaseA){ - thing->setStateValue(sdm630EnergyConsumedPhaseAStateTypeId, energyConsumedPhaseA); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::energyConsumedPhaseBChanged, this, [=](float energyConsumedPhaseB){ - thing->setStateValue(sdm630EnergyConsumedPhaseBStateTypeId, energyConsumedPhaseB); - }); - - connect(sdmConnection, &Sdm630ModbusRtuConnection::energyConsumedPhaseCChanged, this, [=](float energyConsumedPhaseC){ - thing->setStateValue(sdm630EnergyConsumedPhaseCStateTypeId, energyConsumedPhaseC); - }); - - // FIXME: try to read before setup success - m_sdmConnections.insert(thing, sdmConnection); - info->finish(Thing::ThingErrorNoError); - - } else if (thing->thingClassId() == pro380ThingClassId) { - if (m_ineproConnections.contains(thing)) { - qCDebug(dcEnergyMeters()) << "Setup after rediscovery, cleaning up ..."; - m_ineproConnections.take(thing)->deleteLater(); - } - - Pro380ModbusRtuConnection *proConnection = new Pro380ModbusRtuConnection(hardwareManager()->modbusRtuResource()->getModbusRtuMaster(uuid), address, this); - connect(proConnection->modbusRtuMaster(), &ModbusRtuMaster::connectedChanged, this, [=](bool connected){ - if (connected) { - qCDebug(dcEnergyMeters()) << "Modbus RTU resource connected" << thing << proConnection->modbusRtuMaster()->serialPort(); - } else { - qCWarning(dcEnergyMeters()) << "Modbus RTU resource disconnected" << thing << proConnection->modbusRtuMaster()->serialPort(); - } - }); - - connect(proConnection, &Pro380ModbusRtuConnection::currentPhaseAChanged, this, [=](float currentPhaseA){ - thing->setStateValue(pro380CurrentPhaseAStateTypeId, currentPhaseA); - thing->setStateValue(pro380ConnectedStateTypeId, true); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::currentPhaseBChanged, this, [=](float currentPhaseB){ - thing->setStateValue(pro380CurrentPhaseBStateTypeId, currentPhaseB); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::currentPhaseCChanged, this, [=](float currentPhaseC){ - thing->setStateValue(pro380CurrentPhaseCStateTypeId, currentPhaseC); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::voltagePhaseAChanged, this, [=](float voltagePhaseA){ - thing->setStateValue(pro380VoltagePhaseAStateTypeId, voltagePhaseA); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::voltagePhaseBChanged, this, [=](float voltagePhaseB){ - thing->setStateValue(pro380VoltagePhaseBStateTypeId, voltagePhaseB); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::voltagePhaseCChanged, this, [=](float voltagePhaseC){ - thing->setStateValue(pro380VoltagePhaseCStateTypeId, voltagePhaseC); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::totalCurrentPowerChanged, this, [=](float currentPower){ - thing->setStateValue(pro380CurrentPowerStateTypeId, currentPower * 1000); // kW - }); - - connect(proConnection, &Pro380ModbusRtuConnection::powerPhaseAChanged, this, [=](float powerPhaseA){ - thing->setStateValue(pro380CurrentPowerPhaseAStateTypeId, powerPhaseA * 1000); // kW - }); - - connect(proConnection, &Pro380ModbusRtuConnection::powerPhaseBChanged, this, [=](float powerPhaseB){ - thing->setStateValue(pro380CurrentPowerPhaseBStateTypeId, powerPhaseB * 1000); // kW - }); - - connect(proConnection, &Pro380ModbusRtuConnection::powerPhaseCChanged, this, [=](float powerPhaseC){ - thing->setStateValue(pro380CurrentPowerPhaseCStateTypeId, powerPhaseC * 1000); // kW - }); - - connect(proConnection, &Pro380ModbusRtuConnection::frequencyChanged, this, [=](float frequency){ - thing->setStateValue(pro380FrequencyStateTypeId, frequency); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::totalEnergyConsumedChanged, this, [=](float totalEnergyConsumed){ - thing->setStateValue(pro380TotalEnergyConsumedStateTypeId, totalEnergyConsumed); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::totalEnergyProducedChanged, this, [=](float totalEnergyProduced){ - thing->setStateValue(pro380TotalEnergyProducedStateTypeId, totalEnergyProduced); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::energyProducedPhaseAChanged, this, [=](float energyProducedPhaseA){ - thing->setStateValue(pro380EnergyProducedPhaseAStateTypeId, energyProducedPhaseA); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::energyProducedPhaseBChanged, this, [=](float energyProducedPhaseB){ - thing->setStateValue(pro380EnergyProducedPhaseBStateTypeId, energyProducedPhaseB); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::energyProducedPhaseCChanged, this, [=](float energyProducedPhaseC){ - thing->setStateValue(pro380EnergyProducedPhaseCStateTypeId, energyProducedPhaseC); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::energyConsumedPhaseAChanged, this, [=](float energyConsumedPhaseA){ - thing->setStateValue(pro380EnergyConsumedPhaseAStateTypeId, energyConsumedPhaseA); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::energyConsumedPhaseBChanged, this, [=](float energyConsumedPhaseB){ - thing->setStateValue(pro380EnergyConsumedPhaseBStateTypeId, energyConsumedPhaseB); - }); - - connect(proConnection, &Pro380ModbusRtuConnection::energyConsumedPhaseCChanged, this, [=](float energyConsumedPhaseC){ - thing->setStateValue(pro380EnergyConsumedPhaseCStateTypeId, energyConsumedPhaseC); - }); - - - // FIXME: try to read before setup success - m_ineproConnections.insert(thing, proConnection); - info->finish(Thing::ThingErrorNoError); - } -} - -void IntegrationPluginEnergyMeters::postSetupThing(Thing *thing) -{ - qCDebug(dcEnergyMeters) << "Post setup thing" << thing->name(); - if (!m_refreshTimer) { - m_refreshTimer = hardwareManager()->pluginTimerManager()->registerTimer(2); - connect(m_refreshTimer, &PluginTimer::timeout, this, [this] { - foreach (Thing *thing, myThings().filterByThingClassId(sdm630ThingClassId)) { - m_sdmConnections.value(thing)->update(); - } - - foreach (Thing *thing, myThings().filterByThingClassId(pro380ThingClassId)) { - m_sdmConnections.value(thing)->update(); - } - }); - - qCDebug(dcEnergyMeters()) << "Starting refresh timer..."; - m_refreshTimer->start(); - } -} - -void IntegrationPluginEnergyMeters::thingRemoved(Thing *thing) -{ - qCDebug(dcEnergyMeters()) << "Thing removed" << thing->name(); - - if (m_sdmConnections.contains(thing)) - m_sdmConnections.take(thing)->deleteLater(); - - if (m_ineproConnections.contains(thing)) - m_ineproConnections.take(thing)->deleteLater(); - - if (myThings().isEmpty() && m_refreshTimer) { - qCDebug(dcEnergyMeters()) << "Stopping reconnect timer"; - hardwareManager()->pluginTimerManager()->unregisterTimer(m_refreshTimer); - m_refreshTimer = nullptr; - } -} diff --git a/energymeters/integrationpluginenergymeters.json b/energymeters/integrationpluginenergymeters.json deleted file mode 100644 index fb48126..0000000 --- a/energymeters/integrationpluginenergymeters.json +++ /dev/null @@ -1,452 +0,0 @@ -{ - "name": "EnergyMeters", - "displayName": "EnergyMeters", - "id": "56e95111-fb6b-4f63-9a0a-a5ee001e89ed", - "paramTypes":[ ], - "vendors": [ - { - "name": "ineproMetering", - "displayName": "inepro Metering", - "id": "64f4df0f-18ce-409c-bf32-84a086c691ca", - "thingClasses": [ - { - "name": "pro380", - "displayName": "PRO380-Mod", - "id": "d7c6440b-54f9-4cc0-a96b-9bb7304b3e77", - "createMethods": ["discovery"], - "interfaces": ["energymeter", "connectable"], - "discoveryParamTypes": [ - { - "id": "a29f37f6-b344-4628-8ab4-8f4c18fada4a", - "name": "slaveAddress", - "displayName": "Slave address", - "type": "int", - "defaultValue": 1 - } - ], - "paramTypes": [ - { - "id": "c75b2c31-6ec3-49ab-8c8f-5231d0a7e941", - "name": "slaveAddress", - "displayName": "Modbus slave address", - "type": "uint", - "defaultValue": 1 - }, - { - "id": "6cdbec8c-21b9-42dc-b1ab-8901ac609482", - "name": "modbusMasterUuid", - "displayName": "Modbus RTU master", - "type": "QUuid", - "defaultValue": "", - "readOnly": true - } - ], - "stateTypes": [ - { - "id": "7f9bc504-0882-4b86-83b1-42fa345acfd9", - "name": "connected", - "displayName": "Connected", - "displayNameEvent": "Connected changed", - "type": "bool", - "cached": false, - "defaultValue": false - }, - { - "id": "04dba21a-7447-46b9-b9ae-095e5769e511", - "name": "voltagePhaseA", - "displayName": "Voltage phase A", - "displayNameEvent": "Voltage phase A changed", - "type": "double", - "unit": "Volt", - "defaultValue": 0 - }, - { - "id": "270d0c34-0a0c-4655-985f-faad6efd1afd", - "name": "voltagePhaseB", - "displayName": "Voltage phase B", - "displayNameEvent": "Voltage phase B changed", - "type": "double", - "unit": "Volt", - "defaultValue": 0 - }, - { - "id": "a1da8cfd-37cc-4c87-b857-e942cd90daec", - "name": "voltagePhaseC", - "displayName": "Voltage phase C", - "displayNameEvent": "Voltage phase C changed", - "type": "double", - "unit": "Volt", - "defaultValue": 0 - }, - { - "id": "1e077a3b-2dab-4ec4-ae96-ab49a564fe31", - "name": "currentPhaseA", - "displayName": "Current phase A", - "displayNameEvent": "Current phase A changed", - "type": "double", - "unit": "Ampere", - "defaultValue": 0 - }, - { - "id": "d2f54061-0807-47de-944c-68c8118ece91", - "name": "currentPhaseB", - "displayName": "Current phase B", - "displayNameEvent": "Current phase B changed", - "type": "double", - "unit": "Ampere", - "defaultValue": 0 - }, - { - "id": "610b20fb-2718-4f02-ac6e-12a9ef8c7615", - "name": "currentPhaseC", - "displayName": "Current phase C", - "displayNameEvent": "Current phase C changed", - "type": "double", - "unit": "Ampere", - "defaultValue": 0 - }, - { - "id": "464eff60-11c2-46b7-98f5-1aa8172e5a2d", - "name": "currentPower", - "displayName": "Current power", - "displayNameEvent": "Current power changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "55283773-0a4e-4574-b21a-d4a3f287eab1", - "name": "currentPowerPhaseA", - "displayName": "Current power phase A", - "displayNameEvent": "Current power phase A changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "8f15d104-5ff7-4c33-9cf9-fdbef4b6f721", - "name": "currentPowerPhaseB", - "displayName": "Current power phase B", - "displayNameEvent": "Current power phase B changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "86c0f968-ee70-4f56-bdfc-33b8e2b134a4", - "name": "currentPowerPhaseC", - "displayName": "Current power phase C", - "displayNameEvent": "Current power phase C changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5", - "name": "frequency", - "displayName": "Frequency", - "displayNameEvent": "Frequency changed", - "type": "double", - "unit": "Hertz", - "defaultValue": 0.00 - }, - { - "id": "f18fd596-b47f-44be-a0f0-6ca44369ebf5", - "name": "totalEnergyConsumed", - "displayName": "Total energy consumed", - "displayNameEvent": "Total energy consumed changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "112911c9-14e0-4c83-ac92-f2ceb3bdecdf", - "name": "totalEnergyProduced", - "displayName": "Total energy produced", - "displayNameEvent": "Total energy produced changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "b16b3b0c-82d9-4b3c-a172-0e6631c8ce16", - "name": "energyConsumedPhaseA", - "displayName": "Energy consumed phase A", - "displayNameEvent": "Energy consumed phase A changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "64225f7f-9b2f-4bfc-87b2-38758804a28b", - "name": "energyConsumedPhaseB", - "displayName": "Energy consumed phase B", - "displayNameEvent": "Energy consumed phase B changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "a6e82d61-e837-4ec8-b14a-af0d49bea9d2", - "name": "energyConsumedPhaseC", - "displayName": "Energy consumed phase C", - "displayNameEvent": "Energy consumed phase C changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "95bd476e-c247-4f7d-ab01-d9f1b7c0d996", - "name": "energyProducedPhaseA", - "displayName": "Energy produced phase A", - "displayNameEvent": "Energy produced phase A changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "f0a0bd81-708c-48d6-b5c9-165464a5b309", - "name": "energyProducedPhaseB", - "displayName": "Energy produced phase B", - "displayNameEvent": "Energy produced phase B changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1", - "name": "energyProducedPhaseC", - "displayName": "Energy produced phase C", - "displayNameEvent": "Energy produced phase C changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - } - ] - } - ] - }, - { - "name": "bgetech", - "displayName": "B+G e-tech", - "id": "215035fe-95e8-43d8-a52e-0a31b787d902", - "thingClasses": [ - { - "name": "sdm630", - "displayName": "SDM630 Modbus", - "id": "f37597bb-35fe-48f2-9617-343dd54c0903", - "createMethods": ["discovery"], - "interfaces": ["energymeter", "connectable"], - "discoveryParamTypes": [ - { - "id": "6ab43559-53ec-47ba-b8a0-8d3b7f8d90c2", - "name": "slaveAddress", - "displayName": "Slave address", - "type": "int", - "defaultValue": 1 - } - ], - "paramTypes": [ - { - "id": "ac77ea98-b006-486e-a3e8-b30a483f26c1", - "name": "slaveAddress", - "displayName": "Modbus slave address", - "type": "uint", - "defaultValue": 1 - }, - { - "id": "d90e9292-d03c-4f2a-957e-5d965018c9c9", - "name": "modbusMasterUuid", - "displayName": "Modbus RTU master", - "type": "QUuid", - "defaultValue": "", - "readOnly": true - } - ], - "stateTypes": [ - { - "id": "8050bd0b-1dad-4a7e-b632-c71ead3c9f8b", - "name": "connected", - "displayName": "Connected", - "displayNameEvent": "Connected changed", - "type": "bool", - "cached": false, - "defaultValue": false - }, - { - "id": "db018146-0441-4dc0-9834-6d43ebaf8311", - "name": "voltagePhaseA", - "displayName": "Voltage phase A", - "displayNameEvent": "Voltage phase A changed", - "type": "double", - "unit": "Volt", - "defaultValue": 0 - }, - { - "id": "406f6d02-d5eb-49b3-87da-3247568e6054", - "name": "voltagePhaseB", - "displayName": "Voltage phase B", - "displayNameEvent": "Voltage phase B changed", - "type": "double", - "unit": "Volt", - "defaultValue": 0 - }, - { - "id": "ace6294d-deaa-4d9a-af78-d64379bcb229", - "name": "voltagePhaseC", - "displayName": "Voltage phase C", - "displayNameEvent": "Voltage phase C changed", - "type": "double", - "unit": "Volt", - "defaultValue": 0 - }, - { - "id": "4baf1d08-5ffa-49cf-95ef-9527b0c6f081", - "name": "currentPhaseA", - "displayName": "Current phase A", - "displayNameEvent": "Current phase A changed", - "type": "double", - "unit": "Ampere", - "defaultValue": 0 - }, - { - "id": "99e47d06-0a6a-4bfd-b164-61ecb6ba2818", - "name": "currentPhaseB", - "displayName": "Current phase B", - "displayNameEvent": "Current phase B changed", - "type": "double", - "unit": "Ampere", - "defaultValue": 0 - }, - { - "id": "4a092a66-352d-4d60-90ab-6ac5f58b92fe", - "name": "currentPhaseC", - "displayName": "Current phase C", - "displayNameEvent": "Current phase C changed", - "type": "double", - "unit": "Ampere", - "defaultValue": 0 - }, - { - "id": "c824e97b-a6d1-4030-9d7a-00af6fb8e1c3", - "name": "currentPower", - "displayName": "Current power", - "displayNameEvent": "Current power changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "3982fb12-b179-40f7-9b27-36adb1cadd37", - "name": "currentPowerPhaseA", - "displayName": "Current power phase A", - "displayNameEvent": "Current power phase A changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "2a231c58-b095-4037-8394-a730431e70b8", - "name": "currentPowerPhaseB", - "displayName": "Current power phase B", - "displayNameEvent": "Current power phase B changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "ee8c4f0c-2b69-4210-9966-1553a592b06d", - "name": "currentPowerPhaseC", - "displayName": "Current power phase C", - "displayNameEvent": "Current power phase C changed", - "type": "double", - "unit": "Watt", - "defaultValue": 0 - }, - { - "id": "ab24f26c-dc15-4ec3-8d76-06a48285440b", - "name": "frequency", - "displayName": "Frequency", - "displayNameEvent": "Frequency changed", - "type": "double", - "unit": "Hertz", - "defaultValue": 0.00 - }, - { - "id": "98d858a8-22e8-4262-b5c7-25bb027942ad", - "name": "totalEnergyConsumed", - "displayName": "Total energy consumed", - "displayNameEvent": "Total energy consumed changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "e469b3ff-a4c2-42da-af35-ccafaef214af", - "name": "totalEnergyProduced", - "displayName": "Total energy produced", - "displayNameEvent": "Total energy produced changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "6ca06c81-fe75-4448-a22f-47c303421440", - "name": "energyConsumedPhaseA", - "displayName": "Energy consumed phase A", - "displayNameEvent": "Energy consumed phase A changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "fa2b879b-2a81-4bc8-9577-98082c4d9330", - "name": "energyConsumedPhaseB", - "displayName": "Energy consumed phase B", - "displayNameEvent": "Energy consumed phase B changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "4c084c9e-7a5d-42d1-96b2-a8a4b4a25713", - "name": "energyConsumedPhaseC", - "displayName": "Energy consumed phase C", - "displayNameEvent": "Energy consumed phase C changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "308fa88e-6054-4c79-b12a-be2d0a404ef6", - "name": "energyProducedPhaseA", - "displayName": "Energy produced phase A", - "displayNameEvent": "Energy produced phase A changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39", - "name": "energyProducedPhaseB", - "displayName": "Energy produced phase B", - "displayNameEvent": "Energy produced phase B changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - }, - { - "id": "6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff", - "name": "energyProducedPhaseC", - "displayName": "Energy produced phase C", - "displayNameEvent": "Energy produced phase C changed", - "type": "double", - "unit": "KiloWattHour", - "defaultValue": 0.00 - } - ] - } - ] - } - ] -} diff --git a/energymeters/translations/56e95111-fb6b-4f63-9a0a-a5ee001e89ed-de.ts b/energymeters/translations/56e95111-fb6b-4f63-9a0a-a5ee001e89ed-de.ts deleted file mode 100644 index 1ac5b4d..0000000 --- a/energymeters/translations/56e95111-fb6b-4f63-9a0a-a5ee001e89ed-de.ts +++ /dev/null @@ -1,577 +0,0 @@ - - - - - EnergyMeters - - - B+G e-tech - The name of the vendor ({215035fe-95e8-43d8-a52e-0a31b787d902}) - B+G e-tech - - - - - - - Connected - The name of the ParamType (ThingClass: sdm630, EventType: connected, ID: {8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) ----------- -The name of the StateType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: connected, ID: {7f9bc504-0882-4b86-83b1-42fa345acfd9}) ----------- -The name of the StateType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 - Verbunden - - - - - Connected changed - The name of the EventType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 ----------- -The name of the EventType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 - Verbunden - - - - - - - Current phase A - The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseA, ID: {4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) ----------- -The name of the StateType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPhaseA, ID: {1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) ----------- -The name of the StateType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 - - - - - - Current phase A changed - The name of the EventType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 ----------- -The name of the EventType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 - - - - - - - - Current phase B - The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseB, ID: {99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) ----------- -The name of the StateType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPhaseB, ID: {d2f54061-0807-47de-944c-68c8118ece91}) ----------- -The name of the StateType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 - - - - - - Current phase B changed - The name of the EventType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 ----------- -The name of the EventType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 - - - - - - - - Current phase C - The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseC, ID: {4a092a66-352d-4d60-90ab-6ac5f58b92fe}) ----------- -The name of the StateType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPhaseC, ID: {610b20fb-2718-4f02-ac6e-12a9ef8c7615}) ----------- -The name of the StateType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 - - - - - - Current phase C changed - The name of the EventType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 ----------- -The name of the EventType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 - - - - - - - - Current power - The name of the ParamType (ThingClass: sdm630, EventType: currentPower, ID: {c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) ----------- -The name of the StateType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPower, ID: {464eff60-11c2-46b7-98f5-1aa8172e5a2d}) ----------- -The name of the StateType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 - - - - - - Current power changed - The name of the EventType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 ----------- -The name of the EventType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 - - - - - - - - Current power phase A - The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseA, ID: {3982fb12-b179-40f7-9b27-36adb1cadd37}) ----------- -The name of the StateType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseA, ID: {55283773-0a4e-4574-b21a-d4a3f287eab1}) ----------- -The name of the StateType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 - - - - - - Current power phase A changed - The name of the EventType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 ----------- -The name of the EventType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 - - - - - - - - Current power phase B - The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseB, ID: {2a231c58-b095-4037-8394-a730431e70b8}) ----------- -The name of the StateType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseB, ID: {8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) ----------- -The name of the StateType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 - - - - - - Current power phase B changed - The name of the EventType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 ----------- -The name of the EventType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 - - - - - - - - Current power phase C - The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseC, ID: {ee8c4f0c-2b69-4210-9966-1553a592b06d}) ----------- -The name of the StateType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseC, ID: {86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) ----------- -The name of the StateType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 - - - - - - Current power phase C changed - The name of the EventType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 ----------- -The name of the EventType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 - - - - - - - - Energy consumed phase A - The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseA, ID: {6ca06c81-fe75-4448-a22f-47c303421440}) ----------- -The name of the StateType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseA, ID: {b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) ----------- -The name of the StateType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 - - - - - - Energy consumed phase A changed - The name of the EventType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 ----------- -The name of the EventType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 - - - - - - - - Energy consumed phase B - The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseB, ID: {fa2b879b-2a81-4bc8-9577-98082c4d9330}) ----------- -The name of the StateType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseB, ID: {64225f7f-9b2f-4bfc-87b2-38758804a28b}) ----------- -The name of the StateType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 - - - - - - Energy consumed phase B changed - The name of the EventType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 ----------- -The name of the EventType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 - - - - - - - - Energy consumed phase C - The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseC, ID: {4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) ----------- -The name of the StateType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseC, ID: {a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) ----------- -The name of the StateType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 - - - - - - Energy consumed phase C changed - The name of the EventType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 ----------- -The name of the EventType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 - - - - - - - - Energy produced phase A - The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseA, ID: {308fa88e-6054-4c79-b12a-be2d0a404ef6}) ----------- -The name of the StateType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseA, ID: {95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) ----------- -The name of the StateType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 - - - - - - Energy produced phase A changed - The name of the EventType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 ----------- -The name of the EventType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 - - - - - - - - Energy produced phase B - The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseB, ID: {48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) ----------- -The name of the StateType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseB, ID: {f0a0bd81-708c-48d6-b5c9-165464a5b309}) ----------- -The name of the StateType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 - - - - - - Energy produced phase B changed - The name of the EventType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 ----------- -The name of the EventType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 - - - - - - - - Energy produced phase C - The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseC, ID: {6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) ----------- -The name of the StateType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseC, ID: {c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) ----------- -The name of the StateType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 - - - - - - Energy produced phase C changed - The name of the EventType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 ----------- -The name of the EventType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 - - - - - EnergyMeters - The name of the plugin EnergyMeters ({56e95111-fb6b-4f63-9a0a-a5ee001e89ed}) - Energiezähler - - - - - - - Frequency - The name of the ParamType (ThingClass: sdm630, EventType: frequency, ID: {ab24f26c-dc15-4ec3-8d76-06a48285440b}) ----------- -The name of the StateType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: frequency, ID: {bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) ----------- -The name of the StateType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 - Frequenz - - - - - Frequency changed - The name of the EventType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 ----------- -The name of the EventType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 - Frequenz geändert - - - - - Modbus RTU master - The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {d90e9292-d03c-4f2a-957e-5d965018c9c9}) ----------- -The name of the ParamType (ThingClass: pro380, Type: thing, ID: {6cdbec8c-21b9-42dc-b1ab-8901ac609482}) - Modbus RTU Master - - - - - Modbus slave address - The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {ac77ea98-b006-486e-a3e8-b30a483f26c1}) ----------- -The name of the ParamType (ThingClass: pro380, Type: thing, ID: {c75b2c31-6ec3-49ab-8c8f-5231d0a7e941}) - Modbus Slave-Adresse - - - - PRO380-Mod - The name of the ThingClass ({d7c6440b-54f9-4cc0-a96b-9bb7304b3e77}) - PRO380-Mod - - - - SDM630 Modbus - The name of the ThingClass ({f37597bb-35fe-48f2-9617-343dd54c0903}) - - - - - - - - Voltage phase A - The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseA, ID: {db018146-0441-4dc0-9834-6d43ebaf8311}) ----------- -The name of the StateType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseA, ID: {04dba21a-7447-46b9-b9ae-095e5769e511}) ----------- -The name of the StateType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 - - - - - - Voltage phase A changed - The name of the EventType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 ----------- -The name of the EventType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 - - - - - - - - Voltage phase B - The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseB, ID: {406f6d02-d5eb-49b3-87da-3247568e6054}) ----------- -The name of the StateType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseB, ID: {270d0c34-0a0c-4655-985f-faad6efd1afd}) ----------- -The name of the StateType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 - - - - - - Voltage phase B changed - The name of the EventType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 ----------- -The name of the EventType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 - - - - - - - - Voltage phase C - The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseC, ID: {ace6294d-deaa-4d9a-af78-d64379bcb229}) ----------- -The name of the StateType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseC, ID: {a1da8cfd-37cc-4c87-b857-e942cd90daec}) ----------- -The name of the StateType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 - - - - - - Voltage phase C changed - The name of the EventType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 ----------- -The name of the EventType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 - - - - - - Slave address - The name of the ParamType (ThingClass: sdm630, Type: discovery, ID: {6ab43559-53ec-47ba-b8a0-8d3b7f8d90c2}) ----------- -The name of the ParamType (ThingClass: pro380, Type: discovery, ID: {a29f37f6-b344-4628-8ab4-8f4c18fada4a}) - Slave-Adresse - - - - - - - Total energy consumed - The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyConsumed, ID: {98d858a8-22e8-4262-b5c7-25bb027942ad}) ----------- -The name of the StateType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: totalEnergyConsumed, ID: {f18fd596-b47f-44be-a0f0-6ca44369ebf5}) ----------- -The name of the StateType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 - Gesamte verbrauchte Energy - - - - - Total energy consumed changed - The name of the EventType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 ----------- -The name of the EventType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 - Gesamte verbrauchte Energie geändert - - - - - - - Total energy produced - The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyProduced, ID: {e469b3ff-a4c2-42da-af35-ccafaef214af}) ----------- -The name of the StateType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: totalEnergyProduced, ID: {112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) ----------- -The name of the StateType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 - Gesamte produzierte Energie - - - - - Total energy produced changed - The name of the EventType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 ----------- -The name of the EventType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 - Gesamte produzierte Energie geändert - - - - inepro Metering - The name of the vendor ({64f4df0f-18ce-409c-bf32-84a086c691ca}) - inepro Metering - - - - IntegrationPluginEnergyMeters - - - No Modbus RTU interface available. - Keine Modbus RTU Schnittstelle verfügbar - - - - Modbus slave address must be between 1 and 254 - Die Modbus-Slave-Adresse muss zwischen 1 und 254 liegen - - - - Energy meter - Energiezähler - - - - Slave address - Slave-Adresse - - - - Slave address not valid, must be between 1 and 254 - Die Slave-Adresse ist ungültig, sie muss zwischen 1 und 254 liegen - - - - Modbus RTU resource not available. - Modbus RTU Schnittstelle nicht verfügbar - - - diff --git a/energymeters/translations/56e95111-fb6b-4f63-9a0a-a5ee001e89ed-en_US.ts b/energymeters/translations/56e95111-fb6b-4f63-9a0a-a5ee001e89ed-en_US.ts deleted file mode 100644 index f84148f..0000000 --- a/energymeters/translations/56e95111-fb6b-4f63-9a0a-a5ee001e89ed-en_US.ts +++ /dev/null @@ -1,577 +0,0 @@ - - - - - EnergyMeters - - - B+G e-tech - The name of the vendor ({215035fe-95e8-43d8-a52e-0a31b787d902}) - - - - - - - - Connected - The name of the ParamType (ThingClass: sdm630, EventType: connected, ID: {8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) ----------- -The name of the StateType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: connected, ID: {7f9bc504-0882-4b86-83b1-42fa345acfd9}) ----------- -The name of the StateType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 - - - - - - Connected changed - The name of the EventType ({8050bd0b-1dad-4a7e-b632-c71ead3c9f8b}) of ThingClass sdm630 ----------- -The name of the EventType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 - - - - - - - - Current phase A - The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseA, ID: {4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) ----------- -The name of the StateType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPhaseA, ID: {1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) ----------- -The name of the StateType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 - - - - - - Current phase A changed - The name of the EventType ({4baf1d08-5ffa-49cf-95ef-9527b0c6f081}) of ThingClass sdm630 ----------- -The name of the EventType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 - - - - - - - - Current phase B - The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseB, ID: {99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) ----------- -The name of the StateType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPhaseB, ID: {d2f54061-0807-47de-944c-68c8118ece91}) ----------- -The name of the StateType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 - - - - - - Current phase B changed - The name of the EventType ({99e47d06-0a6a-4bfd-b164-61ecb6ba2818}) of ThingClass sdm630 ----------- -The name of the EventType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 - - - - - - - - Current phase C - The name of the ParamType (ThingClass: sdm630, EventType: currentPhaseC, ID: {4a092a66-352d-4d60-90ab-6ac5f58b92fe}) ----------- -The name of the StateType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPhaseC, ID: {610b20fb-2718-4f02-ac6e-12a9ef8c7615}) ----------- -The name of the StateType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 - - - - - - Current phase C changed - The name of the EventType ({4a092a66-352d-4d60-90ab-6ac5f58b92fe}) of ThingClass sdm630 ----------- -The name of the EventType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 - - - - - - - - Current power - The name of the ParamType (ThingClass: sdm630, EventType: currentPower, ID: {c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) ----------- -The name of the StateType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPower, ID: {464eff60-11c2-46b7-98f5-1aa8172e5a2d}) ----------- -The name of the StateType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 - - - - - - Current power changed - The name of the EventType ({c824e97b-a6d1-4030-9d7a-00af6fb8e1c3}) of ThingClass sdm630 ----------- -The name of the EventType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 - - - - - - - - Current power phase A - The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseA, ID: {3982fb12-b179-40f7-9b27-36adb1cadd37}) ----------- -The name of the StateType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseA, ID: {55283773-0a4e-4574-b21a-d4a3f287eab1}) ----------- -The name of the StateType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 - - - - - - Current power phase A changed - The name of the EventType ({3982fb12-b179-40f7-9b27-36adb1cadd37}) of ThingClass sdm630 ----------- -The name of the EventType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 - - - - - - - - Current power phase B - The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseB, ID: {2a231c58-b095-4037-8394-a730431e70b8}) ----------- -The name of the StateType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseB, ID: {8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) ----------- -The name of the StateType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 - - - - - - Current power phase B changed - The name of the EventType ({2a231c58-b095-4037-8394-a730431e70b8}) of ThingClass sdm630 ----------- -The name of the EventType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 - - - - - - - - Current power phase C - The name of the ParamType (ThingClass: sdm630, EventType: currentPowerPhaseC, ID: {ee8c4f0c-2b69-4210-9966-1553a592b06d}) ----------- -The name of the StateType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseC, ID: {86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) ----------- -The name of the StateType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 - - - - - - Current power phase C changed - The name of the EventType ({ee8c4f0c-2b69-4210-9966-1553a592b06d}) of ThingClass sdm630 ----------- -The name of the EventType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 - - - - - - - - Energy consumed phase A - The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseA, ID: {6ca06c81-fe75-4448-a22f-47c303421440}) ----------- -The name of the StateType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseA, ID: {b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) ----------- -The name of the StateType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 - - - - - - Energy consumed phase A changed - The name of the EventType ({6ca06c81-fe75-4448-a22f-47c303421440}) of ThingClass sdm630 ----------- -The name of the EventType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 - - - - - - - - Energy consumed phase B - The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseB, ID: {fa2b879b-2a81-4bc8-9577-98082c4d9330}) ----------- -The name of the StateType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseB, ID: {64225f7f-9b2f-4bfc-87b2-38758804a28b}) ----------- -The name of the StateType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 - - - - - - Energy consumed phase B changed - The name of the EventType ({fa2b879b-2a81-4bc8-9577-98082c4d9330}) of ThingClass sdm630 ----------- -The name of the EventType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 - - - - - - - - Energy consumed phase C - The name of the ParamType (ThingClass: sdm630, EventType: energyConsumedPhaseC, ID: {4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) ----------- -The name of the StateType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseC, ID: {a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) ----------- -The name of the StateType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 - - - - - - Energy consumed phase C changed - The name of the EventType ({4c084c9e-7a5d-42d1-96b2-a8a4b4a25713}) of ThingClass sdm630 ----------- -The name of the EventType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 - - - - - - - - Energy produced phase A - The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseA, ID: {308fa88e-6054-4c79-b12a-be2d0a404ef6}) ----------- -The name of the StateType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseA, ID: {95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) ----------- -The name of the StateType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 - - - - - - Energy produced phase A changed - The name of the EventType ({308fa88e-6054-4c79-b12a-be2d0a404ef6}) of ThingClass sdm630 ----------- -The name of the EventType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 - - - - - - - - Energy produced phase B - The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseB, ID: {48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) ----------- -The name of the StateType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseB, ID: {f0a0bd81-708c-48d6-b5c9-165464a5b309}) ----------- -The name of the StateType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 - - - - - - Energy produced phase B changed - The name of the EventType ({48ab6e61-dfb4-4f85-b5cc-9d89e53c6b39}) of ThingClass sdm630 ----------- -The name of the EventType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 - - - - - - - - Energy produced phase C - The name of the ParamType (ThingClass: sdm630, EventType: energyProducedPhaseC, ID: {6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) ----------- -The name of the StateType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseC, ID: {c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) ----------- -The name of the StateType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 - - - - - - Energy produced phase C changed - The name of the EventType ({6b3ddf15-3d4b-4dc1-8e5a-84fbf90b49ff}) of ThingClass sdm630 ----------- -The name of the EventType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 - - - - - EnergyMeters - The name of the plugin EnergyMeters ({56e95111-fb6b-4f63-9a0a-a5ee001e89ed}) - - - - - - - - Frequency - The name of the ParamType (ThingClass: sdm630, EventType: frequency, ID: {ab24f26c-dc15-4ec3-8d76-06a48285440b}) ----------- -The name of the StateType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: frequency, ID: {bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) ----------- -The name of the StateType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 - - - - - - Frequency changed - The name of the EventType ({ab24f26c-dc15-4ec3-8d76-06a48285440b}) of ThingClass sdm630 ----------- -The name of the EventType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 - - - - - - Modbus RTU master - The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {d90e9292-d03c-4f2a-957e-5d965018c9c9}) ----------- -The name of the ParamType (ThingClass: pro380, Type: thing, ID: {6cdbec8c-21b9-42dc-b1ab-8901ac609482}) - - - - - - Modbus slave address - The name of the ParamType (ThingClass: sdm630, Type: thing, ID: {ac77ea98-b006-486e-a3e8-b30a483f26c1}) ----------- -The name of the ParamType (ThingClass: pro380, Type: thing, ID: {c75b2c31-6ec3-49ab-8c8f-5231d0a7e941}) - - - - - PRO380-Mod - The name of the ThingClass ({d7c6440b-54f9-4cc0-a96b-9bb7304b3e77}) - - - - - SDM630 Modbus - The name of the ThingClass ({f37597bb-35fe-48f2-9617-343dd54c0903}) - - - - - - - - Voltage phase A - The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseA, ID: {db018146-0441-4dc0-9834-6d43ebaf8311}) ----------- -The name of the StateType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseA, ID: {04dba21a-7447-46b9-b9ae-095e5769e511}) ----------- -The name of the StateType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 - - - - - - Voltage phase A changed - The name of the EventType ({db018146-0441-4dc0-9834-6d43ebaf8311}) of ThingClass sdm630 ----------- -The name of the EventType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 - - - - - - - - Voltage phase B - The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseB, ID: {406f6d02-d5eb-49b3-87da-3247568e6054}) ----------- -The name of the StateType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseB, ID: {270d0c34-0a0c-4655-985f-faad6efd1afd}) ----------- -The name of the StateType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 - - - - - - Voltage phase B changed - The name of the EventType ({406f6d02-d5eb-49b3-87da-3247568e6054}) of ThingClass sdm630 ----------- -The name of the EventType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 - - - - - - - - Voltage phase C - The name of the ParamType (ThingClass: sdm630, EventType: voltagePhaseC, ID: {ace6294d-deaa-4d9a-af78-d64379bcb229}) ----------- -The name of the StateType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseC, ID: {a1da8cfd-37cc-4c87-b857-e942cd90daec}) ----------- -The name of the StateType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 - - - - - - Voltage phase C changed - The name of the EventType ({ace6294d-deaa-4d9a-af78-d64379bcb229}) of ThingClass sdm630 ----------- -The name of the EventType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 - - - - - - Slave address - The name of the ParamType (ThingClass: sdm630, Type: discovery, ID: {6ab43559-53ec-47ba-b8a0-8d3b7f8d90c2}) ----------- -The name of the ParamType (ThingClass: pro380, Type: discovery, ID: {a29f37f6-b344-4628-8ab4-8f4c18fada4a}) - - - - - - - - Total energy consumed - The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyConsumed, ID: {98d858a8-22e8-4262-b5c7-25bb027942ad}) ----------- -The name of the StateType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: totalEnergyConsumed, ID: {f18fd596-b47f-44be-a0f0-6ca44369ebf5}) ----------- -The name of the StateType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 - - - - - - Total energy consumed changed - The name of the EventType ({98d858a8-22e8-4262-b5c7-25bb027942ad}) of ThingClass sdm630 ----------- -The name of the EventType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 - - - - - - - - Total energy produced - The name of the ParamType (ThingClass: sdm630, EventType: totalEnergyProduced, ID: {e469b3ff-a4c2-42da-af35-ccafaef214af}) ----------- -The name of the StateType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 ----------- -The name of the ParamType (ThingClass: pro380, EventType: totalEnergyProduced, ID: {112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) ----------- -The name of the StateType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 - - - - - - Total energy produced changed - The name of the EventType ({e469b3ff-a4c2-42da-af35-ccafaef214af}) of ThingClass sdm630 ----------- -The name of the EventType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 - - - - - inepro Metering - The name of the vendor ({64f4df0f-18ce-409c-bf32-84a086c691ca}) - - - - - IntegrationPluginEnergyMeters - - - No Modbus RTU interface available. - - - - - Modbus slave address must be between 1 and 254 - - - - - Energy meter - - - - - Slave address - - - - - Slave address not valid, must be between 1 and 254 - - - - - Modbus RTU resource not available. - - - - diff --git a/inepro/README.md b/inepro/README.md new file mode 100644 index 0000000..f0070d1 --- /dev/null +++ b/inepro/README.md @@ -0,0 +1,9 @@ +# inepro Metering + +This plugin adds support for the inepro Metering PRO380 energy meter connected via Modbus RTU. + +# Setup instructions +First, set up a Modbus RTU resource using the configured settings of your meter. Once +that's set up, the PRO380 can be set up like any other thing. During discovery, nymea will +offer the configured Modbus resources as possible connections. Select the one that +you've set up previously. diff --git a/inepro/inepro.jpg b/inepro/inepro.jpg new file mode 100644 index 0000000..954a7ad Binary files /dev/null and b/inepro/inepro.jpg differ diff --git a/inepro/inepro.pro b/inepro/inepro.pro new file mode 100644 index 0000000..4067273 --- /dev/null +++ b/inepro/inepro.pro @@ -0,0 +1,14 @@ +include(../plugins.pri) + +QT += serialport serialbus + +HEADERS += \ + integrationplugininepro.h \ + pro380modbusrtuconnection.h \ + ../modbus/modbusdatautils.h + +SOURCES += \ + integrationplugininepro.cpp \ + pro380modbusrtuconnection.cpp \ + ../modbus/modbusdatautils.cpp + diff --git a/inepro/integrationplugininepro.cpp b/inepro/integrationplugininepro.cpp new file mode 100644 index 0000000..af5ff77 --- /dev/null +++ b/inepro/integrationplugininepro.cpp @@ -0,0 +1,229 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* Copyright 2013 - 2021, nymea GmbH +* Contact: contact@nymea.io +* +* This file 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 "integrationplugininepro.h" +#include "plugininfo.h" + +IntegrationPluginInepro::IntegrationPluginInepro() +{ +} + +void IntegrationPluginInepro::init() +{ + connect(hardwareManager()->modbusRtuResource(), &ModbusRtuHardwareResource::modbusRtuMasterRemoved, this, [=] (const QUuid &modbusUuid){ + qCDebug(dcInepro()) << "Modbus RTU master has been removed" << modbusUuid.toString(); + + foreach (Thing *thing, myThings()) { + if (thing->paramValue(pro380ThingModbusMasterUuidParamTypeId) == modbusUuid) { + qCWarning(dcInepro()) << "Modbus RTU hardware resource removed for" << thing << ". The thing will not be functional any more until a new resource has been configured for it."; + thing->setStateValue(pro380ConnectedStateTypeId, false); + + delete m_pro380Connections.take(thing); + } + } + }); +} + +void IntegrationPluginInepro::discoverThings(ThingDiscoveryInfo *info) +{ + qCDebug(dcInepro()) << "Discover modbus RTU resources..."; + if (hardwareManager()->modbusRtuResource()->modbusRtuMasters().isEmpty()) { + info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("No Modbus RTU interface available. Please set up the Modbus RTU interface first.")); + return; + } + + uint slaveAddress = info->params().paramValue(pro380DiscoverySlaveAddressParamTypeId).toUInt(); + if (slaveAddress > 254 || slaveAddress == 0) { + info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("The Modbus slave address must be a value between 1 and 254.")); + return; + } + + foreach (ModbusRtuMaster *modbusMaster, hardwareManager()->modbusRtuResource()->modbusRtuMasters()) { + qCDebug(dcInepro()) << "Found RTU master resource" << modbusMaster << "connected" << modbusMaster->connected(); + if (!modbusMaster->connected()) + continue; + + ThingDescriptor descriptor(info->thingClassId(), "PRO380", QString::number(slaveAddress) + " " + modbusMaster->serialPort()); + ParamList params; + params << Param(pro380ThingSlaveAddressParamTypeId, slaveAddress); + params << Param(pro380ThingModbusMasterUuidParamTypeId, modbusMaster->modbusUuid()); + descriptor.setParams(params); + info->addThingDescriptor(descriptor); + } + + info->finish(Thing::ThingErrorNoError); + return; +} + +void IntegrationPluginInepro::setupThing(ThingSetupInfo *info) +{ + Thing *thing = info->thing(); + qCDebug(dcInepro()) << "Setup thing" << thing << thing->params(); + + uint address = thing->paramValue(pro380ThingSlaveAddressParamTypeId).toUInt(); + if (address > 254 || address == 0) { + qCWarning(dcInepro()) << "Setup failed, slave address is not valid" << address; + info->finish(Thing::ThingErrorSetupFailed, QT_TR_NOOP("The Modbus address not valid. It must be a Value between 1 and 254.")); + return; + } + + QUuid uuid = thing->paramValue(pro380ThingModbusMasterUuidParamTypeId).toUuid(); + if (!hardwareManager()->modbusRtuResource()->hasModbusRtuMaster(uuid)) { + qCWarning(dcInepro()) << "Setup failed, hardware manager not available"; + info->finish(Thing::ThingErrorSetupFailed, QT_TR_NOOP("The Modbus RTU interface is not available.")); + return; + } + + if (m_pro380Connections.contains(thing)) { + qCDebug(dcInepro()) << "Setup after rediscovery, cleaning up ..."; + m_pro380Connections.take(thing)->deleteLater(); + } + + Pro380ModbusRtuConnection *proConnection = new Pro380ModbusRtuConnection(hardwareManager()->modbusRtuResource()->getModbusRtuMaster(uuid), address, this); + connect(proConnection->modbusRtuMaster(), &ModbusRtuMaster::connectedChanged, this, [=](bool connected){ + if (connected) { + qCDebug(dcInepro()) << "Modbus RTU resource connected" << thing << proConnection->modbusRtuMaster()->serialPort(); + } else { + qCWarning(dcInepro()) << "Modbus RTU resource disconnected" << thing << proConnection->modbusRtuMaster()->serialPort(); + } + }); + + connect(proConnection, &Pro380ModbusRtuConnection::currentPhaseAChanged, this, [=](float currentPhaseA){ + thing->setStateValue(pro380CurrentPhaseAStateTypeId, currentPhaseA); + thing->setStateValue(pro380ConnectedStateTypeId, true); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::currentPhaseBChanged, this, [=](float currentPhaseB){ + thing->setStateValue(pro380CurrentPhaseBStateTypeId, currentPhaseB); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::currentPhaseCChanged, this, [=](float currentPhaseC){ + thing->setStateValue(pro380CurrentPhaseCStateTypeId, currentPhaseC); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::voltagePhaseAChanged, this, [=](float voltagePhaseA){ + thing->setStateValue(pro380VoltagePhaseAStateTypeId, voltagePhaseA); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::voltagePhaseBChanged, this, [=](float voltagePhaseB){ + thing->setStateValue(pro380VoltagePhaseBStateTypeId, voltagePhaseB); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::voltagePhaseCChanged, this, [=](float voltagePhaseC){ + thing->setStateValue(pro380VoltagePhaseCStateTypeId, voltagePhaseC); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::totalCurrentPowerChanged, this, [=](float currentPower){ + thing->setStateValue(pro380CurrentPowerStateTypeId, currentPower * 1000); // kW + }); + + connect(proConnection, &Pro380ModbusRtuConnection::powerPhaseAChanged, this, [=](float powerPhaseA){ + thing->setStateValue(pro380CurrentPowerPhaseAStateTypeId, powerPhaseA * 1000); // kW + }); + + connect(proConnection, &Pro380ModbusRtuConnection::powerPhaseBChanged, this, [=](float powerPhaseB){ + thing->setStateValue(pro380CurrentPowerPhaseBStateTypeId, powerPhaseB * 1000); // kW + }); + + connect(proConnection, &Pro380ModbusRtuConnection::powerPhaseCChanged, this, [=](float powerPhaseC){ + thing->setStateValue(pro380CurrentPowerPhaseCStateTypeId, powerPhaseC * 1000); // kW + }); + + connect(proConnection, &Pro380ModbusRtuConnection::frequencyChanged, this, [=](float frequency){ + thing->setStateValue(pro380FrequencyStateTypeId, frequency); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::totalEnergyConsumedChanged, this, [=](float totalEnergyConsumed){ + thing->setStateValue(pro380TotalEnergyConsumedStateTypeId, totalEnergyConsumed); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::totalEnergyProducedChanged, this, [=](float totalEnergyProduced){ + thing->setStateValue(pro380TotalEnergyProducedStateTypeId, totalEnergyProduced); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::energyProducedPhaseAChanged, this, [=](float energyProducedPhaseA){ + thing->setStateValue(pro380EnergyProducedPhaseAStateTypeId, energyProducedPhaseA); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::energyProducedPhaseBChanged, this, [=](float energyProducedPhaseB){ + thing->setStateValue(pro380EnergyProducedPhaseBStateTypeId, energyProducedPhaseB); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::energyProducedPhaseCChanged, this, [=](float energyProducedPhaseC){ + thing->setStateValue(pro380EnergyProducedPhaseCStateTypeId, energyProducedPhaseC); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::energyConsumedPhaseAChanged, this, [=](float energyConsumedPhaseA){ + thing->setStateValue(pro380EnergyConsumedPhaseAStateTypeId, energyConsumedPhaseA); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::energyConsumedPhaseBChanged, this, [=](float energyConsumedPhaseB){ + thing->setStateValue(pro380EnergyConsumedPhaseBStateTypeId, energyConsumedPhaseB); + }); + + connect(proConnection, &Pro380ModbusRtuConnection::energyConsumedPhaseCChanged, this, [=](float energyConsumedPhaseC){ + thing->setStateValue(pro380EnergyConsumedPhaseCStateTypeId, energyConsumedPhaseC); + }); + + + // FIXME: try to read before setup success + m_pro380Connections.insert(thing, proConnection); + info->finish(Thing::ThingErrorNoError); +} + +void IntegrationPluginInepro::postSetupThing(Thing *thing) +{ + qCDebug(dcInepro) << "Post setup thing" << thing->name(); + if (!m_refreshTimer) { + m_refreshTimer = hardwareManager()->pluginTimerManager()->registerTimer(2); + connect(m_refreshTimer, &PluginTimer::timeout, this, [this] { + foreach (Thing *thing, myThings()) { + m_pro380Connections.value(thing)->update(); + } + }); + + qCDebug(dcInepro()) << "Starting refresh timer..."; + m_refreshTimer->start(); + } +} + +void IntegrationPluginInepro::thingRemoved(Thing *thing) +{ + qCDebug(dcInepro()) << "Thing removed" << thing->name(); + + if (m_pro380Connections.contains(thing)) + m_pro380Connections.take(thing)->deleteLater(); + + if (myThings().isEmpty() && m_refreshTimer) { + qCDebug(dcInepro()) << "Stopping reconnect timer"; + hardwareManager()->pluginTimerManager()->unregisterTimer(m_refreshTimer); + m_refreshTimer = nullptr; + } +} diff --git a/inepro/integrationplugininepro.h b/inepro/integrationplugininepro.h new file mode 100644 index 0000000..dfd8ce0 --- /dev/null +++ b/inepro/integrationplugininepro.h @@ -0,0 +1,66 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* Copyright 2013 - 2021, nymea GmbH +* Contact: contact@nymea.io +* +* This file 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 INTEGRATIONPLUGININEPRO_H +#define INTEGRATIONPLUGININEPRO_H + +#include +#include +#include + +#include "pro380modbusrtuconnection.h" + +#include "extern-plugininfo.h" + +#include +#include + +class IntegrationPluginInepro : public IntegrationPlugin +{ + Q_OBJECT + + Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationplugininepro.json") + Q_INTERFACES(IntegrationPlugin) + +public: + explicit IntegrationPluginInepro(); + void init() override; + void discoverThings(ThingDiscoveryInfo *info) override; + void setupThing(ThingSetupInfo *info) override; + void postSetupThing(Thing *thing) override; + void thingRemoved(Thing *thing) override; + +private: + PluginTimer *m_refreshTimer = nullptr; + + QHash m_pro380Connections; +}; + +#endif // INTEGRATIONPLUGININEPRO_H diff --git a/inepro/integrationplugininepro.json b/inepro/integrationplugininepro.json new file mode 100644 index 0000000..bf04b89 --- /dev/null +++ b/inepro/integrationplugininepro.json @@ -0,0 +1,230 @@ +{ + "name": "inepro", + "displayName": "inepro Metering", + "id": "9bc19f8c-ff9e-4036-95a4-c79038709656", + "paramTypes":[ ], + "vendors": [ + { + "name": "ineproMetering", + "displayName": "inepro Metering", + "id": "64f4df0f-18ce-409c-bf32-84a086c691ca", + "thingClasses": [ + { + "name": "pro380", + "displayName": "PRO380", + "id": "d7c6440b-54f9-4cc0-a96b-9bb7304b3e77", + "createMethods": ["discovery"], + "interfaces": ["energymeter", "connectable"], + "discoveryParamTypes": [ + { + "id": "a29f37f6-b344-4628-8ab4-8f4c18fada4a", + "name": "slaveAddress", + "displayName": "Slave address", + "type": "int", + "defaultValue": 1 + } + ], + "paramTypes": [ + { + "id": "c75b2c31-6ec3-49ab-8c8f-5231d0a7e941", + "name": "slaveAddress", + "displayName": "Modbus slave address", + "type": "uint", + "defaultValue": 1 + }, + { + "id": "6cdbec8c-21b9-42dc-b1ab-8901ac609482", + "name": "modbusMasterUuid", + "displayName": "Modbus RTU master", + "type": "QUuid", + "defaultValue": "", + "readOnly": true + } + ], + "stateTypes": [ + { + "id": "7f9bc504-0882-4b86-83b1-42fa345acfd9", + "name": "connected", + "displayName": "Connected", + "displayNameEvent": "Connected changed", + "type": "bool", + "cached": false, + "defaultValue": false + }, + { + "id": "04dba21a-7447-46b9-b9ae-095e5769e511", + "name": "voltagePhaseA", + "displayName": "Voltage phase A", + "displayNameEvent": "Voltage phase A changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "270d0c34-0a0c-4655-985f-faad6efd1afd", + "name": "voltagePhaseB", + "displayName": "Voltage phase B", + "displayNameEvent": "Voltage phase B changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "a1da8cfd-37cc-4c87-b857-e942cd90daec", + "name": "voltagePhaseC", + "displayName": "Voltage phase C", + "displayNameEvent": "Voltage phase C changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "1e077a3b-2dab-4ec4-ae96-ab49a564fe31", + "name": "currentPhaseA", + "displayName": "Current phase A", + "displayNameEvent": "Current phase A changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "d2f54061-0807-47de-944c-68c8118ece91", + "name": "currentPhaseB", + "displayName": "Current phase B", + "displayNameEvent": "Current phase B changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "610b20fb-2718-4f02-ac6e-12a9ef8c7615", + "name": "currentPhaseC", + "displayName": "Current phase C", + "displayNameEvent": "Current phase C changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "464eff60-11c2-46b7-98f5-1aa8172e5a2d", + "name": "currentPower", + "displayName": "Current power", + "displayNameEvent": "Current power changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "55283773-0a4e-4574-b21a-d4a3f287eab1", + "name": "currentPowerPhaseA", + "displayName": "Current power phase A", + "displayNameEvent": "Current power phase A changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "8f15d104-5ff7-4c33-9cf9-fdbef4b6f721", + "name": "currentPowerPhaseB", + "displayName": "Current power phase B", + "displayNameEvent": "Current power phase B changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "86c0f968-ee70-4f56-bdfc-33b8e2b134a4", + "name": "currentPowerPhaseC", + "displayName": "Current power phase C", + "displayNameEvent": "Current power phase C changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5", + "name": "frequency", + "displayName": "Frequency", + "displayNameEvent": "Frequency changed", + "type": "double", + "unit": "Hertz", + "defaultValue": 0.00 + }, + { + "id": "f18fd596-b47f-44be-a0f0-6ca44369ebf5", + "name": "totalEnergyConsumed", + "displayName": "Total energy consumed", + "displayNameEvent": "Total energy consumed changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "112911c9-14e0-4c83-ac92-f2ceb3bdecdf", + "name": "totalEnergyProduced", + "displayName": "Total energy produced", + "displayNameEvent": "Total energy produced changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "b16b3b0c-82d9-4b3c-a172-0e6631c8ce16", + "name": "energyConsumedPhaseA", + "displayName": "Energy consumed phase A", + "displayNameEvent": "Energy consumed phase A changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "64225f7f-9b2f-4bfc-87b2-38758804a28b", + "name": "energyConsumedPhaseB", + "displayName": "Energy consumed phase B", + "displayNameEvent": "Energy consumed phase B changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "a6e82d61-e837-4ec8-b14a-af0d49bea9d2", + "name": "energyConsumedPhaseC", + "displayName": "Energy consumed phase C", + "displayNameEvent": "Energy consumed phase C changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "95bd476e-c247-4f7d-ab01-d9f1b7c0d996", + "name": "energyProducedPhaseA", + "displayName": "Energy produced phase A", + "displayNameEvent": "Energy produced phase A changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "f0a0bd81-708c-48d6-b5c9-165464a5b309", + "name": "energyProducedPhaseB", + "displayName": "Energy produced phase B", + "displayNameEvent": "Energy produced phase B changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + }, + { + "id": "c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1", + "name": "energyProducedPhaseC", + "displayName": "Energy produced phase C", + "displayNameEvent": "Energy produced phase C changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0.00 + } + ] + } + ] + } + ] +} diff --git a/inepro/meta.json b/inepro/meta.json new file mode 100644 index 0000000..9f3565b --- /dev/null +++ b/inepro/meta.json @@ -0,0 +1,13 @@ +{ + "title": "inepro Metering", + "tagline": "Connect inepro Metering Modbus RTU energy meters.", + "icon": "inepro.jpg", + "stability": "consumer", + "offline": true, + "technologies": [ + "modbus" + ], + "categories": [ + "energy" + ] +} diff --git a/energymeters/pro380-registers.json b/inepro/pro380-registers.json similarity index 100% rename from energymeters/pro380-registers.json rename to inepro/pro380-registers.json diff --git a/energymeters/pro380modbusrtuconnection.cpp b/inepro/pro380modbusrtuconnection.cpp similarity index 100% rename from energymeters/pro380modbusrtuconnection.cpp rename to inepro/pro380modbusrtuconnection.cpp diff --git a/energymeters/pro380modbusrtuconnection.h b/inepro/pro380modbusrtuconnection.h similarity index 100% rename from energymeters/pro380modbusrtuconnection.h rename to inepro/pro380modbusrtuconnection.h diff --git a/inepro/translations/9bc19f8c-ff9e-4036-95a4-c79038709656-de.ts b/inepro/translations/9bc19f8c-ff9e-4036-95a4-c79038709656-de.ts new file mode 100644 index 0000000..5ddc234 --- /dev/null +++ b/inepro/translations/9bc19f8c-ff9e-4036-95a4-c79038709656-de.ts @@ -0,0 +1,363 @@ + + + + + IntegrationPluginInepro + + + No Modbus RTU interface available. Please set up the Modbus RTU interface first. + Keine Modbus RTU Schnittstelle verfügbar. Bitte richte zuerst die Modbus RTU Schnittstelle ein. + + + + The Modbus slave address must be a value between 1 and 254. + Die Modbus Adresse muss ein Wert zwischen 1 und 254 sein. + + + + The Modbus address not valid. It must be a Value between 1 and 254. + Die Modbus Adresse ist ungültig. Es muss ein Wert zwischen 1 und 254 sein. + + + + The Modbus RTU interface is not available. + Die Modbus RTU Schnittstelle ist nicht verfügbar. + + + + inepro + + + + Connected + The name of the ParamType (ThingClass: pro380, EventType: connected, ID: {7f9bc504-0882-4b86-83b1-42fa345acfd9}) +---------- +The name of the StateType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 + Verbunden + + + + Connected changed + The name of the EventType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 + Verbunden oder getrennt + + + + + Current phase A + The name of the ParamType (ThingClass: pro380, EventType: currentPhaseA, ID: {1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) +---------- +The name of the StateType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 + Strom Phase A + + + + Current phase A changed + The name of the EventType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 + Strom Phase A geändert + + + + + Current phase B + The name of the ParamType (ThingClass: pro380, EventType: currentPhaseB, ID: {d2f54061-0807-47de-944c-68c8118ece91}) +---------- +The name of the StateType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 + Strom Phase B + + + + Current phase B changed + The name of the EventType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 + Strom Phase B geändert + + + + + Current phase C + The name of the ParamType (ThingClass: pro380, EventType: currentPhaseC, ID: {610b20fb-2718-4f02-ac6e-12a9ef8c7615}) +---------- +The name of the StateType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 + Strom Phase C + + + + Current phase C changed + The name of the EventType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 + Strom Phase C geänert + + + + + Current power + The name of the ParamType (ThingClass: pro380, EventType: currentPower, ID: {464eff60-11c2-46b7-98f5-1aa8172e5a2d}) +---------- +The name of the StateType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 + Aktueller Energieverbrauch + + + + Current power changed + The name of the EventType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 + Aktueller Energieverbrauch geändert + + + + + Current power phase A + The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseA, ID: {55283773-0a4e-4574-b21a-d4a3f287eab1}) +---------- +The name of the StateType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 + Aktueller Energieverbrauch Phase A + + + + Current power phase A changed + The name of the EventType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 + Aktueller Energieverbrauch Phase A geändert + + + + + Current power phase B + The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseB, ID: {8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) +---------- +The name of the StateType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 + Aktueller Energieverbrauch Phase B + + + + Current power phase B changed + The name of the EventType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 + Aktueller Energieverbrauch Phase B geändert + + + + + Current power phase C + The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseC, ID: {86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) +---------- +The name of the StateType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 + Aktueller Energieverbrauch Phase C + + + + Current power phase C changed + The name of the EventType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 + Aktueller Energieverbrauch Phase C geändert + + + + + Energy consumed phase A + The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseA, ID: {b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) +---------- +The name of the StateType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 + Gesamtverbrauch Phase A + + + + Energy consumed phase A changed + The name of the EventType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 + Gesamtverbrauch Phase A geändert + + + + + Energy consumed phase B + The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseB, ID: {64225f7f-9b2f-4bfc-87b2-38758804a28b}) +---------- +The name of the StateType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 + Gesamtverbrauch Phase B + + + + Energy consumed phase B changed + The name of the EventType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 + Gesamtverbrauch Phase B geändert + + + + + Energy consumed phase C + The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseC, ID: {a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) +---------- +The name of the StateType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 + Gesamtverbrauch Phase C + + + + Energy consumed phase C changed + The name of the EventType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 + Gesamtverbrauch Phase C geändert + + + + + Energy produced phase A + The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseA, ID: {95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) +---------- +The name of the StateType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 + Erzeugte Energie Phase A + + + + Energy produced phase A changed + The name of the EventType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 + Erzeugte Energie Phase A geändert + + + + + Energy produced phase B + The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseB, ID: {f0a0bd81-708c-48d6-b5c9-165464a5b309}) +---------- +The name of the StateType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 + Erzeugte Energie Phase B + + + + Energy produced phase B changed + The name of the EventType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 + Erzeugte Energie Phase B geändert + + + + + Energy produced phase C + The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseC, ID: {c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) +---------- +The name of the StateType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 + Erzeugte Energie Phase C + + + + Energy produced phase C changed + The name of the EventType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 + Erzeugte Energie Phase C geändert + + + + + Frequency + The name of the ParamType (ThingClass: pro380, EventType: frequency, ID: {bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) +---------- +The name of the StateType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 + Frequenz + + + + Frequency changed + The name of the EventType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 + Frequenz geändert + + + + Modbus RTU master + The name of the ParamType (ThingClass: pro380, Type: thing, ID: {6cdbec8c-21b9-42dc-b1ab-8901ac609482}) + Modbus RTU Master + + + + Modbus slave address + The name of the ParamType (ThingClass: pro380, Type: thing, ID: {c75b2c31-6ec3-49ab-8c8f-5231d0a7e941}) + Modbus Adresse + + + + PRO380 + The name of the ThingClass ({d7c6440b-54f9-4cc0-a96b-9bb7304b3e77}) + PRO380 + + + + Slave address + The name of the ParamType (ThingClass: pro380, Type: discovery, ID: {a29f37f6-b344-4628-8ab4-8f4c18fada4a}) + Adresse + + + + + Total energy consumed + The name of the ParamType (ThingClass: pro380, EventType: totalEnergyConsumed, ID: {f18fd596-b47f-44be-a0f0-6ca44369ebf5}) +---------- +The name of the StateType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 + Gesamter Energieverbrauch + + + + Total energy consumed changed + The name of the EventType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 + Gesamter Energieverbrauch geändert + + + + + Total energy produced + The name of the ParamType (ThingClass: pro380, EventType: totalEnergyProduced, ID: {112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) +---------- +The name of the StateType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 + Gesamte erzeugte Energie + + + + Total energy produced changed + The name of the EventType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 + Gesamte erzeugte Energie geändert + + + + + Voltage phase A + The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseA, ID: {04dba21a-7447-46b9-b9ae-095e5769e511}) +---------- +The name of the StateType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 + Spannung Phase A + + + + Voltage phase A changed + The name of the EventType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 + Spannung Phase A geändert + + + + + Voltage phase B + The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseB, ID: {270d0c34-0a0c-4655-985f-faad6efd1afd}) +---------- +The name of the StateType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 + Spannung Phase B + + + + Voltage phase B changed + The name of the EventType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 + Spannung Phase B geändert + + + + + Voltage phase C + The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseC, ID: {a1da8cfd-37cc-4c87-b857-e942cd90daec}) +---------- +The name of the StateType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 + Spannung Phase C + + + + Voltage phase C changed + The name of the EventType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 + Spannung Phase C geändert + + + + + inepro Metering + The name of the vendor ({64f4df0f-18ce-409c-bf32-84a086c691ca}) +---------- +The name of the plugin inepro ({9bc19f8c-ff9e-4036-95a4-c79038709656}) + inepro Metering + + + diff --git a/inepro/translations/9bc19f8c-ff9e-4036-95a4-c79038709656-en_US.ts b/inepro/translations/9bc19f8c-ff9e-4036-95a4-c79038709656-en_US.ts new file mode 100644 index 0000000..1f736c1 --- /dev/null +++ b/inepro/translations/9bc19f8c-ff9e-4036-95a4-c79038709656-en_US.ts @@ -0,0 +1,363 @@ + + + + + IntegrationPluginInepro + + + No Modbus RTU interface available. Please set up the Modbus RTU interface first. + + + + + The Modbus slave address must be a value between 1 and 254. + + + + + The Modbus address not valid. It must be a Value between 1 and 254. + + + + + The Modbus RTU interface is not available. + + + + + inepro + + + + Connected + The name of the ParamType (ThingClass: pro380, EventType: connected, ID: {7f9bc504-0882-4b86-83b1-42fa345acfd9}) +---------- +The name of the StateType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 + + + + + Connected changed + The name of the EventType ({7f9bc504-0882-4b86-83b1-42fa345acfd9}) of ThingClass pro380 + + + + + + Current phase A + The name of the ParamType (ThingClass: pro380, EventType: currentPhaseA, ID: {1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) +---------- +The name of the StateType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 + + + + + Current phase A changed + The name of the EventType ({1e077a3b-2dab-4ec4-ae96-ab49a564fe31}) of ThingClass pro380 + + + + + + Current phase B + The name of the ParamType (ThingClass: pro380, EventType: currentPhaseB, ID: {d2f54061-0807-47de-944c-68c8118ece91}) +---------- +The name of the StateType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 + + + + + Current phase B changed + The name of the EventType ({d2f54061-0807-47de-944c-68c8118ece91}) of ThingClass pro380 + + + + + + Current phase C + The name of the ParamType (ThingClass: pro380, EventType: currentPhaseC, ID: {610b20fb-2718-4f02-ac6e-12a9ef8c7615}) +---------- +The name of the StateType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 + + + + + Current phase C changed + The name of the EventType ({610b20fb-2718-4f02-ac6e-12a9ef8c7615}) of ThingClass pro380 + + + + + + Current power + The name of the ParamType (ThingClass: pro380, EventType: currentPower, ID: {464eff60-11c2-46b7-98f5-1aa8172e5a2d}) +---------- +The name of the StateType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 + + + + + Current power changed + The name of the EventType ({464eff60-11c2-46b7-98f5-1aa8172e5a2d}) of ThingClass pro380 + + + + + + Current power phase A + The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseA, ID: {55283773-0a4e-4574-b21a-d4a3f287eab1}) +---------- +The name of the StateType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 + + + + + Current power phase A changed + The name of the EventType ({55283773-0a4e-4574-b21a-d4a3f287eab1}) of ThingClass pro380 + + + + + + Current power phase B + The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseB, ID: {8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) +---------- +The name of the StateType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 + + + + + Current power phase B changed + The name of the EventType ({8f15d104-5ff7-4c33-9cf9-fdbef4b6f721}) of ThingClass pro380 + + + + + + Current power phase C + The name of the ParamType (ThingClass: pro380, EventType: currentPowerPhaseC, ID: {86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) +---------- +The name of the StateType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 + + + + + Current power phase C changed + The name of the EventType ({86c0f968-ee70-4f56-bdfc-33b8e2b134a4}) of ThingClass pro380 + + + + + + Energy consumed phase A + The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseA, ID: {b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) +---------- +The name of the StateType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 + + + + + Energy consumed phase A changed + The name of the EventType ({b16b3b0c-82d9-4b3c-a172-0e6631c8ce16}) of ThingClass pro380 + + + + + + Energy consumed phase B + The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseB, ID: {64225f7f-9b2f-4bfc-87b2-38758804a28b}) +---------- +The name of the StateType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 + + + + + Energy consumed phase B changed + The name of the EventType ({64225f7f-9b2f-4bfc-87b2-38758804a28b}) of ThingClass pro380 + + + + + + Energy consumed phase C + The name of the ParamType (ThingClass: pro380, EventType: energyConsumedPhaseC, ID: {a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) +---------- +The name of the StateType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 + + + + + Energy consumed phase C changed + The name of the EventType ({a6e82d61-e837-4ec8-b14a-af0d49bea9d2}) of ThingClass pro380 + + + + + + Energy produced phase A + The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseA, ID: {95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) +---------- +The name of the StateType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 + + + + + Energy produced phase A changed + The name of the EventType ({95bd476e-c247-4f7d-ab01-d9f1b7c0d996}) of ThingClass pro380 + + + + + + Energy produced phase B + The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseB, ID: {f0a0bd81-708c-48d6-b5c9-165464a5b309}) +---------- +The name of the StateType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 + + + + + Energy produced phase B changed + The name of the EventType ({f0a0bd81-708c-48d6-b5c9-165464a5b309}) of ThingClass pro380 + + + + + + Energy produced phase C + The name of the ParamType (ThingClass: pro380, EventType: energyProducedPhaseC, ID: {c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) +---------- +The name of the StateType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 + + + + + Energy produced phase C changed + The name of the EventType ({c33fcd11-b4a9-44b2-9e30-40dfa2e4c9b1}) of ThingClass pro380 + + + + + + Frequency + The name of the ParamType (ThingClass: pro380, EventType: frequency, ID: {bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) +---------- +The name of the StateType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 + + + + + Frequency changed + The name of the EventType ({bb6fd00c-3bbb-4977-bb8a-96787bb6f5c5}) of ThingClass pro380 + + + + + Modbus RTU master + The name of the ParamType (ThingClass: pro380, Type: thing, ID: {6cdbec8c-21b9-42dc-b1ab-8901ac609482}) + + + + + Modbus slave address + The name of the ParamType (ThingClass: pro380, Type: thing, ID: {c75b2c31-6ec3-49ab-8c8f-5231d0a7e941}) + + + + + PRO380 + The name of the ThingClass ({d7c6440b-54f9-4cc0-a96b-9bb7304b3e77}) + + + + + Slave address + The name of the ParamType (ThingClass: pro380, Type: discovery, ID: {a29f37f6-b344-4628-8ab4-8f4c18fada4a}) + + + + + + Total energy consumed + The name of the ParamType (ThingClass: pro380, EventType: totalEnergyConsumed, ID: {f18fd596-b47f-44be-a0f0-6ca44369ebf5}) +---------- +The name of the StateType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 + + + + + Total energy consumed changed + The name of the EventType ({f18fd596-b47f-44be-a0f0-6ca44369ebf5}) of ThingClass pro380 + + + + + + Total energy produced + The name of the ParamType (ThingClass: pro380, EventType: totalEnergyProduced, ID: {112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) +---------- +The name of the StateType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 + + + + + Total energy produced changed + The name of the EventType ({112911c9-14e0-4c83-ac92-f2ceb3bdecdf}) of ThingClass pro380 + + + + + + Voltage phase A + The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseA, ID: {04dba21a-7447-46b9-b9ae-095e5769e511}) +---------- +The name of the StateType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 + + + + + Voltage phase A changed + The name of the EventType ({04dba21a-7447-46b9-b9ae-095e5769e511}) of ThingClass pro380 + + + + + + Voltage phase B + The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseB, ID: {270d0c34-0a0c-4655-985f-faad6efd1afd}) +---------- +The name of the StateType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 + + + + + Voltage phase B changed + The name of the EventType ({270d0c34-0a0c-4655-985f-faad6efd1afd}) of ThingClass pro380 + + + + + + Voltage phase C + The name of the ParamType (ThingClass: pro380, EventType: voltagePhaseC, ID: {a1da8cfd-37cc-4c87-b857-e942cd90daec}) +---------- +The name of the StateType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 + + + + + Voltage phase C changed + The name of the EventType ({a1da8cfd-37cc-4c87-b857-e942cd90daec}) of ThingClass pro380 + + + + + + inepro Metering + The name of the vendor ({64f4df0f-18ce-409c-bf32-84a086c691ca}) +---------- +The name of the plugin inepro ({9bc19f8c-ff9e-4036-95a4-c79038709656}) + + + + diff --git a/nymea-plugins-modbus.pro b/nymea-plugins-modbus.pro index c851b8c..717131d 100644 --- a/nymea-plugins-modbus.pro +++ b/nymea-plugins-modbus.pro @@ -6,15 +6,16 @@ SUBDIRS += libnymea-sunspec PLUGIN_DIRS = \ alphainnotec \ + bgetech \ drexelundweiss \ - energymeters \ huawei \ + idm \ + inepro \ modbuscommander \ mtec \ mypv \ sunspec \ unipi \ - idm \ wallbe \ webasto \