Skip to content

Commit

Permalink
mqqt hass discovery complete
Browse files Browse the repository at this point in the history
  • Loading branch information
helgeerbe committed Feb 8, 2023
1 parent 997023e commit ed12f81
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 4 deletions.
24 changes: 21 additions & 3 deletions src/MqttHandlVedirectHass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,29 @@ void MqttHandleVedirectHassClass::publishConfig()
return;
}

publishBinarySensor("Load output state", "LOAD", "ON", "OFF");
// device info
publishBinarySensor("MPPT load output state", "LOAD", "ON", "OFF");
publishSensor("MPPT serial number", "SER");
publishSensor("MPPT firmware number", "FW");
publishSensor("MPPT state of operation", "CS");
publishSensor("MPPT error code", "ERR");
publishSensor("MPPT off reason", "OR");
publishSensor("MPPT tracker operation mode", "MPPT");
publishSensor("MPPT Day sequence number (0...364)", "HSDS", "duration", "total_increasing", "d");

// battery info
publishSensor("Battery voltage", "V", "voltage", "measurement", "mV");
publishSensor("Battery current", "I", "current", "measurement", "mA");
publishSensor("Battery voltage", "V", "voltage", "measurement", "V");
publishSensor("Battery current", "I", "current", "measurement", "A");

// panel info
publishSensor("Panel voltage", "VPV", "voltage", "measurement", "V");
publishSensor("Panel power", "PPV", "power", "measurement", "W");
publishSensor("Panel power", "PPV", "power", "measurement", "W");
publishSensor("Panel yield total", "H19", "energy", "total_increasing", "kWh");
publishSensor("Panel yield today", "H20", "energy", "total_increasing", "kWh");
publishSensor("Panel maximum power today", "H21", "power", "measurement", "W");
publishSensor("Panel yield yesterday", "H22", "energy", "measurement", "kWh");
publishSensor("Panel maximum power yesterday", "H23", "power", "measurement", "W");

yield();
}
Expand Down
27 changes: 26 additions & 1 deletion src/MqttHandleVedirect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,32 @@ void MqttHandleVedirectClass::loop()
// publish only changed key, values pairs
if (!config.Vedirect_UpdatesOnly || (bChanged && config.Vedirect_UpdatesOnly)) {
topic = "victron/" + serial + "/";
topic.concat(key);
topic.concat(key);
if (key.equals("PID")) {
value = VeDirect.getPidAsString(value.c_str());
}
else if (key.equals("CS")) {
value = VeDirect.getCsAsString(value.c_str());
}
else if (key.equals("ERR")) {
value = VeDirect.getErrAsString(value.c_str());
}
else if (key.equals("OR")) {
value = VeDirect.getOrAsString(value.c_str());
}
else if (key.equals("MPPT")) {
value = VeDirect.getMpptAsString(value.c_str());
}
else if (key.equals("V") ||
key.equals("I") ||
key.equals("VPV")) {
value = round(value.toDouble() / 10.0) / 100.0;
}
else if (key.equals("H19") ||
key.equals("H20") ||
key.equals("H22")) {
value = value.toDouble() / 100.0;
}
MqttSettings.publish(topic.c_str(), value.c_str());
}
}
Expand Down

0 comments on commit ed12f81

Please sign in to comment.