Use proper client id for MQTT and add discovery create method and evcharger interface

master
Simon Stürz 2021-06-07 15:03:41 +02:00
parent c9bcbf2717
commit ac8bbae26d
2 changed files with 6 additions and 4 deletions

View File

@ -242,10 +242,12 @@ QNetworkRequest IntegrationPluginGoECharger::buildConfigurationRequest(const QHo
void IntegrationPluginGoECharger::setupMqttChannel(ThingSetupInfo *info, const QHostAddress &address, const QVariantMap &statusMap)
{
Thing *thing = info->thing();
QString statusTopic = QString("go-eCharger/%1/status").arg(statusMap.value("sse").toString());
QString serialNumber = statusMap.value("sse").toString();
QString clientId = QString("go-eCharger:%1:%2").arg(serialNumber).arg(statusMap.value("rbc").toInt());
QString statusTopic = QString("go-eCharger/%1/status").arg(serialNumber);
qCDebug(dcGoECharger()) << "Setting up mqtt channel for" << thing << address.toString() << statusTopic;
MqttChannel *channel = hardwareManager()->mqttProvider()->createChannel(thing->id().toString(), address, {statusTopic});
MqttChannel *channel = hardwareManager()->mqttProvider()->createChannel(clientId, address, {statusTopic});
if (!channel) {
qCWarning(dcGoECharger()) << "Failed to create MQTT channel for" << thing;
info->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("Error creating MQTT channel. Please check MQTT server settings."));

View File

@ -12,8 +12,8 @@
"name": "goeHome",
"displayName": "go-eCharger Home",
"id": "3b663d51-fdb5-4944-b409-c07f7933877e",
"createMethods": ["User"],
"interfaces": ["connectable"],
"createMethods": ["Discovery", "User"],
"interfaces": ["evcharger", "connectable"],
"paramTypes": [
{
"id": "4342b72c-99d0-41a5-abc6-ea6c1cc1352c",