diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index b43cc5c6b..5a5e0a2bb 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -5,7 +5,7 @@ ## **IMPORTANT! BREAKING CHANGES with 3.6.5** - new device WATER shows dhw entities from MM100 and SM100 in dhw setting -- renamed WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634). To preserve current value of dhw energy (nrgww), follow ([#1938]https://github.com/emsesp/EMS-ESP32/issues/1938) +- renamed WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634). To preserve current value of dhw energy (nrgww), follow ([#1938]) - change temperaturesensor id to underscore - system/info API command has it's JSON keys and names changed to camelCase @@ -35,6 +35,7 @@ - RC310 cooling parameters [#1857](https://github.com/emsesp/EMS-ESP32/issues/1857) - command `api/device/entities` [#1897](https://github.com/emsesp/EMS-ESP32/issues/1897) - switchprogmode [#1903] +- Autodetect and download firmware upgrades ## Fixed diff --git a/Makefile b/Makefile index e311dab9d..bf03a0f72 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ CXX_STANDARD := -std=gnu++14 # Defined Symbols #---------------------------------------------------------------------- DEFINES += -DARDUINOJSON_ENABLE -DARDUINOJSON_ENABLE_ARDUINO_STRING -DARDUINOJSON_USE_DOUBLE=0 -DEFINES += -DEMSESP_STANDALONE -DEMSESP_TEST -DEMC_RX_BUFFER_SIZE=1500 +DEFINES += -DEMSESP_STANDALONE -DEMSESP_TEST -DEMSESP_DEBUG -DEMC_RX_BUFFER_SIZE=1500 DEFINES += $(ARGS) DEFAULTS = -DEMSESP_DEFAULT_LOCALE=\"en\" -DEMSESP_DEFAULT_TX_MODE=8 -DEMSESP_DEFAULT_VERSION=\"3.7.0-dev\" -DEMSESP_DEFAULT_BOARD_PROFILE=\"S32\" diff --git a/dump_entities.csv b/dump_entities.csv index a8844ccb3..4eca57e4d 100644 --- a/dump_entities.csv +++ b/dump_entities.csv @@ -20,8 +20,6 @@ CS6800i/WLW176i,boiler,8,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,tru CS6800i/WLW176i,boiler,8,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 CS6800i/WLW176i,boiler,8,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 CS6800i/WLW176i,boiler,8,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -CS6800i/WLW176i,boiler,8,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -CS6800i/WLW176i,boiler,8,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 CS6800i/WLW176i,boiler,8,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 CS6800i/WLW176i,boiler,8,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 CS6800i/WLW176i,boiler,8,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -42,10 +40,12 @@ CS6800i/WLW176i,boiler,8,emergencytemp,emergency temperature,uint8 (>=15<=70),C, CS6800i/WLW176i,boiler,8,nrgtotal,total energy,uint24 (>=0<=167772),kWh,false,sensor.boiler_total_energy,sensor.boiler_nrgtotal,5,0,1/100,80,2 CS6800i/WLW176i,boiler,8,nrg,energy,uint24 (>=0<=167772),kWh,false,sensor.boiler_dhw_energy,sensor.boiler_dhw_nrg,5,9,1/100,0,2 CS6800i/WLW176i,boiler,8,nrgheat,energy heating,uint24 (>=0<=167772),kWh,false,sensor.boiler_energy_heating,sensor.boiler_nrgheat,5,0,1/100,82,2 +CS6800i/WLW176i,boiler,8,nrgcool,energy cooling,uint24 (>=0<=167772),kWh,false,sensor.boiler_energy_cooling,sensor.boiler_nrgcool,5,0,1/100,-1,2 CS6800i/WLW176i,boiler,8,metertotal,meter total,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_total,sensor.boiler_metertotal,5,0,1/100,84,2 CS6800i/WLW176i,boiler,8,metercomp,meter compressor,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_compressor,sensor.boiler_metercomp,5,0,1/100,86,2 CS6800i/WLW176i,boiler,8,metereheat,meter e-heater,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_e-heater,sensor.boiler_metereheat,5,0,1/100,88,2 CS6800i/WLW176i,boiler,8,meterheat,meter heating,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_heating,sensor.boiler_meterheat,5,0,1/100,90,2 +CS6800i/WLW176i,boiler,8,metercool,meter cooling,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_cooling,sensor.boiler_metercool,5,0,1/100,-1,2 CS6800i/WLW176i,boiler,8,meter,meter,uint24 (>=0<=167772),kWh,false,sensor.boiler_dhw_meter,sensor.boiler_dhw_meter,5,9,1/100,2,2 CS6800i/WLW176i,boiler,8,uptimetotal,heatpump total uptime,time (>=0<=279620),minutes,false,sensor.boiler_heatpump_total_uptime,sensor.boiler_uptimetotal,5,0,1/60,92,2 CS6800i/WLW176i,boiler,8,uptimecontrol,total operating time heat,time (>=0<=279620),minutes,false,sensor.boiler_total_operating_time_heat,sensor.boiler_uptimecontrol,5,0,1/60,94,2 @@ -192,7 +192,6 @@ CS6800i/WLW176i,boiler,8,recharging,recharging,boolean, ,false,binary_sensor.boi CS6800i/WLW176i,boiler,8,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 CS6800i/WLW176i,boiler,8,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 CS6800i/WLW176i,boiler,8,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -CS6800i/WLW176i,boiler,8,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 CS6800i/WLW176i,boiler,8,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 CS6800i/WLW176i,boiler,8,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 CS6800i/WLW176i,boiler,8,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -240,8 +239,6 @@ C1200W,boiler,12,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true,number C1200W,boiler,12,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 C1200W,boiler,12,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 C1200W,boiler,12,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -C1200W,boiler,12,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -C1200W,boiler,12,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 C1200W,boiler,12,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 C1200W,boiler,12,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 C1200W,boiler,12,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -300,7 +297,6 @@ C1200W,boiler,12,recharging,recharging,boolean, ,false,binary_sensor.boiler_dhw_ C1200W,boiler,12,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 C1200W,boiler,12,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 C1200W,boiler,12,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -C1200W,boiler,12,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 C1200W,boiler,12,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 C1200W,boiler,12,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 C1200W,boiler,12,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -352,8 +348,6 @@ BK13/BK15/Smartline/GB1x2,boiler,64,pumpmodmin,boiler pump min power,uint8 (>=0< BK13/BK15/Smartline/GB1x2,boiler,64,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 BK13/BK15/Smartline/GB1x2,boiler,64,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 BK13/BK15/Smartline/GB1x2,boiler,64,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -BK13/BK15/Smartline/GB1x2,boiler,64,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -BK13/BK15/Smartline/GB1x2,boiler,64,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 BK13/BK15/Smartline/GB1x2,boiler,64,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 BK13/BK15/Smartline/GB1x2,boiler,64,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 BK13/BK15/Smartline/GB1x2,boiler,64,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -412,7 +406,6 @@ BK13/BK15/Smartline/GB1x2,boiler,64,recharging,recharging,boolean, ,false,binary BK13/BK15/Smartline/GB1x2,boiler,64,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 BK13/BK15/Smartline/GB1x2,boiler,64,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 BK13/BK15/Smartline/GB1x2,boiler,64,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -BK13/BK15/Smartline/GB1x2,boiler,64,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 BK13/BK15/Smartline/GB1x2,boiler,64,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 BK13/BK15/Smartline/GB1x2,boiler,64,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 BK13/BK15/Smartline/GB1x2,boiler,64,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -464,8 +457,6 @@ GB125/GB135/MC10,boiler,72,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,t GB125/GB135/MC10,boiler,72,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 GB125/GB135/MC10,boiler,72,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 GB125/GB135/MC10,boiler,72,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -GB125/GB135/MC10,boiler,72,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -GB125/GB135/MC10,boiler,72,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 GB125/GB135/MC10,boiler,72,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 GB125/GB135/MC10,boiler,72,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 GB125/GB135/MC10,boiler,72,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -524,7 +515,6 @@ GB125/GB135/MC10,boiler,72,recharging,recharging,boolean, ,false,binary_sensor.b GB125/GB135/MC10,boiler,72,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 GB125/GB135/MC10,boiler,72,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 GB125/GB135/MC10,boiler,72,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -GB125/GB135/MC10,boiler,72,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 GB125/GB135/MC10,boiler,72,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 GB125/GB135/MC10,boiler,72,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 GB125/GB135/MC10,boiler,72,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -576,8 +566,6 @@ Cascade CM10,boiler,81,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true, Cascade CM10,boiler,81,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Cascade CM10,boiler,81,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Cascade CM10,boiler,81,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Cascade CM10,boiler,81,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Cascade CM10,boiler,81,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Cascade CM10,boiler,81,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Cascade CM10,boiler,81,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Cascade CM10,boiler,81,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -636,7 +624,6 @@ Cascade CM10,boiler,81,recharging,recharging,boolean, ,false,binary_sensor.boile Cascade CM10,boiler,81,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Cascade CM10,boiler,81,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Cascade CM10,boiler,81,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Cascade CM10,boiler,81,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Cascade CM10,boiler,81,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Cascade CM10,boiler,81,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Cascade CM10,boiler,81,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -688,8 +675,6 @@ Logamax Plus GB022,boiler,84,pumpmodmin,boiler pump min power,uint8 (>=0<=100),% Logamax Plus GB022,boiler,84,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Logamax Plus GB022,boiler,84,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Logamax Plus GB022,boiler,84,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Logamax Plus GB022,boiler,84,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Logamax Plus GB022,boiler,84,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Logamax Plus GB022,boiler,84,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Logamax Plus GB022,boiler,84,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Logamax Plus GB022,boiler,84,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -748,7 +733,6 @@ Logamax Plus GB022,boiler,84,recharging,recharging,boolean, ,false,binary_sensor Logamax Plus GB022,boiler,84,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Logamax Plus GB022,boiler,84,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Logamax Plus GB022,boiler,84,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Logamax Plus GB022,boiler,84,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Logamax Plus GB022,boiler,84,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Logamax Plus GB022,boiler,84,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Logamax Plus GB022,boiler,84,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -800,8 +784,6 @@ Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,pumpm Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -860,7 +842,6 @@ Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,recha Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Condens 2500/Logamax/Logomatic/Cerapur Top/Greenstar/Generic HT3,boiler,95,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -912,8 +893,6 @@ Topline/GB162,boiler,115,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,tru Topline/GB162,boiler,115,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Topline/GB162,boiler,115,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Topline/GB162,boiler,115,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Topline/GB162,boiler,115,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Topline/GB162,boiler,115,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Topline/GB162,boiler,115,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Topline/GB162,boiler,115,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Topline/GB162,boiler,115,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -972,7 +951,6 @@ Topline/GB162,boiler,115,recharging,recharging,boolean, ,false,binary_sensor.boi Topline/GB162,boiler,115,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Topline/GB162,boiler,115,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Topline/GB162,boiler,115,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Topline/GB162,boiler,115,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Topline/GB162,boiler,115,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Topline/GB162,boiler,115,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Topline/GB162,boiler,115,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1024,8 +1002,6 @@ Cascade MCM10,boiler,121,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,tru Cascade MCM10,boiler,121,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Cascade MCM10,boiler,121,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Cascade MCM10,boiler,121,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Cascade MCM10,boiler,121,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Cascade MCM10,boiler,121,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Cascade MCM10,boiler,121,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Cascade MCM10,boiler,121,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Cascade MCM10,boiler,121,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1084,7 +1060,6 @@ Cascade MCM10,boiler,121,recharging,recharging,boolean, ,false,binary_sensor.boi Cascade MCM10,boiler,121,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Cascade MCM10,boiler,121,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Cascade MCM10,boiler,121,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Cascade MCM10,boiler,121,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Cascade MCM10,boiler,121,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Cascade MCM10,boiler,121,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Cascade MCM10,boiler,121,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1136,8 +1111,6 @@ Proline,boiler,122,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true,numb Proline,boiler,122,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Proline,boiler,122,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Proline,boiler,122,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Proline,boiler,122,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Proline,boiler,122,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Proline,boiler,122,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Proline,boiler,122,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Proline,boiler,122,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1196,7 +1169,6 @@ Proline,boiler,122,recharging,recharging,boolean, ,false,binary_sensor.boiler_dh Proline,boiler,122,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Proline,boiler,122,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Proline,boiler,122,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Proline,boiler,122,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Proline,boiler,122,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Proline,boiler,122,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Proline,boiler,122,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1248,8 +1220,6 @@ GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,pumpmodmin,boiler pump min power GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1308,7 +1278,6 @@ GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,recharging,recharging,boolean, , GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 GBx72/Trendline/Cerapur/Greenstar Si,boiler,123,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1360,8 +1329,6 @@ GB212,boiler,131,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true,number GB212,boiler,131,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 GB212,boiler,131,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 GB212,boiler,131,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -GB212,boiler,131,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -GB212,boiler,131,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 GB212,boiler,131,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 GB212,boiler,131,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 GB212,boiler,131,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1420,7 +1387,6 @@ GB212,boiler,131,recharging,recharging,boolean, ,false,binary_sensor.boiler_dhw_ GB212,boiler,131,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 GB212,boiler,131,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 GB212,boiler,131,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -GB212,boiler,131,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 GB212,boiler,131,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 GB212,boiler,131,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 GB212,boiler,131,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1472,8 +1438,6 @@ GC7000F,boiler,132,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true,numb GC7000F,boiler,132,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 GC7000F,boiler,132,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 GC7000F,boiler,132,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -GC7000F,boiler,132,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -GC7000F,boiler,132,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 GC7000F,boiler,132,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 GC7000F,boiler,132,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 GC7000F,boiler,132,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1532,7 +1496,6 @@ GC7000F,boiler,132,recharging,recharging,boolean, ,false,binary_sensor.boiler_dh GC7000F,boiler,132,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 GC7000F,boiler,132,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 GC7000F,boiler,132,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -GC7000F,boiler,132,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 GC7000F,boiler,132,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 GC7000F,boiler,132,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 GC7000F,boiler,132,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1584,8 +1547,6 @@ Logano GB125/KB195i/Logamatic MC110,boiler,133,pumpmodmin,boiler pump min power, Logano GB125/KB195i/Logamatic MC110,boiler,133,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Logano GB125/KB195i/Logamatic MC110,boiler,133,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Logano GB125/KB195i/Logamatic MC110,boiler,133,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1644,7 +1605,6 @@ Logano GB125/KB195i/Logamatic MC110,boiler,133,recharging,recharging,boolean, ,f Logano GB125/KB195i/Logamatic MC110,boiler,133,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Logano GB125/KB195i/Logamatic MC110,boiler,133,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Logano GB125/KB195i/Logamatic MC110,boiler,133,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1696,8 +1656,6 @@ Greenstar 30Ri Compact,boiler,154,pumpmodmin,boiler pump min power,uint8 (>=0<=1 Greenstar 30Ri Compact,boiler,154,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Greenstar 30Ri Compact,boiler,154,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Greenstar 30Ri Compact,boiler,154,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Greenstar 30Ri Compact,boiler,154,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Greenstar 30Ri Compact,boiler,154,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Greenstar 30Ri Compact,boiler,154,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Greenstar 30Ri Compact,boiler,154,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Greenstar 30Ri Compact,boiler,154,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1756,7 +1714,6 @@ Greenstar 30Ri Compact,boiler,154,recharging,recharging,boolean, ,false,binary_s Greenstar 30Ri Compact,boiler,154,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Greenstar 30Ri Compact,boiler,154,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Greenstar 30Ri Compact,boiler,154,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Greenstar 30Ri Compact,boiler,154,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Greenstar 30Ri Compact,boiler,154,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Greenstar 30Ri Compact,boiler,154,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Greenstar 30Ri Compact,boiler,154,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1808,8 +1765,6 @@ Cerapur Aero,boiler,167,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true Cerapur Aero,boiler,167,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Cerapur Aero,boiler,167,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Cerapur Aero,boiler,167,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Cerapur Aero,boiler,167,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Cerapur Aero,boiler,167,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Cerapur Aero,boiler,167,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Cerapur Aero,boiler,167,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Cerapur Aero,boiler,167,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1868,7 +1823,6 @@ Cerapur Aero,boiler,167,recharging,recharging,boolean, ,false,binary_sensor.boil Cerapur Aero,boiler,167,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Cerapur Aero,boiler,167,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Cerapur Aero,boiler,167,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Cerapur Aero,boiler,167,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Cerapur Aero,boiler,167,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Cerapur Aero,boiler,167,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Cerapur Aero,boiler,167,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -1920,8 +1874,6 @@ Hybrid Heatpump,boiler,168,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,t Hybrid Heatpump,boiler,168,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Hybrid Heatpump,boiler,168,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Hybrid Heatpump,boiler,168,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Hybrid Heatpump,boiler,168,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Hybrid Heatpump,boiler,168,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Hybrid Heatpump,boiler,168,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Hybrid Heatpump,boiler,168,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Hybrid Heatpump,boiler,168,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -1980,7 +1932,6 @@ Hybrid Heatpump,boiler,168,recharging,recharging,boolean, ,false,binary_sensor.b Hybrid Heatpump,boiler,168,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Hybrid Heatpump,boiler,168,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Hybrid Heatpump,boiler,168,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Hybrid Heatpump,boiler,168,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Hybrid Heatpump,boiler,168,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Hybrid Heatpump,boiler,168,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Hybrid Heatpump,boiler,168,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2032,8 +1983,6 @@ Logano GB212,boiler,170,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true Logano GB212,boiler,170,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Logano GB212,boiler,170,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Logano GB212,boiler,170,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Logano GB212,boiler,170,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Logano GB212,boiler,170,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Logano GB212,boiler,170,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Logano GB212,boiler,170,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Logano GB212,boiler,170,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2092,7 +2041,6 @@ Logano GB212,boiler,170,recharging,recharging,boolean, ,false,binary_sensor.boil Logano GB212,boiler,170,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Logano GB212,boiler,170,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Logano GB212,boiler,170,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Logano GB212,boiler,170,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Logano GB212,boiler,170,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Logano GB212,boiler,170,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Logano GB212,boiler,170,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2122,8 +2070,6 @@ Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,bo Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2144,10 +2090,12 @@ Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,bo Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,nrgtotal,total energy,uint24 (>=0<=167772),kWh,false,sensor.boiler_total_energy,sensor.boiler_nrgtotal,5,0,1/100,80,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,nrg,energy,uint24 (>=0<=167772),kWh,false,sensor.boiler_dhw_energy,sensor.boiler_dhw_nrg,5,9,1/100,0,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,nrgheat,energy heating,uint24 (>=0<=167772),kWh,false,sensor.boiler_energy_heating,sensor.boiler_nrgheat,5,0,1/100,82,2 +Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,nrgcool,energy cooling,uint24 (>=0<=167772),kWh,false,sensor.boiler_energy_cooling,sensor.boiler_nrgcool,5,0,1/100,-1,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,metertotal,meter total,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_total,sensor.boiler_metertotal,5,0,1/100,84,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,metercomp,meter compressor,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_compressor,sensor.boiler_metercomp,5,0,1/100,86,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,metereheat,meter e-heater,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_e-heater,sensor.boiler_metereheat,5,0,1/100,88,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,meterheat,meter heating,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_heating,sensor.boiler_meterheat,5,0,1/100,90,2 +Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,metercool,meter cooling,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_cooling,sensor.boiler_metercool,5,0,1/100,-1,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,meter,meter,uint24 (>=0<=167772),kWh,false,sensor.boiler_dhw_meter,sensor.boiler_dhw_meter,5,9,1/100,2,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,uptimetotal,heatpump total uptime,time (>=0<=279620),minutes,false,sensor.boiler_heatpump_total_uptime,sensor.boiler_uptimetotal,5,0,1/60,92,2 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,uptimecontrol,total operating time heat,time (>=0<=279620),minutes,false,sensor.boiler_total_operating_time_heat,sensor.boiler_uptimecontrol,5,0,1/60,94,2 @@ -2294,7 +2242,6 @@ Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,bo Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Enviline/Compress 6000AW/Hybrid 3000-7000iAW/SupraEco/Geo 5xx/WLW196i/WSW196i,boiler,172,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2320,8 +2267,6 @@ Geo 5xx,boiler,173,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,true,numb Geo 5xx,boiler,173,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Geo 5xx,boiler,173,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Geo 5xx,boiler,173,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Geo 5xx,boiler,173,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Geo 5xx,boiler,173,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Geo 5xx,boiler,173,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Geo 5xx,boiler,173,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Geo 5xx,boiler,173,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2342,10 +2287,12 @@ Geo 5xx,boiler,173,emergencytemp,emergency temperature,uint8 (>=15<=70),C,true,n Geo 5xx,boiler,173,nrgtotal,total energy,uint24 (>=0<=167772),kWh,false,sensor.boiler_total_energy,sensor.boiler_nrgtotal,5,0,1/100,80,2 Geo 5xx,boiler,173,nrg,energy,uint24 (>=0<=167772),kWh,false,sensor.boiler_dhw_energy,sensor.boiler_dhw_nrg,5,9,1/100,0,2 Geo 5xx,boiler,173,nrgheat,energy heating,uint24 (>=0<=167772),kWh,false,sensor.boiler_energy_heating,sensor.boiler_nrgheat,5,0,1/100,82,2 +Geo 5xx,boiler,173,nrgcool,energy cooling,uint24 (>=0<=167772),kWh,false,sensor.boiler_energy_cooling,sensor.boiler_nrgcool,5,0,1/100,-1,2 Geo 5xx,boiler,173,metertotal,meter total,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_total,sensor.boiler_metertotal,5,0,1/100,84,2 Geo 5xx,boiler,173,metercomp,meter compressor,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_compressor,sensor.boiler_metercomp,5,0,1/100,86,2 Geo 5xx,boiler,173,metereheat,meter e-heater,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_e-heater,sensor.boiler_metereheat,5,0,1/100,88,2 Geo 5xx,boiler,173,meterheat,meter heating,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_heating,sensor.boiler_meterheat,5,0,1/100,90,2 +Geo 5xx,boiler,173,metercool,meter cooling,uint24 (>=0<=167772),kWh,false,sensor.boiler_meter_cooling,sensor.boiler_metercool,5,0,1/100,-1,2 Geo 5xx,boiler,173,meter,meter,uint24 (>=0<=167772),kWh,false,sensor.boiler_dhw_meter,sensor.boiler_dhw_meter,5,9,1/100,2,2 Geo 5xx,boiler,173,uptimetotal,heatpump total uptime,time (>=0<=279620),minutes,false,sensor.boiler_heatpump_total_uptime,sensor.boiler_uptimetotal,5,0,1/60,92,2 Geo 5xx,boiler,173,uptimecontrol,total operating time heat,time (>=0<=279620),minutes,false,sensor.boiler_total_operating_time_heat,sensor.boiler_uptimecontrol,5,0,1/60,94,2 @@ -2492,7 +2439,6 @@ Geo 5xx,boiler,173,recharging,recharging,boolean, ,false,binary_sensor.boiler_dh Geo 5xx,boiler,173,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Geo 5xx,boiler,173,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Geo 5xx,boiler,173,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Geo 5xx,boiler,173,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Geo 5xx,boiler,173,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Geo 5xx,boiler,173,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Geo 5xx,boiler,173,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2540,8 +2486,6 @@ Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,pumpmodmin,boiler pump Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2600,7 +2544,6 @@ Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,recharging,recharging, Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Condens 5000i/Greenstar 8000/GC9800IW/GB192i.2,boiler,195,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2652,8 +2595,6 @@ Logamax U122/Cerapur,boiler,203,pumpmodmin,boiler pump min power,uint8 (>=0<=100 Logamax U122/Cerapur,boiler,203,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Logamax U122/Cerapur,boiler,203,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Logamax U122/Cerapur,boiler,203,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Logamax U122/Cerapur,boiler,203,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Logamax U122/Cerapur,boiler,203,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Logamax U122/Cerapur,boiler,203,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Logamax U122/Cerapur,boiler,203,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Logamax U122/Cerapur,boiler,203,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2712,7 +2653,6 @@ Logamax U122/Cerapur,boiler,203,recharging,recharging,boolean, ,false,binary_sen Logamax U122/Cerapur,boiler,203,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Logamax U122/Cerapur,boiler,203,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Logamax U122/Cerapur,boiler,203,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Logamax U122/Cerapur,boiler,203,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Logamax U122/Cerapur,boiler,203,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Logamax U122/Cerapur,boiler,203,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Logamax U122/Cerapur,boiler,203,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2764,8 +2704,6 @@ Ecomline Excellent,boiler,206,pumpmodmin,boiler pump min power,uint8 (>=0<=100), Ecomline Excellent,boiler,206,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Ecomline Excellent,boiler,206,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Ecomline Excellent,boiler,206,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Ecomline Excellent,boiler,206,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Ecomline Excellent,boiler,206,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Ecomline Excellent,boiler,206,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Ecomline Excellent,boiler,206,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Ecomline Excellent,boiler,206,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2824,7 +2762,6 @@ Ecomline Excellent,boiler,206,recharging,recharging,boolean, ,false,binary_senso Ecomline Excellent,boiler,206,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Ecomline Excellent,boiler,206,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Ecomline Excellent,boiler,206,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Ecomline Excellent,boiler,206,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Ecomline Excellent,boiler,206,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Ecomline Excellent,boiler,206,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Ecomline Excellent,boiler,206,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2876,8 +2813,6 @@ Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,pumpmodmin,boiler pum Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -2936,7 +2871,6 @@ Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,recharging,recharging Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Logamax Plus/GB192/Condens GC9000/Greenstar ErP,boiler,208,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -2988,8 +2922,6 @@ Cascade MC400,boiler,210,pumpmodmin,boiler pump min power,uint8 (>=0<=100),%,tru Cascade MC400,boiler,210,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Cascade MC400,boiler,210,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Cascade MC400,boiler,210,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Cascade MC400,boiler,210,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Cascade MC400,boiler,210,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Cascade MC400,boiler,210,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Cascade MC400,boiler,210,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Cascade MC400,boiler,210,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -3048,7 +2980,6 @@ Cascade MC400,boiler,210,recharging,recharging,boolean, ,false,binary_sensor.boi Cascade MC400,boiler,210,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Cascade MC400,boiler,210,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Cascade MC400,boiler,210,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Cascade MC400,boiler,210,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Cascade MC400,boiler,210,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Cascade MC400,boiler,210,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Cascade MC400,boiler,210,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -3100,8 +3031,6 @@ EasyControl Adapter,boiler,211,pumpmodmin,boiler pump min power,uint8 (>=0<=100) EasyControl Adapter,boiler,211,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 EasyControl Adapter,boiler,211,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 EasyControl Adapter,boiler,211,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -EasyControl Adapter,boiler,211,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -EasyControl Adapter,boiler,211,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 EasyControl Adapter,boiler,211,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 EasyControl Adapter,boiler,211,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 EasyControl Adapter,boiler,211,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -3160,7 +3089,6 @@ EasyControl Adapter,boiler,211,recharging,recharging,boolean, ,false,binary_sens EasyControl Adapter,boiler,211,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 EasyControl Adapter,boiler,211,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 EasyControl Adapter,boiler,211,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -EasyControl Adapter,boiler,211,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 EasyControl Adapter,boiler,211,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 EasyControl Adapter,boiler,211,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 EasyControl Adapter,boiler,211,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -3197,8 +3125,6 @@ Greenstar HIU/Logamax kompakt WS170,boiler,219,pumpmodmin,boiler pump min power, Greenstar HIU/Logamax kompakt WS170,boiler,219,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Greenstar HIU/Logamax kompakt WS170,boiler,219,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Greenstar HIU/Logamax kompakt WS170,boiler,219,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -3257,7 +3183,6 @@ Greenstar HIU/Logamax kompakt WS170,boiler,219,recharging,recharging,boolean, ,f Greenstar HIU/Logamax kompakt WS170,boiler,219,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Greenstar HIU/Logamax kompakt WS170,boiler,219,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Greenstar HIU/Logamax kompakt WS170,boiler,219,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -3305,8 +3230,6 @@ Logamax Plus GB122/Condense 2300,boiler,234,pumpmodmin,boiler pump min power,uin Logamax Plus GB122/Condense 2300,boiler,234,pumpmode,boiler pump mode,enum [proportional\|deltaP-1\|deltaP-2\|deltaP-3\|deltaP-4], ,true,select.boiler_boiler_pump_mode,select.boiler_pumpmode,5,0,1,18,1 Logamax Plus GB122/Condense 2300,boiler,234,pumpcharacter,boiler pump characteristic,enum [proportional\|150mbar\|200mbar\|250mbar\|300mbar\|350mbar\|400mbar], ,true,select.boiler_boiler_pump_characteristic,select.boiler_pumpcharacter,5,0,1,19,1 Logamax Plus GB122/Condense 2300,boiler,234,pumpdelay,pump delay,uint8 (>=0<=60),minutes,true,number.boiler_pump_delay,number.boiler_pumpdelay,5,0,1,20,1 -Logamax Plus GB122/Condense 2300,boiler,234,setflowtemp,set flow temperature,uint8 (>=0<=254),C,false,sensor.boiler_set_flow_temperature,sensor.boiler_setflowtemp,5,0,1,21,1 -Logamax Plus GB122/Condense 2300,boiler,234,setburnpow,burner set power,uint8 (>=0<=100),%,false,sensor.boiler_burner_set_power,sensor.boiler_setburnpow,5,0,1,22,1 Logamax Plus GB122/Condense 2300,boiler,234,selburnpow,burner selected max power,uint8 (>=0<=254),%,true,number.boiler_burner_selected_max_power,number.boiler_selburnpow,5,0,1,23,1 Logamax Plus GB122/Condense 2300,boiler,234,curburnpow,burner current power,uint8 (>=0<=100),%,false,sensor.boiler_burner_current_power,sensor.boiler_curburnpow,5,0,1,24,1 Logamax Plus GB122/Condense 2300,boiler,234,burnstarts,burner starts,uint24 (>=0<=16777213), ,false,sensor.boiler_burner_starts,sensor.boiler_burnstarts,5,0,1,25,2 @@ -3365,7 +3288,6 @@ Logamax Plus GB122/Condense 2300,boiler,234,recharging,recharging,boolean, ,fals Logamax Plus GB122/Condense 2300,boiler,234,tempok,temperature ok,boolean, ,false,binary_sensor.boiler_dhw_temperature_ok,binary_sensor.boiler_dhw_tempok,5,9,1,60,1 Logamax Plus GB122/Condense 2300,boiler,234,active,active,boolean, ,false,binary_sensor.boiler_dhw_active,binary_sensor.boiler_dhw_active,5,9,1,61,1 Logamax Plus GB122/Condense 2300,boiler,234,3wayvalve,3-way valve active,boolean, ,false,binary_sensor.boiler_dhw_3-way_valve_active,binary_sensor.boiler_dhw_3wayvalve,5,9,1,62,1 -Logamax Plus GB122/Condense 2300,boiler,234,setpumppower,set pump power,uint8 (>=0<=100),%,false,sensor.boiler_dhw_set_pump_power,sensor.boiler_dhw_setpumppower,5,9,1,63,1 Logamax Plus GB122/Condense 2300,boiler,234,mixertemp,mixer temperature,uint16 (>=0<=3199),C,false,sensor.boiler_dhw_mixer_temperature,sensor.boiler_dhw_mixertemp,5,9,1/10,64,1 Logamax Plus GB122/Condense 2300,boiler,234,cylmiddletemp,cylinder middle temperature (TS3),uint16 (>=0<=3199),C,false,sensor.boiler_dhw_cylinder_middle_temperature_(TS3),sensor.boiler_dhw_cylmiddletemp,5,9,1/10,65,1 Logamax Plus GB122/Condense 2300,boiler,234,starts,starts,uint24 (>=0<=16777213), ,false,sensor.boiler_dhw_starts,sensor.boiler_dhw_starts,5,9,1,66,2 @@ -3446,14 +3368,18 @@ UI800/BC400,thermostat,4,hpmode,HP Mode,enum [heating\|cooling\|heating&cooling] UI800/BC400,thermostat,4,dewoffset,dew point offset,uint8 (>=2<=10),K,true,number.thermostat_hc1_dew_point_offset,number.thermostat_hc1_dewoffset,6,1,1,37,1 UI800/BC400,thermostat,4,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1 UI800/BC400,thermostat,4,hpminflowtemp,HP min. flow temp.,uint8 (>=0<=254),C,true,number.thermostat_hc1_HP_min._flow_temp.,number.thermostat_hc1_hpminflowtemp,6,1,1,39,1 -UI800/BC400,thermostat,4,control,control device,enum [off\|-\|RC100\|RC100H\|-\|RC120RF\|RC220\|single], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 +UI800/BC400,thermostat,4,control,control device,enum [off\|-\|RC100\|RC100H\|-\|RC120RF\|RC220/RT800\|single], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 UI800/BC400,thermostat,4,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 -UI800/BC400,thermostat,4,remotehum,room humidity from remote,uint8 (>=-1<=101),%,true,number.thermostat_hc1_room_humidity_from_remote,number.thermostat_hc1_remotehum,6,1,1,42,1 +UI800/BC400,thermostat,4,remotehum,room humidity from remote,cmd [] (>=-1<=101),%,true,sensor.thermostat_hc1_room_humidity_from_remote,sensor.thermostat_hc1_remotehum,6,1,1,42,1 UI800/BC400,thermostat,4,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1 UI800/BC400,thermostat,4,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1 UI800/BC400,thermostat,4,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1 UI800/BC400,thermostat,4,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1 UI800/BC400,thermostat,4,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1 +UI800/BC400,thermostat,4,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,-1,1 +UI800/BC400,thermostat,4,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,-1,1 +UI800/BC400,thermostat,4,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,-1,1 +UI800/BC400,thermostat,4,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,-1,1 UI800/BC400,thermostat,4,mode,mode,enum [off\|eco+\|eco\|comfort\|auto], ,true,select.thermostat_dhw_mode,select.thermostat_dhw_mode,6,9,1,0,1 UI800/BC400,thermostat,4,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 UI800/BC400,thermostat,4,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -3813,12 +3739,16 @@ RC200/CW100/CR120,thermostat,157,roomtempdiff,room temp difference,uint8 (>=0<=2 RC200/CW100/CR120,thermostat,157,hpminflowtemp,HP min. flow temp.,uint8 (>=0<=254),C,true,number.thermostat_hc1_HP_min._flow_temp.,number.thermostat_hc1_hpminflowtemp,6,1,1,39,1 RC200/CW100/CR120,thermostat,157,control,control device,enum [RC310\|RC200\|RC100\|RC100H\|TC100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 RC200/CW100/CR120,thermostat,157,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 -RC200/CW100/CR120,thermostat,157,remotehum,room humidity from remote,uint8 (>=-1<=101),%,true,number.thermostat_hc1_room_humidity_from_remote,number.thermostat_hc1_remotehum,6,1,1,42,1 +RC200/CW100/CR120,thermostat,157,remotehum,room humidity from remote,cmd [] (>=-1<=101),%,true,sensor.thermostat_hc1_room_humidity_from_remote,sensor.thermostat_hc1_remotehum,6,1,1,42,1 RC200/CW100/CR120,thermostat,157,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1 RC200/CW100/CR120,thermostat,157,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1 RC200/CW100/CR120,thermostat,157,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1 RC200/CW100/CR120,thermostat,157,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1 RC200/CW100/CR120,thermostat,157,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1 +RC200/CW100/CR120,thermostat,157,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,-1,1 +RC200/CW100/CR120,thermostat,157,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,-1,1 +RC200/CW100/CR120,thermostat,157,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,-1,1 +RC200/CW100/CR120,thermostat,157,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,-1,1 RC200/CW100/CR120,thermostat,157,mode,mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_mode,select.thermostat_dhw_mode,6,9,1,0,1 RC200/CW100/CR120,thermostat,157,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 RC200/CW100/CR120,thermostat,157,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -3893,12 +3823,16 @@ RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,roomtempdif RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,hpminflowtemp,HP min. flow temp.,uint8 (>=0<=254),C,true,number.thermostat_hc1_HP_min._flow_temp.,number.thermostat_hc1_hpminflowtemp,6,1,1,39,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,control,control device,enum [RC310\|RC200\|RC100\|RC100H\|TC100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 -RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,remotehum,room humidity from remote,uint8 (>=-1<=101),%,true,number.thermostat_hc1_room_humidity_from_remote,number.thermostat_hc1_remotehum,6,1,1,42,1 +RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,remotehum,room humidity from remote,cmd [] (>=-1<=101),%,true,sensor.thermostat_hc1_room_humidity_from_remote,sensor.thermostat_hc1_remotehum,6,1,1,42,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1 +RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,-1,1 +RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,-1,1 +RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,-1,1 +RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,-1,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,mode,mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_mode,select.thermostat_dhw_mode,6,9,1,0,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 RC300/RC310/Moduline 3000/1010H/CW400/Sense II/HPC410,thermostat,158,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -3973,12 +3907,16 @@ RC100/Moduline 1000/1010,thermostat,165,roomtempdiff,room temp difference,uint8 RC100/Moduline 1000/1010,thermostat,165,hpminflowtemp,HP min. flow temp.,uint8 (>=0<=254),C,true,number.thermostat_hc1_HP_min._flow_temp.,number.thermostat_hc1_hpminflowtemp,6,1,1,39,1 RC100/Moduline 1000/1010,thermostat,165,control,control device,enum [RC310\|RC200\|RC100\|RC100H\|TC100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 RC100/Moduline 1000/1010,thermostat,165,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 -RC100/Moduline 1000/1010,thermostat,165,remotehum,room humidity from remote,uint8 (>=-1<=101),%,true,number.thermostat_hc1_room_humidity_from_remote,number.thermostat_hc1_remotehum,6,1,1,42,1 +RC100/Moduline 1000/1010,thermostat,165,remotehum,room humidity from remote,cmd [] (>=-1<=101),%,true,sensor.thermostat_hc1_room_humidity_from_remote,sensor.thermostat_hc1_remotehum,6,1,1,42,1 RC100/Moduline 1000/1010,thermostat,165,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1 RC100/Moduline 1000/1010,thermostat,165,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1 RC100/Moduline 1000/1010,thermostat,165,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1 RC100/Moduline 1000/1010,thermostat,165,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1 RC100/Moduline 1000/1010,thermostat,165,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1 +RC100/Moduline 1000/1010,thermostat,165,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,-1,1 +RC100/Moduline 1000/1010,thermostat,165,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,-1,1 +RC100/Moduline 1000/1010,thermostat,165,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,-1,1 +RC100/Moduline 1000/1010,thermostat,165,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,-1,1 RC100/Moduline 1000/1010,thermostat,165,mode,mode,enum [off\|normal\|comfort\|auto\|own prog], ,true,select.thermostat_dhw_mode,select.thermostat_dhw_mode,6,9,1,0,1 RC100/Moduline 1000/1010,thermostat,165,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 RC100/Moduline 1000/1010,thermostat,165,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -4054,12 +3992,16 @@ Rego 2000/3000,thermostat,172,roomtempdiff,room temp difference,uint8 (>=0<=254) Rego 2000/3000,thermostat,172,hpminflowtemp,HP min. flow temp.,uint8 (>=0<=254),C,true,number.thermostat_hc1_HP_min._flow_temp.,number.thermostat_hc1_hpminflowtemp,6,1,1,39,1 Rego 2000/3000,thermostat,172,control,control device,enum [RC310\|RC200\|RC100\|RC100H\|TC100], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 Rego 2000/3000,thermostat,172,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 -Rego 2000/3000,thermostat,172,remotehum,room humidity from remote,uint8 (>=-1<=101),%,true,number.thermostat_hc1_room_humidity_from_remote,number.thermostat_hc1_remotehum,6,1,1,42,1 +Rego 2000/3000,thermostat,172,remotehum,room humidity from remote,cmd [] (>=-1<=101),%,true,sensor.thermostat_hc1_room_humidity_from_remote,sensor.thermostat_hc1_remotehum,6,1,1,42,1 Rego 2000/3000,thermostat,172,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1 Rego 2000/3000,thermostat,172,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1 Rego 2000/3000,thermostat,172,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1 Rego 2000/3000,thermostat,172,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1 Rego 2000/3000,thermostat,172,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1 +Rego 2000/3000,thermostat,172,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,-1,1 +Rego 2000/3000,thermostat,172,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,-1,1 +Rego 2000/3000,thermostat,172,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,-1,1 +Rego 2000/3000,thermostat,172,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,-1,1 Rego 2000/3000,thermostat,172,mode,mode,enum [normal\|comfort\|eco+], ,true,select.thermostat_dhw_mode,select.thermostat_dhw_mode,6,9,1,0,1 Rego 2000/3000,thermostat,172,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 Rego 2000/3000,thermostat,172,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -4159,14 +4101,18 @@ Rego 3000/UI800/WSW196i/BC400,thermostat,253,hpmode,HP Mode,enum [heating\|cooli Rego 3000/UI800/WSW196i/BC400,thermostat,253,dewoffset,dew point offset,uint8 (>=2<=10),K,true,number.thermostat_hc1_dew_point_offset,number.thermostat_hc1_dewoffset,6,1,1,37,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,roomtempdiff,room temp difference,uint8 (>=0<=254),K,true,number.thermostat_hc1_room_temp_difference,number.thermostat_hc1_roomtempdiff,6,1,1,38,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,hpminflowtemp,HP min. flow temp.,uint8 (>=0<=254),C,true,number.thermostat_hc1_HP_min._flow_temp.,number.thermostat_hc1_hpminflowtemp,6,1,1,39,1 -Rego 3000/UI800/WSW196i/BC400,thermostat,253,control,control device,enum [off\|-\|RC100\|RC100H\|-\|RC120RF\|RC220\|single], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 +Rego 3000/UI800/WSW196i/BC400,thermostat,253,control,control device,enum [off\|-\|RC100\|RC100H\|-\|RC120RF\|RC220/RT800\|single], ,true,select.thermostat_hc1_control_device,select.thermostat_hc1_control,6,1,1,40,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,remotetemp,room temperature from remote,cmd [] (>=-1<=101),C,true,sensor.thermostat_hc1_room_temperature_from_remote,sensor.thermostat_hc1_remotetemp,6,1,1/10,41,1 -Rego 3000/UI800/WSW196i/BC400,thermostat,253,remotehum,room humidity from remote,uint8 (>=-1<=101),%,true,number.thermostat_hc1_room_humidity_from_remote,number.thermostat_hc1_remotehum,6,1,1,42,1 +Rego 3000/UI800/WSW196i/BC400,thermostat,253,remotehum,room humidity from remote,cmd [] (>=-1<=101),%,true,sensor.thermostat_hc1_room_humidity_from_remote,sensor.thermostat_hc1_remotehum,6,1,1,42,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,heatondelay,heat-on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-on_delay,number.thermostat_hc1_heatondelay,6,1,1,43,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,heatoffdelay,heat-off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_heat-off_delay,number.thermostat_hc1_heatoffdelay,6,1,1,44,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,instantstart,instant start,uint8 (>=1<=10),K,true,number.thermostat_hc1_instant_start,number.thermostat_hc1_instantstart,6,1,1,45,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,boost,boost mode,boolean, ,true,switch.thermostat_hc1_boost_mode,switch.thermostat_hc1_boost,6,1,1,46,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,boosttime,boost time,uint8 (>=0<=254),hours,true,number.thermostat_hc1_boost_time,number.thermostat_hc1_boosttime,6,1,1,47,1 +Rego 3000/UI800/WSW196i/BC400,thermostat,253,coolstart,cooling starttemp,uint8 (>=20<=35),C,true,number.thermostat_hc1_cooling_starttemp,number.thermostat_hc1_coolstart,6,1,1,-1,1 +Rego 3000/UI800/WSW196i/BC400,thermostat,253,coolondelay,cooling on delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_on_delay,number.thermostat_hc1_coolondelay,6,1,1,-1,1 +Rego 3000/UI800/WSW196i/BC400,thermostat,253,cooloffdelay,cooling off delay,uint8 (>=1<=48),hours,true,number.thermostat_hc1_cooling_off_delay,number.thermostat_hc1_cooloffdelay,6,1,1,-1,1 +Rego 3000/UI800/WSW196i/BC400,thermostat,253,switchprogmode,switch program mode,enum [level\|absolute], ,true,select.thermostat_hc1_switch_program_mode,select.thermostat_hc1_switchprogmode,6,1,1,-1,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,mode,mode,enum [off\|eco+\|eco\|comfort\|auto], ,true,select.thermostat_dhw_mode,select.thermostat_dhw_mode,6,9,1,0,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,settemp,set temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_temperature,number.thermostat_dhw_settemp,6,9,1,1,1 Rego 3000/UI800/WSW196i/BC400,thermostat,253,settemplow,set low temperature,uint8 (>=0<=254),C,true,number.thermostat_dhw_set_low_temperature,number.thermostat_dhw_settemplow,6,9,1,2,1 @@ -4727,12 +4673,12 @@ FW120,thermostat,192,roominflfactor,room influence factor,uint8 (>=0<=100),%,tru FW120,thermostat,192,heatingtype,heating type,enum [off\|heatingcurve\|radiator\|convector\|floor], ,true,select.thermostat_hc1_heating_type,select.thermostat_hc1_heatingtype,6,1,1,19,1 FW120,thermostat,192,controlmode,control mode,enum [off\|unmixed\|unmixed IPM\|mixed IPM], ,true,select.thermostat_hc1_control_mode,select.thermostat_hc1_controlmode,6,1,1,24,1 FW120,thermostat,192,charge,charge,boolean, ,true,switch.thermostat_dhw_charge,switch.thermostat_dhw_charge,6,9,1,5,1 -RT800,thermostat,3,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 -RT800,thermostat,3,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 -RT800,thermostat,3,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13 -RT800,thermostat,3,seltemp,selected room temperature,int16 (>=0<=30),C,true,number.thermostat_hc1_selected_room_temperature,number.thermostat_hc1_seltemp,6,1,1/2,0,1 -RT800,thermostat,3,currtemp,current room temperature,int16 (>=-3199<=3199),C,false,sensor.thermostat_hc1_current_room_temperature,sensor.thermostat_hc1_currtemp,6,1,1/10,1,1 -RT800,thermostat,3,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 +RT800/RC220,thermostat,3,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 +RT800/RC220,thermostat,3,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 +RT800/RC220,thermostat,3,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13 +RT800/RC220,thermostat,3,seltemp,selected room temperature,int16 (>=0<=30),C,true,number.thermostat_hc1_selected_room_temperature,number.thermostat_hc1_seltemp,6,1,1/2,0,1 +RT800/RC220,thermostat,3,currtemp,current room temperature,int16 (>=-3199<=3199),C,false,sensor.thermostat_hc1_current_room_temperature,sensor.thermostat_hc1_currtemp,6,1,1/10,1,1 +RT800/RC220,thermostat,3,haclimate,mqtt discovery current room temperature,enum [selTemp\|roomTemp] (>=5<=30), ,false,sensor.thermostat_hc1_mqtt_discovery_current_room_temperature,sensor.thermostat_hc1_haclimate,6,1,1,2,1 RC100H,thermostat,200,errorcode,error code,string, ,false,sensor.thermostat_error_code,sensor.thermostat_errorcode,6,0,1,0,8 RC100H,thermostat,200,lastcode,last error code,string, ,false,sensor.thermostat_last_error_code,sensor.thermostat_lastcode,6,0,1,8,25 RC100H,thermostat,200,datetime,date/time,string, ,false,sensor.thermostat_date/time,sensor.thermostat_datetime,6,0,1,33,13 diff --git a/esp32_partition_16M.csv b/esp32_partition_16M.csv index 578cbfce8..e912ccc98 100644 --- a/esp32_partition_16M.csv +++ b/esp32_partition_16M.csv @@ -1,7 +1,7 @@ # Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x005000, otadata, data, ota, , 0x002000, -boot, app, factory, , 0x280000, +boot, app, factory, , 0x280000, app0, app, ota_0, , 0x590000, app1, app, ota_1, , 0x590000, nvs1, data, nvs, , 0x040000, diff --git a/interface/package.json b/interface/package.json index 3b82bb022..129141dd1 100644 --- a/interface/package.json +++ b/interface/package.json @@ -21,13 +21,13 @@ "lint": "eslint . --fix" }, "dependencies": { - "@alova/adapter-xhr": "2.0.5", - "@emotion/react": "^11.13.0", + "@alova/adapter-xhr": "2.0.6", + "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", - "@mui/icons-material": "^5.16.7", - "@mui/material": "^5.16.7", + "@mui/icons-material": "^6.0.1", + "@mui/material": "^6.0.1", "@table-library/react-table-library": "4.1.7", - "alova": "3.0.9", + "alova": "3.0.14", "async-validator": "^4.2.5", "jwt-decode": "^4.0.0", "mime-types": "^2.1.35", @@ -42,25 +42,25 @@ }, "devDependencies": { "@babel/core": "^7.25.2", - "@eslint/js": "^9.9.0", + "@eslint/js": "^9.9.1", "@preact/compat": "^17.1.2", "@preact/preset-vite": "^2.9.0", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/babel__core": "^7", "@types/formidable": "^3", - "@types/node": "^22.4.0", - "@types/react": "^18.3.3", + "@types/node": "^22.5.2", + "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/react-router-dom": "^5.3.3", "concurrently": "^8.2.2", - "eslint": "^9.9.0", + "eslint": "^9.9.1", "eslint-config-prettier": "^9.1.0", "formidable": "^3.5.1", "prettier": "^3.3.3", "rollup-plugin-visualizer": "^5.12.0", "terser": "^5.31.6", - "typescript-eslint": "8.1.0", - "vite": "^5.4.1", + "typescript-eslint": "8.3.0", + "vite": "^5.4.2", "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^5.0.1" }, diff --git a/interface/src/SignIn.tsx b/interface/src/SignIn.tsx index 409cb36e2..c547be43d 100644 --- a/interface/src/SignIn.tsx +++ b/interface/src/SignIn.tsx @@ -109,9 +109,11 @@ const SignIn = () => { onChange={updateLoginRequestValue} margin="normal" variant="outlined" - inputProps={{ - autoCapitalize: 'none', - autoCorrect: 'off' + slotProps={{ + input: { + autoCapitalize: 'none', + autoCorrect: 'off' + } }} /> // Activity export const readActivity = () => alovaInstance.Get('/rest/activity'); -// API, used in HelpInformation +// API export const API = (apiCall: APIcall) => alovaInstance.Post('/api', apiCall); // UploadFileForm diff --git a/interface/src/api/endpoints.ts b/interface/src/api/endpoints.ts index 3afb960c1..2df9486cd 100644 --- a/interface/src/api/endpoints.ts +++ b/interface/src/api/endpoints.ts @@ -8,7 +8,7 @@ export const ACCESS_TOKEN = 'access_token'; export const alovaInstance = createAlova({ statesHook: ReactHook, - timeout: 3000, // 3 seconds before throwing a timeout error + // timeout: 3000, // 3 seconds before throwing a timeout error, default is 0 = none cacheFor: null, // disable cache // cacheFor: { // GET: { diff --git a/interface/src/api/network.ts b/interface/src/api/network.ts index 12222129c..7f4ff203d 100644 --- a/interface/src/api/network.ts +++ b/interface/src/api/network.ts @@ -7,7 +7,7 @@ export const readNetworkStatus = () => export const scanNetworks = () => alovaInstance.Get('/rest/scanNetworks'); export const listNetworks = () => alovaInstance.Get('/rest/listNetworks', { - timeout: 20000 // timeout 20 seconds + timeout: 20000 // 20 seconds }); export const readNetworkSettings = () => alovaInstance.Get('/rest/networkSettings'); diff --git a/interface/src/api/system.ts b/interface/src/api/system.ts index ce380e8b8..0b550c307 100644 --- a/interface/src/api/system.ts +++ b/interface/src/api/system.ts @@ -10,12 +10,6 @@ export const readHardwareStatus = () => export const readSystemStatus = () => alovaInstance.Get('/rest/systemStatus'); -// commands -export const restart = () => alovaInstance.Post('/rest/restart'); -export const partition = () => alovaInstance.Post('/rest/partition'); -export const factoryPartition = () => alovaInstance.Post('/rest/factoryPartition'); -export const factoryReset = () => alovaInstance.Post('/rest/factoryReset'); - // SystemLog export const readLogSettings = () => alovaInstance.Get(`/rest/logSettings`); @@ -48,3 +42,6 @@ export const uploadFile = (file: File) => { export const uploadURL = (data: { url: string }) => alovaInstance.Post('/rest/uploadURL', data); + +export const checkUpgrade = (data: { version: string }) => + alovaInstance.Post('/rest/checkUpgrade', data); diff --git a/interface/src/app/main/CustomEntities.tsx b/interface/src/app/main/CustomEntities.tsx index b7b3e0ca6..31a0811d7 100644 --- a/interface/src/app/main/CustomEntities.tsx +++ b/interface/src/app/main/CustomEntities.tsx @@ -54,7 +54,7 @@ const CustomEntities = () => { useEffect(() => { const timer = setInterval(async () => { - if (dialogOpen) { + if (dialogOpen || numChanges > 0) { return; } await fetchEntities(); diff --git a/interface/src/app/main/CustomEntitiesDialog.tsx b/interface/src/app/main/CustomEntitiesDialog.tsx index f0fe08fe3..757163f9b 100644 --- a/interface/src/app/main/CustomEntitiesDialog.tsx +++ b/interface/src/app/main/CustomEntitiesDialog.tsx @@ -12,11 +12,11 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, InputAdornment, MenuItem, TextField } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import type Schema from 'async-validator'; @@ -100,8 +100,8 @@ const CustomEntitiesDialog = ({ - - + + - + {editItem.ram === 1 && ( - + - + - + 0x - ) + slotProps={{ + input: { + startAdornment: ( + 0x + ) + }, + htmlInput: { style: { textTransform: 'uppercase' } } }} /> - + 0x - ) + slotProps={{ + input: { + startAdornment: ( + 0x + ) + }, + htmlInput: { style: { textTransform: 'uppercase' } } }} /> - + - + @@ -247,26 +251,28 @@ const CustomEntitiesDialog = ({ {editItem.value_type !== DeviceValueType.BOOL && editItem.value_type !== DeviceValueType.STRING && ( <> - + - + @@ -281,21 +287,17 @@ const CustomEntitiesDialog = ({ )} {editItem.value_type === DeviceValueType.STRING && editItem.device_id !== '0' && ( - - + )} @@ -303,7 +305,6 @@ const CustomEntitiesDialog = ({ )} - {!creating && ( diff --git a/interface/src/app/main/Customizations.tsx b/interface/src/app/main/Customizations.tsx index 42de65d53..4fcbe15c6 100644 --- a/interface/src/app/main/Customizations.tsx +++ b/interface/src/app/main/Customizations.tsx @@ -16,7 +16,6 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, InputAdornment, Link, MenuItem, @@ -25,8 +24,7 @@ import { ToggleButtonGroup, Typography } from '@mui/material'; - -import { restart } from 'api/system'; +import Grid from '@mui/material/Grid2'; import { Body, @@ -51,6 +49,7 @@ import { import { useI18nContext } from 'i18n/i18n-react'; import { + API, readDeviceEntities, readDevices, resetCustomizations, @@ -61,7 +60,7 @@ import SettingsCustomizationsDialog from './CustomizationsDialog'; import EntityMaskToggle from './EntityMaskToggle'; import OptionIcon from './OptionIcon'; import { DeviceEntityMask } from './types'; -import type { DeviceEntity, DeviceShort } from './types'; +import type { APIcall, DeviceEntity, DeviceShort } from './types'; export const APIURL = window.location.origin + '/api/'; @@ -85,6 +84,10 @@ const Customizations = () => { // fetch devices first const { data: devices, send: fetchDevices } = useRequest(readDevices); + const { send: sendAPI } = useRequest((data: APIcall) => API(data), { + immediate: false + }); + const [selectedDevice, setSelectedDevice] = useState( Number(useLocation().state) || -1 ); @@ -132,9 +135,14 @@ const Customizations = () => { ); }; - const { send: sendRestart } = useRequest(restart(), { - immediate: false - }); + const doRestart = async () => { + setRestarting(true); + await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch( + (error: Error) => { + toast.error(error.message); + } + ); + }; const entities_theme = useTheme({ Table: ` @@ -247,13 +255,6 @@ const Customizations = () => { } }, [devices, selectedDevice]); - const doRestart = async () => { - await sendRestart().catch((error: Error) => { - toast.error(error.message); - }); - setRestarting(true); - }; - function formatValue(value: unknown) { if (typeof value === 'number') { return new Intl.NumberFormat().format(value); @@ -509,12 +510,12 @@ const Customizations = () => { container mb={1} mt={0} - spacing={1} + spacing={2} direction="row" justifyContent="flex-start" alignItems="center" > - + { onChange={(event) => { setSearch(event.target.value); }} - InputProps={{ - startAdornment: ( - - - - ) + slotProps={{ + input: { + startAdornment: ( + + + + ) + } }} /> - + { - + - + - + {LL.SHOWING()} {shown_data.length}/{deviceEntities.length}  {LL.ENTITIES(deviceEntities.length)} diff --git a/interface/src/app/main/CustomizationsDialog.tsx b/interface/src/app/main/CustomizationsDialog.tsx index b29130dba..a6936b2d3 100644 --- a/interface/src/app/main/CustomizationsDialog.tsx +++ b/interface/src/app/main/CustomizationsDialog.tsx @@ -10,14 +10,14 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, TextField, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import { useI18nContext } from 'i18n/i18n-react'; -import { updateValue } from 'utils'; +import { numberValue, updateValue } from 'utils'; import EntityMaskToggle from './EntityMaskToggle'; import { DeviceEntityMask } from './types'; @@ -81,7 +81,7 @@ const CustomizationsDialog = ({ {LL.EDIT() + ' ' + LL.ENTITY()} - + {LL.ID_OF(LL.ENTITY())}:  @@ -111,35 +111,34 @@ const CustomizationsDialog = ({ - - + + {isWriteableNumber && ( <> - + - + diff --git a/interface/src/app/main/Devices.tsx b/interface/src/app/main/Devices.tsx index 20ed79122..3da867f17 100644 --- a/interface/src/app/main/Devices.tsx +++ b/interface/src/app/main/Devices.tsx @@ -30,7 +30,6 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, IconButton, List, ListItem, @@ -41,6 +40,7 @@ import { styled, tooltipClasses } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { useRowSelect } from '@table-library/react-table-library/select'; import { SortToggleType, useSort } from '@table-library/react-table-library/sort'; @@ -556,7 +556,7 @@ const Devices = () => { {tableList.length === 0 && ( - + )} {tableList.map((device: Device) => ( @@ -677,7 +677,7 @@ const Devices = () => { - + diff --git a/interface/src/app/main/DevicesDialog.tsx b/interface/src/app/main/DevicesDialog.tsx index e226897ee..e668da663 100644 --- a/interface/src/app/main/DevicesDialog.tsx +++ b/interface/src/app/main/DevicesDialog.tsx @@ -11,12 +11,12 @@ import { DialogContent, DialogTitle, FormHelperText, - Grid, InputAdornment, MenuItem, TextField, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import type Schema from 'async-validator'; @@ -112,15 +112,14 @@ const DevicesDialog = ({ {editItem.id.slice(2)} - - + + {editItem.l ? ( - {setUom(editItem.u)} - - ) + : {}, + input: { + startAdornment: ( + + {setUom(editItem.u)} + + ) + } }} /> ) : ( @@ -162,7 +161,6 @@ const DevicesDialog = ({ label={LL.VALUE(0)} value={editItem.v} disabled={!writeable} - // autoFocus sx={{ width: '30ch' }} multiline={editItem.u ? false : true} onChange={updateFormValue} @@ -170,7 +168,7 @@ const DevicesDialog = ({ )} {writeable && ( - + {showHelperText(editItem)} )} diff --git a/interface/src/app/main/Help.tsx b/interface/src/app/main/Help.tsx index fa4411e21..369619319 100644 --- a/interface/src/app/main/Help.tsx +++ b/interface/src/app/main/Help.tsx @@ -26,9 +26,9 @@ import type { APIcall } from './types'; const Help = () => { const { LL } = useI18nContext(); - useLayoutTitle(LL.HELP_OF('')); + useLayoutTitle(LL.HELP()); - const { send: getAPI } = useRequest((data: APIcall) => API(data), { + const { send: sendAPI } = useRequest((data: APIcall) => API(data), { immediate: false }).onSuccess((event) => { const anchor = document.createElement('a'); @@ -45,8 +45,8 @@ const Help = () => { toast.info(LL.DOWNLOAD_SUCCESSFUL()); }); - const callAPI = async (device: string, entity: string) => { - await getAPI({ device, entity, id: 0 }).catch((error: Error) => { + const callAPI = async (device: string, cmd: string) => { + await sendAPI({ device, cmd, id: 0 }).catch((error: Error) => { toast.error(error.message); }); }; @@ -113,7 +113,7 @@ const Help = () => { color="primary" onClick={() => callAPI('system', 'allvalues')} > - {LL.ALLVALUES(0)} + {LL.ALLVALUES()} diff --git a/interface/src/app/main/ModulesDialog.tsx b/interface/src/app/main/ModulesDialog.tsx index 570c9ab14..e045c69f7 100644 --- a/interface/src/app/main/ModulesDialog.tsx +++ b/interface/src/app/main/ModulesDialog.tsx @@ -10,9 +10,9 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, TextField } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import { BlockFormControlLabel } from 'components'; diff --git a/interface/src/app/main/SchedulerDialog.tsx b/interface/src/app/main/SchedulerDialog.tsx index 7769bac00..5bcb82abd 100644 --- a/interface/src/app/main/SchedulerDialog.tsx +++ b/interface/src/app/main/SchedulerDialog.tsx @@ -13,12 +13,12 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, TextField, ToggleButton, ToggleButtonGroup, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import type Schema from 'async-validator'; diff --git a/interface/src/app/main/SensorsAnalogDialog.tsx b/interface/src/app/main/SensorsAnalogDialog.tsx index 59700ba4c..1089972cb 100644 --- a/interface/src/app/main/SensorsAnalogDialog.tsx +++ b/interface/src/app/main/SensorsAnalogDialog.tsx @@ -10,12 +10,12 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, InputAdornment, MenuItem, TextField, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import type Schema from 'async-validator'; @@ -86,11 +86,12 @@ const SensorsAnalogDialog = ({ - + {creating && ( - + {LL.WARN_GPIO()} )} - + - + {editItem.t >= AnalogType.COUNTER && editItem.t <= AnalogType.RATE && ( - + @@ -150,64 +151,72 @@ const SensorsAnalogDialog = ({ )} {editItem.t === AnalogType.ADC && ( - + mV - ) + slotProps={{ + input: { + startAdornment: ( + mV + ) + }, + htmlInput: { min: '0', max: '3300', step: '1' } }} /> )} {editItem.t === AnalogType.COUNTER && ( - + )} {editItem.t >= AnalogType.COUNTER && editItem.t <= AnalogType.RATE && ( - + )} {editItem.t === AnalogType.DIGITAL_OUT && (editItem.g === 25 || editItem.g === 26) && ( - + )} @@ -215,12 +224,11 @@ const SensorsAnalogDialog = ({ editItem.g !== 25 && editItem.g !== 26 && ( <> - + {LL.ON()} - + @@ -242,12 +250,12 @@ const SensorsAnalogDialog = ({ {LL.ACTIVELOW()} - + @@ -266,37 +274,41 @@ const SensorsAnalogDialog = ({ editItem.t === AnalogType.PWM_1 || editItem.t === AnalogType.PWM_2) && ( <> - + Hz - ) + slotProps={{ + input: { + startAdornment: ( + Hz + ) + }, + htmlInput: { min: '1', max: '5000', step: '1' } }} /> - + % - ) + slotProps={{ + input: { + startAdornment: ( + % + ) + }, + htmlInput: { min: '0', max: '100', step: '0.1' } }} /> diff --git a/interface/src/app/main/SensorsTemperatureDialog.tsx b/interface/src/app/main/SensorsTemperatureDialog.tsx index cc3b94705..f1b647cb2 100644 --- a/interface/src/app/main/SensorsTemperatureDialog.tsx +++ b/interface/src/app/main/SensorsTemperatureDialog.tsx @@ -9,11 +9,11 @@ import { DialogActions, DialogContent, DialogTitle, - Grid, InputAdornment, TextField, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import { dialogStyle } from 'CustomTheme'; import type Schema from 'async-validator'; @@ -79,30 +79,33 @@ const SensorsTemperatureDialog = ({ {LL.ID_OF(LL.SENSOR(0))}: {editItem.id} - - + + - + °C + slotProps={{ + input: { + startAdornment: ( + °C + ) + }, + htmlInput: { min: '-5', max: '5', step: '0.1' } }} /> diff --git a/interface/src/app/main/types.ts b/interface/src/app/main/types.ts index 895082137..093b55a9d 100644 --- a/interface/src/app/main/types.ts +++ b/interface/src/app/main/types.ts @@ -272,8 +272,8 @@ export interface BoardProfile { export interface APIcall { device: string; - entity: string; - id: unknown; + cmd: string; + id: number; } export interface WriteAnalogSensor { id: number; @@ -420,12 +420,11 @@ export const enum DeviceValueType { TIME, // same as UINT24 UINT32, ENUM, - STRING, + STRING, // RAW CMD } export const DeviceValueTypeNames = [ - // 'BOOL', 'INT8', 'UINT8', diff --git a/interface/src/app/main/validators.ts b/interface/src/app/main/validators.ts index 520dbcbdb..eca7f23dc 100644 --- a/interface/src/app/main/validators.ts +++ b/interface/src/app/main/validators.ts @@ -381,6 +381,10 @@ export const entityItemValidation = (entity: EntityItem[], entityItem: EntityIte offset: [ { required: true, message: 'Offset is required' }, { type: 'number', min: 0, max: 255, message: 'Must be between 0 and 255' } + ], + factor: [ + { required: true, message: 'Bytes is required' }, + { type: 'number', min: 1, max: 255, message: 'Must be between 1 and 255' } ] }); diff --git a/interface/src/app/settings/APSettings.tsx b/interface/src/app/settings/APSettings.tsx index 4e7a5087a..0f1f8b462 100644 --- a/interface/src/app/settings/APSettings.tsx +++ b/interface/src/app/settings/APSettings.tsx @@ -206,7 +206,7 @@ const APSettings = () => { startIcon={} disabled={saving} variant="outlined" - color="primary" + color="secondary" type="submit" onClick={loadData} > diff --git a/interface/src/app/settings/ApplicationSettings.tsx b/interface/src/app/settings/ApplicationSettings.tsx index f25abc407..b6ef0cc23 100644 --- a/interface/src/app/settings/ApplicationSettings.tsx +++ b/interface/src/app/settings/ApplicationSettings.tsx @@ -9,14 +9,14 @@ import { Button, Checkbox, Divider, - Grid, InputAdornment, MenuItem, TextField, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; -import { readHardwareStatus, restart } from 'api/system'; +import { readHardwareStatus } from 'api/system'; import { useRequest } from 'alova/client'; import RestartMonitor from 'app/status/RestartMonitor'; @@ -35,9 +35,9 @@ import { useI18nContext } from 'i18n/i18n-react'; import { numberValue, updateValueDirty, useRest } from 'utils'; import { validate } from 'validators'; -import { getBoardProfile, readSettings, writeSettings } from '../../api/app'; +import { API, getBoardProfile, readSettings, writeSettings } from '../../api/app'; import { BOARD_PROFILES } from '../main/types'; -import type { Settings } from '../main/types'; +import type { APIcall, Settings } from '../main/types'; import { createSettingsValidator } from '../main/validators'; export function boardProfileSelectItems() { @@ -80,6 +80,10 @@ const ApplicationSettings = () => { const [fieldErrors, setFieldErrors] = useState(); + const { send: sendAPI } = useRequest((data: APIcall) => API(data), { + immediate: false + }); + const { loading: processingBoard, send: readBoardProfile } = useRequest( (boardProfile: string) => getBoardProfile(boardProfile), { @@ -102,9 +106,14 @@ const ApplicationSettings = () => { }); }); - const { send: restartCommand } = useRequest(restart(), { - immediate: false - }); + const doRestart = async () => { + setRestarting(true); + await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch( + (error: Error) => { + toast.error(error.message); + } + ); + }; const updateBoardProfile = async (board_profile: string) => { await readBoardProfile(board_profile).catch((error: Error) => { @@ -114,6 +123,19 @@ const ApplicationSettings = () => { useLayoutTitle(LL.SETTINGS_OF(LL.APPLICATION())); + const SecondsInputProps = { + endAdornment: {LL.SECONDS()} + }; + const MilliSecondsInputProps = { + endAdornment: ms + }; + const MinutesInputProps = { + endAdornment: {LL.MINUTES()} + }; + const HoursInputProps = { + endAdornment: {LL.HOURS()} + }; + const content = () => { if (!data || !hardwareData) { return ; @@ -145,10 +167,7 @@ const ApplicationSettings = () => { const restart = async () => { await validateAndSubmit(); - await restartCommand().catch((error: Error) => { - toast.error(error.message); - }); - setRestarting(true); + await doRestart(); }; return ( @@ -191,19 +210,12 @@ const ApplicationSettings = () => { label={LL.ENABLE_MODBUS()} /> {data.modbus_enabled && ( - - + + { margin="normal" /> - + { margin="normal" /> - + ms + slotProps={{ + input: MilliSecondsInputProps }} - fullWidth variant="outlined" value={numberValue(data.modbus_timeout)} type="number" @@ -254,31 +264,23 @@ const ApplicationSettings = () => { label={LL.ENABLE_SYSLOG()} /> {data.syslog_enabled && ( - - + + - + { margin="normal" /> - + { ALL - + {LL.SECONDS()} - ) + slotProps={{ + input: SecondsInputProps }} - fullWidth variant="outlined" value={numberValue(data.syslog_mark_interval)} type="number" @@ -358,43 +357,37 @@ const ApplicationSettings = () => { {LL.FORMATTING_OPTIONS()} - - - Deutsch (DE) - English (EN) - Français (FR) - Italiano (IT) - Nederlands (NL) - Norsk (NO) - Polski (PL) - Slovenčina (SK) - Svenska (SV) - Türk (TR) - - - - + + + + Deutsch (DE) + English (EN) + Français (FR) + Italiano (IT) + Nederlands (NL) + Norsk (NO) + Polski (PL) + Slovenčina (SK) + Svenska (SV) + Türk (TR) + + + { 1/0 - + { 1/0 - + { label={LL.BOARD_PROFILE()} value={data.board_profile} disabled={processingBoard || hardwareData.model.startsWith('BBQKees')} - fullWidth variant="outlined" onChange={changeBoardProfile} margin="normal" @@ -483,15 +475,8 @@ const ApplicationSettings = () => { {data.board_profile === 'CUSTOM' && ( <> - - + + { margin="normal" /> - + { margin="normal" /> - + { margin="normal" /> - + { margin="normal" /> - + { margin="normal" /> - + { {data.phy_type !== 0 && ( - - + + { margin="normal" /> - + { margin="normal" /> - + { )} )} - - + + { {LL.HARDWARE()} - + { fieldErrors={fieldErrors} name="remote_timeout" label={LL.REMOTE_TIMEOUT()} - InputProps={{ - endAdornment: ( - {LL.HOURS()} - ) + slotProps={{ + input: HoursInputProps }} variant="outlined" value={numberValue(data.remote_timeout)} @@ -753,13 +723,7 @@ const ApplicationSettings = () => { /> )} - + { disabled={!data.shower_timer} /> - + {data.shower_timer && ( - + {LL.SECONDS()} - ) + slotProps={{ + input: SecondsInputProps }} variant="outlined" value={numberValue(data.shower_min_duration)} @@ -812,15 +766,13 @@ const ApplicationSettings = () => { )} {data.shower_alert && ( <> - + {LL.MINUTES()} - ) + slotProps={{ + input: MinutesInputProps }} variant="outlined" value={numberValue(data.shower_alert_trigger)} @@ -830,15 +782,13 @@ const ApplicationSettings = () => { disabled={!data.shower_timer} /> - + {LL.SECONDS()} - ) + slotProps={{ + input: SecondsInputProps }} variant="outlined" value={numberValue(data.shower_alert_coldshot)} @@ -869,7 +819,7 @@ const ApplicationSettings = () => { + + + + ); + }; + + // useDevVersion = true to force using the dev version + const showFirmwareDialog = (useDevVersion: boolean) => { + if (useDevVersion || data.emsesp_version.includes('dev')) { + setUseDev(true); + } + setOpenDialog(true); + }; + const content = () => { if (!data) { return ; } + const isDev = data.emsesp_version.includes('dev'); + return ( <> @@ -200,7 +300,7 @@ const DownloadUpload = () => { startIcon={} variant="outlined" color="primary" - onClick={() => callAPI('system', 'info')} + onClick={() => callAPIandSave('system', 'info')} > {LL.SUPPORT_INFORMATION(0)} @@ -209,7 +309,7 @@ const DownloadUpload = () => { startIcon={} variant="outlined" color="primary" - onClick={() => callAPI('system', 'allvalues')} + onClick={() => callAPIandSave('system', 'allvalues')} > {LL.ALLVALUES()} @@ -274,112 +374,76 @@ const DownloadUpload = () => { - {LL.VERSION_ON() + ' '} - {data.emsesp_version} ({getPlatform()}) - - {latestVersion && ( - - {LL.THE_LATEST()} {LL.OFFICIAL()} {LL.RELEASE_IS()} -  {latestVersion} -  ( - - {LL.RELEASE_NOTES()} - - ) ( - - {LL.DOWNLOAD(1)} - - ) + + {LL.VERSION() + ':'} {data.emsesp_version} + {data.build_flags && ( + +   ({data.build_flags}) + + )} + + + Platform: {getPlatform()} + + + Release: {isDev ? LL.DEVELOPMENT() : LL.STABLE()} + {!isDev && ( - - )} - {latestDevVersion && ( - - {LL.THE_LATEST()} {LL.DEVELOPMENT()} {LL.RELEASE_IS()} -   - {latestDevVersion} -  ( - - {LL.RELEASE_NOTES()} - - ) ( - - {LL.DOWNLOAD(1)} - - ) + )} + + + +    + {upgradeAvailable ? LL.UPGRADE_AVAILABLE() : LL.LATEST_VERSION()} + {upgradeAvailable && internet_live && data.psram ? ( - - )} + ) : ( + <> +    + + {LL.DOWNLOAD(1)} v + {isDev ? latestDevVersion : latestVersion} + + + )} + + + {renderUploadDialog()} {LL.UPLOAD()} - + {LL.UPLOAD_TEXT()} - {restartNeeded ? ( - - - - ) : ( - - )} + ); }; return ( - - {restarting ? ( - - ) : ( - content() - )} - + {restarting ? : content()} ); }; diff --git a/interface/src/app/settings/MqttSettings.tsx b/interface/src/app/settings/MqttSettings.tsx index 715bb1d2c..cd41a45e4 100644 --- a/interface/src/app/settings/MqttSettings.tsx +++ b/interface/src/app/settings/MqttSettings.tsx @@ -5,12 +5,12 @@ import WarningIcon from '@mui/icons-material/Warning'; import { Button, Checkbox, - Grid, InputAdornment, MenuItem, TextField, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid2'; import * as MqttApi from 'api/mqtt'; @@ -59,6 +59,10 @@ const MqttSettings = () => { updateDataValue ); + const SecondsInputProps = { + endAdornment: {LL.SECONDS()} + }; + const content = () => { if (!data) { return ; @@ -86,19 +90,12 @@ const MqttSettings = () => { } label={LL.ENABLE_MQTT()} /> - - + + { margin="normal" /> - + { margin="normal" /> - + - + - + - + - + {LL.SECONDS()} - ) + slotProps={{ + input: SecondsInputProps }} - fullWidth variant="outlined" value={numberValue(data.keep_alive)} type="number" @@ -182,12 +171,11 @@ const MqttSettings = () => { margin="normal" /> - + { )} - { } label={LL.MQTT_RETAIN_FLAG()} /> - {LL.FORMATTING()} @@ -251,7 +236,6 @@ const MqttSettings = () => { name="nested_format" label={LL.MQTT_FORMAT()} value={data.nested_format} - fullWidth variant="outlined" onChange={updateFormValue} margin="normal" @@ -271,15 +255,8 @@ const MqttSettings = () => { label={LL.MQTT_RESPONSE()} /> {!data.ha_enabled && ( - - + + { /> {data.publish_single && ( - + { )} {!data.publish_single && ( - - + + { /> {data.ha_enabled && ( - - + + { Domoticz (latest) - + - + { {LL.MQTT_PUBLISH_INTERVALS()} (0=auto) - - + + {LL.SECONDS()} - ) + slotProps={{ + input: SecondsInputProps }} - fullWidth variant="outlined" value={numberValue(data.publish_time_heartbeat)} type="number" @@ -417,134 +369,112 @@ const MqttSettings = () => { margin="normal" /> - + {LL.SECONDS()} - ) - }} - fullWidth variant="outlined" value={numberValue(data.publish_time_boiler)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - + {LL.SECONDS()} - ) - }} - fullWidth variant="outlined" value={numberValue(data.publish_time_thermostat)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - + {LL.SECONDS()} - ) - }} - fullWidth variant="outlined" value={numberValue(data.publish_time_solar)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - + {LL.SECONDS()} - ) - }} - fullWidth variant="outlined" value={numberValue(data.publish_time_mixer)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - + {LL.SECONDS()} - ) - }} - fullWidth variant="outlined" value={numberValue(data.publish_time_water)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - + {LL.SECONDS()} - ) - }} - fullWidth variant="outlined" value={numberValue(data.publish_time_sensor)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - + {LL.SECONDS()} - ) - }} label={LL.DEFAULT(0)} - fullWidth variant="outlined" value={numberValue(data.publish_time_other)} type="number" onChange={updateFormValue} margin="normal" + slotProps={{ + input: SecondsInputProps + }} /> - {dirtyFlags && dirtyFlags.length !== 0 && ( @@ -375,7 +375,7 @@ const NetworkSettings = () => { startIcon={} disabled={saving} variant="outlined" - color="primary" + color="secondary" type="submit" onClick={loadData} > diff --git a/interface/src/app/settings/security/ManageUsers.tsx b/interface/src/app/settings/security/ManageUsers.tsx index 0cf5f191c..affcf6496 100644 --- a/interface/src/app/settings/security/ManageUsers.tsx +++ b/interface/src/app/settings/security/ManageUsers.tsx @@ -227,7 +227,7 @@ const ManageUsers = () => { startIcon={} disabled={saving} variant="outlined" - color="primary" + color="secondary" type="submit" onClick={onCancelSubmit} > diff --git a/interface/src/app/settings/security/SecuritySettings.tsx b/interface/src/app/settings/security/SecuritySettings.tsx index 4106af2ac..b27128dfb 100644 --- a/interface/src/app/settings/security/SecuritySettings.tsx +++ b/interface/src/app/settings/security/SecuritySettings.tsx @@ -85,7 +85,7 @@ const SecuritySettings = () => { startIcon={} disabled={saving} variant="outlined" - color="primary" + color="secondary" type="submit" onClick={loadData} > diff --git a/interface/src/app/status/HardwareStatus.tsx b/interface/src/app/status/HardwareStatus.tsx index 5cf96e1a2..16e3204c1 100644 --- a/interface/src/app/status/HardwareStatus.tsx +++ b/interface/src/app/status/HardwareStatus.tsx @@ -47,16 +47,18 @@ const HardwareStatus = () => { - - {data.model ? ( + {data.model ? ( + - ) : ( + + ) : ( + - )} - + + )} { onChange={updateLocalTime} disabled={processing} fullWidth - InputLabelProps={{ - shrink: true + slotProps={{ + inputLabel: { + shrink: true + } }} /> diff --git a/interface/src/app/status/RestartMonitor.tsx b/interface/src/app/status/RestartMonitor.tsx index 685cac3e8..83377d1ee 100644 --- a/interface/src/app/status/RestartMonitor.tsx +++ b/interface/src/app/status/RestartMonitor.tsx @@ -1,50 +1,79 @@ -import { type FC, useEffect, useRef, useState } from 'react'; +import { useState } from 'react'; -import * as SystemApi from 'api/system'; +import { + Box, + CircularProgress, + Dialog, + DialogContent, + Typography +} from '@mui/material'; -import { useRequest } from 'alova/client'; -import { FormLoader } from 'components'; +import { readHardwareStatus } from 'api/system'; + +import { dialogStyle } from 'CustomTheme'; +import { useAutoRequest } from 'alova/client'; +import MessageBox from 'components/MessageBox'; import { useI18nContext } from 'i18n/i18n-react'; -const RESTART_TIMEOUT = 2 * 60 * 1000; // 2 minutes -const POLL_INTERVAL = 1000; // every 1 second +const RestartMonitor = () => { + const [errorMessage, setErrorMessage] = useState(); -export interface RestartMonitorProps { - message?: string; -} - -const RestartMonitor: FC = ({ message }) => { - const [failed, setFailed] = useState(false); - const [timeoutId, setTimeoutId] = useState(); const { LL } = useI18nContext(); - const timeoutAt = useRef(new Date().getTime() + RESTART_TIMEOUT); - const { send } = useRequest(SystemApi.readSystemStatus); + let count = 0; - const poll = useRef(async () => { - try { - await send(); - document.location.href = '/'; - } catch { - if (new Date().getTime() < timeoutAt.current) { - setTimeoutId(setTimeout(poll.current, POLL_INTERVAL)); - } else { - setFailed(true); + const { data } = useAutoRequest(readHardwareStatus, { + pollingTime: 1000, + force: true, + initialData: { status: 'Getting ready...' }, + async middleware(_, next) { + if (count++ >= 1) { + // skip first request (1 seconds) to allow AsyncWS to send its response + await next(); } } - }); - - useEffect(() => { - void poll.current(); - }, []); - - useEffect(() => () => timeoutId && clearTimeout(timeoutId), [timeoutId]); + }) + .onSuccess((event) => { + if (event.data.status === 'ready' || event.data.status === undefined) { + document.location.href = '/'; + } + }) + .onError((error, _method) => { + setErrorMessage(error.message); + }); return ( - + + + + + {data?.status === 'uploading' + ? LL.WAIT_FIRMWARE() + : data?.status === 'restarting' + ? LL.APPLICATION_RESTARTING() + : data?.status === 'ready' + ? LL.RESTARTING_PRE() + : LL.RESTARTING_POST()} + + + {LL.PLEASE_WAIT()}… + + + {errorMessage ? ( + + ) : ( + + + + )} + + + ); }; diff --git a/interface/src/app/status/Status.tsx b/interface/src/app/status/Status.tsx index cca48dbee..6f274dd96 100644 --- a/interface/src/app/status/Status.tsx +++ b/interface/src/app/status/Status.tsx @@ -30,10 +30,11 @@ import { } from '@mui/material'; import * as SystemApi from 'api/system'; +import { API } from 'api/app'; import { dialogStyle } from 'CustomTheme'; import { useAutoRequest, useRequest } from 'alova/client'; -import { busConnectionStatus } from 'app/main/types'; +import { type APIcall, busConnectionStatus } from 'app/main/types'; import { FormLoader, SectionContent, useLayoutTitle } from 'components'; import ListMenuItem from 'components/layout/ListMenuItem'; import { AuthenticatedContext } from 'contexts/authentication'; @@ -52,31 +53,24 @@ const SystemStatus = () => { const { me } = useContext(AuthenticatedContext); const [confirmRestart, setConfirmRestart] = useState(false); - const [processing, setProcessing] = useState(false); const [restarting, setRestarting] = useState(); - const { send: restartCommand } = useRequest(SystemApi.restart(), { + const { send: sendAPI } = useRequest((data: APIcall) => API(data), { immediate: false }); - const { send: partitionCommand } = useRequest(SystemApi.partition(), { - immediate: false - }); - - const { send: factoryPartitionCommand } = useRequest( - SystemApi.factoryPartition(), - { - immediate: false - } - ); - const { data: data, send: loadData, error } = useAutoRequest(SystemApi.readSystemStatus, { initialData: [], - pollingTime: 5000 + pollingTime: 5000, + async middleware(_, next) { + if (!restarting) { + await next(); + } + } }); const theme = useTheme(); @@ -207,49 +201,14 @@ const SystemStatus = () => { const activeHighlight = (value: boolean) => value ? theme.palette.success.main : theme.palette.info.main; - const restart = async () => { - setProcessing(true); - await restartCommand() - .then(() => { - setRestarting(true); - }) - .catch((error: Error) => { + const doRestart = async () => { + setConfirmRestart(false); + setRestarting(true); + await sendAPI({ device: 'system', cmd: 'restart', id: 0 }).catch( + (error: Error) => { toast.error(error.message); - }) - .finally(() => { - setConfirmRestart(false); - setProcessing(false); - }); - }; - - const partition = async () => { - setProcessing(true); - await partitionCommand() - .then(() => { - setRestarting(true); - }) - .catch((error: Error) => { - toast.error(error.message); - }) - .finally(() => { - setConfirmRestart(false); - setProcessing(false); - }); - }; - - const factoryPartition = async () => { - setProcessing(true); - await factoryPartitionCommand() - .then(() => { - setRestarting(true); - }) - .catch((error: Error) => { - toast.error(error.message); - }) - .finally(() => { - setConfirmRestart(false); - setProcessing(false); - }); + } + ); }; const renderRestartDialog = () => ( @@ -265,38 +224,14 @@ const SystemStatus = () => { startIcon={} variant="outlined" onClick={() => setConfirmRestart(false)} - disabled={processing} color="secondary" > {LL.CANCEL()} - {data.has_loader && ( - - )} - {data.has_partition && ( - - )} + {dirtyFlags && dirtyFlags.length !== 0 && ( - {dirtyFlags && dirtyFlags.length !== 0 && ( - - )} - + )} ; -const ValidatedPasswordField: FC = ({ - InputProps, - ...props -}) => { +const ValidatedPasswordField: FC = ({ ...props }) => { const [showPassword, setShowPassword] = useState(false); return ( - setShowPassword(!showPassword)} edge="end"> - {showPassword ? : } - - - ) + slotProps={{ + input: { + endAdornment: ( + + setShowPassword(!showPassword)} edge="end"> + {showPassword ? : } + + + ) + } }} /> ); diff --git a/interface/src/components/layout/LayoutMenu.tsx b/interface/src/components/layout/LayoutMenu.tsx index 734010a3d..4b9051d03 100644 --- a/interface/src/components/layout/LayoutMenu.tsx +++ b/interface/src/components/layout/LayoutMenu.tsx @@ -138,23 +138,22 @@ const LayoutMenu = () => { disabled={!me.admin} to="/settings" /> - + - + - {me.username} + {me.username} { - + - {/* */} - {/* */} diff --git a/interface/src/components/upload/DragNdrop.tsx b/interface/src/components/upload/DragNdrop.tsx index a917ca862..a659bd106 100644 --- a/interface/src/components/upload/DragNdrop.tsx +++ b/interface/src/components/upload/DragNdrop.tsx @@ -8,7 +8,7 @@ import { Box, Button } from '@mui/material'; import { useI18nContext } from 'i18n/i18n-react'; -import './drag-drop.css'; +import './dragNdrop.css'; const DragNdrop = ({ onFileSelected }) => { const [file, setFile] = useState(); @@ -87,7 +87,7 @@ const DragNdrop = ({ onFileSelected }) => {