mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-08 00:39:50 +03:00
added RFM200
This commit is contained in:
@@ -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 <type_id>` 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
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
66
src/ems.h
66
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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define APP_VERSION "1.9.4b14"
|
||||
#define APP_VERSION "1.9.4b15"
|
||||
|
||||
Reference in New Issue
Block a user