This commit is contained in:
MichaelDvP
2024-11-25 11:49:31 +01:00
49 changed files with 425 additions and 467 deletions

View File

@@ -27,6 +27,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/).
- analog dac output and inputs on dac pins [#2201](https://github.com/emsesp/EMS-ESP32/discussions/2201)
- api memory leak [#2216](https://github.com/emsesp/EMS-ESP32/issues/2216)
- modbus multiple mixers [#2229](https://github.com/emsesp/EMS-ESP32/issues/2229)
- Last Will (LWT) not set on MQTT Connect [#2247](https://github.com/emsesp/EMS-ESP32/issues/2247)
## Changed

View File

@@ -3629,6 +3629,10 @@
| flowsettemp | setpoint flow temperature | uint8 (>=0<=254) | C | true | HC | 2 | 1 | 1 |
| pumpstatus | pump status (PC1) | boolean | | true | HC | 3 | 1 | 1 |
| flowtempvf | flow temperature in header (T0/Vf) | uint16 (>=0<=3199) | C | false | HC | 6 | 1 | 1/10 |
### IPM2
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|-|-|-|-|-|-|-|-|-|
| flowtemphc | flow temperature (TC1) | uint16 (>=0<=3199) | C | false | HC | 0 | 1 | 1/10 |
| valvestatus | mixing valve actuator (VC1) | uint8 (>=0<=100) | % | false | HC | 1 | 1 | 1 |
| flowsettemp | setpoint flow temperature | uint8 (>=0<=254) | C | true | HC | 2 | 1 | 1 |
@@ -5610,6 +5614,10 @@
| disinfectiontemp | disinfection temperature | uint8 (>=0<=254) | C | true | DHW | 8 | 1 | 1 |
| circ | circulation active | boolean | | true | DHW | 9 | 1 | 1 |
| circmode | circulation pump mode | enum [off\|on\|auto\|own prog] | | true | DHW | 10 | 1 | 1 |
### IPM2
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|-|-|-|-|-|-|-|-|-|
| seltemp | selected temperature | uint8 (>=0<=254) | C | true | DHW | 0 | 1 | 1 |
| temp | current temperature | uint16 (>=0<=3199) | C | false | DHW | 1 | 1 | 1/10 |
| curtemp2 | current extern temperature | uint16 (>=0<=3199) | C | false | DHW | 2 | 1 | 1/10 |
@@ -5654,51 +5662,51 @@
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|-|-|-|-|-|-|-|-|-|
| temp | current temperature | uint16 (>=0<=3199) | C | false | DHW | 1 | 1 | 1/10 |
| storagetemp1 | storage intern temperature | uint16 (>=0<=3199) | C | false | DHW | 1 | 1 | 1/10 |
| coldtemp | cold water | uint16 (>=0<=3199) | C | false | DHW | 2 | 1 | 1/10 |
| temp5 | temperature 5 | uint16 (>=0<=3199) | C | false | DHW | 3 | 1 | 1/10 |
| rettemp | return temperature | uint16 (>=0<=3199) | C | false | DHW | 4 | 1 | 1/10 |
| storagetemp1 | storage intern temperature | uint16 (>=0<=3199) | C | false | DHW | 16 | 1 | 1/10 |
| coldtemp | cold water | uint16 (>=0<=3199) | C | false | DHW | 17 | 1 | 1/10 |
| temp5 | temperature 5 | uint16 (>=0<=3199) | C | false | DHW | 18 | 1 | 1/10 |
| rettemp | return temperature | uint16 (>=0<=3199) | C | false | DHW | 19 | 1 | 1/10 |
| pump | pump | boolean | | false | DHW | 4 | 1 | 1 |
| maxtemp | maximum temperature | uint8 (>=0<=254) | C | true | DHW | 12 | 1 | 1 |
| seltemp | selected temperature | uint8 (>=0<=254) | C | true | DHW | 0 | 1 | 1 |
| redtemp | reduced temperature | uint8 (>=0<=254) | C | true | DHW | 14 | 1 | 1 |
| hottemp | extra hot temperature | uint8 (>=0<=254) | C | true | DHW | 9 | 1 | 1 |
| dailytemp | daily temperature | uint8 (>=0<=254) | C | true | DHW | 10 | 1 | 1 |
| hottemp | extra hot temperature | uint8 (>=0<=254) | C | true | DHW | 20 | 1 | 1 |
| dailytemp | daily temperature | uint8 (>=0<=254) | C | true | DHW | 21 | 1 | 1 |
| disinfectiontemp | disinfection temperature | uint8 (>=0<=254) | C | true | DHW | 8 | 1 | 1 |
| circ | circulation active | boolean | | true | DHW | 9 | 1 | 1 |
| circmode | circulation pump mode | enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous] | | true | DHW | 10 | 1 | 1 |
| circtc | circulation time controled | boolean | | true | DHW | 14 | 1 | 1 |
| keepwarm | keep warm | boolean | | true | DHW | 15 | 1 | 1 |
| status2 | status 2 | enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold] | | false | DHW | 16 | 1 | 1 |
| pumpmod | pump modulation | uint8 (>=0<=100) | % | false | DHW | 17 | 1 | 1 |
| flow | flow rate | uint16 (>=0<=3199) | l/min | false | DHW | 18 | 1 | 1/10 |
| valvereturn | return valve | uint8 (>=0<=100) | % | true | DHW | 19 | 1 | 1 |
| deltatret | temp. diff. return valve | uint8 (>=0<=254) | K | true | DHW | 20 | 1 | 1 |
| errordisp | error display | enum [off\|normal\|inverted] | | true | DHW | 21 | 1 | 1 |
| circtc | circulation time controled | boolean | | true | DHW | 22 | 1 | 1 |
| keepwarm | keep warm | boolean | | true | DHW | 23 | 1 | 1 |
| status2 | status 2 | enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold] | | false | DHW | 24 | 1 | 1 |
| pumpmod | pump modulation | uint8 (>=0<=100) | % | false | DHW | 25 | 1 | 1 |
| flow | flow rate | uint16 (>=0<=3199) | l/min | false | DHW | 26 | 1 | 1/10 |
| valvereturn | return valve | uint8 (>=0<=100) | % | true | DHW | 27 | 1 | 1 |
| deltatret | temp. diff. return valve | uint8 (>=0<=254) | K | true | DHW | 28 | 1 | 1 |
| errordisp | error display | enum [off\|normal\|inverted] | | true | DHW | 29 | 1 | 1 |
### SM200, MS200
| shortname | fullname | type | uom | writeable | tag type | register offset | register count | scale factor |
|-|-|-|-|-|-|-|-|-|
| temp | current temperature | uint16 (>=0<=3199) | C | false | DHW | 1 | 1 | 1/10 |
| storagetemp1 | storage intern temperature | uint16 (>=0<=3199) | C | false | DHW | 1 | 1 | 1/10 |
| coldtemp | cold water | uint16 (>=0<=3199) | C | false | DHW | 2 | 1 | 1/10 |
| temp5 | temperature 5 | uint16 (>=0<=3199) | C | false | DHW | 3 | 1 | 1/10 |
| rettemp | return temperature | uint16 (>=0<=3199) | C | false | DHW | 4 | 1 | 1/10 |
| storagetemp1 | storage intern temperature | uint16 (>=0<=3199) | C | false | DHW | 16 | 1 | 1/10 |
| coldtemp | cold water | uint16 (>=0<=3199) | C | false | DHW | 17 | 1 | 1/10 |
| temp5 | temperature 5 | uint16 (>=0<=3199) | C | false | DHW | 18 | 1 | 1/10 |
| rettemp | return temperature | uint16 (>=0<=3199) | C | false | DHW | 19 | 1 | 1/10 |
| pump | pump | boolean | | false | DHW | 4 | 1 | 1 |
| maxtemp | maximum temperature | uint8 (>=0<=254) | C | true | DHW | 12 | 1 | 1 |
| seltemp | selected temperature | uint8 (>=0<=254) | C | true | DHW | 0 | 1 | 1 |
| redtemp | reduced temperature | uint8 (>=0<=254) | C | true | DHW | 14 | 1 | 1 |
| hottemp | extra hot temperature | uint8 (>=0<=254) | C | true | DHW | 9 | 1 | 1 |
| dailytemp | daily temperature | uint8 (>=0<=254) | C | true | DHW | 10 | 1 | 1 |
| hottemp | extra hot temperature | uint8 (>=0<=254) | C | true | DHW | 20 | 1 | 1 |
| dailytemp | daily temperature | uint8 (>=0<=254) | C | true | DHW | 21 | 1 | 1 |
| disinfectiontemp | disinfection temperature | uint8 (>=0<=254) | C | true | DHW | 8 | 1 | 1 |
| circ | circulation active | boolean | | true | DHW | 9 | 1 | 1 |
| circmode | circulation pump mode | enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous] | | true | DHW | 10 | 1 | 1 |
| circtc | circulation time controled | boolean | | true | DHW | 14 | 1 | 1 |
| keepwarm | keep warm | boolean | | true | DHW | 15 | 1 | 1 |
| status2 | status 2 | enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold] | | false | DHW | 16 | 1 | 1 |
| pumpmod | pump modulation | uint8 (>=0<=100) | % | false | DHW | 17 | 1 | 1 |
| flow | flow rate | uint16 (>=0<=3199) | l/min | false | DHW | 18 | 1 | 1/10 |
| valvereturn | return valve | uint8 (>=0<=100) | % | true | DHW | 19 | 1 | 1 |
| deltatret | temp. diff. return valve | uint8 (>=0<=254) | K | true | DHW | 20 | 1 | 1 |
| errordisp | error display | enum [off\|normal\|inverted] | | true | DHW | 21 | 1 | 1 |
| circtc | circulation time controled | boolean | | true | DHW | 22 | 1 | 1 |
| keepwarm | keep warm | boolean | | true | DHW | 23 | 1 | 1 |
| status2 | status 2 | enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold] | | false | DHW | 24 | 1 | 1 |
| pumpmod | pump modulation | uint8 (>=0<=100) | % | false | DHW | 25 | 1 | 1 |
| flow | flow rate | uint16 (>=0<=3199) | l/min | false | DHW | 26 | 1 | 1/10 |
| valvereturn | return valve | uint8 (>=0<=100) | % | true | DHW | 27 | 1 | 1 |
| deltatret | temp. diff. return valve | uint8 (>=0<=254) | K | true | DHW | 28 | 1 | 1 |
| errordisp | error display | enum [off\|normal\|inverted] | | true | DHW | 29 | 1 | 1 |

View File

@@ -4841,11 +4841,11 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"IPM",mixer,100,flowsettemp,setpoint flow temperature,uint8 (>=0<=254),C,true,number.mixer_hc1_setpoint_flow_temperature,number.mixer_hc1_flowsettemp,7,1,1,2,1
"IPM",mixer,100,pumpstatus,pump status (PC1),boolean, ,true,switch.mixer_hc1_pump_status_(PC1),switch.mixer_hc1_pumpstatus,7,1,1,3,1
"IPM",mixer,100,flowtempvf,flow temperature in header (T0/Vf),uint16 (>=0<=3199),C,false,sensor.mixer_hc1_flow_temperature_in_header_(T0/Vf),sensor.mixer_hc1_flowtempvf,7,1,1/10,6,1
"IPM",mixer,102,flowtemphc,flow temperature (TC1),uint16 (>=0<=3199),C,false,sensor.mixer_hc1_flow_temperature_(TC1),sensor.mixer_hc1_flowtemphc,7,1,1/10,0,1
"IPM",mixer,102,valvestatus,mixing valve actuator (VC1),uint8 (>=0<=100),%,false,sensor.mixer_hc1_mixing_valve_actuator_(VC1),sensor.mixer_hc1_valvestatus,7,1,1,1,1
"IPM",mixer,102,flowsettemp,setpoint flow temperature,uint8 (>=0<=254),C,true,number.mixer_hc1_setpoint_flow_temperature,number.mixer_hc1_flowsettemp,7,1,1,2,1
"IPM",mixer,102,pumpstatus,pump status (PC1),boolean, ,true,switch.mixer_hc1_pump_status_(PC1),switch.mixer_hc1_pumpstatus,7,1,1,3,1
"IPM",mixer,102,flowtempvf,flow temperature in header (T0/Vf),uint16 (>=0<=3199),C,false,sensor.mixer_hc1_flow_temperature_in_header_(T0/Vf),sensor.mixer_hc1_flowtempvf,7,1,1/10,6,1
"IPM2",mixer,102,flowtemphc,flow temperature (TC1),uint16 (>=0<=3199),C,false,sensor.mixer_hc1_flow_temperature_(TC1),sensor.mixer_hc1_flowtemphc,7,1,1/10,0,1
"IPM2",mixer,102,valvestatus,mixing valve actuator (VC1),uint8 (>=0<=100),%,false,sensor.mixer_hc1_mixing_valve_actuator_(VC1),sensor.mixer_hc1_valvestatus,7,1,1,1,1
"IPM2",mixer,102,flowsettemp,setpoint flow temperature,uint8 (>=0<=254),C,true,number.mixer_hc1_setpoint_flow_temperature,number.mixer_hc1_flowsettemp,7,1,1,2,1
"IPM2",mixer,102,pumpstatus,pump status (PC1),boolean, ,true,switch.mixer_hc1_pump_status_(PC1),switch.mixer_hc1_pumpstatus,7,1,1,3,1
"IPM2",mixer,102,flowtempvf,flow temperature in header (T0/Vf),uint16 (>=0<=3199),C,false,sensor.mixer_hc1_flow_temperature_in_header_(T0/Vf),sensor.mixer_hc1_flowtempvf,7,1,1/10,6,1
"MM50",mixer,159,flowtemphc,flow temperature (TC1),uint16 (>=0<=3199),C,false,sensor.mixer_hc1_flow_temperature_(TC1),sensor.mixer_hc1_flowtemphc,7,1,1/10,0,1
"MM50",mixer,159,valvestatus,mixing valve actuator (VC1),uint8 (>=0<=100),%,false,sensor.mixer_hc1_mixing_valve_actuator_(VC1),sensor.mixer_hc1_valvestatus,7,1,1,1,1
"MM50",mixer,159,flowsettemp,setpoint flow temperature,uint8 (>=0<=254),C,true,number.mixer_hc1_setpoint_flow_temperature,number.mixer_hc1_flowsettemp,7,1,1,2,1
@@ -5224,17 +5224,17 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"IPM",water,100,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,8,1
"IPM",water,100,circ,circulation active,boolean, ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,9,1
"IPM",water,100,circmode,circulation pump mode,enum [off\|on\|auto\|own prog], ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,10,1
"IPM",water,102,seltemp,selected temperature,uint8 (>=0<=254),C,true,number.water_dhw_selected_temperature,number.water_dhw_seltemp,19,9,1,0,1
"IPM",water,102,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,1,1
"IPM",water,102,curtemp2,current extern temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_extern_temperature,sensor.water_dhw_curtemp2,19,9,1/10,2,1
"IPM",water,102,hydrTemp,hydraulic header temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_hydraulic_header_temperature,sensor.water_dhw_hydrTemp,19,9,1/10,3,1
"IPM",water,102,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,4,1
"IPM",water,102,flowtempoffset,flow temperature offset,uint8 (>=0<=254),C,true,number.water_dhw_flow_temperature_offset,number.water_dhw_flowtempoffset,19,9,1,5,1
"IPM",water,102,hyston,hysteresis on temperature,int8 (>=-126<=126),C,true,number.water_dhw_hysteresis_on_temperature,number.water_dhw_hyston,19,9,1,6,1
"IPM",water,102,hystoff,hysteresis off temperature,int8 (>=-126<=126),C,true,number.water_dhw_hysteresis_off_temperature,number.water_dhw_hystoff,19,9,1,7,1
"IPM",water,102,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,8,1
"IPM",water,102,circ,circulation active,boolean, ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,9,1
"IPM",water,102,circmode,circulation pump mode,enum [off\|on\|auto\|own prog], ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,10,1
"IPM2",water,102,seltemp,selected temperature,uint8 (>=0<=254),C,true,number.water_dhw_selected_temperature,number.water_dhw_seltemp,19,9,1,0,1
"IPM2",water,102,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,1,1
"IPM2",water,102,curtemp2,current extern temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_extern_temperature,sensor.water_dhw_curtemp2,19,9,1/10,2,1
"IPM2",water,102,hydrTemp,hydraulic header temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_hydraulic_header_temperature,sensor.water_dhw_hydrTemp,19,9,1/10,3,1
"IPM2",water,102,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,4,1
"IPM2",water,102,flowtempoffset,flow temperature offset,uint8 (>=0<=254),C,true,number.water_dhw_flow_temperature_offset,number.water_dhw_flowtempoffset,19,9,1,5,1
"IPM2",water,102,hyston,hysteresis on temperature,int8 (>=-126<=126),C,true,number.water_dhw_hysteresis_on_temperature,number.water_dhw_hyston,19,9,1,6,1
"IPM2",water,102,hystoff,hysteresis off temperature,int8 (>=-126<=126),C,true,number.water_dhw_hysteresis_off_temperature,number.water_dhw_hystoff,19,9,1,7,1
"IPM2",water,102,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,8,1
"IPM2",water,102,circ,circulation active,boolean, ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,9,1
"IPM2",water,102,circmode,circulation pump mode,enum [off\|on\|auto\|own prog], ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,10,1
"MM100",water,160,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,1,1
"MM100",water,160,tempstatus,temperature switch in assigned dhw (MC1),int8 (>=-126<=126), ,false,sensor.water_dhw_temperature_switch_in_assigned_dhw_(MC1),sensor.water_dhw_tempstatus,19,9,1,11,1
"MM100",water,160,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,4,1
@@ -5255,50 +5255,50 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"MM200",water,161,requiredtemp,required temperature,uint8 (>=0<=254),C,true,number.water_dhw_required_temperature,number.water_dhw_requiredtemp,19,9,1,15,1
"MM200",water,161,circ,circulation active,boolean, ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,9,1
"MM200",water,161,circmode,circulation pump mode,enum [off\|on\|auto\|own prog], ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,10,1
"SM100, MS100",water,163,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw3_current_temperature,sensor.water_dhw3_temp,19,11,1/10,1,1
"SM100, MS100",water,163,storagetemp1,storage intern temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw3_storage_intern_temperature,sensor.water_dhw3_storagetemp1,19,11,1/10,1,1
"SM100, MS100",water,163,coldtemp,cold water,uint16 (>=0<=3199),C,false,sensor.water_dhw3_cold_water,sensor.water_dhw3_coldtemp,19,11,1/10,2,1
"SM100, MS100",water,163,temp5,temperature 5,uint16 (>=0<=3199),C,false,sensor.water_dhw3_temperature_5,sensor.water_dhw3_temp5,19,11,1/10,3,1
"SM100, MS100",water,163,rettemp,return temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw3_return_temperature,sensor.water_dhw3_rettemp,19,11,1/10,4,1
"SM100, MS100",water,163,pump,pump,boolean, ,false,binary_sensor.water_dhw3_pump,binary_sensor.water_dhw3_pump,19,11,1,4,1
"SM100, MS100",water,163,maxtemp,maximum temperature,uint8 (>=0<=254),C,true,number.water_dhw3_maximum_temperature,number.water_dhw3_maxtemp,19,11,1,12,1
"SM100, MS100",water,163,seltemp,selected temperature,uint8 (>=0<=254),C,true,number.water_dhw3_selected_temperature,number.water_dhw3_seltemp,19,11,1,0,1
"SM100, MS100",water,163,redtemp,reduced temperature,uint8 (>=0<=254),C,true,number.water_dhw3_reduced_temperature,number.water_dhw3_redtemp,19,11,1,14,1
"SM100, MS100",water,163,hottemp,extra hot temperature,uint8 (>=0<=254),C,true,number.water_dhw3_extra_hot_temperature,number.water_dhw3_hottemp,19,11,1,9,1
"SM100, MS100",water,163,dailytemp,daily temperature,uint8 (>=0<=254),C,true,number.water_dhw3_daily_temperature,number.water_dhw3_dailytemp,19,11,1,10,1
"SM100, MS100",water,163,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw3_disinfection_temperature,number.water_dhw3_disinfectiontemp,19,11,1,8,1
"SM100, MS100",water,163,circ,circulation active,boolean, ,true,switch.water_dhw3_circulation_active,switch.water_dhw3_circ,19,11,1,9,1
"SM100, MS100",water,163,circmode,circulation pump mode,enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous], ,true,select.water_dhw3_circulation_pump_mode,select.water_dhw3_circmode,19,11,1,10,1
"SM100, MS100",water,163,circtc,circulation time controled,boolean, ,true,switch.water_dhw3_circulation_time_controled,switch.water_dhw3_circtc,19,11,1,14,1
"SM100, MS100",water,163,keepwarm,keep warm,boolean, ,true,switch.water_dhw3_keep_warm,switch.water_dhw3_keepwarm,19,11,1,15,1
"SM100, MS100",water,163,status2,status 2,enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold], ,false,sensor.water_dhw3_status_2,sensor.water_dhw3_status2,19,11,1,16,1
"SM100, MS100",water,163,pumpmod,pump modulation,uint8 (>=0<=100),%,false,sensor.water_dhw3_pump_modulation,sensor.water_dhw3_pumpmod,19,11,1,17,1
"SM100, MS100",water,163,flow,flow rate,uint16 (>=0<=3199),l/min,false,sensor.water_dhw3_flow_rate,sensor.water_dhw3_flow,19,11,1/10,18,1
"SM100, MS100",water,163,valvereturn,return valve,uint8 (>=0<=100),%,true,number.water_dhw3_return_valve,number.water_dhw3_valvereturn,19,11,1,19,1
"SM100, MS100",water,163,deltatret,temp. diff. return valve,uint8 (>=0<=254),K,true,number.water_dhw3_temp._diff._return_valve,number.water_dhw3_deltatret,19,11,1,20,1
"SM100, MS100",water,163,errordisp,error display,enum [off\|normal\|inverted], ,true,select.water_dhw3_error_display,select.water_dhw3_errordisp,19,11,1,21,1
"SM200, MS200",water,164,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw3_current_temperature,sensor.water_dhw3_temp,19,11,1/10,1,1
"SM200, MS200",water,164,storagetemp1,storage intern temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw3_storage_intern_temperature,sensor.water_dhw3_storagetemp1,19,11,1/10,1,1
"SM200, MS200",water,164,coldtemp,cold water,uint16 (>=0<=3199),C,false,sensor.water_dhw3_cold_water,sensor.water_dhw3_coldtemp,19,11,1/10,2,1
"SM200, MS200",water,164,temp5,temperature 5,uint16 (>=0<=3199),C,false,sensor.water_dhw3_temperature_5,sensor.water_dhw3_temp5,19,11,1/10,3,1
"SM200, MS200",water,164,rettemp,return temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw3_return_temperature,sensor.water_dhw3_rettemp,19,11,1/10,4,1
"SM200, MS200",water,164,pump,pump,boolean, ,false,binary_sensor.water_dhw3_pump,binary_sensor.water_dhw3_pump,19,11,1,4,1
"SM200, MS200",water,164,maxtemp,maximum temperature,uint8 (>=0<=254),C,true,number.water_dhw3_maximum_temperature,number.water_dhw3_maxtemp,19,11,1,12,1
"SM200, MS200",water,164,seltemp,selected temperature,uint8 (>=0<=254),C,true,number.water_dhw3_selected_temperature,number.water_dhw3_seltemp,19,11,1,0,1
"SM200, MS200",water,164,redtemp,reduced temperature,uint8 (>=0<=254),C,true,number.water_dhw3_reduced_temperature,number.water_dhw3_redtemp,19,11,1,14,1
"SM200, MS200",water,164,hottemp,extra hot temperature,uint8 (>=0<=254),C,true,number.water_dhw3_extra_hot_temperature,number.water_dhw3_hottemp,19,11,1,9,1
"SM200, MS200",water,164,dailytemp,daily temperature,uint8 (>=0<=254),C,true,number.water_dhw3_daily_temperature,number.water_dhw3_dailytemp,19,11,1,10,1
"SM200, MS200",water,164,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw3_disinfection_temperature,number.water_dhw3_disinfectiontemp,19,11,1,8,1
"SM200, MS200",water,164,circ,circulation active,boolean, ,true,switch.water_dhw3_circulation_active,switch.water_dhw3_circ,19,11,1,9,1
"SM200, MS200",water,164,circmode,circulation pump mode,enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous], ,true,select.water_dhw3_circulation_pump_mode,select.water_dhw3_circmode,19,11,1,10,1
"SM200, MS200",water,164,circtc,circulation time controled,boolean, ,true,switch.water_dhw3_circulation_time_controled,switch.water_dhw3_circtc,19,11,1,14,1
"SM200, MS200",water,164,keepwarm,keep warm,boolean, ,true,switch.water_dhw3_keep_warm,switch.water_dhw3_keepwarm,19,11,1,15,1
"SM200, MS200",water,164,status2,status 2,enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold], ,false,sensor.water_dhw3_status_2,sensor.water_dhw3_status2,19,11,1,16,1
"SM200, MS200",water,164,pumpmod,pump modulation,uint8 (>=0<=100),%,false,sensor.water_dhw3_pump_modulation,sensor.water_dhw3_pumpmod,19,11,1,17,1
"SM200, MS200",water,164,flow,flow rate,uint16 (>=0<=3199),l/min,false,sensor.water_dhw3_flow_rate,sensor.water_dhw3_flow,19,11,1/10,18,1
"SM200, MS200",water,164,valvereturn,return valve,uint8 (>=0<=100),%,true,number.water_dhw3_return_valve,number.water_dhw3_valvereturn,19,11,1,19,1
"SM200, MS200",water,164,deltatret,temp. diff. return valve,uint8 (>=0<=254),K,true,number.water_dhw3_temp._diff._return_valve,number.water_dhw3_deltatret,19,11,1,20,1
"SM200, MS200",water,164,errordisp,error display,enum [off\|normal\|inverted], ,true,select.water_dhw3_error_display,select.water_dhw3_errordisp,19,11,1,21,1
"SM100, MS100",water,163,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,1,1
"SM100, MS100",water,163,storagetemp1,storage intern temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_storage_intern_temperature,sensor.water_dhw_storagetemp1,19,9,1/10,16,1
"SM100, MS100",water,163,coldtemp,cold water,uint16 (>=0<=3199),C,false,sensor.water_dhw_cold_water,sensor.water_dhw_coldtemp,19,9,1/10,17,1
"SM100, MS100",water,163,temp5,temperature 5,uint16 (>=0<=3199),C,false,sensor.water_dhw_temperature_5,sensor.water_dhw_temp5,19,9,1/10,18,1
"SM100, MS100",water,163,rettemp,return temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_return_temperature,sensor.water_dhw_rettemp,19,9,1/10,19,1
"SM100, MS100",water,163,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,4,1
"SM100, MS100",water,163,maxtemp,maximum temperature,uint8 (>=0<=254),C,true,number.water_dhw_maximum_temperature,number.water_dhw_maxtemp,19,9,1,12,1
"SM100, MS100",water,163,seltemp,selected temperature,uint8 (>=0<=254),C,true,number.water_dhw_selected_temperature,number.water_dhw_seltemp,19,9,1,0,1
"SM100, MS100",water,163,redtemp,reduced temperature,uint8 (>=0<=254),C,true,number.water_dhw_reduced_temperature,number.water_dhw_redtemp,19,9,1,14,1
"SM100, MS100",water,163,hottemp,extra hot temperature,uint8 (>=0<=254),C,true,number.water_dhw_extra_hot_temperature,number.water_dhw_hottemp,19,9,1,20,1
"SM100, MS100",water,163,dailytemp,daily temperature,uint8 (>=0<=254),C,true,number.water_dhw_daily_temperature,number.water_dhw_dailytemp,19,9,1,21,1
"SM100, MS100",water,163,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,8,1
"SM100, MS100",water,163,circ,circulation active,boolean, ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,9,1
"SM100, MS100",water,163,circmode,circulation pump mode,enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous], ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,10,1
"SM100, MS100",water,163,circtc,circulation time controled,boolean, ,true,switch.water_dhw_circulation_time_controled,switch.water_dhw_circtc,19,9,1,22,1
"SM100, MS100",water,163,keepwarm,keep warm,boolean, ,true,switch.water_dhw_keep_warm,switch.water_dhw_keepwarm,19,9,1,23,1
"SM100, MS100",water,163,status2,status 2,enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold], ,false,sensor.water_dhw_status_2,sensor.water_dhw_status2,19,9,1,24,1
"SM100, MS100",water,163,pumpmod,pump modulation,uint8 (>=0<=100),%,false,sensor.water_dhw_pump_modulation,sensor.water_dhw_pumpmod,19,9,1,25,1
"SM100, MS100",water,163,flow,flow rate,uint16 (>=0<=3199),l/min,false,sensor.water_dhw_flow_rate,sensor.water_dhw_flow,19,9,1/10,26,1
"SM100, MS100",water,163,valvereturn,return valve,uint8 (>=0<=100),%,true,number.water_dhw_return_valve,number.water_dhw_valvereturn,19,9,1,27,1
"SM100, MS100",water,163,deltatret,temp. diff. return valve,uint8 (>=0<=254),K,true,number.water_dhw_temp._diff._return_valve,number.water_dhw_deltatret,19,9,1,28,1
"SM100, MS100",water,163,errordisp,error display,enum [off\|normal\|inverted], ,true,select.water_dhw_error_display,select.water_dhw_errordisp,19,9,1,29,1
"SM200, MS200",water,164,temp,current temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,1,1
"SM200, MS200",water,164,storagetemp1,storage intern temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_storage_intern_temperature,sensor.water_dhw_storagetemp1,19,9,1/10,16,1
"SM200, MS200",water,164,coldtemp,cold water,uint16 (>=0<=3199),C,false,sensor.water_dhw_cold_water,sensor.water_dhw_coldtemp,19,9,1/10,17,1
"SM200, MS200",water,164,temp5,temperature 5,uint16 (>=0<=3199),C,false,sensor.water_dhw_temperature_5,sensor.water_dhw_temp5,19,9,1/10,18,1
"SM200, MS200",water,164,rettemp,return temperature,uint16 (>=0<=3199),C,false,sensor.water_dhw_return_temperature,sensor.water_dhw_rettemp,19,9,1/10,19,1
"SM200, MS200",water,164,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,4,1
"SM200, MS200",water,164,maxtemp,maximum temperature,uint8 (>=0<=254),C,true,number.water_dhw_maximum_temperature,number.water_dhw_maxtemp,19,9,1,12,1
"SM200, MS200",water,164,seltemp,selected temperature,uint8 (>=0<=254),C,true,number.water_dhw_selected_temperature,number.water_dhw_seltemp,19,9,1,0,1
"SM200, MS200",water,164,redtemp,reduced temperature,uint8 (>=0<=254),C,true,number.water_dhw_reduced_temperature,number.water_dhw_redtemp,19,9,1,14,1
"SM200, MS200",water,164,hottemp,extra hot temperature,uint8 (>=0<=254),C,true,number.water_dhw_extra_hot_temperature,number.water_dhw_hottemp,19,9,1,20,1
"SM200, MS200",water,164,dailytemp,daily temperature,uint8 (>=0<=254),C,true,number.water_dhw_daily_temperature,number.water_dhw_dailytemp,19,9,1,21,1
"SM200, MS200",water,164,disinfectiontemp,disinfection temperature,uint8 (>=0<=254),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,8,1
"SM200, MS200",water,164,circ,circulation active,boolean, ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,9,1
"SM200, MS200",water,164,circmode,circulation pump mode,enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous], ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,10,1
"SM200, MS200",water,164,circtc,circulation time controled,boolean, ,true,switch.water_dhw_circulation_time_controled,switch.water_dhw_circtc,19,9,1,22,1
"SM200, MS200",water,164,keepwarm,keep warm,boolean, ,true,switch.water_dhw_keep_warm,switch.water_dhw_keepwarm,19,9,1,23,1
"SM200, MS200",water,164,status2,status 2,enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold], ,false,sensor.water_dhw_status_2,sensor.water_dhw_status2,19,9,1,24,1
"SM200, MS200",water,164,pumpmod,pump modulation,uint8 (>=0<=100),%,false,sensor.water_dhw_pump_modulation,sensor.water_dhw_pumpmod,19,9,1,25,1
"SM200, MS200",water,164,flow,flow rate,uint16 (>=0<=3199),l/min,false,sensor.water_dhw_flow_rate,sensor.water_dhw_flow,19,9,1/10,26,1
"SM200, MS200",water,164,valvereturn,return valve,uint8 (>=0<=100),%,true,number.water_dhw_return_valve,number.water_dhw_valvereturn,19,9,1,27,1
"SM200, MS200",water,164,deltatret,temp. diff. return valve,uint8 (>=0<=254),K,true,number.water_dhw_temp._diff._return_valve,number.water_dhw_deltatret,19,9,1,28,1
"SM200, MS200",water,164,errordisp,error display,enum [off\|normal\|inverted], ,true,select.water_dhw_error_display,select.water_dhw_errordisp,19,9,1,29,1
"MP100",pool,204,pooltemp,pool temperature,int16 (>=-3199<=3199),C,false,sensor.pool_pool_temperature,sensor.pool_pooltemp,20,0,1/10,-1,1
"MP100",pool,204,poolshuntstatus,pool shunt status opening/closing,enum [stopped\|opening\|closing\|open\|close], ,false,sensor.pool_pool_shunt_status_opening/closing,sensor.pool_poolshuntstatus,20,0,1,-1,1
"MP100",pool,204,poolshunt,pool shunt open/close (0% = pool / 100% = heat),uint8 (>=0<=100),%,false,sensor.pool_pool_shunt_open/close_(0%_=_pool_/_100%_=_heat),sensor.pool_poolshunt,20,0,1,-1,1
Can't render this file because it is too large.

View File

@@ -35,10 +35,10 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-icons": "^5.3.0",
"react-router-dom": "^6.28.0",
"react-router": "^7.0.1",
"react-toastify": "^10.0.6",
"typesafe-i18n": "^5.26.2",
"typescript": "^5.6.3"
"typescript": "^5.7.2"
},
"devDependencies": {
"@babel/core": "^7.26.0",
@@ -47,10 +47,9 @@
"@preact/preset-vite": "^2.9.1",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@types/formidable": "^3",
"@types/node": "^22.9.1",
"@types/node": "^22.9.3",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@types/react-router-dom": "^5.3.3",
"concurrently": "^9.1.0",
"eslint": "^9.15.0",
"eslint-config-prettier": "^9.1.0",

View File

@@ -1,5 +1,5 @@
import { useContext, useEffect } from 'react';
import { Navigate, Route, Routes } from 'react-router-dom';
import { Navigate, Route, Routes } from 'react-router';
import { toast } from 'react-toastify';
import AuthenticatedRouting from 'AuthenticatedRouting';

View File

@@ -1,5 +1,5 @@
import { useContext } from 'react';
import { Navigate, Route, Routes } from 'react-router-dom';
import { Navigate, Route, Routes } from 'react-router';
import CustomEntities from 'app/main/CustomEntities';
import Customizations from 'app/main/Customizations';

View File

@@ -1,5 +1,5 @@
import { useCallback, useState } from 'react';
import { useBlocker } from 'react-router-dom';
import { useBlocker } from 'react-router';
import { toast } from 'react-toastify';
import AddIcon from '@mui/icons-material/Add';

View File

@@ -1,5 +1,5 @@
import { useCallback, useEffect, useState } from 'react';
import { useBlocker, useLocation } from 'react-router-dom';
import { useBlocker, useLocation } from 'react-router';
import { toast } from 'react-toastify';
import CancelIcon from '@mui/icons-material/Cancel';

View File

@@ -6,7 +6,7 @@ import {
useState
} from 'react';
import { IconContext } from 'react-icons';
import { useNavigate } from 'react-router-dom';
import { useNavigate } from 'react-router';
import { toast } from 'react-toastify';
import CommentsDisabledOutlinedIcon from '@mui/icons-material/CommentsDisabledOutlined';
@@ -306,9 +306,9 @@ const Devices = () => {
const customize = () => {
if (selectedDevice === 99) {
navigate('/customentities');
void navigate('/customentities');
} else {
navigate('/customizations', { state: selectedDevice });
void navigate('/customizations', { state: selectedDevice });
}
};

View File

@@ -1,5 +1,5 @@
import { useCallback, useState } from 'react';
import { useBlocker } from 'react-router-dom';
import { useBlocker } from 'react-router';
import { toast } from 'react-toastify';
import CancelIcon from '@mui/icons-material/Cancel';

View File

@@ -1,5 +1,5 @@
import { useCallback, useEffect, useState } from 'react';
import { useBlocker } from 'react-router-dom';
import { useBlocker } from 'react-router';
import { toast } from 'react-toastify';
import AddIcon from '@mui/icons-material/Add';

View File

@@ -46,7 +46,7 @@ const APSettings = () => {
const { LL } = useI18nContext();
useLayoutTitle(LL.SETTINGS_OF(LL.ACCESS_POINT(0)));
useLayoutTitle(LL.ACCESS_POINT(0));
const [fieldErrors, setFieldErrors] = useState<ValidateFieldsError>();

View File

@@ -121,7 +121,7 @@ const ApplicationSettings = () => {
});
};
useLayoutTitle(LL.SETTINGS_OF(LL.APPLICATION()));
useLayoutTitle(LL.APPLICATION());
const SecondsInputProps = {
endAdornment: <InputAdornment position="end">{LL.SECONDS()}</InputAdornment>

View File

@@ -48,7 +48,7 @@ const MqttSettings = () => {
});
const { LL } = useI18nContext();
useLayoutTitle(LL.SETTINGS_OF('MQTT'));
useLayoutTitle('MQTT');
const [fieldErrors, setFieldErrors] = useState<ValidateFieldsError>();

View File

@@ -44,7 +44,7 @@ const NTPSettings = () => {
});
const { LL } = useI18nContext();
useLayoutTitle(LL.SETTINGS_OF('NTP'));
useLayoutTitle('NTP');
const updateFormValue = updateValueDirty(
origData,

View File

@@ -1,5 +1,5 @@
import { useCallback, useState } from 'react';
import { Navigate, Route, Routes, useNavigate } from 'react-router-dom';
import { Navigate, Route, Routes, useNavigate } from 'react-router';
import { Tab } from '@mui/material';
@@ -13,7 +13,7 @@ import WiFiNetworkScanner from './WiFiNetworkScanner';
const Network = () => {
const { LL } = useI18nContext();
useLayoutTitle(LL.SETTINGS_OF(LL.NETWORK(0)));
useLayoutTitle(LL.NETWORK(0));
const { routerTab } = useRouterTab();
@@ -24,7 +24,7 @@ const Network = () => {
const selectNetwork = useCallback(
(network: WiFiNetwork) => {
setSelectedNetwork(network);
navigate('settings');
void navigate('/settings');
},
[navigate]
);

View File

@@ -1,5 +1,5 @@
import { useContext, useState } from 'react';
import { useBlocker } from 'react-router-dom';
import { useBlocker } from 'react-router';
import CancelIcon from '@mui/icons-material/Cancel';
import CloseIcon from '@mui/icons-material/Close';

View File

@@ -1,4 +1,4 @@
import { Navigate, Route, Routes } from 'react-router-dom';
import { Navigate, Route, Routes } from 'react-router';
import { Tab } from '@mui/material';
@@ -10,7 +10,7 @@ import SecuritySettings from './SecuritySettings';
const Security = () => {
const { LL } = useI18nContext();
useLayoutTitle(LL.SETTINGS_OF(LL.SECURITY(0)));
useLayoutTitle(LL.SECURITY(0));
const { routerTab } = useRouterTab();

View File

@@ -41,7 +41,7 @@ const APStatus = () => {
} = useAutoRequest(APApi.readAPStatus, { pollingTime: 3000 });
const { LL } = useI18nContext();
useLayoutTitle(LL.STATUS_OF(LL.ACCESS_POINT(0)));
useLayoutTitle(LL.ACCESS_POINT(0));
const theme = useTheme();

View File

@@ -30,7 +30,7 @@ function formatNumber(num: number) {
const HardwareStatus = () => {
const { LL } = useI18nContext();
useLayoutTitle(LL.STATUS_OF(LL.HARDWARE()));
useLayoutTitle(LL.HARDWARE());
const {
data,

View File

@@ -61,7 +61,7 @@ const MqttStatus = () => {
} = useAutoRequest(MqttApi.readMqttStatus, { pollingTime: 3000 });
const { LL } = useI18nContext();
useLayoutTitle(LL.STATUS_OF('MQTT'));
useLayoutTitle('MQTT');
const theme = useTheme();

View File

@@ -47,7 +47,7 @@ const NTPStatus = () => {
const [processing, setProcessing] = useState<boolean>(false);
const { LL } = useI18nContext();
useLayoutTitle(LL.STATUS_OF('NTP'));
useLayoutTitle('NTP');
const { send: updateTime } = useRequest(
(local_time: Time) => NTPApi.updateTime(local_time),

View File

@@ -88,7 +88,7 @@ const NetworkStatus = () => {
} = useAutoRequest(NetworkApi.readNetworkStatus, { pollingTime: 3000 });
const { LL } = useI18nContext();
useLayoutTitle(LL.STATUS_OF(LL.NETWORK(1)));
useLayoutTitle(LL.NETWORK(1));
const theme = useTheme();

View File

@@ -1,6 +1,6 @@
import { useEffect, useMemo, useState } from 'react';
import type { FC } from 'react';
import { useLocation } from 'react-router-dom';
import { useLocation } from 'react-router';
import { Box, Toolbar } from '@mui/material';

View File

@@ -1,9 +1,11 @@
import { useLocation, useNavigate } from 'react-router-dom';
import { Link, useLocation, useNavigate } from 'react-router';
import ArrowBackIcon from '@mui/icons-material/ArrowBack';
import MenuIcon from '@mui/icons-material/Menu';
import { AppBar, IconButton, Toolbar, Typography } from '@mui/material';
import { useI18nContext } from 'i18n/i18n-react';
export const DRAWER_WIDTH = 210;
interface LayoutAppBarProps {
@@ -12,12 +14,12 @@ interface LayoutAppBarProps {
}
const LayoutAppBar = ({ title, onToggleDrawer }: LayoutAppBarProps) => {
const { LL } = useI18nContext();
const navigate = useNavigate();
const pathnames = useLocation()
.pathname.split('/')
.filter((x) => x);
const show_back = pathnames.length > 1;
const navigate = useNavigate();
return (
<AppBar
@@ -39,20 +41,30 @@ const LayoutAppBar = ({ title, onToggleDrawer }: LayoutAppBarProps) => {
<MenuIcon />
</IconButton>
{show_back && (
{pathnames.length > 1 && (
<>
<IconButton
sx={{ mr: 1 }}
color="inherit"
sx={{ mr: 1, fontSize: 20, verticalAlign: 'middle' }}
color="primary"
edge="start"
onClick={() => navigate(pathnames[0])}
onClick={() => navigate('/' + pathnames[0])}
>
<ArrowBackIcon />
</IconButton>
<Link
to={'/' + pathnames[0]}
style={{ textDecoration: 'none', color: 'white' }}
>
<Typography variant="h6">
{pathnames[0] === 'status' ? LL.STATUS_OF('') : LL.SETTINGS(0)}
<span style={{ color: '#90caf9' }}>&nbsp;|&nbsp;</span>
</Typography>
</Link>
</>
)}
<Typography variant="h6" noWrap component="div">
{title}
</Typography>
<Typography variant="h6">{title}</Typography>
</Toolbar>
</AppBar>
);

View File

@@ -1,4 +1,4 @@
import { Link, useLocation } from 'react-router-dom';
import { Link, useLocation } from 'react-router';
import { ListItemButton, ListItemIcon, ListItemText } from '@mui/material';
import type { SvgIconProps } from '@mui/material';

View File

@@ -1,4 +1,4 @@
import { Link } from 'react-router-dom';
import { Link } from 'react-router';
import NavigateNextIcon from '@mui/icons-material/NavigateNext';
import {

View File

@@ -1,4 +1,4 @@
import type { Blocker } from 'react-router-dom';
import type { Blocker } from 'react-router';
import {
Button,

View File

@@ -1,6 +1,6 @@
import { useContext } from 'react';
import type { FC } from 'react';
import { Navigate } from 'react-router-dom';
import { Navigate } from 'react-router';
import { AuthenticatedContext } from 'contexts/authentication';
import type { RequiredChildrenProps } from 'utils';

View File

@@ -1,6 +1,6 @@
import { useContext, useEffect } from 'react';
import type { FC } from 'react';
import { Navigate, useLocation } from 'react-router-dom';
import { Navigate, useLocation } from 'react-router';
import { storeLoginRedirect } from 'components/routing/authentication';
import type { AuthenticatedContextValue } from 'contexts/authentication/context';

View File

@@ -1,6 +1,6 @@
import { useContext } from 'react';
import type { FC } from 'react';
import { Navigate } from 'react-router-dom';
import { Navigate } from 'react-router';
import { fetchLoginRedirect } from 'components/routing/authentication';
import { AuthenticationContext } from 'contexts/authentication';

View File

@@ -1,5 +1,5 @@
import type { FC } from 'react';
import { useNavigate } from 'react-router-dom';
import { useNavigate } from 'react-router';
import { Tabs, useMediaQuery, useTheme } from '@mui/material';

View File

@@ -1,4 +1,4 @@
import type { Path } from 'react-router-dom';
import type { Path } from 'react-router';
import type * as H from 'history';
import { jwtDecode } from 'jwt-decode';

View File

@@ -1,4 +1,4 @@
import { useMatch, useResolvedPath } from 'react-router-dom';
import { useMatch, useResolvedPath } from 'react-router';
export const useRouterTab = () => {
const routerTabPathMatch = useMatch(useResolvedPath(':tab').pathname);

View File

@@ -1,6 +1,6 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import type { FC } from 'react';
import { redirect } from 'react-router-dom';
import { redirect } from 'react-router';
import { toast } from 'react-toastify';
import { ACCESS_TOKEN } from 'api/endpoints';

View File

@@ -5,7 +5,7 @@ import {
RouterProvider,
createBrowserRouter,
createRoutesFromElements
} from 'react-router-dom';
} from 'react-router';
import App from 'App';

View File

@@ -1,5 +1,5 @@
import { useState } from 'react';
import { useBlocker } from 'react-router-dom';
import { useBlocker } from 'react-router';
import { toast } from 'react-toastify';
import type { AlovaGenerics, Method } from 'alova';

View File

@@ -27,5 +27,5 @@
}
},
"include": ["src/**/*", "vite.config.ts"],
"exclude": ["node_modules", "dist", "src/**/*.test.tsx", "src/**/*.test.ts"]
"exclude": ["node_modules", "dist"]
}

View File

@@ -118,11 +118,7 @@ export default defineConfig(({ command, mode }) => {
manualChunks(id: string) {
if (id.includes('node_modules')) {
// creating a chunk to react routes deps. Reducing the vendor chunk size
if (
id.includes('react-router-dom') ||
id.includes('@remix-run') ||
id.includes('react-router')
) {
if (id.includes('react-router')) {
return '@react-router';
}
return 'vendor';

View File

@@ -34,20 +34,20 @@ __metadata:
linkType: hard
"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0":
version: 7.26.0
resolution: "@babel/code-frame@npm:7.26.0"
version: 7.26.2
resolution: "@babel/code-frame@npm:7.26.2"
dependencies:
"@babel/helper-validator-identifier": "npm:^7.25.9"
js-tokens: "npm:^4.0.0"
picocolors: "npm:^1.0.0"
checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388
checksum: 10c0/7d79621a6849183c415486af99b1a20b84737e8c11cd55b6544f688c51ce1fd710e6d869c3dd21232023da272a79b91efb3e83b5bc2dc65c1187c5fcd1b72ea8
languageName: node
linkType: hard
"@babel/compat-data@npm:^7.25.9":
version: 7.26.0
resolution: "@babel/compat-data@npm:7.26.0"
checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb
version: 7.26.2
resolution: "@babel/compat-data@npm:7.26.2"
checksum: 10c0/c9b5f3724828d17f728a778f9d66c19b55c018d0d76de6d731178cca64f182c22b71400a73bf2b65dcc4fcfe52b630088a94d5902911b54206aa90e3ffe07d12
languageName: node
linkType: hard
@@ -86,15 +86,15 @@ __metadata:
linkType: hard
"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0":
version: 7.26.0
resolution: "@babel/generator@npm:7.26.0"
version: 7.26.2
resolution: "@babel/generator@npm:7.26.2"
dependencies:
"@babel/parser": "npm:^7.26.0"
"@babel/parser": "npm:^7.26.2"
"@babel/types": "npm:^7.26.0"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^3.0.2"
checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609
checksum: 10c0/167ebce8977142f5012fad6bd91da51ac52bcd752f2261a54b7ab605d928aebe57e21636cdd2a9c7757e552652c68d9fcb5d40b06fcb66e02d9ee7526e118a5c
languageName: node
linkType: hard
@@ -218,14 +218,14 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0":
version: 7.26.1
resolution: "@babel/parser@npm:7.26.1"
"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2":
version: 7.26.2
resolution: "@babel/parser@npm:7.26.2"
dependencies:
"@babel/types": "npm:^7.26.0"
bin:
parser: ./bin/babel-parser.js
checksum: 10c0/dc7d4e6b7eb667fa0784e7e2c3f6f92ca12ad72242f6d4311995310dae55093f02acdb595b69b0dbbf04cb61ad87156ac03186ff32eacfa35149c655bc22c14b
checksum: 10c0/751a743087b3a9172a7599f1421830d44c38f065ef781588d2bfb1c98f9b461719a226feb13c868d7a284783eee120c88ea522593118f2668f46ebfb1105c4d7
languageName: node
linkType: hard
@@ -358,20 +358,7 @@ __metadata:
languageName: node
linkType: hard
"@emotion/cache@npm:^11.13.1":
version: 11.13.1
resolution: "@emotion/cache@npm:11.13.1"
dependencies:
"@emotion/memoize": "npm:^0.9.0"
"@emotion/sheet": "npm:^1.4.0"
"@emotion/utils": "npm:^1.4.0"
"@emotion/weak-memoize": "npm:^0.4.0"
stylis: "npm:4.2.0"
checksum: 10c0/321e97d8980885737de13b47e41fd4febfbd83086f10c620f865fcbddb29b8fe198adec7e1c69cc7b137638ea9242d7c475c57f954f7ca229157fa92e368f473
languageName: node
linkType: hard
"@emotion/cache@npm:^11.13.5":
"@emotion/cache@npm:^11.13.1, @emotion/cache@npm:^11.13.5":
version: 11.13.5
resolution: "@emotion/cache@npm:11.13.5"
dependencies:
@@ -428,20 +415,7 @@ __metadata:
languageName: node
linkType: hard
"@emotion/serialize@npm:^1.3.2":
version: 1.3.2
resolution: "@emotion/serialize@npm:1.3.2"
dependencies:
"@emotion/hash": "npm:^0.9.2"
"@emotion/memoize": "npm:^0.9.0"
"@emotion/unitless": "npm:^0.10.0"
"@emotion/utils": "npm:^1.4.1"
csstype: "npm:^3.0.2"
checksum: 10c0/b4873b643721d28b4450f9d77b71e6c8d0109e6825c54fc79e649d2fa438fe4080d2fa696ec8fda421b8e713fcd42306d6197b6121ddd2486ffab8e4b6311ce0
languageName: node
linkType: hard
"@emotion/serialize@npm:^1.3.3":
"@emotion/serialize@npm:^1.3.2, @emotion/serialize@npm:^1.3.3":
version: 1.3.3
resolution: "@emotion/serialize@npm:1.3.3"
dependencies:
@@ -497,13 +471,6 @@ __metadata:
languageName: node
linkType: hard
"@emotion/utils@npm:^1.4.0, @emotion/utils@npm:^1.4.1":
version: 1.4.1
resolution: "@emotion/utils@npm:1.4.1"
checksum: 10c0/f4704e0bdf48062fd6eb9c64771c88f521aab1e108a48cb23d65b6438597c63a6945301cef4c43611e79e0e76a304ec5481c31025ea8f573d7ad5423d747602c
languageName: node
linkType: hard
"@emotion/utils@npm:^1.4.2":
version: 1.4.2
resolution: "@emotion/utils@npm:1.4.2"
@@ -697,14 +664,7 @@ __metadata:
languageName: node
linkType: hard
"@eslint-community/regexpp@npm:^4.10.0":
version: 4.11.2
resolution: "@eslint-community/regexpp@npm:4.11.2"
checksum: 10c0/c6ab16307c64bc72ea05b9c1740734dfe4a3eea8f7cc395266eb7f04a0ab8f84fe58d41888e906c18bc56262b685eb3074443a0375fb8c44fb4ff20fdb11e250
languageName: node
linkType: hard
"@eslint-community/regexpp@npm:^4.12.1":
"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1":
version: 4.12.1
resolution: "@eslint-community/regexpp@npm:4.12.1"
checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6
@@ -1135,11 +1095,11 @@ __metadata:
linkType: hard
"@prefresh/core@npm:^1.5.1":
version: 1.5.2
resolution: "@prefresh/core@npm:1.5.2"
version: 1.5.3
resolution: "@prefresh/core@npm:1.5.3"
peerDependencies:
preact: ^10.0.0
checksum: 10c0/53d1ce714ed098ccc11f3a8e2826ff6b90237445c24df6281eb162791b534d1d7626a43c0c1c7427139d2ade658e1ba7020963c001135bbdbeeb15073008529b
checksum: 10c0/402e2d39fecdea6963326c952513c21aaaed215c6066e55708bca725025638911068bac09d6a6d9a044f6093827d6cf23b063651806ddc9d4aa977015f5c713e
languageName: node
linkType: hard
@@ -1166,13 +1126,6 @@ __metadata:
languageName: node
linkType: hard
"@remix-run/router@npm:1.21.0":
version: 1.21.0
resolution: "@remix-run/router@npm:1.21.0"
checksum: 10c0/570792211c083a1c7146613b79cbb8e0d1e14f34e974052e060e7f9dcad38c800d80fe0a18bf42811bc278ab12c0e8fd62cfce649e905046c4e55bd5a09eafdc
languageName: node
linkType: hard
"@rollup/pluginutils@npm:^4.1.1, @rollup/pluginutils@npm:^4.2.1":
version: 4.2.1
resolution: "@rollup/pluginutils@npm:4.2.1"
@@ -1183,114 +1136,128 @@ __metadata:
languageName: node
linkType: hard
"@rollup/rollup-android-arm-eabi@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.24.0"
"@rollup/rollup-android-arm-eabi@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-android-arm-eabi@npm:4.27.4"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
"@rollup/rollup-android-arm64@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-android-arm64@npm:4.24.0"
"@rollup/rollup-android-arm64@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-android-arm64@npm:4.27.4"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-darwin-arm64@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-darwin-arm64@npm:4.24.0"
"@rollup/rollup-darwin-arm64@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-darwin-arm64@npm:4.27.4"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-darwin-x64@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-darwin-x64@npm:4.24.0"
"@rollup/rollup-darwin-x64@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-darwin-x64@npm:4.27.4"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@rollup/rollup-linux-arm-gnueabihf@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.0"
"@rollup/rollup-freebsd-arm64@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-freebsd-arm64@npm:4.27.4"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-freebsd-x64@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-freebsd-x64@npm:4.27.4"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"@rollup/rollup-linux-arm-gnueabihf@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.27.4"
conditions: os=linux & cpu=arm & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-arm-musleabihf@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.24.0"
"@rollup/rollup-linux-arm-musleabihf@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.27.4"
conditions: os=linux & cpu=arm & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-linux-arm64-gnu@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.24.0"
"@rollup/rollup-linux-arm64-gnu@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.27.4"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-arm64-musl@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.24.0"
"@rollup/rollup-linux-arm64-musl@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.27.4"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.0"
"@rollup/rollup-linux-powerpc64le-gnu@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.27.4"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-riscv64-gnu@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.24.0"
"@rollup/rollup-linux-riscv64-gnu@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.27.4"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-s390x-gnu@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.24.0"
"@rollup/rollup-linux-s390x-gnu@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.27.4"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-x64-gnu@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.24.0"
"@rollup/rollup-linux-x64-gnu@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.27.4"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-x64-musl@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-linux-x64-musl@npm:4.24.0"
"@rollup/rollup-linux-x64-musl@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-linux-x64-musl@npm:4.27.4"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-win32-arm64-msvc@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.24.0"
"@rollup/rollup-win32-arm64-msvc@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.27.4"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-win32-ia32-msvc@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.24.0"
"@rollup/rollup-win32-ia32-msvc@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.27.4"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@rollup/rollup-win32-x64-msvc@npm:4.24.0":
version: 4.24.0
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.24.0"
"@rollup/rollup-win32-x64-msvc@npm:4.27.4":
version: 4.27.4
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.27.4"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -1344,6 +1311,13 @@ __metadata:
languageName: node
linkType: hard
"@types/cookie@npm:^0.6.0":
version: 0.6.0
resolution: "@types/cookie@npm:0.6.0"
checksum: 10c0/5b326bd0188120fb32c0be086b141b1481fec9941b76ad537f9110e10d61ee2636beac145463319c71e4be67a17e85b81ca9e13ceb6e3bb63b93d16824d6c149
languageName: node
linkType: hard
"@types/estree@npm:1.0.6, @types/estree@npm:^1.0.6":
version: 1.0.6
resolution: "@types/estree@npm:1.0.6"
@@ -1370,13 +1344,6 @@ __metadata:
languageName: node
linkType: hard
"@types/history@npm:^4.7.11":
version: 4.7.11
resolution: "@types/history@npm:4.7.11"
checksum: 10c0/3facf37c2493d1f92b2e93a22cac7ea70b06351c2ab9aaceaa3c56aa6099fb63516f6c4ec1616deb5c56b4093c026a043ea2d3373e6c0644d55710364d02c934
languageName: node
linkType: hard
"@types/imagemin-gifsicle@npm:^7.0.1":
version: 7.0.4
resolution: "@types/imagemin-gifsicle@npm:7.0.4"
@@ -1473,21 +1440,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:*":
version: 22.8.1
resolution: "@types/node@npm:22.8.1"
"@types/node@npm:*, @types/node@npm:^22.9.3":
version: 22.9.3
resolution: "@types/node@npm:22.9.3"
dependencies:
undici-types: "npm:~6.19.8"
checksum: 10c0/83550fdf72a7db5b55eceac3f4fb038844eaee20202bdd2297a8248370cfa08317bda1605b781a8043eda4f173b75e73632e652fc85509eb14dfef78fa17337f
languageName: node
linkType: hard
"@types/node@npm:^22.9.1":
version: 22.9.1
resolution: "@types/node@npm:22.9.1"
dependencies:
undici-types: "npm:~6.19.8"
checksum: 10c0/ea489ae603aa8874e4e88980aab6f2dad09c755da779c88dd142983bfe9609803c89415ca7781f723072934066f63daf2b3339ef084a8ad1a8079cf3958be243
checksum: 10c0/954ec72bf29436ea62425a9563914a9c1e93f97b18194acd51d74d13998a701977547ed2985ed3a0e97211b785436d28377116e5f613bfcf3182d9bd81d784dc
languageName: node
linkType: hard
@@ -1514,27 +1472,6 @@ __metadata:
languageName: node
linkType: hard
"@types/react-router-dom@npm:^5.3.3":
version: 5.3.3
resolution: "@types/react-router-dom@npm:5.3.3"
dependencies:
"@types/history": "npm:^4.7.11"
"@types/react": "npm:*"
"@types/react-router": "npm:*"
checksum: 10c0/a9231a16afb9ed5142678147eafec9d48582809295754fb60946e29fcd3757a4c7a3180fa94b45763e4c7f6e3f02379e2fcb8dd986db479dcab40eff5fc62a91
languageName: node
linkType: hard
"@types/react-router@npm:*":
version: 5.1.20
resolution: "@types/react-router@npm:5.1.20"
dependencies:
"@types/history": "npm:^4.7.11"
"@types/react": "npm:*"
checksum: 10c0/1f7eee61981d2f807fa01a34a0ef98ebc0774023832b6611a69c7f28fdff01de5a38cabf399f32e376bf8099dcb7afaf724775bea9d38870224492bea4cb5737
languageName: node
linkType: hard
"@types/react-transition-group@npm:^4.4.11":
version: 4.4.11
resolution: "@types/react-transition-group@npm:4.4.11"
@@ -1709,10 +1646,9 @@ __metadata:
"@table-library/react-table-library": "npm:4.1.7"
"@trivago/prettier-plugin-sort-imports": "npm:^4.3.0"
"@types/formidable": "npm:^3"
"@types/node": "npm:^22.9.1"
"@types/node": "npm:^22.9.3"
"@types/react": "npm:^18.3.12"
"@types/react-dom": "npm:^18.3.1"
"@types/react-router-dom": "npm:^5.3.3"
alova: "npm:3.2.4"
async-validator: "npm:^4.2.5"
concurrently: "npm:^9.1.0"
@@ -1726,12 +1662,12 @@ __metadata:
react: "npm:^18.3.1"
react-dom: "npm:^18.3.1"
react-icons: "npm:^5.3.0"
react-router-dom: "npm:^6.28.0"
react-router: "npm:^7.0.1"
react-toastify: "npm:^10.0.6"
rollup-plugin-visualizer: "npm:^5.12.0"
terser: "npm:^5.36.0"
typesafe-i18n: "npm:^5.26.2"
typescript: "npm:^5.6.3"
typescript: "npm:^5.7.2"
typescript-eslint: "npm:8.15.0"
vite: "npm:^5.4.11"
vite-plugin-imagemin: "npm:^0.6.1"
@@ -1755,16 +1691,7 @@ __metadata:
languageName: node
linkType: hard
"acorn@npm:^8.12.0, acorn@npm:^8.8.2":
version: 8.13.0
resolution: "acorn@npm:8.13.0"
bin:
acorn: bin/acorn
checksum: 10c0/f35dd53d68177c90699f4c37d0bb205b8abe036d955d0eb011ddb7f14a81e6fd0f18893731c457c1b5bd96754683f4c3d80d9a5585ddecaa53cdf84e0b3d68f7
languageName: node
linkType: hard
"acorn@npm:^8.14.0":
"acorn@npm:^8.14.0, acorn@npm:^8.8.2":
version: 8.14.0
resolution: "acorn@npm:8.14.0"
bin:
@@ -2168,9 +2095,9 @@ __metadata:
linkType: hard
"caniuse-lite@npm:^1.0.30001669":
version: 1.0.30001671
resolution: "caniuse-lite@npm:1.0.30001671"
checksum: 10c0/9bb81be7be641fdcdf4d3722b661d4204cc203a489c16080503a72b1605bd5c1061f8ae2452cc6c15d6957c818182824eb34e6569521051795f42cd14e844f99
version: 1.0.30001683
resolution: "caniuse-lite@npm:1.0.30001683"
checksum: 10c0/0ca7f4f2fbd0c71fde5a14ca2e29bb1dcb84c095d7a3d88e47371e062f276f1dc31da3f10931ec134ef7fb096259c0d67c9ffb843a9ec4a040a85eb2fea0bdec
languageName: node
linkType: hard
@@ -2352,6 +2279,13 @@ __metadata:
languageName: node
linkType: hard
"cookie@npm:^1.0.1":
version: 1.0.2
resolution: "cookie@npm:1.0.2"
checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b
languageName: node
linkType: hard
"core-util-is@npm:~1.0.0":
version: 1.0.3
resolution: "core-util-is@npm:1.0.3"
@@ -2384,37 +2318,26 @@ __metadata:
linkType: hard
"cross-spawn@npm:^6.0.0":
version: 6.0.5
resolution: "cross-spawn@npm:6.0.5"
version: 6.0.6
resolution: "cross-spawn@npm:6.0.6"
dependencies:
nice-try: "npm:^1.0.4"
path-key: "npm:^2.0.1"
semver: "npm:^5.5.0"
shebang-command: "npm:^1.2.0"
which: "npm:^1.2.9"
checksum: 10c0/e05544722e9d7189b4292c66e42b7abeb21db0d07c91b785f4ae5fefceb1f89e626da2703744657b287e86dcd4af57b54567cef75159957ff7a8a761d9055012
checksum: 10c0/bf61fb890e8635102ea9bce050515cf915ff6a50ccaa0b37a17dc82fded0fb3ed7af5478b9367b86baee19127ad86af4be51d209f64fd6638c0862dca185fe1d
languageName: node
linkType: hard
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3":
version: 7.0.3
resolution: "cross-spawn@npm:7.0.3"
"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.5":
version: 7.0.6
resolution: "cross-spawn@npm:7.0.6"
dependencies:
path-key: "npm:^3.1.0"
shebang-command: "npm:^2.0.0"
which: "npm:^2.0.1"
checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750
languageName: node
linkType: hard
"cross-spawn@npm:^7.0.5":
version: 7.0.5
resolution: "cross-spawn@npm:7.0.5"
dependencies:
path-key: "npm:^3.1.0"
shebang-command: "npm:^2.0.0"
which: "npm:^2.0.1"
checksum: 10c0/aa82ce7ac0814a27e6f2b738c5a7cf1fa21a3558a1e42df449fc96541ba3ba731e4d3ecffa4435348808a86212f287c6f20a1ee551ef1ff95d01cfec5f434944
checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1
languageName: node
linkType: hard
@@ -2762,9 +2685,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.5.41":
version: 1.5.47
resolution: "electron-to-chromium@npm:1.5.47"
checksum: 10c0/5f8c4a9f0698695960f7bef5242d52b1043020ce50b51fb534409a768847f9bdc9672cb4a6a560eeb8f8b47a04327ae9b31b2cee376cb637b3eb04a4daeaa3b8
version: 1.5.64
resolution: "electron-to-chromium@npm:1.5.64"
checksum: 10c0/331c2160cc37ef85317b44f2078af8ff16f068fc95d4af2210fe943b567f20b1445a7faa40c05d290bc229102ef1b662371464ba2725d10ff6c8543af6d40adf
languageName: node
linkType: hard
@@ -3180,13 +3103,6 @@ __metadata:
languageName: node
linkType: hard
"eslint-visitor-keys@npm:^4.1.0":
version: 4.1.0
resolution: "eslint-visitor-keys@npm:4.1.0"
checksum: 10c0/5483ef114c93a136aa234140d7aa3bd259488dae866d35cb0d0b52e6a158f614760a57256ac8d549acc590a87042cb40f6951815caa821e55dc4fd6ef4c722eb
languageName: node
linkType: hard
"eslint-visitor-keys@npm:^4.2.0":
version: 4.2.0
resolution: "eslint-visitor-keys@npm:4.2.0"
@@ -3243,18 +3159,7 @@ __metadata:
languageName: node
linkType: hard
"espree@npm:^10.0.1":
version: 10.2.0
resolution: "espree@npm:10.2.0"
dependencies:
acorn: "npm:^8.12.0"
acorn-jsx: "npm:^5.3.2"
eslint-visitor-keys: "npm:^4.1.0"
checksum: 10c0/2b6bfb683e7e5ab2e9513949879140898d80a2d9867ea1db6ff5b0256df81722633b60a7523a7c614f05a39aeea159dd09ad2a0e90c0e218732fc016f9086215
languageName: node
linkType: hard
"espree@npm:^10.3.0":
"espree@npm:^10.0.1, espree@npm:^10.3.0":
version: 10.3.0
resolution: "espree@npm:10.3.0"
dependencies:
@@ -3621,9 +3526,9 @@ __metadata:
linkType: hard
"flatted@npm:^3.2.9":
version: 3.3.1
resolution: "flatted@npm:3.3.1"
checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
version: 3.3.2
resolution: "flatted@npm:3.3.2"
checksum: 10c0/24cc735e74d593b6c767fe04f2ef369abe15b62f6906158079b9874bdb3ee5ae7110bb75042e70cd3f99d409d766f357caf78d5ecee9780206f5fdc5edbad334
languageName: node
linkType: hard
@@ -5560,7 +5465,7 @@ __metadata:
languageName: node
linkType: hard
"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0":
"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1":
version: 1.1.1
resolution: "picocolors@npm:1.1.1"
checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58
@@ -5625,13 +5530,13 @@ __metadata:
linkType: hard
"postcss@npm:^8.4.43":
version: 8.4.47
resolution: "postcss@npm:8.4.47"
version: 8.4.49
resolution: "postcss@npm:8.4.49"
dependencies:
nanoid: "npm:^3.3.7"
picocolors: "npm:^1.1.0"
picocolors: "npm:^1.1.1"
source-map-js: "npm:^1.2.1"
checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44
checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3
languageName: node
linkType: hard
@@ -5798,27 +5703,21 @@ __metadata:
languageName: node
linkType: hard
"react-router-dom@npm:^6.28.0":
version: 6.28.0
resolution: "react-router-dom@npm:6.28.0"
"react-router@npm:^7.0.1":
version: 7.0.1
resolution: "react-router@npm:7.0.1"
dependencies:
"@remix-run/router": "npm:1.21.0"
react-router: "npm:6.28.0"
"@types/cookie": "npm:^0.6.0"
cookie: "npm:^1.0.1"
set-cookie-parser: "npm:^2.6.0"
turbo-stream: "npm:2.4.0"
peerDependencies:
react: ">=16.8"
react-dom: ">=16.8"
checksum: 10c0/e2930cf83e8c843a932b008c7ce11059fd83390502a433f0e41f192e3cb80081a621d069eeda7af3cf4bf74d7f8029f0141cdce741bca3f0af82d4bbbc7f7f10
languageName: node
linkType: hard
"react-router@npm:6.28.0":
version: 6.28.0
resolution: "react-router@npm:6.28.0"
dependencies:
"@remix-run/router": "npm:1.21.0"
peerDependencies:
react: ">=16.8"
checksum: 10c0/b435510de78fd882bf6ca9800a73cd90cee418bd1d19efd91b8dcaebde36929bbb589e25d9f7eec24ceb84255e8d538bc1fe54e6ddb5c43c32798e2b720fa76d
react: ">=18"
react-dom: ">=18"
peerDependenciesMeta:
react-dom:
optional: true
checksum: 10c0/aac4c9989ae6b9cf989b5ddcda88f505ba0704a4e4b37ae04c819c2bd02f080361f9eb1793695e3ecf41080d91b79aee454c3163b586d1b19ceca13f6eacec0e
languageName: node
linkType: hard
@@ -6044,25 +5943,27 @@ __metadata:
linkType: hard
"rollup@npm:^4.20.0":
version: 4.24.0
resolution: "rollup@npm:4.24.0"
version: 4.27.4
resolution: "rollup@npm:4.27.4"
dependencies:
"@rollup/rollup-android-arm-eabi": "npm:4.24.0"
"@rollup/rollup-android-arm64": "npm:4.24.0"
"@rollup/rollup-darwin-arm64": "npm:4.24.0"
"@rollup/rollup-darwin-x64": "npm:4.24.0"
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.24.0"
"@rollup/rollup-linux-arm-musleabihf": "npm:4.24.0"
"@rollup/rollup-linux-arm64-gnu": "npm:4.24.0"
"@rollup/rollup-linux-arm64-musl": "npm:4.24.0"
"@rollup/rollup-linux-powerpc64le-gnu": "npm:4.24.0"
"@rollup/rollup-linux-riscv64-gnu": "npm:4.24.0"
"@rollup/rollup-linux-s390x-gnu": "npm:4.24.0"
"@rollup/rollup-linux-x64-gnu": "npm:4.24.0"
"@rollup/rollup-linux-x64-musl": "npm:4.24.0"
"@rollup/rollup-win32-arm64-msvc": "npm:4.24.0"
"@rollup/rollup-win32-ia32-msvc": "npm:4.24.0"
"@rollup/rollup-win32-x64-msvc": "npm:4.24.0"
"@rollup/rollup-android-arm-eabi": "npm:4.27.4"
"@rollup/rollup-android-arm64": "npm:4.27.4"
"@rollup/rollup-darwin-arm64": "npm:4.27.4"
"@rollup/rollup-darwin-x64": "npm:4.27.4"
"@rollup/rollup-freebsd-arm64": "npm:4.27.4"
"@rollup/rollup-freebsd-x64": "npm:4.27.4"
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.27.4"
"@rollup/rollup-linux-arm-musleabihf": "npm:4.27.4"
"@rollup/rollup-linux-arm64-gnu": "npm:4.27.4"
"@rollup/rollup-linux-arm64-musl": "npm:4.27.4"
"@rollup/rollup-linux-powerpc64le-gnu": "npm:4.27.4"
"@rollup/rollup-linux-riscv64-gnu": "npm:4.27.4"
"@rollup/rollup-linux-s390x-gnu": "npm:4.27.4"
"@rollup/rollup-linux-x64-gnu": "npm:4.27.4"
"@rollup/rollup-linux-x64-musl": "npm:4.27.4"
"@rollup/rollup-win32-arm64-msvc": "npm:4.27.4"
"@rollup/rollup-win32-ia32-msvc": "npm:4.27.4"
"@rollup/rollup-win32-x64-msvc": "npm:4.27.4"
"@types/estree": "npm:1.0.6"
fsevents: "npm:~2.3.2"
dependenciesMeta:
@@ -6074,6 +5975,10 @@ __metadata:
optional: true
"@rollup/rollup-darwin-x64":
optional: true
"@rollup/rollup-freebsd-arm64":
optional: true
"@rollup/rollup-freebsd-x64":
optional: true
"@rollup/rollup-linux-arm-gnueabihf":
optional: true
"@rollup/rollup-linux-arm-musleabihf":
@@ -6102,7 +6007,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
checksum: 10c0/77fb549c1de8afd1142d2da765adbb0cdab9f13c47df5217f00b5cf40b74219caa48c6ba2157f6249313ee81b6fa4c4fa8b3d2a0347ad6220739e00e580a808d
checksum: 10c0/1442650cfea5e4617ce14743784f6f578817e31db56f9c8aaf96a82daa9bc20b6ccd66c0d677dbf302a4da3e70664dc3bef11a1aec85e6aff3cecccb945b1d35
languageName: node
linkType: hard
@@ -6209,6 +6114,13 @@ __metadata:
languageName: node
linkType: hard
"set-cookie-parser@npm:^2.6.0":
version: 2.7.1
resolution: "set-cookie-parser@npm:2.7.1"
checksum: 10c0/060c198c4c92547ac15988256f445eae523f57f2ceefeccf52d30d75dedf6bff22b9c26f756bd44e8e560d44ff4ab2130b178bd2e52ef5571bf7be3bd7632d9a
languageName: node
linkType: hard
"shebang-command@npm:^1.2.0":
version: 1.2.0
resolution: "shebang-command@npm:1.2.0"
@@ -6747,11 +6659,11 @@ __metadata:
linkType: hard
"ts-api-utils@npm:^1.3.0":
version: 1.3.0
resolution: "ts-api-utils@npm:1.3.0"
version: 1.4.0
resolution: "ts-api-utils@npm:1.4.0"
peerDependencies:
typescript: ">=4.2.0"
checksum: 10c0/f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c
checksum: 10c0/1b2bfa50ea52771d564bb143bb69010d25cda03ed573095fbac9b86f717012426443af6647e00e3db70fca60360482a30c1be7cf73c3521c321f6bf5e3594ea0
languageName: node
linkType: hard
@@ -6770,9 +6682,9 @@ __metadata:
linkType: hard
"tslib@npm:^2.1.0":
version: 2.8.0
resolution: "tslib@npm:2.8.0"
checksum: 10c0/31e4d14dc1355e9b89e4d3c893a18abb7f90b6886b089c2da91224d0a7752c79f3ddc41bc1aa0a588ac895bd97bb99c5bc2bfdb2f86de849f31caeb3ba79bbe5
version: 2.8.1
resolution: "tslib@npm:2.8.1"
checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62
languageName: node
linkType: hard
@@ -6785,6 +6697,13 @@ __metadata:
languageName: node
linkType: hard
"turbo-stream@npm:2.4.0":
version: 2.4.0
resolution: "turbo-stream@npm:2.4.0"
checksum: 10c0/e68b2569f1f16e6e9633d090c6024b2ae9f0e97bfeacb572451ca3732e120ebbb546f3bc4afc717c46cb57b5aea6104e04ef497f9912eef6a7641e809518e98a
languageName: node
linkType: hard
"type-check@npm:^0.4.0, type-check@npm:~0.4.0":
version: 0.4.0
resolution: "type-check@npm:0.4.0"
@@ -6828,23 +6747,23 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:^5.6.3":
version: 5.6.3
resolution: "typescript@npm:5.6.3"
"typescript@npm:^5.7.2":
version: 5.7.2
resolution: "typescript@npm:5.7.2"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799
checksum: 10c0/a873118b5201b2ef332127ef5c63fb9d9c155e6fdbe211cbd9d8e65877283797cca76546bad742eea36ed7efbe3424a30376818f79c7318512064e8625d61622
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A^5.6.3#optional!builtin<compat/typescript>":
version: 5.6.3
resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin<compat/typescript>::version=5.6.3&hash=8c6c40"
"typescript@patch:typescript@npm%3A^5.7.2#optional!builtin<compat/typescript>":
version: 5.7.2
resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin<compat/typescript>::version=5.7.2&hash=5786d5"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10c0/7c9d2e07c81226d60435939618c91ec2ff0b75fbfa106eec3430f0fcf93a584bc6c73176676f532d78c3594fe28a54b36eb40b3d75593071a7ec91301533ace7
checksum: 10c0/f3b8082c9d1d1629a215245c9087df56cb784f9fb6f27b5d55577a20e68afe2a889c040aacff6d27e35be165ecf9dca66e694c42eb9a50b3b2c451b36b5675cb
languageName: node
linkType: hard

View File

@@ -57,10 +57,6 @@ class ESP8266React {
// special functions needed outside scope
//
void setWill(const char * will_topic) {
_mqttSettingsService.setWill(will_topic);
}
// true if AP is active
bool apStatus() {
return _apSettingsService.getAPNetworkStatus() == APNetworkStatus::ACTIVE;

View File

@@ -101,16 +101,6 @@ const char * MqttSettingsService::getClientId() {
return _mqttClient->getClientId();
}
void MqttSettingsService::setWill(const char * topic) {
#ifndef TASMOTA_SDK
if (_state.enableTLS) {
static_cast<espMqttClientSecure *>(_mqttClient)->setWill(topic, 1, true, "offline");
return;
}
#endif
static_cast<espMqttClient *>(_mqttClient)->setWill(topic, 1, true, "offline");
}
void MqttSettingsService::onMqttMessage(const espMqttClientTypes::MessageProperties & properties,
const char * topic,
const uint8_t * payload,
@@ -183,6 +173,14 @@ bool MqttSettingsService::configureMqtt() {
// only connect if WiFi is connected and MQTT is enabled
if (_state.enabled && emsesp::EMSESP::system_.network_connected() && !_state.host.isEmpty()) {
// create last will topic with the base prefixed. It has to be static because the client destroys the reference
static char will_topic[FACTORY_MQTT_MAX_TOPIC_LENGTH];
if (_state.base.isEmpty()) {
snprintf(will_topic, sizeof(will_topic), "status");
} else {
snprintf(will_topic, sizeof(will_topic), "%s/status", _state.base.c_str());
}
_reconfigureMqtt = false;
#ifndef TASMOTA_SDK
if (_state.enableTLS) {
@@ -197,6 +195,7 @@ bool MqttSettingsService::configureMqtt() {
static_cast<espMqttClientSecure *>(_mqttClient)->setClientId(_state.clientId.c_str());
static_cast<espMqttClientSecure *>(_mqttClient)->setKeepAlive(_state.keepAlive);
static_cast<espMqttClientSecure *>(_mqttClient)->setCleanSession(_state.cleanSession);
static_cast<espMqttClientSecure *>(_mqttClient)->setWill(will_topic, 1, true, "offline"); // QOS 1, retain
return _mqttClient->connect();
}
#endif
@@ -207,6 +206,7 @@ bool MqttSettingsService::configureMqtt() {
static_cast<espMqttClient *>(_mqttClient)->setClientId(_state.clientId.c_str());
static_cast<espMqttClient *>(_mqttClient)->setKeepAlive(_state.keepAlive);
static_cast<espMqttClient *>(_mqttClient)->setCleanSession(_state.cleanSession);
static_cast<espMqttClient *>(_mqttClient)->setWill(will_topic, 1, true, "offline"); // QOS 1, retain
return _mqttClient->connect();
}

View File

@@ -101,7 +101,6 @@ class MqttSettingsService : public StatefulService<MqttSettings> {
const char * getClientId();
espMqttClientTypes::DisconnectReason getDisconnectReason();
MqttClient * getMqttClient();
void setWill(const char * topic);
protected:
void onConfigUpdated();

View File

@@ -216,8 +216,18 @@ function check_upgrade(version: string) {
if (version) {
const dev_version = version.split(',')[0];
const stable_version = version.split(',')[1];
console.log("latest dev version: " + dev_version + ", latest stable version: " + stable_version);
console.log('Version upgrade check from version ' + THIS_VERSION + ', upgradable: ' + VERSION_IS_UPGRADEABLE);
console.log(
'latest dev version: ' +
dev_version +
', latest stable version: ' +
stable_version
);
console.log(
'Version upgrade check from version ' +
THIS_VERSION +
', upgradable: ' +
VERSION_IS_UPGRADEABLE
);
data = {
emsesp_version: THIS_VERSION,
upgradeable: VERSION_IS_UPGRADEABLE

View File

@@ -6,13 +6,13 @@ __metadata:
cacheKey: 10c0
"@babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.25.9":
version: 7.26.0
resolution: "@babel/code-frame@npm:7.26.0"
version: 7.26.2
resolution: "@babel/code-frame@npm:7.26.2"
dependencies:
"@babel/helper-validator-identifier": "npm:^7.25.9"
js-tokens: "npm:^4.0.0"
picocolors: "npm:^1.0.0"
checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388
checksum: 10c0/7d79621a6849183c415486af99b1a20b84737e8c11cd55b6544f688c51ce1fd710e6d869c3dd21232023da272a79b91efb3e83b5bc2dc65c1187c5fcd1b72ea8
languageName: node
linkType: hard
@@ -28,15 +28,15 @@ __metadata:
linkType: hard
"@babel/generator@npm:^7.23.0":
version: 7.26.0
resolution: "@babel/generator@npm:7.26.0"
version: 7.26.2
resolution: "@babel/generator@npm:7.26.2"
dependencies:
"@babel/parser": "npm:^7.26.0"
"@babel/parser": "npm:^7.26.2"
"@babel/types": "npm:^7.26.0"
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.25"
jsesc: "npm:^3.0.2"
checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609
checksum: 10c0/167ebce8977142f5012fad6bd91da51ac52bcd752f2261a54b7ab605d928aebe57e21636cdd2a9c7757e552652c68d9fcb5d40b06fcb66e02d9ee7526e118a5c
languageName: node
linkType: hard
@@ -91,14 +91,14 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0":
version: 7.26.1
resolution: "@babel/parser@npm:7.26.1"
"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.2":
version: 7.26.2
resolution: "@babel/parser@npm:7.26.2"
dependencies:
"@babel/types": "npm:^7.26.0"
bin:
parser: ./bin/babel-parser.js
checksum: 10c0/dc7d4e6b7eb667fa0784e7e2c3f6f92ca12ad72242f6d4311995310dae55093f02acdb595b69b0dbbf04cb61ad87156ac03186ff32eacfa35149c655bc22c14b
checksum: 10c0/751a743087b3a9172a7599f1421830d44c38f065ef781588d2bfb1c98f9b461719a226feb13c868d7a284783eee120c88ea522593118f2668f46ebfb1105c4d7
languageName: node
linkType: hard

View File

@@ -1376,3 +1376,17 @@ cyltoptemp
transferpump
transferpumpmod
startshp
tempstatus
difftemp
redtemp
requiredtemp
coldtemp
redtemp
hottemp
dailytemp
circtc
keepwarm
pumpmod
valvereturn
deltatret
errordisp

View File

@@ -545,6 +545,20 @@ const std::initializer_list<Modbus::EntityModbusInfo> Modbus::modbus_register_ma
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDiffTemp), 13, 1), // difftemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwRedTemp), 14, 1), // redtemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwRequiredTemp), 15, 1), // requiredtemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwStorageTemp1), 16, 1), // storagetemp1
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwColdTemp), 17, 1), // coldtemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwTemp5), 18, 1), // temp5
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(retTemp), 19, 1), // rettemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwHotTemp), 20, 1), // hottemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDailyTemp), 21, 1), // dailytemp
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwCircTc), 22, 1), // circtc
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwKeepWarm), 23, 1), // keepwarm
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwStatus2), 24, 1), // status2
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwPumpMod), 25, 1), // pumpmod
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwFlow), 26, 1), // flow
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(valveReturn), 27, 1), // valvereturn
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(deltaTRet), 28, 1), // deltatret
REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(errorDisp), 29, 1), // errordisp
};
} // namespace emsesp

View File

@@ -386,16 +386,6 @@ void Mqtt::start() {
// add the 'publish' command ('call system publish' in console or via API)
Command::add(EMSdevice::DeviceType::SYSTEM, F_(publish), System::command_publish, FL_(publish_cmd));
// create last will topic with the base prefixed. It has to be static because the client destroys the reference
static char will_topic[MQTT_TOPIC_MAX_SIZE];
if (!Mqtt::base().empty()) {
snprintf(will_topic, MQTT_TOPIC_MAX_SIZE, "%s/status", Mqtt::base().c_str());
} else {
snprintf(will_topic, MQTT_TOPIC_MAX_SIZE, "status");
}
EMSESP::esp8266React.setWill(will_topic); // with qos 1, retain true
#if defined(EMSESP_STANDALONE)
Mqtt::on_connect(); // simulate an MQTT connection
#endif

View File

@@ -1 +1 @@
#define EMSESP_APP_VERSION "3.7.1-dev.10"
#define EMSESP_APP_VERSION "3.7.1-dev.12"