diff --git a/CHANGELOG.md b/CHANGELOG.md index bd8e7a8e3..4556aef40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ There are breaking changes in this release. See `publish_time` below and make su - Added WiFi static IP (setting done in WebUI only) - `log w ` for watching a specific telegram type ID - initial support for EMS+ GB125s and MC110's (https://github.com/proddy/EMS-ESP/wiki/MC110-controller) +- Buderus RFM200 receiver ### Fixed diff --git a/src/ems.cpp b/src/ems.cpp index 0e90faac8..6a02f90b7 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -1323,7 +1323,7 @@ void _process_UBAMonitorFast(_EMS_RxTelegram * EMS_RxTelegram) { */ void _process_UBAMonitorFast2(_EMS_RxTelegram * EMS_RxTelegram) { EMS_Boiler.selFlowTemp = _toByte(6); - //EMS_Boiler.retTemp = _toShort(13); + // EMS_Boiler.retTemp = _toShort(13); EMS_Boiler.burnGas = _bitRead(11, 0); EMS_Boiler.wWHeat = _bitRead(11, 2); @@ -1339,7 +1339,7 @@ void _process_UBAMonitorFast2(_EMS_RxTelegram * EMS_RxTelegram) { EMS_Boiler.flameCurr = _toShort(19); // system pressure. FF means missing - //EMS_Boiler.sysPress = _toByte(17); // this is *10 + // EMS_Boiler.sysPress = _toByte(17); // this is *10 // read the service code / installation status as appears on the display EMS_Boiler.serviceCodeChar[0] = char(_toByte(4)); // ascii character 1 @@ -1347,7 +1347,7 @@ void _process_UBAMonitorFast2(_EMS_RxTelegram * EMS_RxTelegram) { EMS_Boiler.serviceCodeChar[2] = '\0'; // null terminate string // read error code - //EMS_Boiler.serviceCode = _toShort(20); + // EMS_Boiler.serviceCode = _toShort(20); // at this point do a quick check to see if the hot water or heating is active _checkActive(); diff --git a/src/ems.h b/src/ems.h index 3d5efb07d..9a6218405 100644 --- a/src/ems.h +++ b/src/ems.h @@ -19,21 +19,6 @@ #define EMS_ID_NONE 0x00 // used as a dest in broadcast messages and empty device IDs -// Fixed EMS IDs -#define EMS_ID_ME 0x0B // our device, hardcoded as the "Service Key" -#define EMS_ID_BOILER 0x08 // all UBA Boilers have 0x08 -#define EMS_ID_SM 0x30 // Solar Module SM10, SM100 and ISM1 -#define EMS_ID_HP 0x38 // HeatPump -#define EMS_ID_GATEWAY 0x48 // e.g. KM200 Web Gateway -#define EMS_ID_MIXING1 0x20 // Mixing -#define EMS_ID_MIXING2 0x21 // Mixing -#define EMS_ID_SWITCH 0x11 // Switch -#define EMS_ID_CONTROLLER 0x09 // Controller -#define EMS_ID_CONNECT 0x02 // Connect -#define EMS_ID_THERMOSTAT1 0x10 // Thermostat -#define EMS_ID_THERMOSTAT2 0x17 // Thermostat -#define EMS_ID_THERMOSTAT3 0x18 // Thermostat - #define EMS_MIN_TELEGRAM_LENGTH 6 // minimal length for a validation telegram, including CRC #define EMS_MAX_TELEGRAM_LENGTH 32 // max length of a telegram, including CRC, for Rx and Tx. @@ -50,6 +35,23 @@ #define EMS_THERMOSTAT_DEFAULTHC 1 // default heating circuit is 1 #define EMS_THERMOSTAT_WRITE_YES true #define EMS_THERMOSTAT_WRITE_NO false + +// Device Flags + +#define EMS_DEVICE_FLAG_NONE 0 // no flags set +#define EMS_DEVICE_FLAG_SM10 10 // solar module1 +#define EMS_DEVICE_FLAG_SM100 11 // solar module2 + +// group flags specific for thermostats +#define EMS_DEVICE_FLAG_NO_WRITE 0x80 // top bit set if write not supported +#define EMS_DEVICE_FLAG_EASY 1 +#define EMS_DEVICE_FLAG_RC10 2 +#define EMS_DEVICE_FLAG_RC20 3 +#define EMS_DEVICE_FLAG_RC30 4 +#define EMS_DEVICE_FLAG_RC35 5 +#define EMS_DEVICE_FLAG_RC300 6 +#define EMS_DEVICE_FLAG_JUNKERS 7 + typedef enum { EMS_THERMOSTAT_MODE_UNKNOWN, EMS_THERMOSTAT_MODE_OFF, @@ -216,26 +218,6 @@ typedef struct { char device_type_string[30]; } _EMS_Device_Types; -// mapping for EMS_Devices_Type -const _EMS_Device_Types EMS_Devices_Types[] = { - - {EMS_ID_BOILER, EMS_DEVICE_TYPE_BOILER, "UBAMaster"}, - {EMS_ID_THERMOSTAT1, EMS_DEVICE_TYPE_THERMOSTAT, "Thermostat"}, - {EMS_ID_THERMOSTAT2, EMS_DEVICE_TYPE_THERMOSTAT, "Thermostat"}, - {EMS_ID_THERMOSTAT3, EMS_DEVICE_TYPE_THERMOSTAT, "Thermostat"}, - {EMS_ID_SM, EMS_DEVICE_TYPE_SOLAR, "Solar Module"}, - {EMS_ID_HP, EMS_DEVICE_TYPE_HEATPUMP, "Heat Pump"}, - {EMS_ID_GATEWAY, EMS_DEVICE_TYPE_GATEWAY, "Gateway"}, - {EMS_ID_ME, EMS_DEVICE_TYPE_SERVICEKEY, "Me"}, - {EMS_ID_NONE, EMS_DEVICE_TYPE_NONE, "All"}, - {EMS_ID_MIXING1, EMS_DEVICE_TYPE_MIXING, "Mixing Module"}, - {EMS_ID_MIXING2, EMS_DEVICE_TYPE_MIXING, "Mixing Module"}, - {EMS_ID_SWITCH, EMS_DEVICE_TYPE_SWITCH, "Switching Module"}, - {EMS_ID_CONTROLLER, EMS_DEVICE_TYPE_CONTROLLER, "Controller"}, - {EMS_ID_CONNECT, EMS_DEVICE_TYPE_CONNECT, "Connect"} - -}; - // for storing all recognised EMS devices typedef struct { _EMS_DEVICE_TYPE device_type; // type (see above) @@ -246,20 +228,6 @@ typedef struct { bool known; // is this a known device? } _Detected_Device; -#define EMS_DEVICE_FLAG_NONE 0 // no flags set -#define EMS_DEVICE_FLAG_SM10 10 // solar module1 -#define EMS_DEVICE_FLAG_SM100 11 // solar module2 - -// group flags specific for thermostats -#define EMS_DEVICE_FLAG_NO_WRITE 0x80 // top bit set if can't write yet -#define EMS_DEVICE_FLAG_EASY 1 -#define EMS_DEVICE_FLAG_RC10 2 -#define EMS_DEVICE_FLAG_RC20 3 -#define EMS_DEVICE_FLAG_RC30 4 -#define EMS_DEVICE_FLAG_RC35 5 -#define EMS_DEVICE_FLAG_RC300 6 -#define EMS_DEVICE_FLAG_JUNKERS 7 - /* * Telegram package defintions */ diff --git a/src/ems_devices.h b/src/ems_devices.h index 8947a671a..07f7e73f8 100644 --- a/src/ems_devices.h +++ b/src/ems_devices.h @@ -11,6 +11,43 @@ #include "ems.h" +// Fixed EMS Device IDs +#define EMS_ID_ME 0x0B // our device, hardcoded as the "Service Key" +#define EMS_ID_BOILER 0x08 // all UBA Boilers have 0x08 +#define EMS_ID_SM 0x30 // Solar Module SM10, SM100 and ISM1 +#define EMS_ID_HP 0x38 // HeatPump +#define EMS_ID_GATEWAY 0x48 // Gateway e.g. KM200 Web Gateway +#define EMS_ID_MIXING1 0x20 // Mixing +#define EMS_ID_MIXING2 0x21 // Mixing +#define EMS_ID_SWITCH 0x11 // Switch +#define EMS_ID_CONTROLLER 0x09 // Controller +#define EMS_ID_CONNECT1 0x02 // Connect +#define EMS_ID_CONNECT2 0x50 // Connect +#define EMS_ID_THERMOSTAT1 0x10 // Thermostat +#define EMS_ID_THERMOSTAT2 0x17 // Thermostat +#define EMS_ID_THERMOSTAT3 0x18 // Thermostat + +// mapping for EMS_Devices_Type +const _EMS_Device_Types EMS_Devices_Types[] = { + + {EMS_ID_BOILER, EMS_DEVICE_TYPE_BOILER, "UBAMaster"}, + {EMS_ID_THERMOSTAT1, EMS_DEVICE_TYPE_THERMOSTAT, "Thermostat"}, + {EMS_ID_THERMOSTAT2, EMS_DEVICE_TYPE_THERMOSTAT, "Thermostat"}, + {EMS_ID_THERMOSTAT3, EMS_DEVICE_TYPE_THERMOSTAT, "Thermostat"}, + {EMS_ID_SM, EMS_DEVICE_TYPE_SOLAR, "Solar Module"}, + {EMS_ID_HP, EMS_DEVICE_TYPE_HEATPUMP, "Heat Pump"}, + {EMS_ID_GATEWAY, EMS_DEVICE_TYPE_GATEWAY, "Gateway"}, + {EMS_ID_ME, EMS_DEVICE_TYPE_SERVICEKEY, "Me"}, + {EMS_ID_NONE, EMS_DEVICE_TYPE_NONE, "All"}, + {EMS_ID_MIXING1, EMS_DEVICE_TYPE_MIXING, "Mixing Module"}, + {EMS_ID_MIXING2, EMS_DEVICE_TYPE_MIXING, "Mixing Module"}, + {EMS_ID_SWITCH, EMS_DEVICE_TYPE_SWITCH, "Switching Module"}, + {EMS_ID_CONTROLLER, EMS_DEVICE_TYPE_CONTROLLER, "Controller"}, + {EMS_ID_CONNECT1, EMS_DEVICE_TYPE_CONNECT, "Connect"}, + {EMS_ID_CONNECT2, EMS_DEVICE_TYPE_CONNECT, "Connect"} + +}; + /* * Common Type */ @@ -214,19 +251,20 @@ static const _EMS_Device EMS_Devices[] = { // Other devices, like 0x11 for Switching, 0x09 for controllers, 0x02 for Connect, 0x48 for Gateway // - {71, EMS_DEVICE_TYPE_SWITCH, "WM10 Switch Module", EMS_DEVICE_FLAG_NONE}, // 0x11 - {68, EMS_DEVICE_TYPE_CONTROLLER, "BC10/RFM20 Receiver", EMS_DEVICE_FLAG_NONE}, // 0x09 - {190, EMS_DEVICE_TYPE_CONTROLLER, "BC10 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {114, EMS_DEVICE_TYPE_CONTROLLER, "BC10 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {125, EMS_DEVICE_TYPE_CONTROLLER, "BC25 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {169, EMS_DEVICE_TYPE_CONTROLLER, "BC40 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {152, EMS_DEVICE_TYPE_CONTROLLER, "Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {95, EMS_DEVICE_TYPE_CONTROLLER, "HT3 Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {230, EMS_DEVICE_TYPE_CONTROLLER, "BC Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 - {205, EMS_DEVICE_TYPE_CONNECT, "Nefit Moduline Easy Connect", EMS_DEVICE_FLAG_NONE}, // 0x02 - {206, EMS_DEVICE_TYPE_CONNECT, "Bosch Easy Connect", EMS_DEVICE_FLAG_NONE}, // 0x02 - {171, EMS_DEVICE_TYPE_CONNECT, "EMS-OT OpenTherm converter", EMS_DEVICE_FLAG_NONE}, // 0x02 - {189, EMS_DEVICE_TYPE_GATEWAY, "Web Gateway KM200", EMS_DEVICE_FLAG_NONE}, // 0x48 + {71, EMS_DEVICE_TYPE_SWITCH, "WM10 Switch Module", EMS_DEVICE_FLAG_NONE}, // 0x11 + {68, EMS_DEVICE_TYPE_CONTROLLER, "BC10/RFM20 Receiver", EMS_DEVICE_FLAG_NONE}, // 0x09 + {218, EMS_DEVICE_TYPE_CONTROLLER, "Junkers M200/Buderus RFM200 Receiver", EMS_DEVICE_FLAG_NONE}, // 0x50 + {190, EMS_DEVICE_TYPE_CONTROLLER, "BC10 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {114, EMS_DEVICE_TYPE_CONTROLLER, "BC10 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {125, EMS_DEVICE_TYPE_CONTROLLER, "BC25 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {169, EMS_DEVICE_TYPE_CONTROLLER, "BC40 Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {152, EMS_DEVICE_TYPE_CONTROLLER, "Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {95, EMS_DEVICE_TYPE_CONTROLLER, "HT3 Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {230, EMS_DEVICE_TYPE_CONTROLLER, "BC Base Controller", EMS_DEVICE_FLAG_NONE}, // 0x09 + {205, EMS_DEVICE_TYPE_CONNECT, "Nefit Moduline Easy Connect", EMS_DEVICE_FLAG_NONE}, // 0x02 + {206, EMS_DEVICE_TYPE_CONNECT, "Bosch Easy Connect", EMS_DEVICE_FLAG_NONE}, // 0x02 + {171, EMS_DEVICE_TYPE_CONNECT, "EMS-OT OpenTherm converter", EMS_DEVICE_FLAG_NONE}, // 0x02 + {189, EMS_DEVICE_TYPE_GATEWAY, "Web Gateway KM200", EMS_DEVICE_FLAG_NONE}, // 0x48 // // Thermostats, typically device id of 0x10, 0x17 and 0x18 diff --git a/src/version.h b/src/version.h index cf97be182..c5b16f1ec 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define APP_VERSION "1.9.4b14" +#define APP_VERSION "1.9.4b15"