mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 08:19:52 +03:00
solar pump working time, #598
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
- function keys in editor: cursor, del, pos1, end. F1=help, F2=show, F10=report
|
- function keys in editor: cursor, del, pos1, end. F1=help, F2=show, F10=report
|
||||||
|
- add sm100 pump working time and energy units
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- mixer IPM pumpstatus
|
- mixer IPM pumpstatus
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ Solar::Solar(uint8_t device_type, uint8_t device_id, uint8_t product_id, const s
|
|||||||
register_telegram_type(0x0364, F("SM100Status"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Status(t); });
|
register_telegram_type(0x0364, F("SM100Status"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Status(t); });
|
||||||
register_telegram_type(0x036A, F("SM100Status2"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Status2(t); });
|
register_telegram_type(0x036A, F("SM100Status2"), false, [&](std::shared_ptr<const Telegram> t) { process_SM100Status2(t); });
|
||||||
register_telegram_type(0x038E, F("SM100Energy"), true, [&](std::shared_ptr<const Telegram> t) { process_SM100Energy(t); });
|
register_telegram_type(0x038E, F("SM100Energy"), true, [&](std::shared_ptr<const Telegram> t) { process_SM100Energy(t); });
|
||||||
|
register_telegram_type(0x0391, F("SM100Time"), true, [&](std::shared_ptr<const Telegram> t) { process_SM100Time(t); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,9 +176,9 @@ void Solar::register_mqtt_ha_config(bool force) {
|
|||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(solarPumpModulation), this->device_type(), "solarPumpModulation", F_(percent), nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(solarPumpModulation), this->device_type(), "solarPumpModulation", F_(percent), nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(cylinderPumpModulation), this->device_type(), "cylinderPumpModulation", F_(percent), nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(cylinderPumpModulation), this->device_type(), "cylinderPumpModulation", F_(percent), nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(pumpWorkMin), this->device_type(), "pumpWorkMin", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(pumpWorkMin), this->device_type(), "pumpWorkMin", nullptr, nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(energyLastHour), this->device_type(), "energyLastHour", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(energyLastHour), this->device_type(), "energyLastHour", F_(wh), nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(energyToday), this->device_type(), "energyToday", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(energyToday), this->device_type(), "energyToday", F_(wh), nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(energyTotal), this->device_type(), "energyTotal", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(energyTotal), this->device_type(), "energyTotal", F_(kwh), nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(solarPump), this->device_type(), "solarPump", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(solarPump), this->device_type(), "solarPump", nullptr, nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(valveStatus), this->device_type(), "valveStatus", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(valveStatus), this->device_type(), "valveStatus", nullptr, nullptr);
|
||||||
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(tankHeated), this->device_type(), "tankHeated", nullptr, nullptr);
|
Mqtt::register_mqtt_ha_sensor(nullptr, nullptr, F_(tankHeated), this->device_type(), "tankHeated", nullptr, nullptr);
|
||||||
@@ -370,6 +371,13 @@ void Solar::process_SM100Energy(std::shared_ptr<const Telegram> telegram) {
|
|||||||
changed_ |= telegram->read_value(energyTotal_, 8); // total / 10 in kWh
|
changed_ |= telegram->read_value(energyTotal_, 8); // total / 10 in kWh
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SM100Time - type 0x0391 EMS+ for pump working time
|
||||||
|
*/
|
||||||
|
void Solar::process_SM100Time(std::shared_ptr<const Telegram> telegram) {
|
||||||
|
changed_ |= telegram->read_value(pumpWorkMin_, 1, 3);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Junkers ISM1 Solar Module - type 0x0103 EMS+ for energy readings
|
* Junkers ISM1 Solar Module - type 0x0103 EMS+ for energy readings
|
||||||
* e.g. B0 00 FF 00 00 03 32 00 00 00 00 13 00 D6 00 00 00 FB D0 F0
|
* e.g. B0 00 FF 00 00 03 32 00 00 00 00 13 00 D6 00 00 00 FB D0 F0
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ class Solar : public EMSdevice {
|
|||||||
void process_SM100Status(std::shared_ptr<const Telegram> telegram);
|
void process_SM100Status(std::shared_ptr<const Telegram> telegram);
|
||||||
void process_SM100Status2(std::shared_ptr<const Telegram> telegram);
|
void process_SM100Status2(std::shared_ptr<const Telegram> telegram);
|
||||||
void process_SM100Energy(std::shared_ptr<const Telegram> telegram);
|
void process_SM100Energy(std::shared_ptr<const Telegram> telegram);
|
||||||
|
void process_SM100Time(std::shared_ptr<const Telegram> telegram);
|
||||||
|
|
||||||
void process_SM100wwTemperature(std::shared_ptr<const Telegram> telegram);
|
void process_SM100wwTemperature(std::shared_ptr<const Telegram> telegram);
|
||||||
void process_SM100wwStatus(std::shared_ptr<const Telegram> telegram);
|
void process_SM100wwStatus(std::shared_ptr<const Telegram> telegram);
|
||||||
|
|||||||
Reference in New Issue
Block a user