diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index f290ca169..31b6ae82d 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -98,12 +98,6 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const DeviceValueNumOp::DV_NUMOP_DIV10, FL_(netFlowTemp), DeviceValueUOM::DEGREES); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, - &retTemp_, - DeviceValueType::USHORT, - DeviceValueNumOp::DV_NUMOP_DIV10, - FL_(retTemp), - DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &heatValve_, DeviceValueType::UINT, FL_(heatValve), DeviceValueUOM::PERCENT); register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW, &wwValve_, DeviceValueType::UINT, FL_(wwValve), DeviceValueUOM::PERCENT); register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW, @@ -1279,11 +1273,10 @@ void Boiler::process_UBAMonitorFastPlus(std::shared_ptr telegram has_update(telegram, curFlowTemp_, 7); has_update(telegram, flameCurr_, 19); uint16_t rettemp = retTemp_; - telegram->read_value(rettemp, 17); // 0 means no sensor - if (rettemp == 0) { - rettemp = EMS_VALUE_USHORT_NOTSET; + telegram->read_value(rettemp, 17); // 0 means no sensor, HIU have it in 0x779 + if (rettemp != 0) { + has_update(retTemp_, rettemp); } - has_update(retTemp_, rettemp); uint8_t syspress = sysPress_; telegram->read_value(syspress, 21); // 0 means no sensor diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index f7f5dfa32..9b023a0d4 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -976,7 +976,7 @@ void Thermostat::process_RC300Monitor(std::shared_ptr telegram) has_update(telegram, hc->roomTemp, 0); // is * 10 has_bitupdate(telegram, hc->modetype, 10, 1); - has_bitupdate(telegram, hc->mode, 10, 0); // bit 1, mode (auto=1 or manual=0) + // has_bitupdate(telegram, hc->mode, 10, 0); // bit 1, mode (auto=1 or manual=0) // if manual, take the current setpoint temp at pos 6 // if auto, take the next setpoint temp at pos 7 @@ -1023,6 +1023,7 @@ void Thermostat::process_RC300Set(std::shared_ptr telegram) { // check why mode is both in the Monitor and Set for the RC300. It'll be read twice! // has_update(telegram, hc->mode, 0); // Auto = xFF, Manual = x00 eg. 10 00 FF 08 01 B9 FF + has_update(telegram, hc->mode, 21); // 0-off, 1-manual, 2-auto has_update(telegram, hc->daytemp, 2); // is * 2 has_update(telegram, hc->nighttemp, 4); // is * 2 @@ -2552,13 +2553,7 @@ bool Thermostat::set_mode_n(const uint8_t mode, const uint8_t hc_num) { break; case EMSdevice::EMS_DEVICE_FLAG_RC300: case EMSdevice::EMS_DEVICE_FLAG_RC100: - offset = EMS_OFFSET_RCPLUSSet_mode; - validate_typeid = monitor_typeids[hc_p]; - if (mode == HeatingCircuit::Mode::AUTO) { - set_mode_value = 0xFF; // special value for auto - } else { - set_mode_value = 0; // everything else, like manual/day etc.. - } + offset = EMS_OFFSET_RCPLUSSet_mode; break; case EMSdevice::EMS_DEVICE_FLAG_JUNKERS: if (has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { diff --git a/src/devices/thermostat.h b/src/devices/thermostat.h index 8db4096dd..bd4eb5204 100644 --- a/src/devices/thermostat.h +++ b/src/devices/thermostat.h @@ -317,7 +317,7 @@ class Thermostat : public EMSdevice { static constexpr uint8_t EMS_OFFSET_RCPLUSStatusMessage_setpoint = 3; // setpoint temp static constexpr uint8_t EMS_OFFSET_RCPLUSStatusMessage_curr = 0; // current temp static constexpr uint8_t EMS_OFFSET_RCPLUSStatusMessage_currsetpoint = 6; // target setpoint temp - static constexpr uint8_t EMS_OFFSET_RCPLUSSet_mode = 0; // operation mode(Auto=0xFF, Manual=0x00) + static constexpr uint8_t EMS_OFFSET_RCPLUSSet_mode = 21; // operation mode(0-off, 1-manual, 2-auto) static constexpr uint8_t EMS_OFFSET_RCPLUSSet_temp_comfort3 = 1; // comfort3 level static constexpr uint8_t EMS_OFFSET_RCPLUSSet_temp_comfort2 = 2; // comfort2 level static constexpr uint8_t EMS_OFFSET_RCPLUSSet_temp_comfort1 = 3; // comfort1 level diff --git a/src/devices/water.cpp b/src/devices/water.cpp index 9279c4959..f3a9903d9 100644 --- a/src/devices/water.cpp +++ b/src/devices/water.cpp @@ -37,18 +37,18 @@ Water::Water(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c register_telegram_type(0x07A6, "SM100wwParam", true, MAKE_PF_CB(process_SM100wwParam)); register_telegram_type(0x07AE, "SM100wwKeepWarm", true, MAKE_PF_CB(process_SM100wwKeepWarm)); register_telegram_type(0x07E0, "SM100wwStatus2", true, MAKE_PF_CB(process_SM100wwStatus2)); + register_telegram_type(0x07AD, "SM100ValveStatus", false, MAKE_PF_CB(process_SM100ValveStatus)); // device values... - register_device_value(tag, &wwTemp_1_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp1), DeviceValueUOM::DEGREES); - // register_device_value(tag, &wwTemp_2_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp2), DeviceValueUOM::DEGREES); - register_device_value(tag, &wwTemp_3_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp3), DeviceValueUOM::DEGREES); - register_device_value(tag, &wwTemp_4_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp4), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwTemp2_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwStorageTemp1), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwColdTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwColdTemp), DeviceValueUOM::DEGREES); register_device_value(tag, &wwTemp_5_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp5), DeviceValueUOM::DEGREES); - // register_device_value(tag, &wwTemp_6_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp6), DeviceValueUOM::DEGREES); - register_device_value(tag, &wwTemp_7_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp7), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwRetTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(retTemp), DeviceValueUOM::DEGREES); register_device_value(tag, &wwPump_, DeviceValueType::BOOL, FL_(wwPump), DeviceValueUOM::NONE); register_device_value(tag, &wwMaxTemp_, DeviceValueType::UINT, FL_(wwMaxTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwMaxTemp)); register_device_value(tag, &wwSelTemp_, DeviceValueType::UINT, FL_(wwSelTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwSelTemp)); register_device_value(tag, &wwRedTemp_, DeviceValueType::UINT, FL_(wwRedTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwRedTemp)); + register_device_value(tag, &wwHotTemp_, DeviceValueType::UINT, FL_(wwHotTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwHotTemp)); register_device_value(tag, &wwDailyTemp_, DeviceValueType::UINT, FL_(wwDailyTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwDailyTemp)); register_device_value(tag, &wwDisinfectionTemp_, DeviceValueType::UINT, FL_(wwDisinfectionTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwDisinfectionTemp)); register_device_value(tag, &wwCirc_, DeviceValueType::BOOL, FL_(wwCirc), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwCirc)); @@ -56,7 +56,8 @@ Water::Water(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c register_device_value(tag, &wwKeepWarm_, DeviceValueType::BOOL, FL_(wwKeepWarm), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwKeepWarm)); register_device_value(tag, &wwStatus2_, DeviceValueType::ENUM, FL_(enum_wwStatus2), FL_(wwStatus2), DeviceValueUOM::NONE); register_device_value(tag, &wwPumpMod_, DeviceValueType::UINT, FL_(wwPumpMod), DeviceValueUOM::PERCENT); - register_device_value(tag, &wwFlow_, DeviceValueType::UINT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwFlow), DeviceValueUOM::LMIN); + register_device_value(tag, &wwFlow_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwFlow), DeviceValueUOM::LMIN); + register_device_value(tag, &wwRetValve_, DeviceValueType::BOOL, FL_(valveReturn), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwKeepWarm)); } else if (device_id >= EMSdevice::EMS_DEVICE_ID_DHW1 && device_id <= EMSdevice::EMS_DEVICE_ID_DHW2) { wwc_ = device_id - EMSdevice::EMS_DEVICE_ID_DHW1; @@ -64,7 +65,7 @@ Water::Water(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c register_telegram_type(0x313 + wwc_, "MMPLUSConfigMessage_WWC", true, MAKE_PF_CB(process_MMPLUSConfigMessage_WWC)); // register_telegram_type(0x33B + type_offset, "MMPLUSSetMessage_WWC", true, MAKE_PF_CB(process_MMPLUSSetMessage_WWC)); // device values... - register_device_value(tag, &wwFlowTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp), DeviceValueUOM::DEGREES); register_device_value(tag, &wwStatus_, DeviceValueType::INT, FL_(wwTempStatus), DeviceValueUOM::NONE); register_device_value(tag, &wwPump_, DeviceValueType::BOOL, FL_(wwPump), DeviceValueUOM::NONE); register_device_value(tag, &wwMaxTemp_, DeviceValueType::UINT, FL_(wwMaxTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwMaxTemp)); @@ -83,8 +84,8 @@ Water::Water(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c // register_telegram_type(0x10D, "wwNTCStatus", false, MAKE_PF_CB(process_wwNTCStatus)); // device values... register_device_value(tag, &wwSelTemp_, DeviceValueType::UINT, FL_(wwSelTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwSelTemp)); - register_device_value(tag, &wwTemp_1_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp1), DeviceValueUOM::DEGREES); - register_device_value(tag, &wwTemp_2_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp2), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp), DeviceValueUOM::DEGREES); + register_device_value(tag, &wwTemp2_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwCurTemp2), DeviceValueUOM::DEGREES); register_device_value(tag, &HydrTemp_, DeviceValueType::USHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hydrTemp), DeviceValueUOM::DEGREES); register_device_value(tag, &wwPump_, DeviceValueType::BOOL, FL_(wwPump), DeviceValueUOM::NONE); register_device_value(tag, &wwFlowTempOffset_, DeviceValueType::UINT, FL_(wwFlowTempOffset), DeviceValueUOM::DEGREES_R, MAKE_CF_CB(set_wwFlowTempOffset)); @@ -99,14 +100,14 @@ Water::Water(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c // SM100wwTemperature - 0x07D6 // Solar Module(0x2A) -> (0x00), (0x7D6), data: 01 C1 00 00 02 5B 01 AF 01 AD 80 00 01 90 void Water::process_SM100wwTemperature(std::shared_ptr telegram) { - has_update(telegram, wwTemp_1_, 0); // is *10 - has_update(telegram, wwTemp_2_, 2); // is *10 always zero - has_update(telegram, wwTemp_3_, 4); // is *10 TS21 - has_update(telegram, wwTemp_4_, 6); // is *10 cold water - has_update(telegram, wwTemp_5_, 8); // is *10 - has_update(telegram, wwTemp_6_, 10); // is *10 always unset 8000 - has_update(telegram, wwTemp_7_, 12); // is *10 - has_update(telegram, wwTemp_8_, 14); // is *10, return temp TS22 + has_update(telegram, wwTemp_, 0); // is *10 TS17 + has_update(telegram, wwFlow_, 2); // is *10 l/min + has_update(telegram, wwTemp2_, 4); // is *10 TS21 + has_update(telegram, wwColdTemp_, 6); // is *10 cold water + has_update(telegram, wwTemp_5_, 8); // is *10 + // has_update(telegram, wwTemp_6_, 10); // is *10 always unset 8000 + // has_update(telegram, wwTemp_7_, 12); // is *10, same as wwTemp_1_ + has_update(telegram, wwRetTemp_, 14); // is *10, return temp TS22 } // SM100wwStatus - 0x07AA @@ -118,10 +119,11 @@ void Water::process_SM100wwStatus(std::shared_ptr telegram) { // SM100wwParam - 0x07A6, Solar Module(0x2A) -> (0x00) // data: FF 05 0F 5F 00 01 3C 3C 3C 3C 28 12 46 01 3C 1E 03 07 3C 00 0F 00 05 void Water::process_SM100wwParam(std::shared_ptr telegram) { + has_update(telegram, wwDailyTemp_, 6); + has_update(telegram, wwHotTemp_, 7); has_update(telegram, wwMaxTemp_, 8); has_update(telegram, wwSelTemp_, 9); has_update(telegram, wwRedTemp_, 10); - has_update(telegram, wwDailyTemp_, 6); has_update(telegram, wwDisinfectionTemp_, 12); // (daily heating time thermostat 2F5, offset 9, offset 8 on/off) } @@ -139,6 +141,12 @@ void Water::process_SM100wwKeepWarm(std::shared_ptr telegram) { has_update(telegram, wwKeepWarm_, 0); } +// SM100ValveStatus - 0x7AD, valveStatus +// Thermostat(0x10) -> Solar(0x2A), ?(0x7AD), data: +void Water::process_SM100ValveStatus(std::shared_ptr telegram) { + has_update(telegram, wwRetValve_, 1); +} + /* // SM100ww? - 0x7E0, some kind of status // data: 00 00 46 00 00 01 06 0E 06 0E 00 00 00 00 00 03 03 03 03 @@ -146,7 +154,7 @@ void Water::process_SM100wwKeepWarm(std::shared_ptr telegram) { // status2 = 03:"no heat", 06:"heat request", 08:"disinfecting", 09:"hold" */ void Water::process_SM100wwStatus2(std::shared_ptr telegram) { - has_update(telegram, wwFlow_, 7); + // has_update(telegram, wwFlow_, 7); // single byte, wrong see #1387 has_update(telegram, wwStatus2_, 8); has_update(telegram, wwPumpMod_, 9); } @@ -168,7 +176,7 @@ void Water::process_SM100wwCommand(std::shared_ptr telegram) { // e.g. A9 00 FF 00 02 32 02 6C 00 3C 00 3C 3C 46 02 03 03 00 3C // on 0x28 // A8 00 FF 00 02 31 02 35 00 3C 00 3C 3C 46 02 03 03 00 3C // in 0x29 void Water::process_MMPLUSStatusMessage_WWC(std::shared_ptr telegram) { - has_update(telegram, wwFlowTemp_, 0); // is * 10 + has_update(telegram, wwTemp_, 0); // is * 10 has_bitupdate(telegram, wwPump_, 2, 0); has_update(telegram, wwStatus_, 11); // temp status } @@ -200,8 +208,8 @@ void Water::process_MMPLUSSetMessage_WWC(std::shared_ptr telegra // Mixer(0x41) -> All(0x00), UBAMonitorWW(0x34), data: 37 02 1E 02 1E 00 00 00 00 void Water::process_IPMMonitorWW(std::shared_ptr telegram) { has_update(telegram, wwSelTemp_, 0); - has_update(telegram, wwTemp_1_, 1); - has_update(telegram, wwTemp_2_, 3); + has_update(telegram, wwTemp_, 1); + has_update(telegram, wwTemp2_, 3); has_bitupdate(telegram, wwPump_, 5, 3); } @@ -274,6 +282,15 @@ bool Water::set_wwRedTemp(const char * value, const int8_t id) { return true; } +bool Water::set_wwHotTemp(const char * value, const int8_t id) { + int temperature; + if (!Helpers::value2temperature(value, temperature)) { + return false; + } + write_command(0x7A6, 7, (uint8_t)temperature, 0x7A6); + return true; +} + bool Water::set_wwDailyTemp(const char * value, const int8_t id) { int temperature; if (!Helpers::value2temperature(value, temperature)) { diff --git a/src/devices/water.h b/src/devices/water.h index 795c39f27..95de288d6 100644 --- a/src/devices/water.h +++ b/src/devices/water.h @@ -33,14 +33,15 @@ class Water : public EMSdevice { uint8_t wwc_; // SM100wwTemperature - 0x07D6 - uint16_t wwTemp_1_; - uint16_t wwTemp_2_; - uint16_t wwTemp_3_; - uint16_t wwTemp_4_; + uint16_t wwTemp_; + uint16_t wwFlow_; + uint16_t wwTemp2_; + uint16_t wwColdTemp_; uint16_t wwTemp_5_; - uint16_t wwTemp_6_; - uint16_t wwTemp_7_; - uint16_t wwTemp_8_; + uint16_t wwRetTemp_; + + // SM100ValveStatus - 0x07AD + uint8_t wwRetValve_; // VS5 // SM100wwStatus - 0x07AA uint8_t wwPump_; @@ -51,6 +52,7 @@ class Water : public EMSdevice { uint8_t wwRedTemp_; uint8_t wwDailyTemp_; uint8_t wwDisinfectionTemp_; + uint8_t wwHotTemp_; // SM100wwKeepWarm - 0x07AE uint8_t wwKeepWarm_; @@ -60,13 +62,11 @@ class Water : public EMSdevice { uint8_t wwCircMode_; // SM100wwStatus2 - 0x07E0 - uint8_t wwFlow_; uint8_t wwPumpMod_; uint8_t wwStatus2_; // mixer uint8_t wwStatus_; - uint16_t wwFlowTemp_; int8_t wwDiffTemp_; uint8_t wwRequiredTemp_; @@ -84,6 +84,7 @@ class Water : public EMSdevice { void process_SM100wwCirc(std::shared_ptr telegram); void process_SM100wwParam(std::shared_ptr telegram); void process_SM100wwKeepWarm(std::shared_ptr telegram); + void process_SM100ValveStatus(std::shared_ptr telegram); void process_MMPLUSStatusMessage_WWC(std::shared_ptr telegram); void process_MMPLUSSetMessage_WWC(std::shared_ptr telegram); @@ -97,6 +98,7 @@ class Water : public EMSdevice { bool set_wwSelTemp(const char * value, const int8_t id); bool set_wwMaxTemp(const char * value, const int8_t id); bool set_wwRedTemp(const char * value, const int8_t id); + bool set_wwHotTemp(const char * value, const int8_t id); bool set_wwCirc(const char * value, const int8_t id); bool set_wwCircMode(const char * value, const int8_t id); bool set_wwKeepWarm(const char * value, const int8_t id); diff --git a/src/locale_common.h b/src/locale_common.h index 0cbae93b2..3049b6f54 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -305,7 +305,7 @@ MAKE_ENUM(enum_summer, FL_(winter), FL_(summer)) MAKE_ENUM(enum_operatingstate, FL_(heating), FL_(off), FL_(cooling)) MAKE_ENUM(enum_hpmode, FL_(heating), FL_(cooling), FL_(heatandcool)) -MAKE_ENUM(enum_mode, FL_(manual), FL_(auto)) // RC100, RC300, RC310 +MAKE_ENUM(enum_mode, FL_(off), FL_(manual), FL_(auto)) // RC100, RC300, RC310 MAKE_ENUM(enum_mode2, FL_(off), FL_(manual), FL_(auto)) // RC20, RC30 MAKE_ENUM(enum_mode3, FL_(night), FL_(day), FL_(auto)) // RC35, RC30_N, RC25, RC20_N MAKE_ENUM(enum_mode4, FL_(nofrost), FL_(eco), FL_(heat), FL_(auto)) // JUNKERS diff --git a/src/locale_translations.h b/src/locale_translations.h index e439bfb5b..ae49230ff 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -738,22 +738,21 @@ MAKE_TRANSLATION(energyTotal, "energytotal", "total energy", "Gesamtenergie", "T MAKE_TRANSLATION(energyToday, "energytoday", "total energy today", "Energie heute", "Energie vandaag", "Total Energi Idag", "energia całkowita dzisiaj", "total energi i dag", "énergie totale aujourd'hui", "bugün toplam enerji", "totale energia giornaliera") // solar ww -MAKE_TRANSLATION(wwTemp1, "wwtemp1", "temperature 1(TS17)", "Temperatur 1", "Temperatuur 1", "Temperatur 1", "temperatura 1", "temperatur 1", "température 1", "sıcaklık 1", "Temperatura 1") -MAKE_TRANSLATION(wwTemp2, "wwtemp2", "temperature 2", "Temperatur 2", "Temperatuur 2", "Temperatur 2", "temperatura 2", "temperatur 2", "température 2", "sıcaklık 2", "Temperatura 2") -MAKE_TRANSLATION(wwTemp3, "wwtemp3", "temperature 3 (TS21)", "Temperatur 3", "Temperatuur 3", "Temperatur 3", "temperatura 3", "Temperatur 3", "température 3", "sıcaklık 3", "Temperatura 3") -MAKE_TRANSLATION(wwTemp4, "wwtemp4", "cold water", "Temperatur 4", "Temperatuur 4", "Temperatur 4", "temperatura 4", "Temperatur 4", "température 4", "sıcaklık 4", "Temperatura 4") +MAKE_TRANSLATION(wwColdTemp, "wwcoldtemp", "cold water", "Kaltwasser", "", "", "", "", "", "", "") // TODO translate MAKE_TRANSLATION(wwTemp5, "wwtemp5", "temperature 5", "Temperatur 5", "Temperatuur 5", "Temperatur 5", "temperatura 5", "Temperatur 5", "température 5", "sıcaklık 5", "Temperatura 5") -MAKE_TRANSLATION(wwTemp6, "wwtemp6", "temperature 1", "Temperatur 6", "Temperatuur 6", "Temperatur 6", "temperatura 6", "temperatur 6", "température 6", "sıcaklık 6", "Temperatura 6") -MAKE_TRANSLATION(wwTemp7, "wwtemp7", "temperature 7", "Temperatur 7", "Temperatuur 7", "Temperatur 7", "temperatura 7", "Temperatur 7", "température 7", "sıcaklık 7", "Temperatura 7") +MAKE_TRANSLATION(wwTemp6, "wwtemp6", "temperature 6", "Temperatur 6", "Temperatuur 6", "Temperatur 6", "temperatura 6", "temperatur 6", "température 6", "sıcaklık 6", "Temperatura 6") +// MAKE_TRANSLATION(wwTemp7, "wwtemp7", "temperature 7", "Temperatur 7", "Temperatuur 7", "Temperatur 7", "temperatura 7", "Temperatur 7", "température 7", "sıcaklık 7", "Temperatura 7") MAKE_TRANSLATION(wwPump, "wwpump", "pump", "Pumpe", "Pomp", "Pump", "pompa", "pumpe", "pompe", "pompa", "Pompa") // solar ww and mixer wwc MAKE_TRANSLATION(wwMinTemp, "wwmintemp", "minimum temperature", "minimale Temperatur", "Minimale temperatuur", "Min Temperatur", "temperatura minimalna", "min temperatur", "température min", "minimum sıcaklık", "temperatura minima") MAKE_TRANSLATION(wwRedTemp, "wwredtemp", "reduced temperature", "reduzierte Temperatur", "Gereduceerde temperatuur", "Reducerad Temperatur", "temperatura zredukowana", "reducert temperatur", "température réduite", "düşürülmüş sıcaklık", "temperatura ridotta") MAKE_TRANSLATION(wwDailyTemp, "wwdailytemp", "daily temperature", "tägl. Temperatur", "Dagelijkse temperatuur", "Daglig temperatur", "temperatura dzienna", "dagtemperatur", "température en journée", "günlük sıcaklık", "temperatura giornaliera") +MAKE_TRANSLATION(wwHotTemp, "wwhottemp", "extra hot temperature", "sehr heiße Temperatur", "", "", "", "", "", "", "") // TODO translate MAKE_TRANSLATION(wwKeepWarm, "wwkeepwarm", "keep warm", "Warmhalten", "Warm houde", "Varmhållning", "utrzymywanie ciepła", "holde varmen", "maintenir chaleur", "ılık tut", "mantenimento calore") MAKE_TRANSLATION(wwStatus2, "wwstatus2", "status 2", "Status 2", "Status 2", "Status 2", "status 2", "status 2", "statut 2", "durum 2", "Status 2") MAKE_TRANSLATION(wwPumpMod, "wwpumpmod", "pump modulation", "Pumpen Modulation", "Pompmodulatie", "Pumpmodulering", "modulacja pompy", "pumpemodulering", "modulation de pompe", "pompa modülasyonu", "modulazione pompa") MAKE_TRANSLATION(wwFlow, "wwflow", "flow rate", "Volumenstrom", "Doorstroomsnelheid", "Flöde", "przepływ", "strømningshastighet", "débit", "akış hızı", "portata flusso") +// MAKE_TRANSLATION(wwRetValve, "wwretvalve", "return valve (VS5)", "Rücklauf Ventil (VS5)", "(VS5)", "(VS5)", "(VS5)", "(VS5)", "(VS5)", "(VS5)", "(VS5)") // TODO translate // extra mixer ww MAKE_TRANSLATION(wwRequiredTemp, "wwrequiredtemp", "required temperature", "benötigte Temperatur", "Benodigde temperatuur", "Nödvändig Temperatur", "temperatura wymagana", "nødvendig temperatur", "température requise", "gerekli sıcaklık", "temperatura richiesta") MAKE_TRANSLATION(wwDiffTemp, "wwdifftemp", "start differential temperature", "Start Differential Temperatur", "Start differentiele temperatuur", "Start Differentialtemperatur", "start temperatury różnicowej", "start differensialtemperatur", "température différentielle de départ", "diferansiyel sıcaklık", "avvia temperatura differenziale") diff --git a/src/version.h b/src/version.h index 1408b4ce6..ef6fb3ff9 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.6.3-dev.6c" +#define EMSESP_APP_VERSION "3.6.3-dev.7a"