mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-11 18:54:28 +05:00
feat: added new purpose (number) for sensors and added polling for OpenTherm statistical IDs
New sensor types: * Number of burner starts * Number of burner starts (DHW) * Number of pump starts (heating) * Number of pump starts (DHW) * Number of burner operating hours * Number of burner operating hours (DHW) * Number of pump operating hours (heating) * Number of pump operating hours (DHW)
This commit is contained in:
@@ -287,6 +287,15 @@ protected:
|
|||||||
Sensors::setConnectionStatusByType(Sensors::Type::OT_FAN_SPEED_SETPOINT, false);
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_FAN_SPEED_SETPOINT, false);
|
||||||
Sensors::setConnectionStatusByType(Sensors::Type::OT_FAN_SPEED_CURRENT, false);
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_FAN_SPEED_CURRENT, false);
|
||||||
|
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_BURNER_STARTS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_DHW_BURNER_STARTS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_HEATING_PUMP_STARTS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_DHW_PUMP_STARTS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_BURNER_HOURS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_DHW_BURNER_HOURS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_HEATING_PUMP_HOURS, false);
|
||||||
|
Sensors::setConnectionStatusByType(Sensors::Type::OT_DHW_PUMP_HOURS, false);
|
||||||
|
|
||||||
this->initialized = false;
|
this->initialized = false;
|
||||||
this->disconnectedTime = millis();
|
this->disconnectedTime = millis();
|
||||||
vars.slave.connected = false;
|
vars.slave.connected = false;
|
||||||
@@ -507,6 +516,102 @@ protected:
|
|||||||
vars.slave.diag.code = 0;
|
vars.slave.diag.code = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update burner starts
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_BURNER_STARTS, true)) {
|
||||||
|
if (this->updateBurnerStarts()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received burner starts: %hu"), vars.slave.stats.burnerStarts);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_BURNER_STARTS, vars.slave.stats.burnerStarts,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update DHW burner starts
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_DHW_BURNER_STARTS, true)) {
|
||||||
|
if (this->updateDhwBurnerStarts()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received DHW burner starts: %hu"), vars.slave.stats.dhwBurnerStarts);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_DHW_BURNER_STARTS, vars.slave.stats.dhwBurnerStarts,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update heating pump starts
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_HEATING_PUMP_STARTS, true)) {
|
||||||
|
if (this->updateHeatingPumpStarts()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received heating pump starts: %hu"), vars.slave.stats.heatingPumpStarts);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_HEATING_PUMP_STARTS, vars.slave.stats.heatingPumpStarts,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update DHW pump starts
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_DHW_PUMP_STARTS, true)) {
|
||||||
|
if (this->updateDhwPumpStarts()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received DHW pump starts: %hu"), vars.slave.stats.dhwPumpStarts);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_DHW_PUMP_STARTS, vars.slave.stats.dhwPumpStarts,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update burner hours
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_BURNER_HOURS, true)) {
|
||||||
|
if (this->updateBurnerHours()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received burner hours: %hu"), vars.slave.stats.burnerHours);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_BURNER_HOURS, vars.slave.stats.burnerHours,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update DHW burner hours
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_DHW_BURNER_HOURS, true)) {
|
||||||
|
if (this->updateDhwBurnerHours()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received DHW burner hours: %hu"), vars.slave.stats.dhwBurnerHours);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_DHW_BURNER_HOURS, vars.slave.stats.dhwBurnerHours,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update heating pump hours
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_HEATING_PUMP_HOURS, true)) {
|
||||||
|
if (this->updateHeatingPumpHours()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received heating pump hours: %hu"), vars.slave.stats.heatingPumpHours);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_HEATING_PUMP_HOURS, vars.slave.stats.heatingPumpHours,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update DHW pump hours
|
||||||
|
if (Sensors::getAmountByType(Sensors::Type::OT_DHW_PUMP_HOURS, true)) {
|
||||||
|
if (this->updateDhwPumpHours()) {
|
||||||
|
Log.snoticeln(FPSTR(L_OT), F("Received DHW pump hours: %hu"), vars.slave.stats.dhwPumpHours);
|
||||||
|
|
||||||
|
Sensors::setValueByType(
|
||||||
|
Sensors::Type::OT_DHW_PUMP_HOURS, vars.slave.stats.dhwPumpHours,
|
||||||
|
Sensors::ValueType::PRIMARY, true, true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Auto fault reset
|
// Auto fault reset
|
||||||
if (settings.opentherm.options.autoFaultReset && vars.slave.fault.active && !vars.actions.resetFault) {
|
if (settings.opentherm.options.autoFaultReset && vars.slave.fault.active && !vars.actions.resetFault) {
|
||||||
vars.actions.resetFault = true;
|
vars.actions.resetFault = true;
|
||||||
@@ -1677,6 +1782,158 @@ protected:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool updateBurnerStarts() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::SuccessfulBurnerStarts,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::SuccessfulBurnerStarts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.burnerStarts = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateDhwBurnerStarts() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::DHWBurnerStarts,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::DHWBurnerStarts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.dhwBurnerStarts = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateHeatingPumpStarts() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::CHPumpStarts,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::CHPumpStarts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.heatingPumpStarts = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateDhwPumpStarts() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::DHWPumpValveStarts,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::DHWPumpValveStarts)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.dhwPumpStarts = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateBurnerHours() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::BurnerOperationHours,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::BurnerOperationHours)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.burnerHours = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateDhwBurnerHours() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::DHWBurnerOperationHours,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::DHWBurnerOperationHours)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.dhwBurnerHours = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateHeatingPumpHours() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::CHPumpOperationHours,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::CHPumpOperationHours)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.heatingPumpHours = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool updateDhwPumpHours() {
|
||||||
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
|
OpenThermRequestType::READ_DATA,
|
||||||
|
OpenThermMessageID::DHWPumpValveOperationHours,
|
||||||
|
0
|
||||||
|
));
|
||||||
|
|
||||||
|
if (!CustomOpenTherm::isValidResponse(response)) {
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else if (!CustomOpenTherm::isValidResponseId(response, OpenThermMessageID::DHWPumpValveOperationHours)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
vars.slave.stats.dhwPumpHours = CustomOpenTherm::getUInt(response);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool updateModulationLevel() {
|
bool updateModulationLevel() {
|
||||||
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
const unsigned long response = this->instance->sendRequest(CustomOpenTherm::buildRequest(
|
||||||
OpenThermRequestType::READ_DATA,
|
OpenThermRequestType::READ_DATA,
|
||||||
|
|||||||
@@ -25,6 +25,15 @@ public:
|
|||||||
OT_SOLAR_COLLECTOR_TEMP = 16,
|
OT_SOLAR_COLLECTOR_TEMP = 16,
|
||||||
OT_FAN_SPEED_SETPOINT = 17,
|
OT_FAN_SPEED_SETPOINT = 17,
|
||||||
OT_FAN_SPEED_CURRENT = 18,
|
OT_FAN_SPEED_CURRENT = 18,
|
||||||
|
|
||||||
|
OT_BURNER_STARTS = 19,
|
||||||
|
OT_DHW_BURNER_STARTS = 20,
|
||||||
|
OT_HEATING_PUMP_STARTS = 21,
|
||||||
|
OT_DHW_PUMP_STARTS = 22,
|
||||||
|
OT_BURNER_HOURS = 23,
|
||||||
|
OT_DHW_BURNER_HOURS = 24,
|
||||||
|
OT_HEATING_PUMP_HOURS = 25,
|
||||||
|
OT_DHW_PUMP_HOURS = 26,
|
||||||
|
|
||||||
NTC_10K_TEMP = 50,
|
NTC_10K_TEMP = 50,
|
||||||
DALLAS_TEMP = 51,
|
DALLAS_TEMP = 51,
|
||||||
@@ -46,6 +55,7 @@ public:
|
|||||||
EXHAUST_TEMP = 7,
|
EXHAUST_TEMP = 7,
|
||||||
MODULATION_LEVEL = 8,
|
MODULATION_LEVEL = 8,
|
||||||
|
|
||||||
|
NUMBER = 247,
|
||||||
POWER_FACTOR = 248,
|
POWER_FACTOR = 248,
|
||||||
POWER = 249,
|
POWER = 249,
|
||||||
FAN_SPEED = 250,
|
FAN_SPEED = 250,
|
||||||
|
|||||||
@@ -353,6 +353,17 @@ struct Variables {
|
|||||||
uint16_t supply = 0;
|
uint16_t supply = 0;
|
||||||
} fanSpeed;
|
} fanSpeed;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
uint16_t burnerStarts = 0;
|
||||||
|
uint16_t dhwBurnerStarts = 0;
|
||||||
|
uint16_t heatingPumpStarts = 0;
|
||||||
|
uint16_t dhwPumpStarts = 0;
|
||||||
|
uint16_t burnerHours = 0;
|
||||||
|
uint16_t dhwBurnerHours = 0;
|
||||||
|
uint16_t heatingPumpHours = 0;
|
||||||
|
uint16_t dhwPumpHours = 0;
|
||||||
|
} stats;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
bool active = false;
|
bool active = false;
|
||||||
bool enabled = false;
|
bool enabled = false;
|
||||||
|
|||||||
10
src/utils.h
10
src/utils.h
@@ -1723,6 +1723,7 @@ bool jsonToSensorSettings(const uint8_t sensorId, const JsonVariantConst src, Se
|
|||||||
case static_cast<uint8_t>(Sensors::Purpose::EXHAUST_TEMP):
|
case static_cast<uint8_t>(Sensors::Purpose::EXHAUST_TEMP):
|
||||||
case static_cast<uint8_t>(Sensors::Purpose::MODULATION_LEVEL):
|
case static_cast<uint8_t>(Sensors::Purpose::MODULATION_LEVEL):
|
||||||
|
|
||||||
|
case static_cast<uint8_t>(Sensors::Purpose::NUMBER):
|
||||||
case static_cast<uint8_t>(Sensors::Purpose::POWER_FACTOR):
|
case static_cast<uint8_t>(Sensors::Purpose::POWER_FACTOR):
|
||||||
case static_cast<uint8_t>(Sensors::Purpose::POWER):
|
case static_cast<uint8_t>(Sensors::Purpose::POWER):
|
||||||
case static_cast<uint8_t>(Sensors::Purpose::FAN_SPEED):
|
case static_cast<uint8_t>(Sensors::Purpose::FAN_SPEED):
|
||||||
@@ -1767,6 +1768,15 @@ bool jsonToSensorSettings(const uint8_t sensorId, const JsonVariantConst src, Se
|
|||||||
case static_cast<uint8_t>(Sensors::Type::OT_FAN_SPEED_SETPOINT):
|
case static_cast<uint8_t>(Sensors::Type::OT_FAN_SPEED_SETPOINT):
|
||||||
case static_cast<uint8_t>(Sensors::Type::OT_FAN_SPEED_CURRENT):
|
case static_cast<uint8_t>(Sensors::Type::OT_FAN_SPEED_CURRENT):
|
||||||
|
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_BURNER_STARTS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_DHW_BURNER_STARTS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_HEATING_PUMP_STARTS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_DHW_PUMP_STARTS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_BURNER_HOURS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_DHW_BURNER_HOURS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_HEATING_PUMP_HOURS):
|
||||||
|
case static_cast<uint8_t>(Sensors::Type::OT_DHW_PUMP_HOURS):
|
||||||
|
|
||||||
case static_cast<uint8_t>(Sensors::Type::NTC_10K_TEMP):
|
case static_cast<uint8_t>(Sensors::Type::NTC_10K_TEMP):
|
||||||
case static_cast<uint8_t>(Sensors::Type::DALLAS_TEMP):
|
case static_cast<uint8_t>(Sensors::Type::DALLAS_TEMP):
|
||||||
case static_cast<uint8_t>(Sensors::Type::BLUETOOTH):
|
case static_cast<uint8_t>(Sensors::Type::BLUETOOTH):
|
||||||
|
|||||||
@@ -201,6 +201,7 @@
|
|||||||
"dhwFlowRate": "DHW, flow rate",
|
"dhwFlowRate": "DHW, flow rate",
|
||||||
"exhaustTemp": "Exhaust temperature",
|
"exhaustTemp": "Exhaust temperature",
|
||||||
"modLevel": "Modulation level (in percents)",
|
"modLevel": "Modulation level (in percents)",
|
||||||
|
"number": "Number (raw)",
|
||||||
"powerFactor": "Power (in percent)",
|
"powerFactor": "Power (in percent)",
|
||||||
"power": "Power (in kWt)",
|
"power": "Power (in kWt)",
|
||||||
"fanSpeed": "Fan speed",
|
"fanSpeed": "Fan speed",
|
||||||
@@ -231,6 +232,14 @@
|
|||||||
"otSolarCollectorTemp": "OpenTherm, solar collector temp",
|
"otSolarCollectorTemp": "OpenTherm, solar collector temp",
|
||||||
"otFanSpeedSetpoint": "OpenTherm, setpoint fan speed",
|
"otFanSpeedSetpoint": "OpenTherm, setpoint fan speed",
|
||||||
"otFanSpeedCurrent": "OpenTherm, current fan speed",
|
"otFanSpeedCurrent": "OpenTherm, current fan speed",
|
||||||
|
"otBurnerStarts": "OpenTherm, number of burner starts",
|
||||||
|
"otDhwBurnerStarts": "OpenTherm, number of burner starts (DHW)",
|
||||||
|
"otHeatingPumpStarts": "OpenTherm, number of pump starts (heating)",
|
||||||
|
"otDhwPumpStarts": "OpenTherm, number of pump starts (DHW)",
|
||||||
|
"otBurnerHours": "OpenTherm, number of burner operating hours",
|
||||||
|
"otDhwBurnerHours": "OpenTherm, number of burner operating hours (DHW)",
|
||||||
|
"otHeatingPumpHours": "OpenTherm, number of pump operating hours (heating)",
|
||||||
|
"otDhwPumpHours": "OpenTherm, number of pump operating hours (DHW)",
|
||||||
|
|
||||||
"ntcTemp": "NTC sensor",
|
"ntcTemp": "NTC sensor",
|
||||||
"dallasTemp": "DALLAS sensor",
|
"dallasTemp": "DALLAS sensor",
|
||||||
|
|||||||
@@ -201,6 +201,7 @@
|
|||||||
"dhwFlowRate": "ACS, prelievo",
|
"dhwFlowRate": "ACS, prelievo",
|
||||||
"exhaustTemp": "Temperatura fumi",
|
"exhaustTemp": "Temperatura fumi",
|
||||||
"modLevel": "Livello Modulazione (%)",
|
"modLevel": "Livello Modulazione (%)",
|
||||||
|
"number": "Numero (raw)",
|
||||||
"powerFactor": "Potenza (%)",
|
"powerFactor": "Potenza (%)",
|
||||||
"power": "Potenza (in kW)",
|
"power": "Potenza (in kW)",
|
||||||
"fanSpeed": "Velocità ventilatore",
|
"fanSpeed": "Velocità ventilatore",
|
||||||
@@ -231,6 +232,14 @@
|
|||||||
"otSolarCollectorTemp": "OpenTherm, temp collettore solare",
|
"otSolarCollectorTemp": "OpenTherm, temp collettore solare",
|
||||||
"otFanSpeedSetpoint": "OpenTherm, velocità ventola impostata",
|
"otFanSpeedSetpoint": "OpenTherm, velocità ventola impostata",
|
||||||
"otFanSpeedCurrent": "OpenTherm, velocità ventola attuale",
|
"otFanSpeedCurrent": "OpenTherm, velocità ventola attuale",
|
||||||
|
"otBurnerStarts": "OpenTherm, numero di avviamenti del bruciatore",
|
||||||
|
"otDhwBurnerStarts": "OpenTherm, numero di avviamenti del bruciatore (ACS)",
|
||||||
|
"otHeatingPumpStarts": "OpenTherm, numero di avviamenti della pompa (riscaldamento)",
|
||||||
|
"otDhwPumpStarts": "OpenTherm, numero di avviamenti della pompa (ACS)",
|
||||||
|
"otBurnerHours": "OpenTherm, numero di ore di funzionamento del bruciatore",
|
||||||
|
"otDhwBurnerHours": "OpenTherm, numero di ore di funzionamento del bruciatore (ACS)",
|
||||||
|
"otHeatingPumpHours": "OpenTherm, numero di ore di funzionamento della pompa (riscaldamento)",
|
||||||
|
"otDhwPumpHours": "OpenTherm, numero di ore di funzionamento della pompa (ACS)",
|
||||||
|
|
||||||
"ntcTemp": "Sensore NTC",
|
"ntcTemp": "Sensore NTC",
|
||||||
"dallasTemp": "Sensore DALLAS",
|
"dallasTemp": "Sensore DALLAS",
|
||||||
|
|||||||
@@ -201,6 +201,7 @@
|
|||||||
"dhwFlowRate": "ГВС, расход/скорость потока",
|
"dhwFlowRate": "ГВС, расход/скорость потока",
|
||||||
"exhaustTemp": "Температура выхлопных газов",
|
"exhaustTemp": "Температура выхлопных газов",
|
||||||
"modLevel": "Уровень модуляции (в процентах)",
|
"modLevel": "Уровень модуляции (в процентах)",
|
||||||
|
"number": "Число (raw)",
|
||||||
"powerFactor": "Мощность (в процентах)",
|
"powerFactor": "Мощность (в процентах)",
|
||||||
"power": "Мощность (в кВт)",
|
"power": "Мощность (в кВт)",
|
||||||
"fanSpeed": "Скорость вентилятора",
|
"fanSpeed": "Скорость вентилятора",
|
||||||
@@ -231,6 +232,14 @@
|
|||||||
"otSolarCollectorTemp": "OpenTherm, темп. солн. коллектора",
|
"otSolarCollectorTemp": "OpenTherm, темп. солн. коллектора",
|
||||||
"otFanSpeedSetpoint": "OpenTherm, установленная мощн. вентилятора",
|
"otFanSpeedSetpoint": "OpenTherm, установленная мощн. вентилятора",
|
||||||
"otFanSpeedCurrent": "OpenTherm, текущая мощн. вентилятора",
|
"otFanSpeedCurrent": "OpenTherm, текущая мощн. вентилятора",
|
||||||
|
"otBurnerStarts": "OpenTherm, кол-во запусков горелки",
|
||||||
|
"otDhwBurnerStarts": "OpenTherm, кол-во запусков горелки (ГВС)",
|
||||||
|
"otHeatingPumpStarts": "OpenTherm, кол-во запусков насоса (отопление)",
|
||||||
|
"otDhwPumpStarts": "OpenTherm, кол-во запусков насоса (ГВС)",
|
||||||
|
"otBurnerHours": "OpenTherm, кол-во часов работы горелки",
|
||||||
|
"otDhwBurnerHours": "OpenTherm, кол-во часов работы горелки (ГВС)",
|
||||||
|
"otHeatingPumpHours": "OpenTherm, кол-во часов работы насоса (отопление)",
|
||||||
|
"otDhwPumpHours": "OpenTherm, кол-во часов работы насоса (ГВС)",
|
||||||
|
|
||||||
"ntcTemp": "NTC датчик",
|
"ntcTemp": "NTC датчик",
|
||||||
"dallasTemp": "DALLAS датчик",
|
"dallasTemp": "DALLAS датчик",
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
<option value="6" data-i18n>sensors.purposes.dhwFlowRate</option>
|
<option value="6" data-i18n>sensors.purposes.dhwFlowRate</option>
|
||||||
<option value="7" data-i18n>sensors.purposes.exhaustTemp</option>
|
<option value="7" data-i18n>sensors.purposes.exhaustTemp</option>
|
||||||
<option value="8" data-i18n>sensors.purposes.modLevel</option>
|
<option value="8" data-i18n>sensors.purposes.modLevel</option>
|
||||||
|
<option value="247" data-i18n>sensors.purposes.number</option>
|
||||||
<option value="248" data-i18n>sensors.purposes.powerFactor</option>
|
<option value="248" data-i18n>sensors.purposes.powerFactor</option>
|
||||||
<option value="249" data-i18n>sensors.purposes.power</option>
|
<option value="249" data-i18n>sensors.purposes.power</option>
|
||||||
<option value="250" data-i18n>sensors.purposes.fanSpeed</option>
|
<option value="250" data-i18n>sensors.purposes.fanSpeed</option>
|
||||||
@@ -102,6 +103,14 @@
|
|||||||
<option value="16" data-i18n>sensors.types.otSolarCollectorTemp</option>
|
<option value="16" data-i18n>sensors.types.otSolarCollectorTemp</option>
|
||||||
<option value="17" data-i18n>sensors.types.otFanSpeedSetpoint</option>
|
<option value="17" data-i18n>sensors.types.otFanSpeedSetpoint</option>
|
||||||
<option value="18" data-i18n>sensors.types.otFanSpeedCurrent</option>
|
<option value="18" data-i18n>sensors.types.otFanSpeedCurrent</option>
|
||||||
|
<option value="19" data-i18n>sensors.types.otBurnerStarts</option>
|
||||||
|
<option value="20" data-i18n>sensors.types.otDhwBurnerStarts</option>
|
||||||
|
<option value="21" data-i18n>sensors.types.otHeatingPumpStarts</option>
|
||||||
|
<option value="22" data-i18n>sensors.types.otDhwPumpStarts</option>
|
||||||
|
<option value="23" data-i18n>sensors.types.otBurnerHours</option>
|
||||||
|
<option value="24" data-i18n>sensors.types.otDhwBurnerHours</option>
|
||||||
|
<option value="25" data-i18n>sensors.types.otHeatingPumpHours</option>
|
||||||
|
<option value="26" data-i18n>sensors.types.otDhwPumpHours</option>
|
||||||
|
|
||||||
<option value="50" data-i18n>sensors.types.ntcTemp</option>
|
<option value="50" data-i18n>sensors.types.ntcTemp</option>
|
||||||
<option value="51" data-i18n>sensors.types.dallasTemp</option>
|
<option value="51" data-i18n>sensors.types.dallasTemp</option>
|
||||||
|
|||||||
Reference in New Issue
Block a user