|
| EgoSmartHeaterRS485 (boolean manualDere=false) |
| Constructor to setup the SmartHeater instance in automatic or manual DE/RE control.
|
|
| EgoSmartHeaterRS485 (int dere_pin) |
| Constructor to setup the SmartHeater instance with enabled manual DE/RE control.
|
|
void | begin (Stream &serial) |
| Function to launch the SmartHeater communication using the default modbus ID.
|
|
void | begin (Stream &serial, uint8_t slave) |
| Function to launch the SmartHeater communication using the individual modbus ID.
|
|
uint8_t | getErrCode (bool _clear=false) |
| Function to retreive the latest error code, which occured during the device communication.
|
|
void | clearErrCode () |
| Function to clear the error code store.
|
|
uint16_t | getManufacturerId () |
| Retrieve ManufacturerID (0x2000)
|
|
uint16_t | getProductId () |
| Retrieve ProductID (0x2001)
|
|
uint16_t | getProductVersion () |
| Retrieve ProductVersion (0x2002)
|
|
uint16_t | getFirmwareVersion () |
| Retrieve FirmwareVersion (0x2003)
|
|
String | getVendorName () |
| Retrieve VendorName (0x2013)
|
|
String | getProductName () |
| Retrieve ProductName (0x2023)
|
|
String | getSerialNumber () |
| Retrieve SerialNumber (0x2033)
|
|
uint32_t | getProductionDate () |
| Retrieve ProductionDate (0x2035)
|
|
RelaisConfigurationData_t | getRelaisConfiguration (int r) |
| Retrieve details for a particular relais (0x1000, 0x1020, 0x1040)
|
|
uint16_t | getRelaisCount () |
| Retrieve RelaisCount (0x1204)
|
|
uint16_t | getTemperatureMinValue () |
| Retrieve TemperatureMinValue (0x1209). Below this temperature the heater will warm the boiler even if no solar power is available. This can be used by the consumer to ensure a minimum water temperature in the boiler. 0 = Off, otherwise value has to be at least 10K below the actual setting of the Potentiometer.
|
|
uint8_t | setTemperatureMinValue (uint16_t value) |
| Configure TemperatureMinValue (0x1209). Below this temperature the heater will warm the boiler even if no solar power is available. This can be used by the consumer to ensure a minimum water temperature in the boiler. 0 = Off, otherwise value has to be at least 10K below the actual setting of the Potentiometer.
|
|
uint16_t | getTemperatureMaxValue () |
| Retrieve TemperatureMaxValue (0x120A). The maximum specified allowed water temperature which will not exceeded by the smart heater even if the potentiometer is in the maximum position.
|
|
uint8_t | setTemperatureMaxValue (uint16_t value) |
| Configure TemperatureMaxValue (0x120A). The maximum specified allowed water temperature which will not exceeded by the smart heater even if the potentiometer is in the maximum position.
|
|
uint16_t | getTemperatureNominalValue () |
| Retrieve TemperatureNominalValue (0x120B). This is the desired water temperature of the consumer. The special value zero means that the optional hardware potentiometer should be used by the regulator. The value of this potentiometer is available in register “UserTemperaturNominalValue”. The maximum value must not be higher than “UserTemperaturNominalValue”.
|
|
uint8_t | setTemperatureNominalValue (uint16_t value) |
| Configure TemperatureNominalValue (0x120B). This is the desired water temperature of the consumer. The special value zero means that the optional hardware potentiometer should be used by the regulator. The value of this potentiometer is available in register “UserTemperaturNominalValue”. The maximum value must not be higher than “UserTemperaturNominalValue”.
|
|
int16_t | getPowerNominalValue () |
| Retrieve PowerNominalValue (0x1300). This is the desired power value which the heater should use to heat the boiler. The special value -1 means, that the heater should use the HomeTotalPower value and use as much power as possible. When writing this value the heater will match the desired value itself to the available relais and constraints (minimum switch on times etc.). Therefore this register is threat on a best-effort basis.
|
|
uint8_t | setPowerNominalValue (int16_t value) |
| Configure PowerNominalValue (0x1300). This is the desired power value which the heater should use to heat the boiler. The special value -1 means, that the heater should use the HomeTotalPower value and use as much power as possible. When writing this value the heater will match the desired value itself to the available relais and constraints (minimum switch on times etc.). Therefore this register is threat on a best-effort basis.
|
|
int32_t | getHomeTotalPower () |
| Retrieve HomeTotalPower (0x1301). This register is written by the smart meter and contains the total power consumption/generation of the home/flat. When the value is negative then the home is feeding power back to the utilities, thus the heater should consume energy to heat up the boiler. When the value is positive then the home consumes energy from the utilities and the heater should stop heating.
|
|
uint8_t | setHomeTotalPower (int32_t value) |
| Retrieve HomeTotalPower (0x1301). This register is written by the smart meter and contains the total power consumption/generation of the home/flat. When the value is negative then the home is feeding power back to the utilities, thus the heater should consume energy to heat up the boiler. When the value is positive then the home consumes energy from the utilities and the heater should stop heating.
|
|
uint8_t | setRelaisMinOnTime (int r, uint16_t value) |
| Configure relais MinOnTime for a specific relais (0x1005, 0x1025, 0x1045). This field defines the minimum time the relais remains switched on.
|
|
uint8_t | setRelaisMinOffTime (int r, uint16_t value) |
| Configure relais MinOffTime for a specific relais (0x1006, 0x1026, 0x1046). This field defines the minimum time the relais remains switched off.
|
|
uint32_t | getRestartCounter () |
| Retrieve RestartCounter (0x1202) This is mainly used during development.
|
|
int16_t | getActualTemperaturePCB () |
| Retrieve ActualTemperaturPCB (0x1205) This is the actual temperature of the heater’s control PCB. If the PCB temperature exceed this max. value the heater switches off. 10K below this temperature the heater swichtes on.
|
|
uint32_t | getTotalOperatingSeconds () |
| Retrieve TotalOperatingSeconds (0x1400).
|
|
uint32_t | getErrorCounter () |
| Retrieve ErrorCounter (0x1402)
|
|
int16_t | getActualTemperatureBoiler () |
| Retrieve ActualTemperaturBoiler (0x1404)
|
|
int16_t | getActualTemperatureExternalSensor1 () |
| Retrieve ActualTemperaturExternalSensor1 (0x1405) This is the actual temperature of an (optional) first external temperature sensor. Special values: 0x8000 – no sensor can be attached to this heater model 0x8001 – no sensor attached 0x8002 – sensor present but malfunctioning.
|
|
int16_t | getActualTemperatureExternalSensor2 () |
| Retrieve ActualTemperaturExternalSensor2 (0x1406) This is the actual temperature of an (optional) second external temperature sensor. Special values: 0x8000 – no sensor can be attached to this heater model 0x8001 – no sensor attached 0x8002 – sensor present but malfunctioning.
|
|
int16_t | getUserTemperatureNominal () |
| Retrieve UserTemperaturNominalValue (0x1407) This value corresponds to the position of an (optional) potentiometer where the consumer can select a desired boiler temperature.
|
|
uint16_t | getRelaisStatus () |
| Retrieve RelaisStatus (0x1408) This bitfield reflects the switching state of the heater’s internal relais: 0x0000: all relais are switched off 0x0001: only relais 1 is switched on 0x0002: only relais 2 is switched on 0x0004: only relais 3 is switched on 0x0005: relais 1 + 3 is switched on.
|
|
RelaisOperatingTime_t | getRelaisOperatingTime () |
| Retrieve the operating times of all relais (0x1409, 0x140B, 0x140D)
|
|
ErrorData_t | getError (int i) |
| Retrieve error struct (0x1500 - 0x1526)
|
|
|
static const uint16_t | RegisterManufacturerId = 0x2000 |
|
static const uint16_t | RegisterProductId = 0x2001 |
|
static const uint16_t | RegisterProductVersion = 0x2002 |
|
static const uint16_t | RegisterFirmwareVersion = 0x2003 |
|
static const uint16_t | RegisterVendorName = 0x2004 |
|
static const uint16_t | RegisterProductName = 0x2014 |
|
static const uint16_t | RegisterSerialNumber = 0x2024 |
|
static const uint16_t | RegisterProductionDate = 0x2034 |
|
static constexpr uint16_t | RegisterRelaisConfiguration [3] = {0x1000,0x1020,0x1040} |
|
static const uint16_t | RegisterRelaisCount = 0x1204 |
|
static const uint16_t | RegisterTemperatureMinValue = 0x1209 |
|
static const uint16_t | RegisterTemperatureMaxValue = 0x120A |
|
static const uint16_t | RegisterTemperatureNominalValue = 0x120B |
|
static const uint16_t | RegisterPowerNominalValue = 0x1300 |
|
static const uint16_t | RegisterHomeTotalPower = 0x1301 |
|
static const uint16_t | RegisterUserTemperatureNominal = 0x1407 |
|
static const uint16_t | RegisterRestartCounter = 0x1202 |
|
static const uint16_t | RegisterActualTemperaturePCB = 0x1205 |
|
static const uint16_t | RegisterTotalOperatingSeconds = 0x1400 |
|
static const uint16_t | RegisterErrorCounter = 0x1402 |
|
static const uint16_t | RegisterActualTemperatureBoiler = 0x1404 |
|
static const uint16_t | RegisterActualTemperaturExternalSensor1 = 0x1405 |
|
static const uint16_t | RegisterActualTemperaturExternalSensor2 = 0x1406 |
|
static const uint16_t | RegisterRelaisStatus = 0x1408 |
|
static constexpr uint16_t | RegisterRelaisOperatingTime [3] = {0x1409,0x140B,0x140D} |
|
static constexpr uint16_t | RegisterErrorData [10] = {0x1500,0x1504,0x1508,0x150C,0x1510,0x1514,0x1518,0x151C,0x1520,0x1524} |
|
E.G.O. Smart Heater control Controls SmartHeater product code 29.65335.000 and RS-485 module for Arduino (MAX485) on multiple architectures