@@ -39,7 +39,7 @@ Note, EMS-ESP requires a small hardware circuit that can convert the EMS bus dat
|
|||||||
- Native support for Home Assistant and Domoticz via [MQTT Discovery](https://www.home-assistant.io/docs/mqtt/discovery/)
|
- Native support for Home Assistant and Domoticz via [MQTT Discovery](https://www.home-assistant.io/docs/mqtt/discovery/)
|
||||||
- Can run standalone as an independent WiFi Access Point or join an existing WiFi network
|
- Can run standalone as an independent WiFi Access Point or join an existing WiFi network
|
||||||
- Easy first-time configuration via a web Captive Portal
|
- Easy first-time configuration via a web Captive Portal
|
||||||
- Support for more than [80 EMS devices](https://emsesp.github.io/docs/#/Supported-EMS-Devices) (boilers, thermostats, solar modules, mixer modules, heat pumps, gateways)
|
- Support for more than [100 EMS devices](https://emsesp.github.io/docs/#/Supported-EMS-Devices) (boilers, thermostats, solar modules, mixer modules, heat pumps, gateways)
|
||||||
|
|
||||||
## **Demo**
|
## **Demo**
|
||||||
|
|
||||||
|
|||||||
@@ -376,22 +376,22 @@ const SettingsCustomization: FC = () => {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ToggleButton value="8">
|
<ToggleButton value="8">
|
||||||
<Tooltip arrow placement="top" title="mark it as favorite to be listed at the top of the Dashboard">
|
<Tooltip arrow placement="top" title="filter favorites">
|
||||||
<StarIcon sx={{ fontSize: 14 }} />
|
<StarIcon sx={{ fontSize: 14 }} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
<ToggleButton value="4">
|
<ToggleButton value="4">
|
||||||
<Tooltip arrow placement="top" title="make it read-only, only if it has write operation available">
|
<Tooltip arrow placement="top" title="filter entities with write action disabled">
|
||||||
<EditOffOutlinedIcon sx={{ fontSize: 14 }} />
|
<EditOffOutlinedIcon sx={{ fontSize: 14 }} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
<ToggleButton value="2">
|
<ToggleButton value="2">
|
||||||
<Tooltip arrow placement="top" title="excluded it from MQTT and API outputs">
|
<Tooltip arrow placement="top" title="filter entities excluded from MQTT and API outputs">
|
||||||
<CommentsDisabledOutlinedIcon sx={{ fontSize: 14 }} />
|
<CommentsDisabledOutlinedIcon sx={{ fontSize: 14 }} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
<ToggleButton value="1">
|
<ToggleButton value="1">
|
||||||
<Tooltip arrow placement="top" title="hide it from the Dashboard">
|
<Tooltip arrow placement="top" title="filter entities hidden from Web Dashboard">
|
||||||
<VisibilityOffOutlinedIcon sx={{ fontSize: 14 }} />
|
<VisibilityOffOutlinedIcon sx={{ fontSize: 14 }} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
@@ -403,26 +403,30 @@ const SettingsCustomization: FC = () => {
|
|||||||
<VisibilityOffOutlinedIcon color="primary" sx={{ fontSize: 14, verticalAlign: 'middle' }} />:
|
<VisibilityOffOutlinedIcon color="primary" sx={{ fontSize: 14, verticalAlign: 'middle' }} />:
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid item>
|
<Grid item>
|
||||||
<Button
|
<Tooltip arrow placement="top" title="mark shown entities to be all visible and output ">
|
||||||
size="small"
|
<Button
|
||||||
sx={{ fontSize: 10 }}
|
size="small"
|
||||||
variant="outlined"
|
sx={{ fontSize: 10 }}
|
||||||
color="inherit"
|
variant="outlined"
|
||||||
onClick={() => maskDisabled(false)}
|
color="inherit"
|
||||||
>
|
onClick={() => maskDisabled(false)}
|
||||||
enable
|
>
|
||||||
</Button>
|
enable
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid item>
|
<Grid item>
|
||||||
<Button
|
<Tooltip arrow placement="top" title="mark shown entities to be not visible or output ">
|
||||||
size="small"
|
<Button
|
||||||
sx={{ fontSize: 10 }}
|
size="small"
|
||||||
variant="outlined"
|
sx={{ fontSize: 10 }}
|
||||||
color="inherit"
|
variant="outlined"
|
||||||
onClick={() => maskDisabled(true)}
|
color="inherit"
|
||||||
>
|
onClick={() => maskDisabled(true)}
|
||||||
disable
|
>
|
||||||
</Button>
|
disable
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Table data={{ nodes: shown_data }} theme={entities_theme} sort={entity_sort} layout={{ custom: true }}>
|
<Table data={{ nodes: shown_data }} theme={entities_theme} sort={entity_sort} layout={{ custom: true }}>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 139 KiB |
BIN
media/web_sensor.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 135 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 78 KiB |
@@ -807,8 +807,6 @@ void Boiler::process_UBAParameterWWPlus(std::shared_ptr<const Telegram> telegram
|
|||||||
wwComfort1 = EMS_VALUE_UINT_NOTSET;
|
wwComfort1 = EMS_VALUE_UINT_NOTSET;
|
||||||
}
|
}
|
||||||
has_update(wwComfort1_, wwComfort1);
|
has_update(wwComfort1_, wwComfort1);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0xE9 - WW monitor ems+
|
// 0xE9 - WW monitor ems+
|
||||||
|
|||||||
@@ -51,39 +51,39 @@ class Boiler : public EMSdevice {
|
|||||||
static constexpr uint16_t EMS_TYPE_UBAEnergySupplied = 0x494;
|
static constexpr uint16_t EMS_TYPE_UBAEnergySupplied = 0x494;
|
||||||
|
|
||||||
// ww
|
// ww
|
||||||
uint8_t wwSetTemp_; // DHW set temperature
|
uint8_t wwSetTemp_; // DHW set temperature
|
||||||
uint8_t wwSelTemp_; // DHW selected temperature
|
uint8_t wwSelTemp_; // DHW selected temperature
|
||||||
uint8_t wwSelTempLow_; // DHW lower selected temperature
|
uint8_t wwSelTempLow_; // DHW lower selected temperature
|
||||||
uint8_t wwSelTempOff_; // DHW selected temperature for off position
|
uint8_t wwSelTempOff_; // DHW selected temperature for off position
|
||||||
uint8_t wwSelTempSingle_; // DHW single charge temperature
|
uint8_t wwSelTempSingle_; // DHW single charge temperature
|
||||||
uint8_t wwType_; // 0-off, 1-flow, 2-flowbuffer, 3-buffer, 4-layered buffer
|
uint8_t wwType_; // 0-off, 1-flow, 2-flowbuffer, 3-buffer, 4-layered buffer
|
||||||
uint8_t wwComfort_; // WW comfort mode
|
uint8_t wwComfort_; // WW comfort mode
|
||||||
uint8_t wwComfort1_; // WW comfort mode RC310
|
uint8_t wwComfort1_; // WW comfort mode RC310
|
||||||
uint8_t wwCircPump_; // DHW circulation pump available
|
uint8_t wwCircPump_; // DHW circulation pump available
|
||||||
uint8_t wwChargeType_; // DHW charge type (pump or 3-way-valve)
|
uint8_t wwChargeType_; // DHW charge type (pump or 3-way-valve)
|
||||||
uint8_t wwChargeOptimization_; // DHW charge optimization
|
uint8_t wwChargeOptimization_; // DHW charge optimization
|
||||||
uint8_t wwDisinfectionTemp_; // DHW disinfection temperature to prevent infection
|
uint8_t wwDisinfectionTemp_; // DHW disinfection temperature to prevent infection
|
||||||
uint8_t wwCircMode_; // DHW circulation pump mode
|
uint8_t wwCircMode_; // DHW circulation pump mode
|
||||||
uint8_t wwCirc_; // Circulation on/off
|
uint8_t wwCirc_; // Circulation on/off
|
||||||
uint16_t wwCurTemp_; // DHW current temperature
|
uint16_t wwCurTemp_; // DHW current temperature
|
||||||
uint16_t wwCurTemp2_; // DHW current temperature storage
|
uint16_t wwCurTemp2_; // DHW current temperature storage
|
||||||
uint8_t wwCurFlow_; // DHW current flow temp in l/min
|
uint8_t wwCurFlow_; // DHW current flow temp in l/min
|
||||||
uint16_t wwStorageTemp1_; // DHW storage temp 1
|
uint16_t wwStorageTemp1_; // DHW storage temp 1
|
||||||
uint16_t wwStorageTemp2_; // DHW storage temp 2
|
uint16_t wwStorageTemp2_; // DHW storage temp 2
|
||||||
uint8_t wwActivated_; // DHW activated
|
uint8_t wwActivated_; // DHW activated
|
||||||
uint8_t wwOneTime_; // DHW one time function on/off
|
uint8_t wwOneTime_; // DHW one time function on/off
|
||||||
uint8_t wwDisinfect_; // DHW disinfection on/off
|
uint8_t wwDisinfect_; // DHW disinfection on/off
|
||||||
uint8_t wwCharging_; // DHW charging on/off
|
uint8_t wwCharging_; // DHW charging on/off
|
||||||
uint8_t wwRecharging_; // DHW recharge on/off
|
uint8_t wwRecharging_; // DHW recharge on/off
|
||||||
uint8_t wwTempOK_; // DHW temperature ok on/off
|
uint8_t wwTempOK_; // DHW temperature ok on/off
|
||||||
uint8_t wwActive_; //
|
uint8_t wwActive_; //
|
||||||
uint8_t ww3wayValve_; // 3-way valve on WW
|
uint8_t ww3wayValve_; // 3-way valve on WW
|
||||||
uint8_t wwSetPumpPower_; // ww pump speed/power?
|
uint8_t wwSetPumpPower_; // ww pump speed/power?
|
||||||
uint8_t wwFlowTempOffset_; // Boiler offset for ww heating
|
uint8_t wwFlowTempOffset_; // Boiler offset for ww heating
|
||||||
uint8_t wwMaxPower_; // DHW maximum power
|
uint8_t wwMaxPower_; // DHW maximum power
|
||||||
uint32_t wwStarts_; // DHW starts
|
uint32_t wwStarts_; // DHW starts
|
||||||
uint32_t wwStarts2_; // DHW control starts
|
uint32_t wwStarts2_; // DHW control starts
|
||||||
uint32_t wwWorkM_; // DHW minutes
|
uint32_t wwWorkM_; // DHW minutes
|
||||||
int8_t wwHystOn_;
|
int8_t wwHystOn_;
|
||||||
int8_t wwHystOff_;
|
int8_t wwHystOff_;
|
||||||
uint8_t wwTapActivated_; // maintenance-mode to switch DHW off
|
uint8_t wwTapActivated_; // maintenance-mode to switch DHW off
|
||||||
|
|||||||
@@ -3835,8 +3835,13 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
|
|||||||
tag, &hc->heatingtype, DeviceValueType::ENUM, FL_(enum_heatingtype), FL_(heatingtype), DeviceValueUOM::NONE, MAKE_CF_CB(set_heatingtype));
|
tag, &hc->heatingtype, DeviceValueType::ENUM, FL_(enum_heatingtype), FL_(heatingtype), DeviceValueUOM::NONE, MAKE_CF_CB(set_heatingtype));
|
||||||
register_device_value(
|
register_device_value(
|
||||||
tag, &hc->summersetmode, DeviceValueType::ENUM, FL_(enum_summermode), FL_(summersetmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_summermode));
|
tag, &hc->summersetmode, DeviceValueType::ENUM, FL_(enum_summermode), FL_(summersetmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_summermode));
|
||||||
register_device_value(
|
register_device_value(tag,
|
||||||
tag, &hc->hpoperatingmode, DeviceValueType::ENUM, FL_(enum_hpoperatingmode), FL_(hpoperatingmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_summermode));
|
&hc->hpoperatingmode,
|
||||||
|
DeviceValueType::ENUM,
|
||||||
|
FL_(enum_hpoperatingmode),
|
||||||
|
FL_(hpoperatingmode),
|
||||||
|
DeviceValueUOM::NONE,
|
||||||
|
MAKE_CF_CB(set_summermode));
|
||||||
register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE);
|
register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE);
|
||||||
register_device_value(
|
register_device_value(
|
||||||
tag, &hc->controlmode, DeviceValueType::ENUM, FL_(enum_controlmode), FL_(controlmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_controlmode));
|
tag, &hc->controlmode, DeviceValueType::ENUM, FL_(enum_controlmode), FL_(controlmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_controlmode));
|
||||||
|
|||||||